Commit Graph

3099 Commits

Author SHA1 Message Date
Bill Currie 3be018e1f9 beginnings of a bison grammar for qc 2001-06-12 19:44:26 +00:00
Bill Currie c0654f3541 miss tagged string != string 2001-06-12 15:29:05 +00:00
Bill Currie aa825853bf full \ handling in strings (including \e for escape (why C doesn't have that
is beyond me))
2001-06-11 23:37:01 +00:00
Bill Currie 73ce5c6f9c what's this .vimrc? :) 2001-06-11 20:12:29 +00:00
Bill Currie fcd29459e4 produce line directive output and clean up the generated files 2001-06-11 18:04:32 +00:00
Bill Currie dfb6062f9d fix an out-by-one for line directives at the beginning of the file 2001-06-11 17:51:09 +00:00
Bill Currie c732d098f4 add '# 1 "foo.qcc" ...' (flags ignored) processing to qfcc so preprocessed
output can make sense.
2001-06-11 15:43:06 +00:00
Adam Olsen f094db3977 add support for --with-qf=/usr/local as a prefix for lib and include dirs 2001-06-10 13:07:30 +00:00
Bill Currie bbc97079e0 pr_comp.h:
define PROG_ID_VERSION as 6 and redefine PROG_VERSION as 0x00fff001
	(0.fff.001) for the new qc features.
pr_edict.c:
	support version 6 and version 0.fff.001 progs
qfcc.h:
	add version field to options_t
	add min_version field to opcode_t
pr_opcode.c:
	set the minumum version of each opcode (gee, that table is getting ugly)
	filter out opcodes with too high a min_version when initializing the opcode
	hash tables.
qfcc.c:
	update help output.
	accept --id to limit code generation to id compatable (ver 6) progs.
	default progs generation to 0.fff.001
2001-06-09 06:25:33 +00:00
Bill Currie e61884fefb add a test for initialized locals 2001-06-08 22:54:34 +00:00
Bill Currie 0186732130 make initialized local variables work /properly/
local float urk = 0;
STORE_F    46(IMMEDIATE)  0.0   55(?)
2001-06-08 20:13:10 +00:00
Bill Currie 7ef4c2776e Immidiate sharing now /works/ (shaved off two pr_globals from CustomTF, too:).
Detect assignments to initialized globals and give an error, unless the --cow
(copy on write) option is given, and then allocate a new global for the var,
clear its initialized flag.
Relocate all globals.
2001-06-08 06:32:15 +00:00
Bill Currie 8656eb998a add ChangeLog 2001-06-08 00:18:53 +00:00
Bill Currie ef99ad24b0 const merge testing. qfcc is currently borked in that dept. 2001-06-08 00:14:11 +00:00
Bill Currie bddf7069a2 might as well return the result of the main in the progs 2001-06-06 21:30:58 +00:00
Bill Currie e349ed3013 implement file io for qwaq (and cat in qc }:> ) 2001-06-06 20:05:08 +00:00
Bill Currie 3d566d47e3 more testing 2001-06-06 00:38:24 +00:00
Bill Currie 867260d27d report the size of the locals pool 2001-06-06 00:34:35 +00:00
Bill Currie c3cdfce12b don't bother writing out local defs as they mess up progs dumping now that
they overlap
2001-06-06 00:12:10 +00:00
Bill Currie 1e6d69e2be main.c:
allow dumping to work with entities
main.qc:
	more tests
