On 22 Apr 2005, Kenny Tilton wrote:
This is great feedback, and I agree with all of it. The only problem is that there is little active interest in Cells, other than my own use of it, so I am not worrying much these days about making the Cells project approachable to others.
Fair enough.
I suggest you poke around and see if you want to use Cells for anything, and if so we can sort out the mess in CVS.
Well, for kicks I wrote a little 6502 LAP-style macro assembler using Cells as my internal representation of instructions and labels, which worked out really well until I ran into a cycle I couldn't get around.
Briefly, the problem is that defining a forward-referenced label may cause prior instructions to change size, which causes the label to be redefined at a new location, which causes prior instructions to be rewritten again to reflect the final label location.
So, there is a cycle, but I have domain-specific knowledge (that an instruction can only change size once) that ensures the cycle will terminate.
If I #-(and) out the cycle check in MD-SLOT-VALUE-ASSUME (I think), everything works okay, so I either need a way to refactor my model to eliminate the cycle or some way to tell Cells that a particular cycle is OK.
Anyway, I'd never written an assembler before but I had a blast writing this---Cells is pretty cool. The code is up at:
http://jamesjb.com/~jamesjb/darcs/cl-6502/
if anyone is interested. (Assembling examples/hello.l65 will error with a cycle unless you hack Cells to ignore cycles...)
James