Finger info for phaethon@icculus.org...




2001.01.23 - q3asm-turbo

http://www.icculus.org/~phaethon/q3/q3asm-turbo/q3asm-turbo.html

In the course of trying to debug my Scheme interpreter (which fails horribly
in QVM bytecode form), I got very annoyed at the tremendous wait time for a
complete compile cycle to finish, with q3asm taking up more than 60 seconds.
This long of a wait for each tiny tweak.

So I set out to speed up q3asm.

I hacked q3asm to support a chain-and-bucket hash table, where symbol values
were to be stored during the symbol table construction pass (pass 0). By
just using this hash table for lookups alone, linking (q3asm life time) shrunk
down to 28 seconds.

After spotting a singly-linked list insertion sort in pass 0, I diked that
out, and linking time dropped to 3 seconds. I nearly did very aggravating(?)
things to my pants.

After groveling through the source, I concluded that sorting the symbols list
(by hash value) never did anything worthwhile in q3asm, anyway.

Then I sought to optimize the foonting turlingdrome out of q3asm. With the
assistance of GNU profiler, I hand-optimized various heavyily-called
functions. Or at least I think I optimized them.

q3asm-turbo2a regularly reports 1 second elapsed compiling the game/
module of my mod. But my Scheme interpreter is equally broken in unmodified,
turbo1, and turbo2a, so I don't know if the modified q3asm actually works
correctly. But it's swutting fast :)


2002.01.24 q3asm breakage

q3asm unpatched apparently comes out horribly broken under linux-x86. As far
as I can tell (AFAICT), it has something to do with bit-shifting and
sign-extensions. With the help of a hex dumper, all 32-bit values over
0x7FFFFFF in the proper qvm output comes out as 0x7FFFFFFF in any q3asm I try
to compile from source.

Maybe there some Secret Spidey Switch in GCC that needs to be activated?

In the meantime, I'll just grovel through the q3asm source and see if I can
make it work right without special GCC switches.


2002.01.22 - FI demo floating

So out of both altruism and ego, I provided a demo of an older version of FI to someone on IRC.
Already someone else is nabbing it, viewing it, and commenting about it.
So I made a new demo based the current CVS version, and linked both demos in my web site.


2002.01.21 - ln .plan .diary ?

Seems everyone else is using their .plan as a kind of online journal.
I think I'll give that a shot as well.


Life: No Life found.

Project:
1. Project FI, Quake 3 mod (http://www.icculus.org/fi/)
 Primary goal: provide an extensible environment for a Q3 mod. The intended
  notion is that of "mutators" in Unreal Tournament.
 Secondary goal: FI:WFC, a more faithful reproduction of Q2WF for Q3 than WFA.

2. QuakeScheme
 The initial extension language for Project FI.
 Subset of R5RS (http://www.swiss.ai.mit.edu/~jaffer/r5rs_toc.html)
 Planned for eventual scrappage in favor of Common Lisp.



When this .plan was written: 2002-01-24 16:43:33
.plan archives for this user are here (RSS here).
Powered by IcculusFinger v2.1.27
Stick it in the camel and go.