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

Support compilation of HOL Light #108

Merged
merged 1 commit into from
Sep 19, 2024
Merged

Support compilation of HOL Light #108

merged 1 commit into from
Sep 19, 2024

Conversation

aqjune-aws
Copy link
Contributor

This patch supports compilation of HOL Light.
If the HOLLIGHT_USE_MODULE environment variable is set to 1, Makefile builds hol_lib.cmo and makes hol.sh to use it. It first generates hol_lib_inlined.ml which is the output of the new inline_load.ml script which inlines all loads/loadt/needs invocations of the input file. Then, it compiles the inlined file with ocmal compiler.

Compiling HOL Light with 'HOLLIGHT_USE_MODULE=1' extends the trusted base of HOL Light to include the inliner script, inline_loads.ml. inline_loads.ml is an OCaml program that receives an HOL Light proof and replaces the loads/loadt/needs function invocations with their actual contents. The README file newly explains that this flag should be turned of only if having this additional trusted base is considered okay.

This pull request passed holtest as well as s2n-bignum proof tests (OCaml 4.14 used, HOLLIGHT_USE_MODULE turned on).
The patch was written before my vacation; just opening this pull request now...

This patch supports compilation of HOL Light.
If the `HOLLIGHT_USE_MODULE` environment variable is set to 1, Makefile builds `hol_lib.cmo` and makes `hol.sh` to use it.
It first generates `hol_lib_inlined.ml` which is the output of the new `inline_load.ml` script
which inlines all `loads`/`loadt`/`needs` invocations of the input file.
Then, it compiles the inlined file with ocmal compiler.

Compiling HOL Light with 'HOLLIGHT_USE_MODULE=1' extends the trusted base
of HOL Light to include the inliner script, inline_loads.ml. inline_loads.ml is
an OCaml program that receives an HOL Light proof and replaces the
loads/loadt/needs function invocations with their actual contents.
The README file newly explains that this flag should be turned of only if
having this additional trusted base is considered okay.
@jrh13
Copy link
Owner

jrh13 commented Sep 19, 2024

This is a great step forward, thank you! I've tested the build on several platforms, both compiled and "traditional", and they all work perfectly :-)

@jrh13 jrh13 merged commit bf1651f into jrh13:master Sep 19, 2024
2 checks passed
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

Successfully merging this pull request may close these issues.

2 participants