2001-06-05 23:53:55 +00:00
Bill Currie d86ed9a3b9 relocate the locals defs as well as their references 2001-06-05 23:52:34 +00:00
Bill Currie bbb37d0080 customTF is now down to 4989 pr_globals. all parameters, local veriables and
termporary variables sit in one pool of memory (at the end of the globals)
thus drasticly reducing globals requirements. This works because the whole
lot is declared to be in the function's local variable space which is copied
to the locals stack in the progs engine.
2001-06-05 08:09:12 +00:00
Bill Currie a26f799de4 allocate temps based on size rather than type (get better re-usage this way)
put temps onto the local scope.
2001-06-05 05:22:11 +00:00
Bill Currie 17e19f3892 regain about 5000 globals for customTF, but this fixes possible breakage with
premature temp var re-usage (ie, it puts the temps back into the locals space).
2001-06-04 22:35:54 +00:00
Bill Currie 55d58f8d46 ignore .vimrc 2001-06-04 18:33:50 +00:00
Bill Currie 42c880ab8a formatting cleanup 2001-06-04 18:33:32 +00:00
Bill Currie 1b930b73d1 execute qfcc on completion for that one stop shopping experience 2001-06-04 18:20:14 +00:00
Bill Currie e090f3c9e3 do proper temp def handling so we don'e use any where near as many defs for
temporary variables (customTF went from 35941 to 12587 pr_globals).
2001-06-04 17:52:50 +00:00
Bill Currie 53e9fb65d1 prepare PR_Statement for proper temporary usage 2001-06-04 05:45:51 +00:00
Bill Currie e339e82c01 hash.h is now const correct as is a lot of qfcc 2001-06-04 04:52:14 +00:00
Bill Currie 4aa47d728a use the correct STORE_ op for function arges, rather than STORE_V. Should
speed up progs in general.
2001-06-04 03:57:15 +00:00
Bill Currie 275e74161b string comparison operators 2001-06-04 03:36:35 +00:00
Bill Currie 7178824ee6 put ADD_S up where it belongs :) 2001-06-04 02:49:59 +00:00
Bill Currie ddcd172a03 re-write the opcode selection to be a hash table lookup and statment generation
to get the opcode from the table record rather than the location within the
table (ewww). gives a nice speed boost /and/ makes the opcode table easier to
maintain.
2001-06-04 02:41:45 +00:00
Bill Currie 09118bc01e pr_comp.h:
add OP_ADD_S. WARNING!!! this /will/ move.
progs.h:
	add prototype for PR_PrintStatement
pr_edict.c:
	add OP_ADD_S support in the progs checker
pr_exec.c:
	implement OP_ADD_S
tools/qfcc/include/.gitignore:
	add config.h.in
qfcc.h:
	nuke PR_NameImmediate and change PR_ParseImmediate's prototype (see
	pr_imm.c)
pr_comp.c:
	add ADD_S, adjust for PR_ParseImmediate's prototype, make
	PR_ParseExpression work with non-sequential opcodes (slow, will work on
	that next). Fix up initialised global parsing.
pr_imm.c:
	nuke PR_NameImmediate. didn't work well and wasn't such a good idea anyway.
	PR_ParseImmediate now accepts a def_t * arg. if null, will allocate a
	new global def, otherwise it will initialize the def passed in.
qwaq/main.c:
	sports some debugging code (dumps info about the progs it's running)
qwaq/main.qc:
	better ADD_S testing
2001-06-03 17:36:49 +00:00
Jeff Teunissen b60efa59f4 Bunch of changes. Project has been almost completely rewritten, and now
compiles. The rest are just the results of a simple conversion script I
wrote.
2001-06-03 04:52:36 +00:00
Bill Currie 297f7c0567 this shouldn't be here 2001-06-02 05:23:00 +00:00
Bill Currie 25b02984b8 fix nested else statements 2001-06-02 03:37:06 +00:00
Bill Currie 02003cf229 build the progs automaticly 2001-06-01 22:05:36 +00:00
Bill Currie 6c0791e4f4 d'oh 2001-06-01 22:00:35 +00:00
Bill Currie e3e4915c03 s/qctest/qwaq/ and update .gitignore 2001-06-01 21:59:46 +00:00
Bill Currie 8a23ae0a48 stand alone qc interpreter. So I'm on some serious qwaq :) (actuallly, its
main purpose is language extention testing)
2001-06-01 21:57:59 +00:00
Bill Currie 351e70b3bd replace a missing / when producing files.dat 2001-05-22 18:23:29 +00:00
Jeff Teunissen ef5fd0ed6d New Preferences class -- it may not seem like it, but this is a Big
Deal. :)
2001-05-08 08:38:34 +00:00
Bill Currie 461ce64685 white space 2001-05-07 21:10:45 +00:00
Bill Currie 1205401b38 Finally, a preqcc with source :) Seems to work ok, but it's far from
complete. It does, however, build customTF without any appearent problems.
2001-05-07 20:53:50 +00:00
Jeff Teunissen e943e13eb2 Autoconf support for Forge. It's incomplete, but it's mostly working. 2001-05-07 09:44:17 +00:00
Jeff Teunissen a45dd9b289 Forge: Map and PopScrollView build now. 2001-05-07 09:43:25 +00:00
Bill Currie fa3851b11f ignore the results of building mingw in here 2001-04-11 03:39:32 +00:00
Bill Currie 659eb45e96 tools to help with cross copiling QF under mingw in linux 2001-04-10 23:31:50 +00:00
Bill Currie 2f2ba28bb7 pr_lex.c:
rewrite PR_LexPunctuation to avoid looping. 6x speedup for that function
	according to gprof on customTF
