Commit Graph

121 Commits

Author SHA1 Message Date
Bill Currie cef918df83 get array initialisation worrking 2002-01-18 08:26:37 +00:00
Bill Currie 7227ab4363 qfcc.c:
add -P,--progs-src so you can specify the name of the progs.src file
rest:
	add/use print_type
2002-01-17 08:19:53 +00:00
Jeff Teunissen 8c2d3f65c3 Add a couple symbols to qfcc's preprocessor lines 2002-01-05 19:18:27 +00:00
Jeff Teunissen 9f6dcec9dd --save-temps support for qfcc. It'll leave files with the same filenames
they're generated from, with the exception that they will have an
extension of .p. Obviously, depends on cpp support.
2002-01-05 19:13:20 +00:00
Forest Hale 184ff4a216 made qfcc compile again, by renaming com_token to qfcc_com_token so it does not conflict with QFutil 2002-01-04 11:12:52 +00:00
Bill Currie 112f74a357 make integer constant division warnings optional 2001-12-12 22:00:42 +00:00
Bill Currie e976211faf header block fixes 2001-12-08 20:40:50 +00:00
Bill Currie 1767ad435f use the new immediate indeces to make small array indeces not use a global 2001-12-07 20:10:30 +00:00
Bill Currie 0c2f36f9a3 some dead code cleanup 2001-12-06 20:05:49 +00:00
Bill Currie 3c2c4aa9e6 indent whitespace cleanup. not perfect, but a bit more consistent now 2001-12-06 19:49:40 +00:00
Bill Currie 12a0a10d33 more alpha portability fixes 2001-11-29 19:35:25 +00:00
Bill Currie 3f7c4f146e allocate space for field arrays and report entity size 2001-11-15 05:31:15 +00:00
Bill Currie 40d47e91cb win32 portability fixes 2001-11-15 03:54:35 +00:00
Bill Currie 8aa83d04f3 oops, that's not how that works :) 2001-11-15 00:25:15 +00:00
Bill Currie cf37275def add -g option (shortcut for --code=debug) 2001-11-14 23:17:20 +00:00
Bill Currie 68fb0a1147 clean out a bunch of unneeded code. this should take care of static linking 2001-11-13 20:34:21 +00:00
Bill Currie d27cd9cc21 s/type_size/pr_type_size/
remove the redundant type_size from qfcc
2001-11-12 23:56:46 +00:00
Bill Currie b499d7e1e8 I've decided that shuffling the `sections' like that doesn't really gain
anything, so I'm reverting that change.
2001-10-31 17:55:35 +00:00
Bill Currie 3b2d2a1c88 re-arrange the order of the `sections' of a .dat file to match the header
order. this also `happens' to put the strings section just before the globals
section (both at the end) which will make pointer bounds checking easier.
2001-10-30 19:41:27 +00:00
Jeff Teunissen 5502558bb9 qfcc: Argument passing for cpp, shuffling the verbosity levels around a
bit.
2001-10-26 22:07:35 +00:00
Bill Currie 5eba9f155e clean up some duplicate symbols 2001-10-26 17:49:23 +00:00
Bill Currie d8e6bf9cb6 fix the verbosity levels to what they were
--no-cpp is now cpp or no-cpp in code
add cpp to code_options_t
2001-10-26 16:04:38 +00:00
Jeff Teunissen 46c4174024 qfcc: forgot a newline in -V output 2001-10-26 08:17:04 +00:00
Jeff Teunissen 89c7e0df1a qfcc: getopt support. Yes, it exists, and it works, and it's fun! :) 2001-10-26 08:14:05 +00:00
Jeff Teunissen 581411e9e2 qfcc: Preparation for getopt. 2001-10-26 06:43:56 +00:00
Timothy C. McGrath 04e4da654a Changes taniwha did to make qfcc work with statically compiled libs.
This is what was bugging me all night long with qfcc ><;;

