You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The GRIN frontends should not depend on the built-in evaluation of the primitive operations. Currently we are able to define the ffi and primitive operations, but their interpretation are still tied to the Reducer.Eval, Reducer.LLVM.CodeGen modules.
The use case: I as a frontend developer, want to create my own primitive operations which suits the best to the compiler I work on. To do that, I have to define the set or primitives. Those primitives configured in the ffi/pure section in my GRIN prelude.
Stages:
I would like to add their implementation to the Pure Evaluator to get the semantics right.
Implement my primitive operations in the prim_ops.h / prim_ops.c which are linked during the executable generation phase
Extend the LLVM codegen which my implementation for the primitives in a modular/pluginable way.
The text was updated successfully, but these errors were encountered:
Currently I am working on the first stage, where the PrimOps.hs is defined in the Idris-GRIN-Backend repository and uses a PureEvalPlugin. I sketched the implementation in the #65 PR. But in the long run I would like to implement the rest of the stages too.
I think these goals are not contradictory. We can implement the PrimOps based on the LLVM ones once they introduced.
Currently I am working with the test suite found in Idris-Dev. At this stage I need the PrimOp abstraction for the Idris-GRIN-backend to not to pollute the PrimOps in the GRIN repository.
At the next stage I can start to work on adding the primops from LLVM to the GRIN. After that full featured LLVM codegen for the Idris repository could be implemented.
The GRIN frontends should not depend on the built-in evaluation of the primitive operations. Currently we are able to define the ffi and primitive operations, but their interpretation are still tied to the Reducer.Eval, Reducer.LLVM.CodeGen modules.
The use case: I as a frontend developer, want to create my own primitive operations which suits the best to the compiler I work on. To do that, I have to define the set or primitives. Those primitives configured in the ffi/pure section in my GRIN prelude.
Stages:
The text was updated successfully, but these errors were encountered: