Skip to content

Commit

Permalink
DSL layer work over LLVM (#216)
Browse files Browse the repository at this point in the history
* added a dsl file which will go over the LLVM layer

* properly parameterized bothPrimary nad findEdge to give back eac when requested

* created the EAC speicif alias types in defs

* Changed the yaml to allow the code to compile

* abstracted out the logic of externing a function then calling it at
the graph level

* created the linkAll abstraction

* used the DSL logic in the fanIn logic

* massive refactor to allow proper type propogration... change to reader
monad later

* propogated the extra argument chnages and aliased said functions in defs
  • Loading branch information
mariari committed Dec 3, 2019
1 parent b1794c5 commit 1f14012
Show file tree
Hide file tree
Showing 8 changed files with 537 additions and 225 deletions.
14 changes: 14 additions & 0 deletions doc/Code/Juvix.org
Expand Up @@ -26,6 +26,13 @@
*** LLVM
- Serves as the LLVM backend compiler to Juvix.
- This is an alternative to the interpreter provided.
**** DSL
Serves as a mini DSL layer above LLVM
- _Relies on_
+ [[Library]]
***** What is included?
1. _Relink_
- gives a declarative way to do a bunch of links and relinks
**** Codegen
- _Relies on_
+ [[Block]]
Expand Down Expand Up @@ -87,6 +94,13 @@ Provides a mechanism for defining Sum types
EAC layer gets run
- The form given to =EAC= is not the base EAC AST, but instead a
pre processed =EAC= graph that the initial graph will be made on
- _Relies on_
+ [[Library]]
****** Defs
- Specializes the functions in Graph to fit [[Net/EAC/Types]]
+ Later in the DSL Layer!
- Generates the =find_edge= and =isBothPrimary= function with the =eal= type.
- Also generates the proper types associated with them
- _Relies on_
+ [[Library]]
****** Types <<Net/EAC/Types>>
Expand Down
2 changes: 2 additions & 0 deletions package.yaml
Expand Up @@ -151,6 +151,8 @@ library:
- Juvix.Backends.LLVM.Codegen
- Juvix.Backends.LLVM.Net.EAC
- Juvix.Backends.LLVM.Net.EAC.Types
- Juvix.Backends.LLVM.Net.EAC.Defs
- Juvix.Backends.LLVM.DSL
other-modules:
- Juvix.Interpreter.InteractionNet.NodeInterface
- Juvix.Core.Translate
Expand Down

0 comments on commit 1f14012

Please sign in to comment.