Spin Bytecode
darco
Posts: 86
Is there any documentation for the compiled spin bytecode?
The limitations of the spin language and the propeller tool are really driving me up the wall, so I'd like to look into the option of using a different language entirely and compiling it into spin bytecode. In order to do that I need to know what the bytecode is.
Spin is great for controlling a robot, but it's really lousy for writing complex systems with lots of interdependencies. (Like, for example, a network stack)
I can elaborate if anyone is interested, but I'm really looking for the bytecode. I'd rather avoid reverse engineering the thing.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
—
darco
www.deepdarc.com/
[url=mailto:xmpp:darco@deepdarc.com]xmpp:darco@deepdarc.com[/url]
The limitations of the spin language and the propeller tool are really driving me up the wall, so I'd like to look into the option of using a different language entirely and compiling it into spin bytecode. In order to do that I need to know what the bytecode is.
Spin is great for controlling a robot, but it's really lousy for writing complex systems with lots of interdependencies. (Like, for example, a network stack)
I can elaborate if anyone is interested, but I'm really looking for the bytecode. I'd rather avoid reverse engineering the thing.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
—
darco
www.deepdarc.com/
[url=mailto:xmpp:darco@deepdarc.com]xmpp:darco@deepdarc.com[/url]
Comments
http://forums.parallax.com/showthread.php?p=711064 and http://forums.parallax.com/showthread.php?p=711419
-Chuck-
I was looking at your ybox2 svn repository and saw that you were adding a bunch of stuff like dhcp and icmp support. Seems like you were wanting to use some sort of method callback support or file includes so you could separate out the different parts of the stack.
You could work around the limitations of spin by making all your spin 'objects' singletons (use DATs instead of VARs). For your dhcp.spin file, you could include another copy of the enc28j60 driver to be able to access wr_frame(...) and other methods. This should work as long as you do all your enc28j60 access from a single cog and only call the .start(...) method once.
Harrison
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
—
darco
www.deepdarc.com/
[url=mailto:xmpp:darco@deepdarc.com]xmpp:darco@deepdarc.com[/url]
http://forums.parallax.com/showthread.php?p=665019
Not perfect, but great for seeing what each command compiles to.