Tim McGrath (Misty-chan)
2001-10-26 02:32:40 +00:00
Bill Currie 09405469f6 throw PR_BeginCompilation's arguments out the nearest airlock 2001-10-24 22:53:27 +00:00
Adam Olsen 3bba5398ba - audit malloc usage. now everything checks the return value :) 2001-10-24 22:50:06 +00:00
Bill Currie 6553c81a41 proper scoping for QC ala C. 2001-10-24 06:39:49 +00:00
Bill Currie 5ca785e7e8 uninitialized variable detection. not perfect (lots of false negatives, but
fewer than before;) but prozac isn't giving any false positives.
2001-10-18 20:05:26 +00:00
Bill Currie 96e4e1a232 the beginning of unititialized var detection. first victim: functions.
--undefined-function-warning is now --no-undefined-function-warning and
the default is to detect called but undefined functions.
2001-10-18 17:41:22 +00:00
Bill Currie 952f029e6d rename def_t.initialized to def_t.constant 2001-10-18 17:15:05 +00:00
Bill Currie 9f715ae9f8 more small old-parser cleanups 2001-09-15 20:31:17 +00:00
Bill Currie a32384f16c report the name of the function using the most locals 2001-08-21 18:23:21 +00:00
Bill Currie 4388bf0519 good bye, old parser 2001-08-10 18:35:55 +00:00
Adam Olsen c218ede288 Add support for checkfunction, which is a builtin that searches for
another builtin by name, and returns it.

Soon I'll change all our new builtins to by allocated dynamically, as
well as changing the number checkfunction uses, and happily break
everything that uses them :D
2001-08-04 09:11:50 +00:00
Bill Currie 6d1671950a expr.c:
warn for int const / int const. this will probably want an option for newer
	games
qfcc.c:
	clean up temp files when errors have occured
2001-07-24 04:45:53 +00:00
Bill Currie 7c16afe7e9 add a --no-cpp command line option so that cpp enabled qfcc can still compile
qfpreqcc progs
2001-07-20 05:22:44 +00:00
Bill Currie 5c31fbf366 fix debug crc generation 2001-07-18 20:31:55 +00:00
Jeff Teunissen af366764de C preprocessor support for qfcc. Depends on the new parser. --enable-cpp
to activate.
2001-07-17 05:02:34 +00:00
Bill Currie 2818d720c2 move the full info opcocde table from qfcc to gamecode (<KURGON>There can be
only one!</KURGON>:) and use the table in PR_PrintStatement. This means that
qfcc now links against libQFgamecode as well as libQFutil
2001-07-14 02:34:16 +00:00
Bill Currie 64e50e1ebd Basic debug info generation, just line numbers and local defs for each
function.
2001-07-14 01:15:40 +00:00
Bill Currie b1f264b203 using qfpreqcc is now vewy vewy qwiet ('e's 'unting wabbits) 2001-07-03 21:17:02 +00:00
Bill Currie f2bb7ace41 add an option (--warn=error) to treat warnings as errors 2001-06-28 23:15:10 +00:00
Bill Currie 9c2398d923 stop processing files after errors have occured 2001-06-28 23:08:52 +00:00
Bill Currie 3fa3ab59a9 clean up error reporting a little 2001-06-25 23:42:49 +00:00
Bill Currie 625915288c hopefully make line directives work 2001-06-25 23:38:32 +00:00
Bill Currie 53b66ef2e0 better label handling and strings are now completely parsed (including escapes) 2001-06-25 22:11:20 +00:00
Bill Currie df897255ff make usage of the new parser easier to configure 2001-06-25 18:22:53 +00:00
Bill Currie 56aafce20c qfcc.h:
rearrange def_t a little and add def_next (leaving next free for other
	uses)
pr_def.c:
	use def_next instead of next to link /all/ of the named defs
qfcc.c:
	ditto
2001-06-20 03:05:50 +00:00
Bill Currie 327e95a3c8 gcc 3.0 fixes 2001-06-20 02:07:20 +00:00
Bill Currie eeaab95be5 beginnings of expression and def handling. 2001-06-15 19:38:43 +00:00
Bill Currie 373ea8132a more work on the code generation and make generally usable again by disabling
the new stuff
2001-06-15 07:16:18 +00:00
Bill Currie d7ebba6a74 parses CustomTF now, but no code generation 2001-06-13 18:35:41 +00:00
Bill Currie c89da89b69 almost parses CustomTF ($macro junk next) 2001-06-13 07:16:39 +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 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 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 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 e339e82c01 hash.h is now const correct as is a lot of qfcc 2001-06-04 04:52:14 +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 351e70b3bd replace a missing / when producing files.dat 2001-05-22 18:23:29 +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 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 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 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 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