- Build scripts replaced by Makefiles
- Documentation is now included
- The default image name is now retroImage
- VM's attempt to load retroImage if no image name is specified
- Win32 implementation now separate from the standard framebuffer source
- Assembler is now separate from the Retro source
- Modules renamed and organized better
Sunday, August 31, 2008
Release 2008.08.31
Sunday, July 27, 2008
Release 2008.07.27
I've pushed the latest release (2008.07.27) online. This has a few nice improvments, including inlining of primitive words, the latest JavaScript implementation of Ngaro, and lots of internal cleanups.
Due to changes on repo.or.cz, I've been unable to push changes to the GIT repository for a while now. I'm looking for a solution, and hope to be able to resume putting changes into a VCS soon.
The Windows installer has not been updated yet due to hardware problems on the single Windows box I have. I'm hoping to be able to have an updated installer later this week.
The Dashboard widget and Retro Online are now running the latest code with improved reliability and improved interfaces. Users of the Dashboard widget should definitely update as this fixes some resource usage issues and offers significantly greater performance.
Anyway, download the latest snapshot or image and enjoy.
Monday, July 21, 2008
Retro Widget for Apple's Dashboard
If this proves useful, I'll look into supporting other widget platforms in the future.
Get the Retro Dashboard Widget
Saturday, July 19, 2008
Misc. Updates
- I've begun updating http://ngaro.jottit.com using the material from the Retro docs as a base. It can now be edited by anyone, so all those working on Ngaro implementations can contribute.
- jsvm3: An updated version of the Ngaro in Javascript, this is primarily based on an updated I/O model that allows an even closer approximation of the console builds. This is new, and needs testing.
Monday, July 7, 2008
Improving Performance
While looking over Mat's extensions to Ngaro I had a thought about inlining the handful of words which correspond to Ngaro instructions. A few tests showed enough promise that I've added a new .inline class to Retro.
The primitives will only be inlined if they are not revectored. This ensures that they will behave as closely to normal Forth words as possible. Devectoring a .inline word will restore the original behaviour. This is not intended for user code, and is only useful if you are adding new opcodes to your Ngaro VM.
Anyway, a look at the benchmarks:
Switched VM
Before:
- Recursive FIB (39)... 208.0144 seconds
- Countdown Loop (1,000,000)... 12.228482 seconds
- Nest/Unnest (256 million pairs)... 42.299306 seconds
Now:
- Recursive FIB (39)... 85.860101 seconds
- Countdown Loop (1,000,000)... 12.38329 seconds
- Nest/Unnest (256 million pairs)... 30.796164 seconds
Threaded VM
Before:
- Recursive FIB (39)... 130.537818 seconds
- Countdown Loop (1,000,000)... 8.325312 seconds
- Nest/Unnest (256 million pairs)... 27.092447 seconds
Now:
- Recursive FIB (39)... 51.989871 seconds
- Countdown Loop (1,000,000)... 8.292265 seconds
- Nest/Unnest (256 million pairs)... 17.577663 seconds
I'll update the documentation to cover the new class in the near future. If you don't want to wait for a new release, you can get this code from the GIT repository. See http://repo.or.cz/w/retro.git for details.
Sunday, July 6, 2008
Site Changes
I've begun reworking the layout of the Retro website. This should be completed within the next few days.
Some highlights of the new design so far:
- Cleaner organization
- Downloads on the right, will remain easier to spot
- Automatically updated links to recent discussions on the mailing list and recent commits to the main GIT repository. (Updated hourly)
Coming soon:
- New documentation page, which will allow downloading the documentation in various formats (text, word doc, pdf, html) as well as viewing it online.
- The News page will have links to the blogs of those involved in Retro's development, as well as displaying the most recent posts (updated hourly) from each blog.
Possibilities:
- Web access to the #retro channel on irc.freenode.net
Sunday, June 29, 2008
Release 2008.06.29
This is a minor update with the updated word class handling (so you can try code from my previous posts) and a few minor fixes and improvements to the source. I've also updated the online interpreter to use both the latest Ngaro.js and image.