configure.in:
	--enable-profile
2001-04-03 16:50:31 +00:00
Bill Currie f896506835 heh, seem to have forgotten this 2001-04-02 21:30:16 +00:00
Bill Currie b7aba0b643 allow named constants to be checked for immediate constants. qfcc now produces
the same number of globals etc as it used to
2001-04-02 18:43:10 +00:00
Bill Currie f517dc6ce6 fix a silly bug and an incorrect interpretation of the old code 2001-04-02 18:10:43 +00:00
Bill Currie 02b09f4e5c no more redundant strings. costs ~7ms, though, but HALVING the strofs size
in frikbot seems worth it.
2001-04-01 06:40:51 +00:00
Bill Currie 59e55834ed Another massive speadup caused by using hash tables to lookup already
generated immediate values. frikbot now compiles in just over 1s on my
machine.
2001-04-01 06:01:02 +00:00
Bill Currie 43ea8f4fc0 Rip out I_FloatTime from cmdlib.
Use Sys_DoubleTime instead of I_FloatTime and print out ms for compilation
2001-04-01 03:33:11 +00:00
Bill Currie ec16ffaa65 move to using hash tables for variable lookups.
WARNING: this fixes a scope bug in qcc and thus you WILL get different (but
now correct) code for the following:

float foo;

void () bar =
{
	local float foo;
	foo = 0;
}

ie, the local foo will, as is correct, now be a separate var to the global
foo.
2001-04-01 02:12:57 +00:00
Bill Currie f5ae853de8 don't need to worry about zlib any more because that's now taken care of by
libQFutil
2001-03-31 03:54:00 +00:00
Bill Currie d5345b7db9 add .vimrc 2001-03-31 01:04:38 +00:00
Bill Currie 1d9791553f make qfcc use detect and use the installed libs/headers. currently doesn't work
due to modularity problems in libQFutil
2001-03-29 21:26:56 +00:00
Bill Currie a23c5e82e0 correct the qf libs path 2001-03-28 23:42:36 +00:00
Bill Currie 8866d86fba rip out the crc code in favour of libqfutil 2001-03-28 23:40:54 +00:00
Bill Currie cb5c262ffc qtypes.h:
remove includes of qdefs.h and compat.h
pr_comp.h:
	merge pr_comp.h from quake and qfcc, removing the copy in qfcc
cmdlib.[ch]:
	nuke the endian code.
qendian.c:
	initialise the LittleLong etc pointers at compile time rather than run
	time
com.c (both nq and qw):
	nuke the LittleLong etc init code
everything else:
	fix up after the qtypes.h cleanup
2001-03-28 17:17:56 +00:00
Bill Currie cea45d19d4 bah, another premature commit 2001-03-27 21:47:44 +00:00
Bill Currie 82b533e1ef forgot that .S files don't have dependency info :/ 2001-03-27 21:46:49 +00:00
Bill Currie c958372f51 enable use of qf libs independent of where they are in relation to the qfcc
source. nothing is actually used yet, but it will be :)
2001-03-27 21:13:18 +00:00
Bill Currie a3c9af646b back out my premature commit 2001-03-27 20:37:12 +00:00
Bill Currie f78b973978 move the api headers into include/QF and clean up (most of) the resulting mess.
target specific files that I don't build won't compile yet. just put QF/
infront of the offending headers.

