{"id":28615753,"url":"https://github.com/ocamlpro/jit_ocaml","last_synced_at":"2025-06-12T02:09:48.660Z","repository":{"id":5883002,"uuid":"7100809","full_name":"OCamlPro/jit_ocaml","owner":"OCamlPro","description":"A JIT in OCaml for Scilab (part of the Richelieu FUI project)","archived":false,"fork":false,"pushed_at":"2012-12-17T12:46:21.000Z","size":340,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":4,"default_branch":"master","last_synced_at":"2023-03-11T18:18:48.157Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"OCaml","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/OCamlPro.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"license.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2012-12-10T21:07:56.000Z","updated_at":"2019-01-27T22:47:22.000Z","dependencies_parsed_at":"2022-09-05T17:10:29.217Z","dependency_job_id":null,"html_url":"https://github.com/OCamlPro/jit_ocaml","commit_stats":null,"previous_names":[],"tags_count":0,"template":null,"template_full_name":null,"purl":"pkg:github/OCamlPro/jit_ocaml","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OCamlPro%2Fjit_ocaml","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OCamlPro%2Fjit_ocaml/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OCamlPro%2Fjit_ocaml/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OCamlPro%2Fjit_ocaml/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/OCamlPro","download_url":"https://codeload.github.com/OCamlPro/jit_ocaml/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OCamlPro%2Fjit_ocaml/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259382358,"owners_count":22848845,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-06-12T02:09:48.393Z","updated_at":"2025-06-12T02:09:48.631Z","avatar_url":"https://github.com/OCamlPro.png","language":"OCaml","funding_links":[],"categories":[],"sub_categories":[],"readme":"# jit_ocaml\n\nA JIT in OCaml for Scilab (part of the Richelieu FUI project)\n\n## Current Status\n\nFor now (Dec 15, 2012):\n\nWhat has been implemented:\n\n- Translation from C++ AST to OCaml AST\n- Translation from OCaml AST to C++ AST\n- OCaml AST Printer\n\nWhat has to be implemented: \n\n- Direct Scilab Parser to OCaml AST\n- Partial type inference on OCaml AST\n- Pattern matching of classical Scilab errors on OCaml AST\n- Pretty-printer of Scilab AST\n- JIT Compiler\n\n## How to build\n\n- Checkout a new version of Scilab from your favorite GIT mirror\n\n- Checkout this repository in the modules/ sub-directory of scilab\n\n- This directory contains a patch file scilab-GITCOMMITHASH.diff, that\n  should be applied on this particular GITCOMMITHASH version\n\n   - In scilab, use \"git checkout GITCOMMITHASH\" to go to this particular \n     version\n\n   - Apply the patch \"patch -p1 \u003c modules/jit_ocaml/scilab-GITCOMMITHASH.diff\n\n- Now, build and install:\n\n        ./configure --enable-maintainer-mode  --prefix MY_SCILAB_PREFIX\n        make\n        make install\n\n- You might need some env variables to run:\n\n        PATH=MY_SCILAB_PREFIX/bin:$PATH\n        LD_LIBRARY_PATH=MY_SCILAB_PREFIX/lib/scilab:$LD_LIBRARY_PATH\n        LD_RUN_PATH=MY_SCILAB_PREFIX/lib/scilab:$LD_RUN_PATH\n        export PATH\n        export LD_LIBRARY_PATH\n        export LD_RUN_PATH\n\n- Now, you can test it:\n\n        scilab\n\n  or\n\n        scilab-cli\n\n## How to modify\n\nThis plugin is composed of two parts:\n- A dynamic library, containing the C++ code that serialize C++ ASTs\n   to strings, and back\n- Some static code, included in the 'scilab' and 'scilab-cli' binaries\n  This static code contains:\n   - the OCaml runtime (libasmrun.a)\n   - some C stubs to initialize the OCaml runtime, and register a function\n     to perform the analysis on the serialized AST\n   - The OCaml code that does the analysis \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Focamlpro%2Fjit_ocaml","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Focamlpro%2Fjit_ocaml","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Focamlpro%2Fjit_ocaml/lists"}