Archive for the ‘Programming’ Category

F-Script Anywhere

Thursday, April 27th, 2006

For those of you who use F-Script Aywhere to inject f-script into your running application, you have probably noticed that F-Script Anywhere doesn’t work with the latest few releases of F-Script. I’ve updated F-Script Anywhere from Nicholas Riley’s top of tree, and fixed it so that it works properly. This currently only works with ppc binaries, but I’ll look into the work necessary to make F-Script Anywhere work on my intel mac as well next week. For the time being, download It uses mach_inject (which is what Nicholas Riley was last working on, he held off on release due to a few random crashes, however things are stable enough for my use on a regular basis).

Sparc CPU design now GPL

Monday, April 3rd, 2006

It’s been too long since I last posted. In any case, I was really impressed today when I discovered that Sun has released their UltraSPARC T1 chip design (with multithreading design) under the GPL. You can actually download the entire chip design as a verilog RTL file, which is pretty neat, as well as downloading some other Sun internal tools and some tests. Although the idea for releasing the chip design is to allow developers to write better code for the chip, it would be neat if there were actually external modifications made that eventually made their way into a future revision of the silicon. Or kind of neat if someone else fabbed the same chip using the GPL design, although that seems pretty unlikely.

Smalltalk on the JVM

Friday, March 4th, 2005

I ran across a piece of software called St/JVM by Mission Software that allows you to run Smalltalk code on the JVM. This is inherently exciting because not only does it bring some assemblance to the CLI (specifically, the .NET VM) — I can’t think of any inherent reason that the JVM can’t support multiple languages in the same way that the .NET VM does (although other languages are ‘second class’). It makes me wonder how this is implemented though — as I recall there were certain issues with having to modify the .NET VM that Ralph Johnson’s group was working on to get Smalltalk to work on the .NET VM.

Is there some sort of intermediary layer between St/JVM that is written in Java itself, and not simply a compiler that compiles to JVM byte code? St/JVM also claims to support blocks, which leads me to believe that this must be the case — and that St/JVM could potentially be somewhat slow. This is mainly due to fact that activation records in Smalltalk sit in the heap, whereas activation records for most other languages sit on the stack. This is mainly due to the fact that you can create blocks with references to variables in the activation record — the lifetime of the block could live longer than the lifetime of the function, and the existing variables that are referenced in the block must still be valid as long as the block is still exists (this is probably the hardest thing to deal with in implementing blocks in Objective-C, I intend to write more about this in the future). It would seem like St/JVM probably implements activation record objects using a Java abstraction, allowing you to do all of the neat things that Smalltalk does, such as viewing activation records as objects when in the debugger. Unfortunately, there’s no downloadable demo at the moment on the page — it would be interesting to see what the performance is.

New Development Blog

Sunday, February 27th, 2005

This is the location of my new development and programming blog, in order to save those friends of mine who lack either a) interest in the 21st century renaissance (i.e., programming), or b) only care about programming. In either case, all programming and development related things will now appear here, whereas everything else will be in my LJ.