Also move ver_check into libqfutils
2001-03-27 20:33:07 +00:00
Bill Currie 5e993575a4 put a comment in the right place 2001-03-27 00:52:52 +00:00
Bill Currie c34868c117 attack cmdlib with a chainsaw. All unused functions are gone. 2001-03-26 21:02:18 +00:00
Bill Currie 19b146748a add .vimrc 2001-03-26 16:36:44 +00:00
Bill Currie 135e533e77 raise some limits so customtf will build. this is NOT the right solution :( 2001-03-26 05:33:02 +00:00
Jeff Teunissen ed2f2ce2ca Forge: InspectorControl and KeypairView compile with no warnings now. 2001-03-16 19:19:24 +00:00
Bill Currie 6247233e0e when checking a token, they type of the token must be taken into account. 2001-03-14 04:14:09 +00:00
Bill Currie 32d14bac22 ignore generated files 2001-03-12 21:16:26 +00:00
Bill Currie 21fa23a747 the crc field in progs.dat is evily generated from the crc of progsdef.h, so
change the header to produce a matching crc. This is an interrim fix until a
better solution can be found.
2001-03-12 20:04:22 +00:00
Jeff Teunissen ade87c72b3 Woo, one more file builds cleanly...very few actual changes needed. 2001-03-02 09:36:51 +00:00
Jeff Teunissen 14772123d3 Forge.m now builds cleanly. It probably doesn't work, I had to comment out
a lot of PostScript-related code.
2001-03-02 09:13:35 +00:00
Jeff Teunissen 1bd5d98c4d Compile fixes, we're getting a bit closer. 2001-03-02 07:01:51 +00:00
Jeff Teunissen 25f8a50ef4 Okay, that was stupid. ProjectCenter isn't good enough yet, so I'm back to
writing makefiles by hand.

Add a makefile preamble to set up our flags.

Compartmentalize all the headers into a Headers/ dir.
2001-02-27 21:18:27 +00:00
Jeff Teunissen e21ff3503e Update cmdlib.c to be in sync with qfcc 2001-02-27 20:44:53 +00:00
Jeff Teunissen 01f4df0ad4 Continuing work: Forge.* builds a little further. 2001-02-27 19:48:21 +00:00
Jeff Teunissen 5996198345 NSPoints are not passed by reference. 2001-02-27 19:28:22 +00:00
Jeff Teunissen acb42de4d5 whitespace. 2001-02-27 19:27:03 +00:00
Jeff Teunissen 2dd03876af QFCC -- the QuakeForge Code Compiler -- an autoconfiscated qcc.
It sucks, but it works, and will form the basis for something that Does
Not Suck.
2001-02-24 06:58:54 +00:00
Ragnvald Maartmann-Moe IV c6da49206e More typos, spelling corrections, and case fixes fed to the nearest handy fiend. 2001-02-22 00:15:03 +00:00
Bill Currie 8ad4a755a2 more fix up work. Nothing totally right, yet, but getting closer. 2001-02-12 09:20:26 +00:00
Jeff Teunissen 091e4f77b1 Clean up the Forge source tree. Also, I'm starting to use ProjectCenter to
manage the makefile.
2001-02-10 20:07:39 +00:00
Bill Currie c1e3e1e9e7 Map now compiles (but probably doesn't work: lots of warnings) 2001-02-09 06:50:40 +00:00
Bill Currie 27ed336d44 EntityArray now compiles 2001-02-09 06:08:53 +00:00
Jeff Teunissen 317d3bddb8 New program (incomplete, and horridly broken): Forge.app. It's going to be
a GNUstep port of the original Quake editor for NeXTstep, QuakeEd.app.
2001-02-09 01:52:44 +00:00
Bill Currie bcd28f5e77 and some more 2001-01-18 00:59:42 +00:00
Bill Currie 4e54c4c5ac a little progress 2001-01-17 22:47:08 +00:00
Bill Currie e728066e40 forgot this :) 2001-01-11 00:56:48 +00:00
Bill Currie 381eb80872 beginnings of the new pak util 2001-01-11 00:56:31 +00:00
Bill Currie 330a818329 fix usage 2001-01-09 23:51:55 +00:00
Bill Currie 76867b931f add a comment 2001-01-09 22:49:14 +00:00
Bill Currie ad0eee5dfe bring in the tools from newtree and nuq. the two pythong files are from nuq
and the rest from newtree
2001-01-09 05:58:40 +00:00