spook

A "game" for the 2023 Autumn Lisp Game Jam. Won first place! (from the bottom...)
git clone https://kaka.farm/~git/spook
Log | Files | Refs | LICENSE

TODO (2264B)


      1 TODO									-*- Outline -*-
      2 
      3 
      4 * bugs
      5 ** doesn't run well on IE 
      6 *** "->string" in test.scm fails
      7 **** might be solved with use of SPOCK.global, but only tested in full block-mode
      8 **** also dies when running test-suite
      9 *** also problems on conkeror on Windows (0.9.3)
     10 ** self-build fails
     11 *** expand returns impossible values, somethings deeply wrong
     12 *** recent CPS-fix possibly helps
     13 ** large files seem to exceed function nesting on Rhino
     14 *** exits 3, SM previously (before CPS clustering) gave "too much recursion"
     15 *** SM and d8 are ok
     16 *** seems to be a compile-time error
     17 
     18 * test suspensions
     19 
     20 * compiler
     21 ** should have access to original variable names
     22    keep map of temps -> old names (in state?)
     23 ** threads.scm slightly broken
     24 *** inner loop creating threads mutates captured variable
     25 
     26 * optimizer
     27 ** lifting may result in colliding names, if multiple compiled modules are loaded
     28 *** must be renamed or isolated, somehow
     29 ** implement simple inlining of locally bound lambdas
     30 *** this is just cp
     31 *** only for small functions (for example expansion of "(match 1 (2 3))")
     32 
     33 * upgrade expander to newer version
     34 ** needed?
     35 
     36 * count sufficient in user-lambdas?
     37 ** or do we have to count in k-lambdas as well?
     38 ** bug: zero-argument functions will currently not count
     39 
     40 * library
     41 ** add section-dependencies
     42 ** error-message will be misleading if primitives require mutable strings but get jstrings
     43 ** put syntax.scm into library.scm ?
     44 ** use case-lambda to specialize single/multiarg variants at expansion time?
     45 
     46 * foreign interface
     47 ** passing explicit "this" (native-method) not really right
     48 *** perhaps handle %host-ref's in operator position differently?
     49     needs to generate direct call
     50 ** needs complete reconsideration
     51 ** "...NAME1.NAME2" could retrieve NAME2 and bind it to NAME1
     52 *** but would need to check at runtime if NAME2 names a function
     53 ** test -bind
     54 
     55 * runtime
     56 ** SPOCK.error should split output at newlines and call console.log repeatedly
     57 *** console.log removes newlines, it seems
     58 ** SPOCK.module is still missing
     59 
     60 * option "-namespace"
     61 ** requires "-runtime"?
     62 ** not really tested well
     63 
     64 * some dead code is generated after CPS calls
     65 ** currently only in `if' forms and after `%continue'
     66 
     67 * finish Makefile in "stuff/" to have a working test-suite