-
Notifications
You must be signed in to change notification settings - Fork 756
Accumulators as functions base #22345
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
Closed
Closed
Changes from all commits
Commits
Show all changes
85 commits
Select commit
Hold shift + click to select a range
050b513
enabling native-compiler
IBBXEF bb6c614
Created placeholder functions for compiling to mlf
IBBXEF 238477b
Now compiles lambda functions
IBBXEF 24371ff
Now compiles primitives
IBBXEF 21cdcaa
the mlf compiler is now called by the general compile function
IBBXEF 50fcc05
fixed two naming errors
IBBXEF c501fcf
Now compiles local and global variable names, applications and let st…
IBBXEF 741d512
Now compiles if and letrec statements, and fixed a bug with global names
IBBXEF 01393e9
Now compiles (at least define) let cases
IBBXEF 1d8d2c4
Now compiles global table fix types (whatever that is)
IBBXEF 1ed11de
Now compiles global table norm and fixed a few bugs
IBBXEF 53890e2
Fixed a capitalization error and a few inconsistencies
IBBXEF 0a3be3f
Now compiles arrays and reference assignment
IBBXEF 2fe67ee
Fixed an arror where global names where wrongly assumed to come from …
IBBXEF e6fd9ed
Fixed a bug introduced by the last fix where some global variable wou…
IBBXEF 5a62b24
refactored some of the code and fixed a bug where () would be transla…
IBBXEF 5962c78
rt1 and rt2 are now correctly marked as coming from the Nativelib module
IBBXEF fd8852f
refactored pp_gname_plf
IBBXEF 8d28a82
Fixed an error whith double dollar signs before variables
IBBXEF 3b6b7d3
Now compiles match statements
IBBXEF a9153b4
Now compiles primitives Mk_fix and Mk_var
IBBXEF 6ef0751
Fixed a double dollar bug and some values being wrongly compiled as f…
IBBXEF d06b9e0
Fixed multiple cases where definition would be compiled as functions,…
IBBXEF c974fe7
Now compiles global cofix tables and all global declaration !
IBBXEF 8c98c41
Now compiles MLconstruct and MLisaccu, and thus, all mllambda express…
IBBXEF e472d18
Now compiles lazy values correctly
IBBXEF 867d435
Started to make a function to call the mlf compiler
IBBXEF 5aa109b
Now correctly compiles uints and floats in 32 and 64 bits architectures
IBBXEF 9f7a637
Now correctly compiles negative ints
IBBXEF 988090e
Refactored code and improved generated code identation
IBBXEF 2c6e11e
fixed bugs with uint compilation, refactored code, removed useless pa…
IBBXEF 8612027
refactored and fixed typos
IBBXEF 2d07c60
Now compiles field access correctly
IBBXEF 7bc7c28
the malfunction compiler is now called
IBBXEF ab1de57
letrec are now compiled properly
IBBXEF 2ad5d7e
compiled mlf programs now generate mli files and import each other
IBBXEF c3918aa
Cleaned code and did a small fix
IBBXEF d538c9f
ML primitives without arguments are now correctly compiled as values …
IBBXEF a707d73
Compilation now works perfectly
IBBXEF 788da35
Cleaned generated code and fixed ml primitives being imported from th…
IBBXEF dea3999
Fixed Lazy.force being incorrectly compiled
IBBXEF 7b90bb8
Fixed an error in string compilation
IBBXEF 8fc86af
Generated interface is now compatible with Ocaml native compilation
IBBXEF 3e3a42d
.mli interfaces now contains defined types
IBBXEF 406f5ac
refactored code, and generated interfaces now have types more coheren…
IBBXEF a92cac2
Now correctly compiles floats, Array.get and cofix
IBBXEF d112f42
Now correctly compiles cofix
IBBXEF 1a6a805
removed now unecessary code
IBBXEF f02c67d
Now correctly handles nan and infinity
IBBXEF adc655a
Now handles decode_string and compilation in specific folders
IBBXEF a1d3c2c
Went back to simpler mli generation as interfacing with Ocaml will no…
IBBXEF c6545e3
removed Ocaml compilation
IBBXEF c0a6506
Added cleaner debug messages and error handling
IBBXEF 530b3b9
removed most of Ocaml code generation
IBBXEF b92250a
More cleanup, reused now free function names, and moved Lazy.force in…
IBBXEF a31380b
more renaming
IBBXEF cbc1348
fixed identation
IBBXEF e181096
pp_lname now adds truly returns the variable name in mlf (with the do…
IBBXEF f505c2c
replaced arrays with normal memory blocks
IBBXEF 16379d0
removed Obj_magic primitive as it is no longer needed
IBBXEF dd3ade1
The compilation of logical and is now cleaner
IBBXEF 389ea57
fixed a comment
IBBXEF 45a2e42
removed some support for the creation of clotures on primitives
IBBXEF 2bd1cd7
added a space to make code generation clearer
IBBXEF e7862cd
removed annotations from matches as they are no longer needed
IBBXEF 8629609
removed annotations from Gletcase as they are no longer needed
IBBXEF 261cc4a
updated Dockerfile to add malfunction as an opam pin
IBBXEF 138cc5c
The compilation of Uint, float, and pstring into mlf is now separated…
IBBXEF 423641e
updated benchmarks
IBBXEF 5928a2b
enabled native for benchmarks
IBBXEF ac8a08e
now compiles with Oclassic
IBBXEF 7f3e2dd
updated ci hash key
IBBXEF 15bc055
updated Dockerfile
IBBXEF de38b35
Avoid identity cast functions in native compilation.
ppedrot 04864ad
Updated dockerfile.
ppedrot b98087d
Removed prefix and inductive name from MLconstruct as they are no lon…
IBBXEF c777a94
changed the representation of accumulators to be a closure
IBBXEF 458a10f
Fixed closures and accumulators being undistinguishable
IBBXEF 3406e21
removed the main hack in the handling of accumulators
IBBXEF 3101e33
cleaned code and simplified the hack used to differentiate functions …
IBBXEF c9aeaa9
removed magic numbers
IBBXEF 9d396fc
changed accumulator contruction and check to not use Obj.with_tag
IBBXEF e6057fd
removed architectures checks as native_compute no longer uses inline …
IBBXEF 8e9322c
added more guardrails to the build_accu function to avoid optimisatio…
IBBXEF 516eeae
updated dockerfile
IBBXEF File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There have been bugs in the past when using the decimal scientific notation to perform a roundtrip (i.e., you would get a close but different number, especially for subnormal floating-point numbers). I don't know how safe it is nowadays. Does the malfunction compiler not support the hexadecimal notation?