A categorical programming language
Revision | cfdc50df8ccd27c95c7c38c4644a93c9905653db (tree) |
---|---|
Time | 2024-04-27 10:16:51 |
Author | Corbin <cds@corb...> |
Commiter | Corbin |
Make a plan.
I wanted to add rpypkgs, but I effectively can't use it yet.
@@ -478,6 +478,8 @@ | ||
478 | 478 | * Composites -> trees of types |
479 | 479 | * Trails -> commits |
480 | 480 | * Note: this means prims can't have trails? |
481 | + * No, it means that git porcelain can't handle those commits, but | |
482 | + dulwich can emit them, no problem | |
481 | 483 | * Jets -> tags |
482 | 484 | * Note: This can be used to force jets to not be refactored, e.g. for |
483 | 485 | constant-time expressions |
@@ -487,3 +489,28 @@ | ||
487 | 489 | * Type signatures -> trees of types |
488 | 490 | * Submodules -> tree of type signatures? |
489 | 491 | * Structs -> trees |
492 | +* CHICKEN -> Chez | |
493 | + * Motivation | |
494 | + * Speed: CHICKEN is not super-fast, Chez is quite fast | |
495 | + * Package reliability: CHICKEN is federated into many packages | |
496 | + * Normally this would be a problem for Chez; wherefore packages? | |
497 | + * But Chez has matchable and many SRFIs, so the main thing to find/write | |
498 | + is a miniKanren, and that's a well-studied exercise of <100 LoC | |
499 | + * Don't even have to write that: | |
500 | + https://github.com/michaelballantyne/faster-minikanren/tree/master | |
501 | + * Just spent half an hour fucking around with eggs.nix breakage, very | |
502 | + ready to be done with CHICKEN | |
503 | + * This is the last time egg2nix fucks us over | |
504 | + * Updates: Can't use rpypkgs without bumping nixpkgs, which breaks eggs | |
505 | + * Obstacles | |
506 | + * FFI: CHICKEN's selling point is FFI and C compat | |
507 | + * Might not be a problem for much longer; we're doing FFI in RPython now | |
508 | + * Plan | |
509 | + * Switch bk over to Python 3 | |
510 | + * Gives us dulwich instead of libgit2 | |
511 | + * Reuse 2to3's guts? Make 2to3 a subcommand of bk | |
512 | + * Switch movelist over to Chez | |
513 | + * Should hopefully be a matter of rewriting imports | |
514 | + * Need to unburden movelist of some of its responsibilities | |
515 | + * REPL should be done somewhere else | |
516 | + * Sampler's REPL is not bad, just bare-bones, no hive support |