• R/O
  • HTTP
  • SSH
  • HTTPS

Commit

Tags
No Tags

Frequently used words (click to add to your profile)

javaandroidc++linuxc#objective-c誰得cocoaqtpythonrubywindowsphpgameguibathyscaphec翻訳omegat計画中(planning stage)frameworktwitterdombtronvb.nettestarduinodirectxpreviewerゲームエンジン

A categorical programming language


Commit MetaInfo

Revisión7e9125ff0d74968bcbd2376bf54ec51e2cf96d0d (tree)
Tiempo2021-10-28 22:05:01
AutorCorbin <cds@corb...>
CommiterCorbin

Log Message

New toolchain API.

Documentation about the low-level toolchain components has been moved
into the README.

Cambiar Resumen

Diferencia incremental

--- a/README.txt
+++ b/README.txt
@@ -1,12 +1,38 @@
1+# Frame
2+
3+The frame is a preprocessor written in OCaml which statically links together
4+multiple Cammy expressions. The frame takes any nullary functor which is not
5+standard, and treats it as a file path into a tree of Cammy expressions. Each
6+path is replaced with the expression at that path.
7+
8+# Jelly
9+
10+The jelly optimizer is a Cammy-to-Cammy optimizer which uses e-graphs to
11+search for the smallest equivalent expression. The rule engine is from the
12+`egg` library. The rules are written in a DSL embedded in Rust, along with
13+comments explaining their provenance and correctness.
14+
115 To update Cargo dependencies for jelly:
216
3-* $ cargo metadata
4-* $ crate2nix generate
17+ $ pushd jelly/
18+ $ cargo metadata
19+ $ crate2nix generate
20+
21+# Movelist
22+
23+The movelist is a relational typechecker written in CHICKEN Scheme's dialect
24+of miniKanren. It can typecheck a Cammy expression, or take a type
25+representation and synthesize Cammy expressions with the given type.
526
627 To update eggs for movelist:
728
8-* $ egg2nix movelist/eggs.scm > movelist/eggs.nix
29+ $ egg2nix movelist/eggs.scm > movelist/eggs.nix
30+
31+# Shell Environment
32+
33+The environment for developing the Cammy toolchain is contained within
34+`shell.nix`.
935
10-Similarly, to update eggs for the shell environment:
36+To update eggs for the shell environment:
1137
12-* $ egg2nix eggs.scm > eggs.nix
38+ $ egg2nix eggs.scm > eggs.nix
--- a/default.nix
+++ b/default.nix
@@ -15,7 +15,7 @@ let
1515 (map (egg: "${egg.out}/share") eggs);
1616 in pkgs.stdenv.mkDerivation {
1717 name = "cammy";
18- version = "0.1";
18+ version = "0.2";
1919
2020 src = ./.;
2121
@@ -27,20 +27,20 @@ in pkgs.stdenv.mkDerivation {
2727 installPhase = ''
2828 mkdir -p $out/bin/
2929
30- substitute $src/cammy.sh $out/bin/cammy \
30+ substitute $src/cammy.sh $out/bin/cammy-build \
3131 --subst-var bash \
3232 --subst-var chicken \
3333 --subst-var CHICKEN_REPOSITORY_PATH --subst-var CHICKEN_INCLUDE_PATH \
3434 --subst-var frame --subst-var jelly --subst-var movelist
35- chmod +x $out/bin/cammy
35+ chmod +x $out/bin/cammy-build
3636
3737 substitute $src/cammy-simplify.sh $out/bin/cammy-simplify \
3838 --subst-var bash \
3939 --subst-var frame --subst-var jelly --subst-var movelist
4040 chmod +x $out/bin/cammy-simplify
4141
42- makeWrapper ${movelist}/bin/movelist $out/bin/movelist
42+ makeWrapper ${movelist}/bin/movelist $out/bin/cammy-movelist
4343
44- makeWrapper ${cammy-run}/bin/cammy-run $out/bin/cammy-run
44+ makeWrapper ${cammy-run}/bin/cammy-run $out/bin/cammy-draw
4545 '';
4646 }
--- a/shell.nix
+++ b/shell.nix
@@ -22,7 +22,7 @@ in pkgs.stdenv.mkDerivation {
2222 # benchmarking
2323 busybox feedgnuplot
2424 # publishing
25- keychain mktorrent
25+ keychain mktorrent pngcrush
2626 # experimenting with GLSL
2727 mesa-demos
2828 # comparing prototypes