reasonml-old / bs-node

Node bindings for BuckleScript
78 stars 17 forks source link

Ocamlfind - utop compatibility #5

Open arichiardi opened 7 years ago

arichiardi commented 7 years ago

It would be awesome if bs-node could be visible in rtop. After a bit of discussion on Discord I went ahead and discovered things that you folks already know but what it is necessary for it to work is basically to be compatible with ocamlfind/findlib. After that, #require can be used to load packages directly in it.

This user guide contains the specification of what is some sort of package descriptor (nothing magic there) and I was kind of wondering if I could have a good in achieving this 😀

If you folks are interested of course, I think it is worth having a solid repl driven workflow for many Reasons: it enhanced discoverabily, shortens API browsing time, keeps you focused and in the flow (no context switching). It is some inheritance from my Clojure experience, a good one that I would like to keep.

arichiardi commented 7 years ago

Some more info about his layout: http://projects.camlcity.org/projects/dl/findlib-1.3.0/doc/ref-html/r774.html

And on the META file: http://projects.camlcity.org/projects/dl/findlib-1.3.0/doc/ref-html/r680.html#META

arichiardi commented 7 years ago

Understanding the issue a bit more, discovering bit by bit the moving parts here. The problem is more complicated because BuckleScript specific code can neither be read nor evaluated in rtop. It is native after all (thanks @hessammehr for pinging and correcting me on that).

A possible solution to that would be to have another repl, node specific, that Reads Reason/BuckleScript, Evaluates on the Node.js runtime, Prints out and Loops.

I think with @hessammehr we might end up trying to hack something together :smile: