( x . y )
email: frank@consxy.com | resume (pdf)

Let's dream, for one small moment, of a future where clnl doesn't fade into oblivion. This would be what that future might look like:

Milestones (link)

Each milestone is made up of the commit messages leading up to it. Any commit that doesn't match a milestone item should either not exist, be bundled with one that does, or necessitate a change in the milestone list.

0.2 - UI - Wolf Sheep works (link)

  • [x] CLI moved from curses to opengl - 04d5397
  • [x] CLI Extension - Button press - 5a40730
  • [x] Parser/Transpiler - Add optional reporter logic - a1c5dfe
  • [x] Model Parse - Buttons - bb7b484
  • [x] UI - Buttons - 31a8f42
  • [x] UI - View positioned correctly - bc0c656
  • [x] UI - Forever Buttons - bd5ae84
  • [x] Forever Buttons - Handle stop correctly - 6cb99e3
  • [ ] UI/Model Parse - Switches
  • [ ] UI/Model Parse - Textboxes
  • [ ] UI - Create event queue / loop for UI Elements (change button code to add events to loop)
  • [ ] UI - Add separate RNG for event loop
  • [ ] UI/Model Parse - Sliders - ensure that having code in sliders doesn't mess with RNG
  • [ ] UI/Model Parse - Plots v1
  • [ ] UI/Model Parse - Monitors
  • [ ] UI/Model Parse - Line Graph
  • [ ] Interface - Show labels
  • ...
  • [ ] Decrease size of executable via changing exported font texture footprint to a simple bit array
  • ...
  • [ ] Model - set-current-interface uses plists created by model:interface->plists (for easier model in pure CL writing)
  • [ ] Remove console requirement from executables
  • [ ] Model export as lisp with UI - Wolf Sheep

0.3 - Fire works (link)

0.4 - Preferential Attachment works (link)

1.0 - Complete engine parity with simple, 2d netlogo. (link)

  • ...
  • [ ] Fix "crt 1 crt 1 crt 1"
  • [ ] All language tests pass

1.1 - Rearchitecture to event/job based (link)

  • [ ] - Model - move model state out with macros to manage it (helps multi model)
  • [ ] - nvm - move all state into a state variable that can be managed

1.2 - Add tutorials for CLI (link)

1.3 - Rounded out command line interface (link)

1.4 - Simple Authoring (link)

2.0 - Partial UI parity with simple, 2d netlogo (link)

  • [ ] UI - history in CLI
  • ...
  • [ ] UI - Popup dialog
  • [ ] Load models from models library via load
  • [ ] Ambiguous load -> popup -> more correct load

2.1 - Extensions (link)

2.2 - Hubnet (link)

2.3 - Behavior Space (link)

2.4 - Plots (link)

3.0 - Complete UI parity with 2d netlogo (link)

4.0 - 3D (link)

4.1 - Improve engine efficiency (link)

Changelog (link)

