Giter VIP home page Giter VIP logo

Comments (11)

bobzhang avatar bobzhang commented on August 18, 2024

this should be done in the near future : )

from rescript-compiler.

bobzhang avatar bobzhang commented on August 18, 2024

Actually I am more interested in providing a binary in npm, I think it would work nicely with your CommonMl work.

from rescript-compiler.

jordwalke avatar jordwalke commented on August 18, 2024

Yes, that would be cool (in fact being able to put any any version of the OCaml compiler in npm). But it's not clear to me if CommonML should be built on top of npm or if it should be built on top of OPAM, but while adapting npm's sandboxing model into OPAM. Either way, it would be nice to have both - so whatever order you approach it in sounds good to me.

from rescript-compiler.

bobzhang avatar bobzhang commented on August 18, 2024

now ocamlscript is using the compiler: https://github.com/bloomberg/ocaml

from rescript-compiler.

jordwalke avatar jordwalke commented on August 18, 2024

Nice, that's a much better way to break it up.

from rescript-compiler.

bobzhang avatar bobzhang commented on August 18, 2024

@jordwalke given very limited resources we have, I am thinking we will go with npm first, the underlying reason is that commonjs does not fit opam very well only goog.module ( used by very few people, we do support it though) works that way, we can catch it up later.
@fxfactorial I saw you have install_ocaml in npm which is very nice, would you share some knowledge to have install_buckle as well, thanks

from rescript-compiler.

jordwalke avatar jordwalke commented on August 18, 2024

@bobzhang: @fxfactorial's install_ocaml simply runs a shell script pulled from the OPAM site. What I would do instead, is simply create a package.json for the OCaml compiler that points to a git hash 4.02.3 or bucklescript's compiler, and npm will automatically pull it in as a dependency. You just need to add a build command for npm to build the compiler in the sandbox (I believe the configure step just needs to supply ./configure --prefix=pwd or something before building it).

The reason why this is better, is that packages can specify the version of OCaml as a dependency (ideally npm peerDependency) which allows each npm package to compile reliably and be checked against all the other package constraints.

from rescript-compiler.

bobzhang avatar bobzhang commented on August 18, 2024

so the distribution(as planned, not implemented yet) is as follows:

step one: install patched Ocaml compiler (either by installing from source or from opam switch) and make sure compiler is in the path

step two: npm install bs-platform (which will build the compiler and runtime/stdlib on the fly), of course, user can always install from source

note that patched compiler(from opam) is only a build dependency, after that it is no longer needed, in the future, we can put the whole ocaml toolchain under npm as well.

from rescript-compiler.

bobzhang avatar bobzhang commented on August 18, 2024

closed, opam switch ocaml-4.02.3+buckle-1

from rescript-compiler.

jordwalke avatar jordwalke commented on August 18, 2024

Does that opam switch command take the place of step one above?
And if you don't do step one, does step two fail?

from rescript-compiler.

bobzhang avatar bobzhang commented on August 18, 2024

Yes for both

from rescript-compiler.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.