Bill Currie
00b2a45ecd
change the operator for "address" from "." to "&" so load.p can be implement.
...
this makes it so pointers in entities work.
2001-12-08 20:17:20 +00:00
Bill Currie
a184199146
get arrays of structures working
2001-12-08 17:36:58 +00:00
Bill Currie
b03a1bee42
ok, structures seem to generate correct code now
2001-12-08 08:19:48 +00:00
Bill Currie
3293c5e85f
beginnings of structure code. committed because cvs diff doesn't work on
...
new files
2001-12-08 00:09:11 +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
61786182d2
whitespace
2001-12-06 18:14:44 +00:00
Bill Currie
12a0a10d33
more alpha portability fixes
2001-11-29 19:35:25 +00:00
Jeff Teunissen
d16ab6eed0
Forge: stuff I did only partially.
2001-11-29 01:02:39 +00:00
Jeff Teunissen
a7dfe849fd
Forge updates. The app controller now has methods for bundles to call,
...
to register functionality with the app.
2001-11-28 23:46:37 +00:00
Jeff Teunissen
74e2f63188
*** empty log message ***
2001-11-28 23:44:26 +00:00
Bill Currie
4912f3083d
My gl stubs code for the null-renderer tests. Builds GLstub.so which should
...
then be used for the gl_driver cvar (you will generally need to give the full
path).
2001-11-27 23:56:10 +00:00
Jeff Teunissen
83a778467c
Preferences.m: function scoping fixes (static is your friend).
...
rest: bundle loading. It's alive! Alive, I tell you! Mwahahahaha!
...
uhh...
* Deek hides the bodies
2001-11-22 07:28:01 +00:00
Jeff Teunissen
84bb78abe4
Nuke some stuff from .gitignore
2001-11-21 22:30:32 +00:00
Jeff Teunissen
acddb949e3
Nuking the configure stuff. There's no need for it yet, maybe not ever.
...
Add some flags (-Wall -Werror) to GNUmakefile.preamble.
Fix some stuff -Wall found.
2001-11-21 22:22:14 +00:00
Jeff Teunissen
9c92717c15
The beginnings of bundle-loading support Scary, but it seems to work!
2001-11-21 18:47:08 +00:00
Bill Currie
3f7c4f146e
allocate space for field arrays and report entity size
2001-11-15 05:31:15 +00:00
Bill Currie
e45bb62f23
ok, correct code seems to be getting generated for both array access and
...
entity field access
2001-11-15 04:32:50 +00:00
Bill Currie
40d47e91cb
win32 portability fixes
2001-11-15 03:54:35 +00:00
Bill Currie
7d9266a3f0
beginnings of array support. no array initialization yet and foo[i] = bar is
...
broken.
2001-11-15 00:46:36 +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
ed331517b3
more grammar re-work preparing for arrays and structs
2001-11-14 22:31:57 +00:00
Bill Currie
a2bfff5dc4
simplify the type rule
2001-11-14 07:16:58 +00:00
Bill Currie
3fe67eecd2
expr.c:
...
it helps if one understands /why/ something is done. I think this
might be it for the reference count tweeks
switch.c:
o better control over whether case ranges are built
o /always/ append the temp = test expression and use temp instead of
test for the != check
o only ever build case ranges if the switch expression is integer
2001-11-14 06:45:31 +00:00
Bill Currie
dc80f51d89
fix a missed immediate type missmatch case
2001-11-14 05:08:37 +00:00
Bill Currie
da36feff7f
oops, failed to notice that relocs on temp defs weren't being done correctly
...
memset wasn't such a good idea :P
2001-11-13 23:21:23 +00:00
Bill Currie
cfa47717c6
expr.c:
...
once again, temp def ref counts seem to be correct
pr_def.c:
reset recycled temp defs
2001-11-13 23:17:32 +00:00
Bill Currie
ad5deea582
missed this in the cleanup
2001-11-13 23:14:59 +00:00
Bill Currie
3874d78697
slightly better code, but the temp isn't getting ref-counted correctly
2001-11-13 22:11:45 +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
645c400802
rearrange default jump for slightly better code generation
2001-11-13 20:27:05 +00:00
Bill Currie
4291f9c711
create new_bind_expr and more tweeks to temp def ref counting
2001-11-13 18:49:27 +00:00
Bill Currie
f2f8e096f3
qfcc.h:
...
o add a "freed" marker to def_t to prevent double freeing of
temp def offsets
emit.c:
o break out the bind code into emit_bind_expr (doesn't /really/
emit code, but still:)
o make bind work with disparate types (forces def_t->freed 1)
pr_def.c:
o mark array pointers as initialized and constant.
o don't free the offset for already freed temp defs
pr_imm.c
o fix a bug in uinteger support
o support disparate types for immediates
switch:
o fix a bug where gt.i was being used instead of gt.ui
o remove some debug code
2001-11-13 18:11:19 +00:00
Bill Currie
3d5447c71f
seems gcc3 drops the missed enum in switch warning :/
2001-11-13 16:08:50 +00:00
Bill Currie
07b59d2f07
pr_comp.h:
...
o add OP_JUMPB
o OP_JUMPB renumberd some opcodes, so up PROG_VERSION
pr_edict.c:
o make the version error reporting more informative
pr_exec.c:
o implement OP_JUMPB (goto *(ptr + index))
pr_opcode.c: (libs/gamecode/engine)
o add OP_JUMPB to the table
expr.h:
o ex_uinteger support
o some const correctness
o prototype new_label_expr
qfcc.h:
o uinteger ussport
o add pointers for op_jump and op_jumpb
o prototype PR_GetArray
emit.c:
o general uinteger support
o new reference/reloc type 3: absolute statement address
o jumpb support (binary goto)
expr.c:
o uinteger support
o break the label name creation out of new_label_expr into
new_label_name
o some const correctness
pr_def.c:
o add PR_GetArray to allocate an array in global space
o factor out some code common to PR_GetDef and PR_GetArray that would
otherwise be duplicated
pr_imm.c:
o some const correctness
o uinteger support
pr_lex.c:
o uinteger support
pr_opcode.c: (tools/qfcc/source)
o support jump and jumpb
switch.c:
o rewrite the binary search code to support ranges.
2001-11-13 08:58:54 +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
Timothy C. McGrath
eb7d41b95c
Fix for configure to give it a zlib check, just like qfcc. qfdefs now compiles
...
again statically.
Tim McGrath
(Misty-chan)
2001-11-12 23:52:14 +00:00
Timothy C. McGrath
0a18c1256a
Fix configure for zlib and static compiling. static compiling is still broken
...
But I'm sure taniwha is going to fix that shortly anyway :)
Tim McGrath
(Misty-chan)
2001-11-12 23:49:08 +00:00
Bill Currie
dcfea9796e
strings now work in switch statements
2001-11-12 21:13:55 +00:00
Bill Currie
d168a3daee
this should remove the requirement for gmake on bsd systems
2001-11-12 16:23:41 +00:00
Jeff Teunissen
9f1f89f8f1
Forge: New -- a preferences panel. Doesn't do anything yet, but that's
...
only because I haven't created the main prefs view class yet. Trust me,
it's going to work. I think. :)
Anyway, what code there is works, and is linked into the menu -- just
hit Info -> Preferences... to see it.
2001-11-12 14:15:20 +00:00
Jeff Teunissen
150128f158
Localization for Forge.
2001-11-11 20:56:27 +00:00
Jeff Teunissen
316004e793
Forge updates. Preferences seems to be debugged now.
2001-11-11 20:54:59 +00:00
Bill Currie
928d343295
pr_comp.h:
...
o add ev_uniteger to the types enum
o add opcodes for ifbe, ifb, ifae, ifa, jump, lt.ui, gt.ui, le.ui, ge.ui
progs.h:
o add uinteger accessors
pr_exec.c:
o implement ifbe, ifb, ifae, ifa, jump, lt.ui, gt.ui, le.ui, ge.ui
pr_opcode.c:
o add opcodes for ifbe, ifb, ifae, ifa, jump, lt.ui, gt.ui, le.ui, ge.ui
expr.h:
o prototype inc_users
qfcc.h:
o add externs for op_ifbe, op_ifb, op_ifae and op_ifa
emit.c:
o don't bother emiting an assignment to a temp def that's only used once
(ie, it's never read, only written to)
o support the new if* instructions
expr.c:
o support the new if* insructions
o dectect expression loops in append_expr
o support unsigned integers
o re-work temp def usage counting
pr_def.c
o debugging for temp def usage counts
pr_opcode.c:
o support the new if* instructions
qc-parse.y:
o provide defines for IFBE IFB IFAE IFA
switch.c:
o do binary searches for strings, floats and ints if there are more than
8 cases in a switch. Strings need more testing.
2001-11-09 00:58:16 +00:00
Bill Currie
643aa795d6
fill the bsb and brush menus with a "dunno" filler that just, er, selects
...
"undo" for now. This is so Controller.m compiles on my system (using gcc 3)
2001-11-07 02:50:54 +00:00
Bill Currie
cb4ce6a634
remove the default label from the switch label table while fetching it.
2001-11-06 20:39:42 +00:00
Jeff Teunissen
5876ba1aba
Forge Updates. Menus mostly filled out now, the .gorm file inits the
...
controller.
2001-11-06 13:20:23 +00:00
Jeff Teunissen
1b834ba52e
Whoops. Fix the principal class.
2001-11-05 20:05:02 +00:00
Jeff Teunissen
5ff1de398e
Okay, tiny skeleton for Forge. It will be cleaner and probably faster to
...
treat Forge like an entirely new program, and not as a port. I'll still
be using many of the ideas from QuakeEd (and from my old Forge work),
but there's no promise that it'll be a duplicate, or even similar.
2001-11-05 19:58:25 +00:00
Jeff Teunissen
51a17f280b
Forge: more files history
2001-11-05 19:47:05 +00:00
Jeff Teunissen
2ab7a09812
Forge: More stuff gets the axe.
2001-11-05 19:45:09 +00:00
Jeff Teunissen
02dd74b2f7
Buh-bye headers.
2001-11-05 19:40:34 +00:00
Jeff Teunissen
2fbdbd5522
Forge: Committing the stuff I _was_ working on. These will all go away
...
in a few minutes.
2001-11-05 19:36:04 +00:00
Bill Currie
ccbb1c3f04
document all those weird opcodes :)
2001-11-05 19:32:50 +00:00
Bill Currie
13a177f217
use 'b' (bind) instead of '=' (assign) for switch's test temp def so simple
...
expressions (ie, just a def) don't generated wasted assignments and clean up
switch's debug info so you get the switch line rather than the line for the
closing }
2001-11-05 19:12:33 +00:00
Bill Currie
9b784e331b
remove '(' (never used, don't remember what it was intended for) and add
...
'b' (bind), 's' (state) and 'c' (call) to get_op_string.
2001-11-05 19:11:03 +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
5f5060cbf0
move the users and used setting code from emit_statement to
...
PR_AddStatementRef. This removes essentially duplicate code and 3 ifs :)
2001-10-31 18:40:02 +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
Bill Currie
85c9e0ab1e
more externs cleaned up
2001-10-29 17:46:03 +00:00
Bill Currie
09f19fd9c9
remove some redundant data
2001-10-28 04:42:44 +00:00
Bill Currie
ccfe82cda4
*taniwha mops up the last drops of blood from extern
2001-10-28 04:38:24 +00:00
Bill Currie
3f45a8305c
*taniwha inflicts more carnage on extern
2001-10-28 04:29:30 +00:00
Jeff Teunissen
79544d6630
qfcc: More manpage updates.
2001-10-27 02:20:39 +00:00
Jeff Teunissen
901a8ec9c5
qfcc: update man page. It's pretty useful, so I'll probably be setting
...
it up as part of the install for qfcc.
2001-10-26 23:55:42 +00:00
Jeff Teunissen
274ff6e59a
Add getopt.h to the dist, just in case.
2001-10-26 23:54:20 +00:00
Jeff Teunissen
b07d60f6d6
add getopt.c and getopt1.c to the makefile. There is preprocessor
...
stuff in these files to detect when they need to be compiled, so they
don't need anything in configure.
2001-10-26 23:53:36 +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
c5d0d45edf
qfcc: Remove some debug info from taniwha's last commit -- I thought
...
*I*'d done that! :)
2001-10-26 08:55:24 +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
Bill Currie
5cbd50d835
count the number of digits needed rather than relying on -lm (now it's not
...
needed:)
2001-10-26 06:53:02 +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
70bedc149f
allow returning NIL
2001-10-25 21:15:48 +00:00
Bill Currie
bc44f950af
enable passing NIL into a function
2001-10-25 20:51:56 +00:00
Bill Currie
f8a41cb1bc
completely nuke the concept of "priority" from opcodes and use get_op_string
...
in emit_sub_expr instead of a redundant switch.
2001-10-25 17:48:35 +00:00
Bill Currie
f029687ff0
switch statement. could do with lots of improvements, but this should be a
...
good start.
2001-10-25 06:41:52 +00:00
Bill Currie
09405469f6
throw PR_BeginCompilation's arguments out the nearest airlock
2001-10-24 22:53:27 +00:00
Bill Currie
f36e7bb22f
reorg
2001-10-24 22:52:50 +00:00
Adam Olsen
3bba5398ba
- audit malloc usage. now everything checks the return value :)
2001-10-24 22:50:06 +00:00
Bill Currie
133ce647fb
implement break and continue. only loops covered for now, but that's because
...
switch isn't implemented yet
2001-10-24 18:57:29 +00:00
Bill Currie
743bc5178b
fix uninitialized variable detection for nested scopes
2001-10-24 15:21:21 +00:00
Jeff Teunissen
890efff350
Forge: Remove some files that we can't use with OpenStep. If anyone needs them for porting to
...
NSGraphicsContext, let me know and I'll provide them.
2001-10-24 12:41:38 +00:00
Bill Currie
6553c81a41
proper scoping for QC ala C.
2001-10-24 06:39:49 +00:00
Bill Currie
b8a9a97c75
the usual
2001-10-22 18:47:45 +00:00
Jeff Teunissen
6af08f0468
Forge: rip some useless stuff out of configure.
2001-10-20 00:48:15 +00:00
Jeff Teunissen
c38e76fce7
Forge: Gorm updates -- figuring out how connections work :)
2001-10-20 00:37:20 +00:00
Jeff Teunissen
73e53986a3
Forge: Preferences updates -- use notifications instead of globals.
2001-10-20 00:33:54 +00:00
Bill Currie
2ef8adea09
handle more conditional code and check for unitied vars in the test of if ()
...
etc
2001-10-19 05:16:24 +00:00
Bill Currie
16c334b6b9
uninit var detection seems to work for if and if else
2001-10-19 03:22:04 +00:00
Bill Currie
3572a6be28
change def_list from def_t ** to hashtab_t * and comment out some debug code
2001-10-19 00:45:56 +00:00
Bill Currie
237d238a65
beginnings of "if" uninitialized variable support. doesn't make any
...
difference yet
2001-10-18 23:06:39 +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