0.1 - Engine - Wolf Sheep works (link)

  • [x] Parse models v1 - sections - c49ca54
  • [x] Parse widgets v1 - view - 2d8a7c9
  • [x] World size from view - 213ed30
  • [x] Add strictmath library - 34a7f8e
  • [x] Torus topography v1 - fd works - 75a9610
  • [x] Parse widgets v1 - slider - 81d51af
  • [x] Parse widgets v1 - switch - 72aabe5
  • [x] Parse widgets v2 - globals - b4f2bfd
  • [x] Improve lexer - Be able to lex wolf sheep - 04bfaf3
  • [x] Improve parser - handle structure of netlogo programs - 2d02833
  • [x] Code - globals - 3abea70
  • [x] Improve parser - add wolfsheep prims, infix ability - 72d7364
  • [x] Improve parser - generate prims from globals - 18f00de
  • [x] Improve parser - generate prims from lets - b81522f
  • [x] Improve parser - generate prims from procedures - c9cf0d1
  • [x] Improve parser - generate some prims from breed statements - fb6e383
  • [x] Prims - Implement = - 76f94e0
  • [x] Prims - Implement != - c694b81
  • [x] Prims - Implement -, *, +, / - ede7df2
  • [x] Prims - Implement <, <= - aac9bb3
  • [x] Prims - Implement any? - daa3b99
  • [x] Prims - Implement die - b018550
  • [x] Prims - Implement rt, lt - 2c338ef
  • [x] Prims - Implement if, ifelse - d546c89
  • [x] Prims - Implement colors, nobody - 399b297
  • [x] Add patches - 8b23537
  • [x] Prims - Implement let - 1e4bdde
  • [x] Prims - Implement reset-ticks, tick, ticks - 9413d37
  • [x] Prims - Implement agent variables, Implement of, who - 82888b4
  • [x] Prims - Implement patches, pcolor, set - f00d5c7
  • [x] Prims - Implement one-of - c11c429
  • [x] Prims - Implement color, label, label-color, size - ef8590a
  • [x] Prims - Implement random, random-xcor, random-ycor, setxy - 0a00e05
  • [x] Make agentsets annotated lists, Implement count - 3528ea7
  • [x] Prims - Update ask, of to take agents - 1d54233
  • [x] Prims - Update one-of to take lists - 5a7fb5c
  • [x] Prims - Optional arguments - bc4ccb4
  • [x] Prims - Implement with - 083d6c2
  • [x] Prims - Implement not - 9d76751
  • [x] Prims - Implement hatch - 1dd12dd
  • [x] Prims - Implement set-default-shape - 9eef8ec
  • [x] Prims - Implement round - 008caa3
  • [x] Prims - Implement clear-all, ca - 7a82368
  • [x] Prims - Implement display as placeholder - aa47422
  • [x] Prims - Implement stop - 393d2cd
  • [x] Implement Precedence - c75540c
  • [x] Add export to common lisp form, forms - 762ab38
  • [x] Code - procedures - d5b1d22
  • [x] Code - turtles-own - 97c390f
  • [x] Code - patches-own - 31f7cb6
  • [x] Prims - Implement turtles-here - c739aec
  • [x] Code - breeds - bc6386a
  • [x] Code - procedures handle stop better - f011c77
  • [x] Prims - die halts execution - 3ae0c35
  • [x] Wolf Sheep works in tests - 807df6b
  • [x] Extension loading - CLI Extension loaded by default - cca1c12
  • [x] CLI Extension - q - 057ed8d
  • [x] Parser - Add :token argument type - b257366
  • [x] CLI Extension - Add load, help - 92fae8c
  • [x] Shapes - polygon, circle, rectangle - 268b16d
  • [x] Shapes - dynamic coloring for only parts of shapes - db4e129
  • [x] Code reformat - Break up nvm files, package declaration based on dictionary grouping - 885270b
  • [x] Code reformat - Macro for functions implement commands to return :undefined - 6fc4a17
  • [x] Model export as lisp - Wolf sheep - 687ec5d
  • [x] Release 0.1.0 - Engine - Wolf sheep works - a66006d

0.0 - Initial release (link)

  • [x] Initial Setup - 291ea16
  • [x] Add empty run - f22f4e3
  • [x] Add run - e5bf9eb
  • [x] Add basic runcmd - fb4cf7e
  • [x] Add very simple first pass at lexer - b398914
  • [x] Add RNG - 6c59eec
  • [x] Update runcmd to run comands from input - a0f8850
  • [x] Test Infrastructure - 1ae8c7a
  • [x] CL Deps held locally in the repository - 122faaf
  • [x] Export uses RNG - d0e9e5a
  • [x] Create Turtles, v1 - a4cc3c4
  • [x] Show, v1 - c5613b8
  • [x] Add ask and command blocks, v1 - 4a9ed57
  • [x] Added random-float and reporter tests - d4ab333
  • [x] Shufflerator now shuffles like the NL one does! - d429346
  • [x] Rename to clnl, add some documentation - c34fdd7
  • [x] Opengl view, v1 - 9471c42
  • [x] Add Readme - e905f9a
  • [x] Add CL style - ee78f42
  • [x] Add documentation checker for exported symbols - 5c8699f
  • [x] Add simple ncurses command center - fe712aa
  • [x] Get working on OSX - e473722
  • [x] Get working on Windows 8 - d568495
  • [x] Create deployables - dc93f45
  • [x] 0.0.0 Release - d348277