{"id":16761005,"url":"https://github.com/bmeurer/ocamljitrun","last_synced_at":"2025-07-05T10:36:51.646Z","repository":{"id":3200577,"uuid":"4233987","full_name":"bmeurer/ocamljitrun","owner":"bmeurer","description":"Backup of the OCAMLJIT prototype by Basile Starynkevitch","archived":false,"fork":false,"pushed_at":"2012-05-05T13:37:58.000Z","size":148,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-22T21:32:11.823Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-2.1","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bmeurer.png","metadata":{"files":{"readme":"README","changelog":null,"contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2012-05-05T13:37:33.000Z","updated_at":"2016-02-15T04:52:00.000Z","dependencies_parsed_at":"2022-08-27T02:14:32.351Z","dependency_job_id":null,"html_url":"https://github.com/bmeurer/ocamljitrun","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bmeurer%2Focamljitrun","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bmeurer%2Focamljitrun/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bmeurer%2Focamljitrun/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bmeurer%2Focamljitrun/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bmeurer","download_url":"https://codeload.github.com/bmeurer/ocamljitrun/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243848644,"owners_count":20357598,"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":"2024-10-13T04:25:10.094Z","updated_at":"2025-03-16T09:23:59.351Z","avatar_url":"https://github.com/bmeurer.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":" file ocamljitrun/README\n cvsid $Id: README,v 1.10 2004-07-10 20:00:34 basile Exp $\n\n                           Objective Caml                            \n                                                                     \n      Basile Starynkevitch, projet Cristal, INRIA Rocquencourt       \n                                                                     \n  Copyright 2004 Institut National de Recherche en Informatique et   \n  en Automatique.  All rights reserved.  This file is distributed    \n  under the terms of the GNU Library General Public License, with    \n  the special exception on linking described in file ../LICENSE.     \n                                                                     \n\nSee http://cristal.inria.fr/~starynke/ocamljit.html \n\nThis directory provides a just in time translating version of the\nOcaml bytecode interpreter. In principle, it should provide you with\nan ocamljitrun executable which replaces the usual ocamlrun executable\n(the standard Ocaml bytecode interpreter), and translate the bytecode\n(incrementally, ie in a Just In Time fashion) into machine code which\nusually runs faster.\n\n______________________________________________________________________\n\n     Prerequisites\n     =============\n\nYou need a recent Ocaml source directory (i.e. a CVS snapshot newer\nthan april 26th 2004), or perhaps the (future) 3.08 version. You\nshould get it on http://caml.inria.fr/ (and follow indications about\nthe CVS repository). The Ocaml release 3.07 won't work here.\n\nYou need a recent GNU lightning library. Lightning is a library\nproviding C macros to generate machine code (on x86, PowerPC, Sparcv9,\n32 bits machines) at runtime. You need a CVS snapshot of GNU lightning\nfrom http://savannah.gnu.org/ newer than july 8th 2004.\n\nYou need GNU make to build this ocamljitrun. It is preferable to have\nthe GNU bash shell.\n\nBoth your Ocaml and your lightning should have been successfully built\nand installed.\n\nFor Ocaml, you should probably (read the detailed instructions in\nOCaml source tree to be sure)\n\n    cd /path/to/ocaml/latest/sources/\n    ./configure\n    make world\n    make opt\n    make install\n\n\nFor GNU lightning (read the instructions in GNU lightning source tree\nto be sure)\n\n    cd /path/to/lightning/latest/sources/\n    ./configure\n    make all\n    make install\n\n\nYou are expected to have both ocaml \u0026 lightning installed, and to keep\ntheir source trees for installation of ocamljitrun\n\n\n\n\n    Configuration and installation\n    ==============================\n\nBe sure to have compiled and installed both Ocaml \u0026 lightning\nbefore. You need the Ocaml source tree to compile ocamljitrun.\n\nYou can either configure manually Ocamljit, or (in most simple cases),\nconfigure it using the ConfigureJit shell script.\n\nAutomatic configuration:\n- - - - - - - - - - - -\n\nRun the ConfigureJit and answer (interactively) to\nquestions. Alternatively, configure manually as below.\n\n\nManual configuration:\n- - - - - - - - - - -\nedit a _jitconfig.mk file containing (for GNU make) the following definitions\nOCAML_TOPDIR=/path/to/ocaml/sources\nLIGHTNING_INCLUDEDIR=/path/to/lightning/include\n\nfor example, on my home machine, I have\nOCAML_TOPDIR=/usr/src/Lang/ocaml/\nLIGHTNING_INCLUDEDIR=/usr/local/include/\n\nNote that the include directory for GNU lightning is the one\ncontaining \u003clightning.h\u003e - hence it is usually /usr/local/include/ not\n/usr/local/include/lightning/ (which contains asm.h etc...)\n\n\nInstallation:\n- - - - - - -\n\nIf you don't have a good ptrace system call and a \u003csys/ptrace.h\u003e\ninclude file (like on Solaris2.9), add -DNO_PTRACE to the compile\nflags (eg by editing the Makefile)\n\nOnce you configured as above, just invoke GNU make, usually thru the\ngmake or (on Linux and other GNU systems) simply make.\n\nYou get many warnings with gcc, like \"value computed is not used\" -\nthis is related to lightning...\n\nThen copy ocamljitrun to some bin/ directory in your path (or run sudo\nmake install).\n\nocamljitrun should be a plug-in replacement of ocamlrun. However, on\nvery short programs (e.g. ocamlc compiling a small *.ml file) it is\nactually slower than ocamlrun, because of the overhead for machine\ncode generation (which is, as the JIT acronym suggests, performed\nincrementally by ocamljitrun). On programs running more than a few\nseconds, ocamljitrun may be up to two times faster on x86.\n\nKnown bugs: \n=========== \n\ncompiles and runs ok on x86 \u0026 PowerPC\nSWITCH bug fixed in byterun/callbacks.c \u003e= 1.47\ncallback bug fixed in byterun/callbacks.c cvs.rev \u003e= 1.22\n\n________________________________________________________________\n\nPlease send comments and feedback by email to basile dot starynkevitch\nat inria dot fr or basile at starynkevitch dot net\n\n\nChanges:\n\nrelease fetnat july 10th 2004.\n\ninitial release april 19th 2004.\n\nend of $Id: README,v 1.10 2004-07-10 20:00:34 basile Exp $\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbmeurer%2Focamljitrun","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbmeurer%2Focamljitrun","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbmeurer%2Focamljitrun/lists"}