More deliberate TDD practice in my open source projects
AjErl
My Erlang-like interpreter in C#:
https://github.com/ajlopez/AjErl
I added selective receive to process mailboxes. It was an interesting implementation, where each mailboxes has a save queue to keep the rejected messages. Once a message is accepted, the save queue is put again as a message queue, ready to be consumed again.
ScalaSharp
My Scala interpreter in C#:
https://github.com/ajlopez/ScalaSharp
I added binary expressions. I started to think about type check implementation. This next week I will add an explicit AST (Abstract Syntax Tree) to be used for type checking. Not all Scala expression can be type checked at parser time, because possible not-resolved cross references.
ScaScript
My Scala interpreter in JavaScript:
https://github.com/ajlopez/ScaScript
Minor additions: parse class with body, parse a suite of statement (a list of statement). One thing to review in this project and the previous one: Scala new line in lexer/parser. The language has special rules to skip or not a new line, depending on the context. I should add type checkting to this JavaScript project.
ClojSharp
My Clojure interpreter in C#:
https://github.com/ajlopez/ClojSharp
I applied a surgical refactor: internal reimplementation of top level context to save internally clojure vars. In this way, the top level definitions are saved not as name/value but as named var/value. The rest of the context are simple name/value dictionaries (like the context created by the special form let).
SimpleScraper
I created a new JavaScript/Node.js package:
https://github.com/ajlopez/SimpleScraper
a simple web scraper in JavaScript/Node.js. The initial commits only process HTML in text, iterating over tag items. Light weight, no dependencies needed yet.
Others
I added minor changes to:
https://github.com/ajlopez/AjSharp
https://github.com/ajlopez/AjScript
https://github.com/ajlopez/RubySharp
https://github.com/ajlopez/RuScript
I worked on three non-public projects, too.
More fun is coming.
Keep tuned!
Angel “Java” Lopez
http://www.ajlopez.com
http://twitter.com/ajlopez