Join GitHub today
GitHub is home to over 50 million developers working together to host and review code, manage projects, and build software together.Sign up
DO NOT MERGE: Compiling Eliom with the new compiler #459
Happy new year everyone, I come bearing eliom gifts!
This is my WIP branch for attempting to compile eliom (the framework) with eliom (the compiler, aka eliomlang).
For now, only bytecode compilation works (no blocker, just haven't taken the time to patch the opt frontend yet).
Currently, the main problem is the build system. ocamlbuild is very extensible ... except in the various ways that would help us, so the predefined rules don't work well. I might attempt to use solvuu (cc @agarwal) (but I'm getting a bit burned out on build systems right now).
Here is how building eliom libraries with the new compiler should work:
If anyone want to try this, bug reports related to the new compiler should be made here.
Eliom_runtime -> Eliom_serial (shared) Eliom_syntax -> Eliom_runtime (server) Eliom_client_core.Syntax_helper -> Eliom_runtime (client) Eliom_syntax.client_value -> Eliom_runtime.fragment (server)
No. eliom cmi contains more information (encoded in ppx attributes) that specificy sides of the various declarations.
The presence of
It would be great to get rid of these suffixes. Client (resp. server) codes must be in a
I disagree. With the new compiler, we should be able to get to the point where you can put your files in any directory you want, regardless of the fact that they are client, server or eliom. The separation in client and server directories is an artifact of the old compilation scheme and is pretty opposite to the point of eliom (which is to group things by what they do, not where they are executed).
If that's how you want to do things, you should be able to, but it should not be imposed.
And in particular, for eliom, I would really rather have it organized in:
@FlorentBecker The first step would be to port my patches to the last version of the OCaml compiler. Then there are a few things to tweak/fix. Unfortunately, I don't work on Eliom anymore and the rest of the ocsigen crew doesn't have time to spare at the moment.
If you are motivated, Please go on. I will gladly answer questions.