Retro now has a Subversion repository at http://svn2.assembla.com/svn/retro
The repository can be browsed via Trac. Please be aware that this is primarily intended for my use, but could be useful to anyone wanting to stay current with my work.
Monday, April 28, 2008
Current Work
A few minor updates:
- The image builder now builds an image.js for use with the Ngaro JS
- Ngaro JS now has a Clear Display button which may be of some use
Sunday, April 27, 2008
Image Builder
As mentioned in my post on the 2008.04.26 release, I am working on an online image builder.
I have finished a quick prototype. It will allow you to select from the majority of the modules that are included in the latest release and build an image including them. This does not save images for long, so download quickly. (The download will be replaced by the next image that is built.)
The image builder will also provide a copy of the image map and the build log. It does not build the image for Ngaro JS yet.
Give it a try.
I have finished a quick prototype. It will allow you to select from the majority of the modules that are included in the latest release and build an image including them. This does not save images for long, so download quickly. (The download will be replaced by the next image that is built.)
The image builder will also provide a copy of the image map and the build log. It does not build the image for Ngaro JS yet.
Give it a try.
Thursday, April 24, 2008
Release 2008.04.26
From this point on, I'm going to try to do a release at the end of any week that sees improvements to the Retro codebase.
This week brings a couple of minor changes and improvements:
This week brings a couple of minor changes and improvements:
- Ngaro JS now included in the package
- A tool (in Toka) to build an image.js for Ngaro JS
(This does not work properly on 64-bit systems, I'll try to fix in the next week or two) - A new (remap-keys) hook has been added to allow alteration of the values returned by key before they can be processed by other words
- New whitespace module, which uses (remap-keys) to convert TAB, CR, and LF to SPACE
- retro.config renamed to extensions
- Minor cleanups to start organizing the modules
Possible change to 'key'
As mentioned by Snoopy42 on #retro, the Retro 10 system has been ignoring any whitespace separators other than space. Since this can be a problem, I've modified key to convert other whitespace forms (return, tab) into spaces. I'm not sure I like this, so stay tuned.
Ngaro JS performance improvements
The Ngaro in JavaScript (jsvm) is now fast enough to actually be useable. It's still slower than the Java and C implementations, but I'm now comfortable with the performance.
Now to apply some CSS to improve the look and feel a bit....
For those who are curious about what I did, all it took was:
Now to apply some CSS to improve the look and feel a bit....
For those who are curious about what I did, all it took was:
- Put in a loop to call vm_process() more than once per 10ms interval
Monday, April 21, 2008
New Implementations of Ngaro
I've been planning to write implementations of Ngaro in other languages for a while now. Over the last few days, I have (with input from erider in the #keow channel on irc.freenode.net) written two new Ngaro implementations.
JavaScript
The first implementation was done in JavaScript. It presents a form-based interface that allows for a crude approximation of the tty console I/O model. Though brutally slow and memory hungry, it does work and seems quite reliable.
Java
While far from my favorite language, I recognize that Java is fairly widespread, so yesterday I wrote a quick and dirty implementation in Java. This is running as a Java applet, and still has some bugs in the I/O device emulation, but does work. It does have an advantage over the JavaScript: this one is very fast.
Future
I'll be cleaning up and working on merging the source for these into the main Retro codebase. Beyond this, I hope to eventually get the JavaScript implementation to run at an acceptable speed. The Java version is fast enough, and will hopefully have its bugs ironed out soon.
Eventually I'd like to have a couple of variations on the Java implementation. It would be nice to run Retro on a Java-capable cell phone or pda, and having an offline version would be useful as well. Given enough time, it's possible that the full graphical console I/O devices could be emulated.
Looking out even further, I am currently doing some research on .NET; an implementation of Ngaro for .NET could also be a big help in improving platform support.
References
JavaScript
The first implementation was done in JavaScript. It presents a form-based interface that allows for a crude approximation of the tty console I/O model. Though brutally slow and memory hungry, it does work and seems quite reliable.
Java
While far from my favorite language, I recognize that Java is fairly widespread, so yesterday I wrote a quick and dirty implementation in Java. This is running as a Java applet, and still has some bugs in the I/O device emulation, but does work. It does have an advantage over the JavaScript: this one is very fast.
Future
I'll be cleaning up and working on merging the source for these into the main Retro codebase. Beyond this, I hope to eventually get the JavaScript implementation to run at an acceptable speed. The Java version is fast enough, and will hopefully have its bugs ironed out soon.
Eventually I'd like to have a couple of variations on the Java implementation. It would be nice to run Retro on a Java-capable cell phone or pda, and having an offline version would be useful as well. Given enough time, it's possible that the full graphical console I/O devices could be emulated.
Looking out even further, I am currently doing some research on .NET; an implementation of Ngaro for .NET could also be a big help in improving platform support.
References
RetroNews, 2.0
A few years ago I kept a blog of news and musings related to RetroForth. I stopped updating it and it faded away after the RetroForth 9.x series and my long pause from development.
Since I'm now actively working on Retro again, I've decided to restart blogging as a means of sharing what I'm working on.
Since I'm now actively working on Retro again, I've decided to restart blogging as a means of sharing what I'm working on.
Subscribe to:
Posts (Atom)