Skip to content

Latest commit

 

History

History
57 lines (44 loc) · 1.44 KB

File metadata and controls

57 lines (44 loc) · 1.44 KB

Old:

rick@x220 | ~/rickardlindberg.me/writing/rlmeta-memoize-failures/vm $ time ./meta_compile.sh OK

real 0m0.732s user 0m0.613s sys 0m0.119s

rick@x220 | ~/rickardlindberg.me/writing/rlmeta-memoize-failures/vm $ wc -l parser.rlmeta codegenerator.rlmeta support.py compile.sh 53 parser.rlmeta 74 codegenerator.rlmeta 313 support.py 45 compile.sh 485 total

New:

rick@x220 | ~/rickardlindberg.me/writing/rlmeta-vm-poster $ time ./meta_compile.sh OK

real 0m0.682s user 0m0.582s sys 0m0.100s

rick@x220 | ~/rickardlindberg.me/writing/rlmeta-vm-poster $ wc -l parser.rlmeta codegenerator.rlmeta support.py compile.sh 52 parser.rlmeta 65 codegenerator.rlmeta 223 support.py 52 compile.sh 392 total

Getting closer to t-shirt programming.

Annoys me:

  • Assembly hard to read (not sure how to improve it)
  • Counter is incremented at match time, not at eval time
  • No test suite for basic correctness (error reporting not tested for example)
  • Can concat/splice be even shorter?
    • Splice into a list?
  • cd/pwd behavior in compile.sh
  • New frequency analysis after instructions change

Diff from memoizing:

meld ../rlmeta-memoize-failures/vm/ .

* Assemble function in support
* Replace builder with join/indent
* Let compile.sh do error reporting (support only gives information)
* Compact and modify formatting to better suit poster
* Only one semantic action class