Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Questions] Caching of compilation and project status #4

Open
sidkshatriya opened this issue Dec 2, 2021 · 2 comments
Open

[Questions] Caching of compilation and project status #4

sidkshatriya opened this issue Dec 2, 2021 · 2 comments

Comments

@sidkshatriya
Copy link

sidkshatriya commented Dec 2, 2021

Thanks for this feature -- it will allow OCaml to be used an an extension language! I have two questions:

  • Are the results of the compilation cached somewhere? Or does the executable code only live in memory? For instance the native lisp compiler for emacs (due to be released in emacs 28.1) stores the results of compilation in a .eln file so the compilation does not need to happen afresh the next time some script needs to be evaluated
  • Are there some major features/fixes still planned or is this feature near its final state for 4.14?
@NathanReb
Copy link
Contributor

Thanks for your interest!

No caching is done at the moment but that should be fairly easy to add.

There are no major feature or changes planned. Most of the fixes we'd lke are actually fixes to the native toplevel rather than the JIT itself. What remains for the release is a bit of polish, notably making sure one can write native and bytecode compatible code, including if they use the JIT. That means shipping a bytecode version of the JIT where init_top does nothing. This will be useful for MDX.

@sidkshatriya
Copy link
Author

BTW I noticed PR 776: Allow Dynlink only on Domain 0 being merged to the 5.00 branch on the multicore repo.

Does this mean that ocaml-jit could now work against the multicore branch?

BTW, I tried to do this myself by cherry-picking commits into the 5.00 branch from:

While I was able to able to cherry-pick the commits, I was not able to get the compiler to build. Either I forgot a commit or this task is non-trivial.

Here is where my compiler compilation failed:

File "/home/abc123/latest-multicore/ocaml-multicore/toplevel/native/topeval.ml", line 56, characters 13-23:
56 |       Lprim (Pfield pos,
                  ^^^^^^^^^^
Error: The constructor Pfield expects 3 argument(s),
       but is applied here to 1 argument(s)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants