I tried to implement it myself, using compiler-libs (based on OCaml 4.11.0-alpha1 that I happen to install recently): https://github.com/kenichi-asai/remove-sharpuse It can be installed via: opam pin add remove-sharpuse https://github.com/kenichi-asai/remove-sharpuse.git However, if I execute (with attached a.ml and b.ml): $ remove-sharpuse -dsource b.ml Fatal error: exception Invalid_argument("The ocamltoplevel.cma library from compiler-libs cannot be loaded inside the OCaml toplevel") What I did is as follows: - I copied topstart.ml from toplevel/topstart.ml and modified it so that it calls My_topmain.main() instead of Topmain.main(). - I copied my_topmain.ml from toplevel/topmain.ml and modified all the occurences of Toploop to My_toploop. - I copied my_toploop.ml from toplevel/toploop.ml and modified execute_phrase so that it does not execute Ptop_def case. That is, I inserted "if true then true else" at line 273: https://github.com/kenichi-asai/remove-sharpuse/blob/4.11.0-alpha1/my_toploop.ml#L273 so that Ptop_def case is ignored. If I insert the "if true then true else" line manually into the OCaml source and compile it via "make world", I can expand #use by passing "-dsource" to the resulting ocaml. Can I do the same using compiler-libs without getting the above error? Thank you in advance. -- Kenichi Asai On Mon, May 18, 2020 at 08:32:03PM +0900, Kenichi Asai wrote: > Is there any way to expand the use of #use? Suppose I have the > following two files: > > a.ml: > let a = 3 > > b.ml: > #use "a.ml";; > print_int a > > Given the file name b.ml, I want to obtain: > > let a = 3 ;; > print_int a > > The -dsource option of ocaml almost does it, but it executes the > program at the same time. In the above program, it prints 3, too. > > So far, I tweak into the OCaml implementation, turn off the execution > in execute_phrase in toploop.ml, and re-compile whole the OCaml. I > wonder if I can do the same thing simpler than this, possibly using > compiler libs? > > Thank you in advance. > > PS. I know I should not use #use from the first place. > > -- > Kenichi Asai