ydewit / hvm-kanren

A µKanren implementation in HVM

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

!!EXPERIMENTAL!!


hvm-kanren

This is an experimental port of µKanren to HVM based on this paper.

The primary goal is to implement core constructs from µKanren in HVM with an eye towards exploring HVM strengths (linearity, optimal reduction, laziness and parallelism) to the extent possible.

These core constructs are:

  • equality constraints
  • disjunction of constraints
  • fresh variable generation
  • conjunction of constraints
  • bounded and unbounded recursion

// TODO Inline leaf contructors? E.g. Nil: could we consider Nil as normal form and clone statically? // Right now HVM creates a dup node that simply could be done statically? //

References

About

A µKanren implementation in HVM

License:Apache License 2.0


Languages

Language:Scheme 76.7%Language:Makefile 23.3%