While you're at it, how do you think GPL will compare with p-code? I have a very soft spot in my heart for Pascal, and would eventually like to develop a program for it on the TI, but I am concerned about its performance...
I couldn't say, I've never run it beyond the work I did debugging Classic99. In all that the best I did was assemble some Hello World programs...
For benchmarking languages, really... just write comparable programs. Trying to compare languages and implementations was always a battle, even back in the day, since algorithm matters, what parts of the language you touch matters, what parts of the hardware you need to use matters, etc. But off the top of my head, a good quick one for the TI might be something like manually moving a sprite around the outer edge of the screen, one pixel at a time (no auto-motion). See how fast you can get it whipping around. Make it loop 100 times and then exit, so that you can time the total runtime.
Starting with the simple in XB...
100 CALL CLEAR 110 CALL MAGNIFY(2) 120 CALL SPRITE(#1,42,2,1,1) 130 CNT=100 140 FOR X=1 TO 240 :: CALL LOCATE(#1,1,X):: NEXT X 150 FOR Y=1 TO 176 :: CALL LOCATE(#1,Y,240):: NEXT Y 160 FOR X=240 TO 1 STEP -1 :: CALL LOCATE(#1,176,X):: NEXT X 170 FOR Y=176 TO 1 STEP -1 :: CALL LOCATE(#1,Y,1):: NEXT Y 180 CNT=CNT-1 :: IF CNT>0 THEN 140 190 ENDASM and TurboForth in the spoiler tag.
If porting - note how the corners overlap for one frame each! (For example, the X loop positions at 1,240, and then the Y loop ALSO positions at 1,240).
Alllllso, for XB you might want to only time one lap and multiply it by 100.
My tests for the above test come out like so:
XB (estimated): 2000 seconds (33 mins)
Assembly (8-bit code): 7 seconds
TurboForth: 48 seconds
I attempted a UCSD Pascal version, but it kept saying it couldn't find the library on 'USES SPRITE' when I tried to compile, so I gave up... and I'm out of time for the GPL version.