what's effect of option dsource of ocamlc?












0















I don't know the effect of option dsource of ocamlc.the -h option tell me it's undocumented



I know the use of dparsetree and dtypedtree,it can show me the ast



I try to use the option dsource,to a file test.ml,It seems to return me the source code,without the null line and the comment,and at bottom tell me the waring of the source code.



Is it the effect of option dsource?Thanks!










share|improve this question



























    0















    I don't know the effect of option dsource of ocamlc.the -h option tell me it's undocumented



    I know the use of dparsetree and dtypedtree,it can show me the ast



    I try to use the option dsource,to a file test.ml,It seems to return me the source code,without the null line and the comment,and at bottom tell me the waring of the source code.



    Is it the effect of option dsource?Thanks!










    share|improve this question

























      0












      0








      0








      I don't know the effect of option dsource of ocamlc.the -h option tell me it's undocumented



      I know the use of dparsetree and dtypedtree,it can show me the ast



      I try to use the option dsource,to a file test.ml,It seems to return me the source code,without the null line and the comment,and at bottom tell me the waring of the source code.



      Is it the effect of option dsource?Thanks!










      share|improve this question














      I don't know the effect of option dsource of ocamlc.the -h option tell me it's undocumented



      I know the use of dparsetree and dtypedtree,it can show me the ast



      I try to use the option dsource,to a file test.ml,It seems to return me the source code,without the null line and the comment,and at bottom tell me the waring of the source code.



      Is it the effect of option dsource?Thanks!







      ocaml






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Nov 14 '18 at 3:31









      wang kaiwang kai

      306212




      306212
























          2 Answers
          2






          active

          oldest

          votes


















          2














          I just spent a few minutes grepping the OCaml compiler sources, and here is what I found.



          The -dsource command-line flag sets the dump_source field to true in the Clflags module.



          This setting in turn causes the compiler to do something like this in driver/compile.ml when compiling an implementation (.ml) file.



          if !Clflags.dump_source then
          fprintf ppf "%a@." Pprintast.structure ast


          In other words, it pretty-prints the code part of the AST in a form that looks like source code.



          Things look similar for an interface (.mli) file, except that it prints out the signature rather than the code.



          Since OCaml has a rather flexible front-end, I would guess this is helpful to see the final result of any syntactic transformations that have been applied to the code. (But I might be wrong, I'm not an OCaml compiler hacker.)



          I suggest you start looking at the code in driver/compile.ml if you want to figure out more.






          share|improve this answer































            2














            -dsource pretty-prints the AST using the OCaml syntax after desugarring syntax extensions such as camlp4 and ppx.



            It's mostly used to debug ppxs. The content is exactly the same as -dparsetree (except in source form, instead of AST).






            share|improve this answer























              Your Answer






              StackExchange.ifUsing("editor", function () {
              StackExchange.using("externalEditor", function () {
              StackExchange.using("snippets", function () {
              StackExchange.snippets.init();
              });
              });
              }, "code-snippets");

              StackExchange.ready(function() {
              var channelOptions = {
              tags: "".split(" "),
              id: "1"
              };
              initTagRenderer("".split(" "), "".split(" "), channelOptions);

              StackExchange.using("externalEditor", function() {
              // Have to fire editor after snippets, if snippets enabled
              if (StackExchange.settings.snippets.snippetsEnabled) {
              StackExchange.using("snippets", function() {
              createEditor();
              });
              }
              else {
              createEditor();
              }
              });

              function createEditor() {
              StackExchange.prepareEditor({
              heartbeatType: 'answer',
              autoActivateHeartbeat: false,
              convertImagesToLinks: true,
              noModals: true,
              showLowRepImageUploadWarning: true,
              reputationToPostImages: 10,
              bindNavPrevention: true,
              postfix: "",
              imageUploader: {
              brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
              contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
              allowUrls: true
              },
              onDemand: true,
              discardSelector: ".discard-answer"
              ,immediatelyShowMarkdownHelp:true
              });


              }
              });














              draft saved

              draft discarded


















              StackExchange.ready(
              function () {
              StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53292793%2fwhats-effect-of-option-dsource-of-ocamlc%23new-answer', 'question_page');
              }
              );

              Post as a guest















              Required, but never shown

























              2 Answers
              2






              active

              oldest

              votes








              2 Answers
              2






              active

              oldest

              votes









              active

              oldest

              votes






              active

              oldest

              votes









              2














              I just spent a few minutes grepping the OCaml compiler sources, and here is what I found.



              The -dsource command-line flag sets the dump_source field to true in the Clflags module.



              This setting in turn causes the compiler to do something like this in driver/compile.ml when compiling an implementation (.ml) file.



              if !Clflags.dump_source then
              fprintf ppf "%a@." Pprintast.structure ast


              In other words, it pretty-prints the code part of the AST in a form that looks like source code.



              Things look similar for an interface (.mli) file, except that it prints out the signature rather than the code.



              Since OCaml has a rather flexible front-end, I would guess this is helpful to see the final result of any syntactic transformations that have been applied to the code. (But I might be wrong, I'm not an OCaml compiler hacker.)



              I suggest you start looking at the code in driver/compile.ml if you want to figure out more.






              share|improve this answer




























                2














                I just spent a few minutes grepping the OCaml compiler sources, and here is what I found.



                The -dsource command-line flag sets the dump_source field to true in the Clflags module.



                This setting in turn causes the compiler to do something like this in driver/compile.ml when compiling an implementation (.ml) file.



                if !Clflags.dump_source then
                fprintf ppf "%a@." Pprintast.structure ast


                In other words, it pretty-prints the code part of the AST in a form that looks like source code.



                Things look similar for an interface (.mli) file, except that it prints out the signature rather than the code.



                Since OCaml has a rather flexible front-end, I would guess this is helpful to see the final result of any syntactic transformations that have been applied to the code. (But I might be wrong, I'm not an OCaml compiler hacker.)



                I suggest you start looking at the code in driver/compile.ml if you want to figure out more.






                share|improve this answer


























                  2












                  2








                  2







                  I just spent a few minutes grepping the OCaml compiler sources, and here is what I found.



                  The -dsource command-line flag sets the dump_source field to true in the Clflags module.



                  This setting in turn causes the compiler to do something like this in driver/compile.ml when compiling an implementation (.ml) file.



                  if !Clflags.dump_source then
                  fprintf ppf "%a@." Pprintast.structure ast


                  In other words, it pretty-prints the code part of the AST in a form that looks like source code.



                  Things look similar for an interface (.mli) file, except that it prints out the signature rather than the code.



                  Since OCaml has a rather flexible front-end, I would guess this is helpful to see the final result of any syntactic transformations that have been applied to the code. (But I might be wrong, I'm not an OCaml compiler hacker.)



                  I suggest you start looking at the code in driver/compile.ml if you want to figure out more.






                  share|improve this answer













                  I just spent a few minutes grepping the OCaml compiler sources, and here is what I found.



                  The -dsource command-line flag sets the dump_source field to true in the Clflags module.



                  This setting in turn causes the compiler to do something like this in driver/compile.ml when compiling an implementation (.ml) file.



                  if !Clflags.dump_source then
                  fprintf ppf "%a@." Pprintast.structure ast


                  In other words, it pretty-prints the code part of the AST in a form that looks like source code.



                  Things look similar for an interface (.mli) file, except that it prints out the signature rather than the code.



                  Since OCaml has a rather flexible front-end, I would guess this is helpful to see the final result of any syntactic transformations that have been applied to the code. (But I might be wrong, I'm not an OCaml compiler hacker.)



                  I suggest you start looking at the code in driver/compile.ml if you want to figure out more.







                  share|improve this answer












                  share|improve this answer



                  share|improve this answer










                  answered Nov 14 '18 at 4:17









                  Jeffrey ScofieldJeffrey Scofield

                  47.6k24979




                  47.6k24979

























                      2














                      -dsource pretty-prints the AST using the OCaml syntax after desugarring syntax extensions such as camlp4 and ppx.



                      It's mostly used to debug ppxs. The content is exactly the same as -dparsetree (except in source form, instead of AST).






                      share|improve this answer




























                        2














                        -dsource pretty-prints the AST using the OCaml syntax after desugarring syntax extensions such as camlp4 and ppx.



                        It's mostly used to debug ppxs. The content is exactly the same as -dparsetree (except in source form, instead of AST).






                        share|improve this answer


























                          2












                          2








                          2







                          -dsource pretty-prints the AST using the OCaml syntax after desugarring syntax extensions such as camlp4 and ppx.



                          It's mostly used to debug ppxs. The content is exactly the same as -dparsetree (except in source form, instead of AST).






                          share|improve this answer













                          -dsource pretty-prints the AST using the OCaml syntax after desugarring syntax extensions such as camlp4 and ppx.



                          It's mostly used to debug ppxs. The content is exactly the same as -dparsetree (except in source form, instead of AST).







                          share|improve this answer












                          share|improve this answer



                          share|improve this answer










                          answered Nov 14 '18 at 14:06









                          DrupDrup

                          3,145712




                          3,145712






























                              draft saved

                              draft discarded




















































                              Thanks for contributing an answer to Stack Overflow!


                              • Please be sure to answer the question. Provide details and share your research!

                              But avoid



                              • Asking for help, clarification, or responding to other answers.

                              • Making statements based on opinion; back them up with references or personal experience.


                              To learn more, see our tips on writing great answers.




                              draft saved


                              draft discarded














                              StackExchange.ready(
                              function () {
                              StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53292793%2fwhats-effect-of-option-dsource-of-ocamlc%23new-answer', 'question_page');
                              }
                              );

                              Post as a guest















                              Required, but never shown





















































                              Required, but never shown














                              Required, but never shown












                              Required, but never shown







                              Required, but never shown

































                              Required, but never shown














                              Required, but never shown












                              Required, but never shown







                              Required, but never shown







                              Popular posts from this blog

                              Bressuire

                              Vorschmack

                              Quarantine