-
Notifications
You must be signed in to change notification settings - Fork 57
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
Remove the MonoJuvix intermediate language #1341
Comments
lukaszcz
added a commit
that referenced
this issue
Jul 15, 2022
* Closes issue #1341. * Depends on PR [#8](anoma/juvix-stdlib#8) in juvix-stdlib. * Translation/MonoJuvixToMiniC removed. * MonoJuvix itself not removed because the MiniHaskell backend depends on it. * Since MiniHaskell is deprecated, I see no point in wasting time on writing a translation from MicroJuvix to MiniHaskell.
7 tasks
7 tasks
lukaszcz
added a commit
that referenced
this issue
Jul 15, 2022
* Closes issue #1341. * Depends on PR [#8](anoma/juvix-stdlib#8) in juvix-stdlib. * Translation/MonoJuvixToMiniC removed. * MonoJuvix itself not removed because the MiniHaskell backend depends on it. * Since MiniHaskell is deprecated, I see no point in wasting time on writing a translation from MicroJuvix to MiniHaskell.
lukaszcz
added a commit
that referenced
this issue
Jul 15, 2022
* Closes issue #1341. * Depends on PR [#8](anoma/juvix-stdlib#8) in juvix-stdlib. * Translation/MonoJuvixToMiniC removed. * MonoJuvix itself not removed because the MiniHaskell backend depends on it. * Since MiniHaskell is deprecated, I see no point in wasting time on writing a translation from MicroJuvix to MiniHaskell.
lukaszcz
added a commit
that referenced
this issue
Jul 18, 2022
* Closes issues #1341, #1338, #1339. * Depends on PR [#8](anoma/juvix-stdlib#8) in juvix-stdlib. * Translation/MonoJuvixToMiniC removed. * MonoJuvix itself not removed because the MiniHaskell backend depends on it. * Since MiniHaskell is deprecated, I see no point in wasting time on writing a translation from MicroJuvix to MiniHaskell.
lukaszcz
added a commit
that referenced
this issue
Jul 18, 2022
* Closes issues #1341, #1338, #1339. * Depends on PR [#8](anoma/juvix-stdlib#8) in juvix-stdlib. * Translation/MonoJuvixToMiniC removed. * MonoJuvix itself not removed because the MiniHaskell backend depends on it. * Since MiniHaskell is deprecated, I see no point in wasting time on writing a translation from MicroJuvix to MiniHaskell.
lukaszcz
added a commit
that referenced
this issue
Jul 19, 2022
* Closes issues #1341, #1338, #1339. * Depends on PR [#8](anoma/juvix-stdlib#8) in juvix-stdlib. * Translation/MonoJuvixToMiniC removed. * MonoJuvix itself not removed because the MiniHaskell backend depends on it. * Since MiniHaskell is deprecated, I see no point in wasting time on writing a translation from MicroJuvix to MiniHaskell.
lukaszcz
added a commit
that referenced
this issue
Jul 19, 2022
* Closes issues #1341, #1338, #1339. * Depends on PR [#8](anoma/juvix-stdlib#8) in juvix-stdlib. * Translation/MonoJuvixToMiniC removed. * MonoJuvix itself not removed because the MiniHaskell backend depends on it. * Since MiniHaskell is deprecated, I see no point in wasting time on writing a translation from MicroJuvix to MiniHaskell.
lukaszcz
added a commit
that referenced
this issue
Jul 19, 2022
* Closes issues #1341, #1338, #1339. * Depends on PR [#8](anoma/juvix-stdlib#8) in juvix-stdlib. * Translation/MonoJuvixToMiniC removed. * MonoJuvix itself not removed because the MiniHaskell backend depends on it. * Since MiniHaskell is deprecated, I see no point in wasting time on writing a translation from MicroJuvix to MiniHaskell.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Monomorphisation seems unnecessary when compiling MicroJuvix to C. Polymorphic functions can be implemented in C by just casting fields and arguments of polymorphic types to an appropriate 'universal' type. For instance, assuming all objects handled by the C runtime are pointers into the heap, the translation of the program
would look something like
By changing UT, this method can be extended to handle unboxed values of "small" types which fit into the machine word (or several words). The only requirement on UT is that it needs to have enough bits to store pointers and all values of "small" types. This is a "standard" method, e.g., the OCaml compiler uses something similar (the OCaml compiler doesn't produce C code, but the general idea of datatype/function representation is similar).
The text was updated successfully, but these errors were encountered: