Bill Currie
ca0bbd909c
correctly save and restore the parameters when calling +initialize. fixes the segfault in the qwaq test.
2007-06-09 13:44:06 +00:00
Bill Currie
4973a38cce
speed up PF_VarString a little
2007-06-09 09:43:21 +00:00
Bill Currie
f7df6fea17
instead of having cpp args in progs.src, potentially breaking some mods, generate progs.i as a series of #includes and then compile everything in one pass
2006-05-24 14:35:39 +00:00
Bill Currie
3fb03fc2be
hah, should have been using __attribute__((used)) all that time (rather
...
than __attribute__((unused))). fixes the missing console in -x11
2005-08-04 15:27:09 +00:00
Bill Currie
762aefc9b1
implement Raven's calling convention (rcall: first 2 params in opb and
...
opc). should give a general speedup to most progs.
2005-06-12 09:54:01 +00:00
Brian Koropoff
2b666bd1ca
Tweak qwaq a bit so it can be used to run Ruamoko Scheme
2005-05-01 11:46:20 +00:00
Bill Currie
5ef382d2a7
Add a rua wrapper for scripts (seems, to work, too:). Also added generic resource handle support based on strref handling in pr_strings.c.
...
This is an imperfect revision of history.
2004-11-11 04:06:00 +00:00
Bill Currie
64cc8c60d2
compile time protocol support seems to be complete now. fortunatly, protocols had never been written out so the corrections to the protocol related stuctures do not need a progs version bump. runtime protocol support hasn't been fully tested yet.
...
+load runtime support seems to be working.
This is an imperfect revision of history.
2004-11-11 00:34:00 +00:00
Bill Currie
8770df39e5
start documenting things (progs building still borked)
...
This is an imperfect revision of history.
2004-11-08 23:27:00 +00:00
Bill Currie
780fb41858
make a common call function and fix pr_trace such that it autoclears only when the execution session it's set in is exited
...
This is an imperfect revision of history.
2004-11-07 03:00:00 +00:00
Bill Currie
e7ab6b65bf
fix an uninitialized variable
...
This is an imperfect revision of history.
2004-11-06 02:17:00 +00:00
Bill Currie
f5bc90a53a
clean up some redundant progs functions (may be broken for a while)
...
This is an imperfect revision of history.
2004-11-05 11:49:00 +00:00
Bill Currie
a3a2dd62e3
fix type of "self"
...
This is an imperfect revision of history.
2004-11-02 07:13:00 +00:00
Bill Currie
8e2f392d2d
pr_obj.h: add the structure for static instances rua_obj.c: add support for +initialize test.r: add some test code for +initialize main.c: don't need to initialize the hunk any more and fix a buffer overflow
...
This is an imperfect revision of history.
2004-11-02 05:12:00 +00:00
Bill Currie
249aee2e9f
move the OO runtime support code from libQFgamecode to libQFruamoko where
...
it really belongs :)
2004-01-16 08:02:31 +00:00
Bill Currie
acd54afff7
move to using a hash table for builtin number -> builtin lookup so sparse
...
ranges can be used efficiently. move the auto-allocated builtins to
0x10000000-0x7fffffff. should be more than enough :)
use static builtin tables ("nul" terminated) instead of a series of
function calls to add builtins to a vm. should be more memory efficient.
2004-01-06 05:51:09 +00:00
Bill Currie
dfc83c1f5f
add PR_PushFrame and PR_PopFrame so temp strings are easy to use for
...
parameters to progs functions.
double the progs stack sizes (call depth of 32? eek)
allow one extra call on the progs stack :)
misc minor cleanups
2004-01-05 07:10:32 +00:00
Bill Currie
dfe7f263c7
new internal printf engine for progs, mostly thanks to Deek.
...
also a few cleanup bits
2004-01-04 07:42:43 +00:00
Bill Currie
a533761770
Nuke PR_GarbageCollect as it's both redundant with the new temp strings
...
and wrong anyway (could free strings it wasn't supposed to).
Don't free the string pointed to by a strref since it's already been
implicity freed (whole memory space nuked). Fixes new map crash.
2004-01-04 02:03:30 +00:00
Bill Currie
bd561fafc3
o all progs strings are now stored in progs memory
...
o temporary strings automaticly get freed when the function they're
created in (results of str + str and most strings returned from
builtins). a way to keep temp strings will be provided later
o fix up qwaq to test the temp strings
2004-01-03 08:43:57 +00:00
Bill Currie
cd8035319d
PR_GetString should have been returning const char *. now does
2003-11-21 21:34:53 +00:00
Bill Currie
52417dceb3
oops, forgot about this
2003-09-20 05:24:57 +00:00
Bill Currie
b50d283b28
make sel_get_uid and class_get_instance_method work
2003-08-23 22:16:42 +00:00
Bill Currie
56e79e32b5
configure fixes from MrFixit (+ a buch of "x..." for test) and make
...
qwaq.dat depend on qfcc
2003-08-06 18:20:48 +00:00
Bill Currie
f7d806e8d5
can now handle > vector sized parameters
2003-04-22 20:11:16 +00:00
Bill Currie
e732cf591d
remove all references to OFS_* from the C code. only the macros in progs.h
...
use them now
2003-04-22 18:20:15 +00:00
Bill Currie
761a7546dd
re-arrange things so __attribute__ and __builtin_expect are properly
...
autoconfiscated so rcsid will continue to work with gcc 3.3
2003-01-15 15:31:36 +00:00
Bill Currie
a4dfef63c3
make all files with rcsid include config.h
2003-01-14 20:18:29 +00:00
Bill Currie
e32dc4cdb7
missed the new headers
2003-01-08 16:07:45 +00:00
Bill Currie
71196fedf6
make gcc more anal about prototypes, string constants and function
...
visibility (ie, global functions must have a prototype)
2003-01-06 18:28:13 +00:00
Bill Currie
447984226e
remove a duplicate perror call
2002-11-18 15:01:02 +00:00
Bill Currie
75c91e78c2
qwaq progs now take args :)
2002-11-12 02:56:10 +00:00
Bill Currie
13c5216373
do some cleanup
2002-11-12 02:30:08 +00:00
Bill Currie
3a3da6a1c4
nuke PR_InitEdicts as it's redundant and only used in the tools due to
...
forgetting to remove it
2002-10-23 15:55:38 +00:00
Bill Currie
317c02539b
macro-ize --with-{clients,servers} and implement --with-tools using the new
...
macro
2002-09-17 22:19:14 +00:00
Bill Currie
ec47e08e1c
go back to using QFile, quakeio.h and quakefs.h
2002-08-27 07:16:28 +00:00
Jeff Teunissen
01e74328c2
Fix qwaq build.
2002-08-17 23:03:26 +00:00
Bill Currie
00c6d011e7
forgot qwaq relied on cs-code's object.r
2002-08-15 18:51:58 +00:00
Bill Currie
ad6e025a91
take cmd.[ch] back to basics. the gib code is temporarily gone pending
...
renovations. cmd_source handling is a little hacky in nq, but it's working.
2002-07-31 05:19:03 +00:00
Bill Currie
de22355371
use P_* for params and R_* for return values in builtins code
2002-07-24 21:42:33 +00:00
Bill Currie
9e5f8c3bd9
win32 compile fixes
2002-05-31 19:24:56 +00:00
Bill Currie
4d267abd2a
make things a little quieter
2002-05-31 07:24:54 +00:00
Bill Currie
3af96782da
make qwaq build as part of the main tree (but /not/ install)
2002-05-31 06:55:35 +00:00
Bill Currie
c4811ccb52
seriously clean up qwaq. most of that stuff isn't needed any more
2002-05-31 06:16:10 +00:00
Bill Currie
ce6854ad05
not everybody /has/ d.o :)
2002-05-31 06:09:08 +00:00
Bill Currie
191232a383
get qwaq working with the objective stuff and do a simple messaging test
2002-05-31 06:02:26 +00:00
Bill Currie
34ec521198
vararg functions can now be imlemented in qc using @argc (number of params
...
passed through ...) and @argv (array of vectors, one for each ... param)
2002-05-22 20:43:29 +00:00
Bill Currie
6a5bbf6f0a
memory allocation checking cleanup
2002-05-14 06:37:28 +00:00
Bill Currie
44dcf74627
strip the \n from all(?) of the Sys_Error calls (Sys_Error itself will be
...
adding \n).
2002-05-14 06:12:29 +00:00
Bill Currie
b7cfb95a64
update for new progs loader api and the makefile for the option of static
...
linking
2002-01-30 17:41:16 +00:00
Bill Currie
85588c8fcb
start implementing the api for input lines and clean up a couple csqc
...
prototype issues.
2002-01-23 22:37:44 +00:00
Bill Currie
cef918df83
get array initialisation worrking
2002-01-18 08:26:37 +00:00
Bill Currie
3dafbebf10
fix up #0 builtin functions at runtime. not done automaticly (need to call
...
PR_RelocateBuiltins) and fix a bug with profiling and unlimited execution
counts
2001-12-14 08:15:04 +00:00
Bill Currie
f9149a0d6c
finally get around to renaming type_name to pr_type_name
2001-12-12 17:15:09 +00:00
Bill Currie
cc34e5954f
lots of work on better array/pointer/struct handline. doesn't quite work yet
2001-12-12 08:39:47 +00:00
Bill Currie
0bb01f310f
don't crash when there are too many entities for update messages. just ignore
...
the excess.
2001-12-10 03:17:21 +00:00
Bill Currie
c60dc54697
Makefile:
...
update qfcc options
main.qc:
go back to the original intent :)
2001-11-02 03:03:01 +00:00
Bill Currie
85c9e0ab1e
more externs cleaned up
2001-10-29 17:46:03 +00:00
Adam Olsen
3bba5398ba
- audit malloc usage. now everything checks the return value :)
2001-10-24 22:50:06 +00:00
Bill Currie
922895ed99
comment out unused var
2001-10-02 19:33:31 +00:00
Bill Currie
7407e4f1b7
and some more
2001-09-28 07:09:38 +00:00
Bill Currie
e71cbaf5ef
fix for --
2001-08-20 22:16:07 +00:00
Bill Currie
c2d3d8f3ab
temp def expressions and ?:
...
seems to work :)
2001-08-11 21:15:24 +00:00
Adam Olsen
caeb31e6ca
start of the support for chained function calls. Actually, they
...
should work fine now, there's just some extra temp vars we want to
remove before we can consider it "done" :)
2001-08-10 20:35:42 +00:00
Adam Olsen
6414897dae
got a few new operators for qc :)
...
<< >> % which all act like their C counterparts
+= -= *= /= &= ^= |= <<= >>= %= which just expand into the obvious,
also like the C versions.
2001-08-10 16:17:00 +00:00
Bill Currie
2774260898
test ^
2001-08-09 16:39:08 +00:00
Bill Currie
081d8f3c47
^ and ~ operators for qc (^ from Rhamphoryncus) and clean up the punctuation
...
line in qc-lex.l (why didn't I think to do that in the first place?!?)
2001-08-09 16:34:46 +00:00
Adam Olsen
ae133d0a90
Modify progs to add builtins at runtime. It should be trivial to
...
lookup functions by name, and make all our new QC builtins allocate
numbers automatically.
2001-08-03 06:40:28 +00:00
Bill Currie
89da47335b
tests, tests, tests
2001-07-27 20:56:16 +00:00
Bill Currie
c553917c53
various tests
2001-07-25 21:48:20 +00:00
Bill Currie
638cd005b0
return type testing
2001-07-25 02:28:04 +00:00
Bill Currie
07fbe47294
tests for if (simple expression)
2001-07-24 22:29:16 +00:00
Bill Currie
c248372e20
Initial integer type support. qfcc /is/ partially broken when it comes to
...
integer constants and float function args/return values.
pr_comp.h:
o add the integer opcodes to pr_opcode_e
pr_edict.c:
o add "quaternion" and "integer" to type_name[]
o support quatnernion and integers types when printing values
o support the integer opcodes when bounds checking
pr_exec.c
o enable the integer opcodes
pr_opcode:
o add the integer opcodes to the opcode table
o logical operators all result in an integer rather than a value
expr.h:
o rename int_val to integer_val
qfcc.h:
o kill another magic number
expr.c:
o move the opcode to string conversion out of type_mismatch and into
get_op_string
o rename int_val to integer_val
o general integer type support.
o generate an internal comipiler error for null opcodes rather than
segging.
pr_imm.c:
o rename int_val to integer_val
o support integer constants, converting to float when needed.
pr_lex.c:
o magic number death and support quaternions and integers in type_size[]
qc-lex.l
o rename int_val to integer_val
o support quaternion and integer type keywords
qc-parse.y:
o rename int_val to integer_val
o use binary_expr instead of new_binary_expr for local initialized
variables
builtins.c:
o rename int_val to integer_val
o fix most (all?) of the INT related FIXMEs
defs.qc:
o use integer instead of float where it makes sense
main.c:
o read_result is now integer rather than float
main.qc:
o float -> integer where appropriate
o new test for int const to float arg
2001-07-23 01:31:22 +00:00
Bill Currie
1fca85ee0a
kill some unneeded tests
2001-07-20 23:18:03 +00:00
Bill Currie
edcc313501
debug info for local variables is now used. only works when tracing atm:/
2001-07-19 07:27:14 +00:00
Bill Currie
47a6f2c9b5
pr_debug.c:
...
capitolise CRC and add a \n to the message
sv_progs.c (both nq and qw):
don't bother checking the progdefs.h crc: it's just not needed any more
pr_imm.c:
use r instead of rep when checking the hash tables.
main.c (quaq):
make developer work and set com_filesize (otherwise, progs crc doesn't
get set properly (com_filesize, not developer:))
2001-07-18 21:28:41 +00:00
Bill Currie
3eedd3d8fc
more tests
2001-07-18 19:04:47 +00:00
Bill Currie
9d50fea8e5
more tests
2001-07-18 06:37:59 +00:00
Bill Currie
c749bc77be
add *.sym
2001-07-15 02:58:22 +00:00
Bill Currie
9fa7ecd14d
line number tests for while
2001-07-15 01:49:24 +00:00
Bill Currie
6e06ecc461
debug testing
2001-07-14 23:52:56 +00:00
Bill Currie
7fce7e53ff
more test (need to find a way to do automated tests, I think)
2001-07-12 23:11:40 +00:00
Bill Currie
ecff96258f
cmd.[ch]:
...
api change: Cmd_Args () now takes a parameter inidcating which arg to
start at for grabbing the un-parsed command line
qw/source/sv_ccmds.c:
implement kk's tell command and user name matching (though # is used for
the wildcard and it's still case sensitive)
everything else:
adjust for the new Cmd_Args protype
2001-07-10 18:25:54 +00:00
Bill Currie
f6575ca262
more testing
2001-07-07 02:38:40 +00:00
Bill Currie
5a019e9321
don't need to print statement addresses any more
2001-06-29 00:05:34 +00:00
Bill Currie
dfdff6cc59
more testing and add traceon/traceoff to the builtins
2001-06-27 22:56:52 +00:00
Bill Currie
b285ab003d
more tests
2001-06-27 21:15:15 +00:00
Bill Currie
1c54a3ddb7
why not?
2001-06-27 05:48:25 +00:00
Bill Currie
a35c049744
main.c:
...
give instruction address in opcode dump
main.qc:
more test code
2001-06-27 05:46:53 +00:00
Bill Currie
e61884fefb
add a test for initialized locals
2001-06-08 22:54:34 +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
1e6d69e2be
main.c:
...
allow dumping to work with entities
main.qc:
more tests
2001-06-05 23:53:55 +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
275e74161b
string comparison operators
2001-06-04 03:36:35 +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
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