• R/O
  • HTTP
  • SSH
  • HTTPS

Source Tree

Tags
No Tags

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-cqtcocoa誰得pythonphprubygameguibathyscaphec翻訳計画中(planning stage)omegatframeworktwittertestdomvb.netdirectxbtronarduinopreviewerゲームエンジン

A categorical programming language


Name Size Rev. Time Author Log Message
cammy-rpy
hive
jelly
movelist
wallpapers
.envrc 184 1822f7c 2022-11-28 00:09:51 Corbin Get back up and running. Hooray for ...
.gitignore 807 38556f6 2022-09-11 09:52:35 Corbin Kind of switch to a JSON hive.
.ocamlformat 16 fa785ac 2022-07-13 00:40:27 Corbin Display trails in the REPL when avail...
LICENSE 33.71 k fa785ac 2022-07-13 00:40:27 Corbin Display trails in the REPL when avail...
README.txt 1.13 k fa785ac 2022-07-13 00:40:27 Corbin Display trails in the REPL when avail...
bench.py 940 fa785ac 2022-07-13 00:40:27 Corbin Display trails in the REPL when avail...
bench.sh 253 fa785ac 2022-07-13 00:40:27 Corbin Display trails in the REPL when avail...
checklist.txt 5.46 k fa785ac 2022-07-13 00:40:27 Corbin Display trails in the REPL when avail...
default.nix 785 dee936e 2023-01-30 12:54:38 Corbin Make jelly acceptance jelly-specific.
hive.json 105.65 k e30409a 2022-12-27 08:22:20 Corbin Compile (pr zero succ) to WASM relati...
make-demos.sh 535 fa785ac 2022-07-13 00:40:27 Corbin Display trails in the REPL when avail...
make-kleisli-cat.sh 656 fa785ac 2022-07-13 00:40:27 Corbin Display trails in the REPL when avail...
proof.txt 680 83402fc 2022-09-12 01:49:26 Corbin Check in a bunch of random files that...
shell.nix 1.48 k d901c37 2022-12-27 13:43:18 Corbin Friendship ended with OCaml, miniKanr...
ski2cammy.py 1.01 k 83402fc 2022-09-12 01:49:26 Corbin Check in a bunch of random files that...
start-repl.sh 156 fa785ac 2022-07-13 00:40:27 Corbin Display trails in the REPL when avail...
todo.txt 15.83 k 0f322ce 2023-01-28 14:30:24 Corbin Search backwards through eval° and ca...
tools.dot 205 bf529a6 2022-12-17 03:08:25 Corbin Diagram how the tools interact.
update-openapi.sh 122 caae86f 2022-09-19 02:41:02 Corbin Honey can evaluate nat/256 in the bro...

README.txt

# Jelly

The jelly optimizer is a Cammy-to-Cammy optimizer which uses e-graphs to
search for the smallest equivalent expression. The rule engine is from the
`egg` library. The rules are written in a DSL embedded in Rust, along with
comments explaining their provenance and correctness.

To update Cargo dependencies for jelly:

    $ nix-shell -p crate2nix cargo
    $ cd jelly/
    $ cargo metadata
    $ crate2nix generate

# Movelist

The movelist is a relational typechecker written in CHICKEN Scheme's dialect
of miniKanren. It can typecheck a Cammy expression, or take a type
representation and synthesize Cammy expressions with the given type.

To update eggs for movelist:

    $ egg2nix movelist/eggs.scm > movelist/eggs.nix

# Shell Environment

The environment for developing the Cammy toolchain is contained within
`shell.nix`.

To update eggs for the shell environment:

    $ egg2nix eggs.scm > eggs.nix

# Compiling to Categories

The second argument to cammy-frame applies a list of functors. Each functor
corresponds to a path in the hive; functor `foo` corresponds to `cats/foo/`.
The list is comma-separated and applied left-to-right.