1.0.0 • Published 4 years ago

fun-lang v1.0.0

Weekly downloads
-
License
ISC
Repository
-
Last release
4 years ago

Play Programming Language

Play is small programming language intended for used as a test bed for various compiler, runtime, and debugger technologies. It uses nearley.js and moo.js for building the parser.

To learn more about how Play is built:

  • See Play's predecessor: fun-lang.
  • Watch this video series to learn how to make a programming language.

Videos about the Time Traveling Debugger

The current major experimental feature I am going for is the time traveling debugger, to learn more about it, you can watch these videos:

Todo

  • do some code challenges on CodeWars, etc
  • gather closure info function, doesn't work with the loop iterator variable of a for loop
  • make some toy programs
  • anonymous functions as closure providers
  • use static analysis to check for references of undefined functions
  • debugger: don't show vdom?
  • clean up closures when functions are no longer referenced
  • clean up unused heap variables?
  • heap display goes into disarray when there is too much data
  • bug: why is styles object nested in dom.play example?
  • numbers nested inside objects are always being interpreted as heap IDs, we may need ref objects to * distinguish refs
  • there seems to be a bug with VDOM when changes styles across multiple calls to setStyle()
  • Canvas API
  • when scrubbing the timeline, have the code display pan to the selected line
  • syntax highlighter for Atom and/or VS Code

Done

  • suspend execution while in debugger mode
  • display closure variables in stack frame within debugger
  • UI for time-traveling (1st draft done)
  • DOM events
  • make closures work...