]>
git.rm.cloudns.org Git - xonotic/gmqcc.git/log
Wolfgang (Blub) Bumiller [Fri, 2 Nov 2012 11:23:55 +0000 (12:23 +0100)]
-disasm switch for qcvm
Wolfgang (Blub) Bumiller [Thu, 1 Nov 2012 17:24:48 +0000 (18:24 +0100)]
functions-as-parameters testcase
Wolfgang (Blub) Bumiller [Thu, 1 Nov 2012 17:21:53 +0000 (18:21 +0100)]
Test for entity-field-pointer function parameters
Wolfgang (Blub) Bumiller [Thu, 1 Nov 2012 13:20:58 +0000 (14:20 +0100)]
reserve the keywords 'switch,struct,union,break,continue' - but only with std != QCC - eg. id1 uses a function named 'break'
Wolfgang (Blub) Bumiller [Thu, 1 Nov 2012 13:05:14 +0000 (14:05 +0100)]
string-literals now do not treat digraphs as digraphs
Wolfgang (Blub) Bumiller [Wed, 31 Oct 2012 17:55:03 +0000 (18:55 +0100)]
A comment/note/hint about how to deal with not-yet declared things later in past-0.2
Wolfgang (Blub) Bumiller [Tue, 30 Oct 2012 20:21:23 +0000 (21:21 +0100)]
invalid-assign testcase for non-lvalue stores
Wolfgang (Blub) Bumiller [Tue, 30 Oct 2012 20:20:06 +0000 (21:20 +0100)]
If parser_finish fails, the exit-value must also indicate an error
Wolfgang (Blub) Bumiller [Tue, 30 Oct 2012 20:15:42 +0000 (21:15 +0100)]
Error when lvalues are requested where that's not possible
Wolfgang (Blub) Bumiller [Mon, 29 Oct 2012 13:47:11 +0000 (14:47 +0100)]
Actually use a di-graph in the ngraph test, and replaced the curly braces and the builgin-# sign
Wolfgang (Blub) Bumiller [Mon, 29 Oct 2012 13:36:05 +0000 (14:36 +0100)]
di/trigraph testcase
Wolfgang (Blub) Bumiller [Mon, 29 Oct 2012 13:35:50 +0000 (14:35 +0100)]
ast_call_check_types should not check more parameters than actually available in both the call and the function type - fixes a crash introduced by this on variadic functions
Wolfgang (Blub) Bumiller [Mon, 29 Oct 2012 12:56:00 +0000 (13:56 +0100)]
digraphs
Wolfgang (Blub) Bumiller [Mon, 29 Oct 2012 12:52:39 +0000 (13:52 +0100)]
trigraphs
Wolfgang (Blub) Bumiller [Sun, 28 Oct 2012 18:34:39 +0000 (19:34 +0100)]
Pulling in a rudimentary testsuite - we have to find a better solution ...
Wolfgang (Blub) Bumiller [Sun, 28 Oct 2012 19:32:13 +0000 (20:32 +0100)]
Error when trying to assign variables whose types are different - with -std=qcc only warn when they are both functions with non-matching parameter types
Wolfgang (Blub) Bumiller [Sun, 28 Oct 2012 19:31:35 +0000 (20:31 +0100)]
-Wassign-function-types - since in qcc you may assign functionpointers which take different parameters...
Wolfgang (Blub) Bumiller [Sun, 28 Oct 2012 19:30:55 +0000 (20:30 +0100)]
ast_type_to_string function
Wolfgang (Blub) Bumiller [Sun, 28 Oct 2012 19:02:57 +0000 (20:02 +0100)]
ast_store needs to take over the type of its destination
Wolfgang (Blub) Bumiller [Sun, 28 Oct 2012 14:53:30 +0000 (15:53 +0100)]
a failing 'parse-statement' call should not print 'parse error' at all since at that point more descriptive error message has to have been printed already
Wolfgang (Blub) Bumiller [Sun, 28 Oct 2012 14:48:51 +0000 (15:48 +0100)]
The proper way to deal with error messages which did not cause the parser to bail out early is this, not a 'parse error'-error...
Wolfgang (Blub) Bumiller [Sun, 28 Oct 2012 14:44:27 +0000 (15:44 +0100)]
add error for function parameters of invalid types
Wolfgang (Blub) Bumiller [Sun, 28 Oct 2012 14:28:39 +0000 (15:28 +0100)]
When erroring while parsing a function and the function had been added to the parser's function list, remove it, otherwise it'll get freed again in the parser's cleanup function
Wolfgang (Blub) Bumiller [Sat, 27 Oct 2012 13:33:37 +0000 (15:33 +0200)]
Remove the -benchmark option+code
Wolfgang (Blub) Bumiller [Tue, 9 Oct 2012 18:56:54 +0000 (20:56 +0200)]
Don't forget to set the _alloc in vector resize, also set _alloc back in _append if mem_a had failed
Dale Weiler [Tue, 2 Oct 2012 16:06:25 +0000 (12:06 -0400)]
some awesome documentation about CRC for future viewers
Wolfgang (Blub) Bumiller [Tue, 2 Oct 2012 15:56:59 +0000 (17:56 +0200)]
Add the actual crc implementation
Wolfgang (Blub) Bumiller [Tue, 2 Oct 2012 15:54:19 +0000 (17:54 +0200)]
leaving the old crc in, commented out
Wolfgang (Blub) Bumiller [Tue, 2 Oct 2012 15:51:03 +0000 (17:51 +0200)]
Cleaner crc implementation
Wolfgang (Blub) Bumiller [Tue, 2 Oct 2012 15:09:49 +0000 (17:09 +0200)]
Generating checksums
Wolfgang (Blub) Bumiller [Tue, 2 Oct 2012 14:01:35 +0000 (16:01 +0200)]
code_crc added, initializing to 0
Wolfgang (Blub) Bumiller [Tue, 2 Oct 2012 13:59:37 +0000 (15:59 +0200)]
Print a warning if end_sys_fields was declared as a field rather than a global
Wolfgang (Blub) Bumiller [Tue, 2 Oct 2012 13:35:43 +0000 (15:35 +0200)]
don't warn about unused end_sys_{globals,fields}
Wolfgang (Blub) Bumiller [Tue, 2 Oct 2012 13:35:31 +0000 (15:35 +0200)]
link with $(LIBS), so on linux you can easily add -lrt without changing the Makefile
Wolfgang (Blub) Bumiller [Fri, 24 Aug 2012 21:21:16 +0000 (23:21 +0200)]
removing some old unused stuff from lexer.h
Wolfgang (Blub) Bumiller [Fri, 24 Aug 2012 21:18:44 +0000 (23:18 +0200)]
forgot to put the -Werror in --help into the actual print parameter...
Wolfgang (Blub) Bumiller [Fri, 24 Aug 2012 21:03:52 +0000 (23:03 +0200)]
remove unimplemented -f flags from --help, add the implemented one
Wolfgang (Blub) Bumiller [Fri, 24 Aug 2012 21:02:27 +0000 (23:02 +0200)]
Add -Werror to the --help message
Wolfgang (Blub) Bumiller [Fri, 24 Aug 2012 21:01:18 +0000 (23:01 +0200)]
alignment fix
Wolfgang (Blub) Bumiller [Fri, 24 Aug 2012 21:00:47 +0000 (23:00 +0200)]
-benchmark option to take the time in a rather simple way
Wolfgang (Blub) Bumiller [Fri, 24 Aug 2012 20:58:07 +0000 (22:58 +0200)]
etos builtin...
Wolfgang (Blub) Bumiller [Fri, 24 Aug 2012 18:39:47 +0000 (20:39 +0200)]
ir_builder_delete now causes the ..._delete_quick functions to be used which will skip the removal of references: ir_value's won't have their read/write references removed by ir_instr_delete_quick
Wolfgang (Blub) Bumiller [Fri, 24 Aug 2012 17:52:06 +0000 (19:52 +0200)]
cache the IMMEDIATE string in the builder directly
Wolfgang (Blub) Bumiller [Fri, 24 Aug 2012 17:49:12 +0000 (19:49 +0200)]
copy the function context over to its ir_value as well
Wolfgang (Blub) Bumiller [Fri, 24 Aug 2012 17:44:29 +0000 (19:44 +0200)]
cache filenames as such instead of using code_cachedstring
Wolfgang (Blub) Bumiller [Fri, 24 Aug 2012 17:08:33 +0000 (19:08 +0200)]
not using cachedstring on generated string values anymore, it's not the IR's job
Wolfgang (Blub) Bumiller [Fri, 24 Aug 2012 16:23:35 +0000 (18:23 +0200)]
fixing token-reset in modelname
Wolfgang (Blub) Bumiller [Fri, 24 Aug 2012 16:14:39 +0000 (18:14 +0200)]
ir_value now checks if a name was specified
Wolfgang (Blub) Bumiller [Fri, 24 Aug 2012 16:10:41 +0000 (18:10 +0200)]
Not labeling temps/blocks if opts_dump isn't specified
Wolfgang (Blub) Bumiller [Fri, 24 Aug 2012 16:08:28 +0000 (18:08 +0200)]
better labelling in ast_function_labeling, this time the number is even printed forward rather than backward... ;)
Wolfgang (Blub) Bumiller [Fri, 24 Aug 2012 16:03:57 +0000 (18:03 +0200)]
ir: don't require a label on a block
Wolfgang (Blub) Bumiller [Fri, 24 Aug 2012 15:37:55 +0000 (17:37 +0200)]
the lexer now doesn't _allocate_ the token structure, also: the vector holding the token doesn't shrink so we have much fewer reallocations
Wolfgang (Blub) Bumiller [Fri, 24 Aug 2012 15:23:47 +0000 (17:23 +0200)]
parse_variable refactored, moved out the parsing of function bodies, easier memory handling
Wolfgang (Blub) Bumiller [Fri, 24 Aug 2012 13:34:48 +0000 (15:34 +0200)]
renaming some parser functions, mainly shortining things: parse_type just looks much better than parser_parse_type...
Wolfgang (Blub) Bumiller [Fri, 24 Aug 2012 13:27:41 +0000 (15:27 +0200)]
Adding static keyword to some more parser functions
Wolfgang (Blub) Bumiller [Fri, 24 Aug 2012 13:09:51 +0000 (15:09 +0200)]
create_vector_members sanitized
Wolfgang (Blub) Bumiller [Fri, 24 Aug 2012 13:06:30 +0000 (15:06 +0200)]
ir_value_life_merge_into: fix a possible underflow
Wolfgang (Blub) Bumiller [Thu, 23 Aug 2012 20:40:51 +0000 (22:40 +0200)]
Fixing handling of duplicate frame macros: 'continue' would continue the inner for, how could I miss that
Wolfgang (Blub) Bumiller [Thu, 23 Aug 2012 20:07:32 +0000 (22:07 +0200)]
slight change to ir_value_dump_life; fixing ir_value_life_merge_into: TODO test this seperately, all cases
Wolfgang (Blub) Bumiller [Thu, 23 Aug 2012 18:56:05 +0000 (20:56 +0200)]
use the expression's linenumber for the 'statement has no effect' warning rather than the current one because that one's usually the line below...
Wolfgang (Blub) Bumiller [Thu, 23 Aug 2012 18:54:24 +0000 (20:54 +0200)]
-Weffectless-statement now also triggers on effectless incrementors in for-loops, if an incrementor was specified
Wolfgang (Blub) Bumiller [Thu, 23 Aug 2012 18:52:39 +0000 (20:52 +0200)]
for the sake of testing: -Wnone
Wolfgang (Blub) Bumiller [Thu, 23 Aug 2012 18:52:09 +0000 (20:52 +0200)]
-Weffectless-statement, on by default, creates 'statement has no effect' warning
Wolfgang (Blub) Bumiller [Thu, 23 Aug 2012 18:48:51 +0000 (20:48 +0200)]
add 'X has been declared here:' too the too-few/many-parameters warning/error
Wolfgang (Blub) Bumiller [Thu, 23 Aug 2012 18:32:33 +0000 (20:32 +0200)]
Warn about unused globals too, not about functions or constants though
Wolfgang (Blub) Bumiller [Thu, 23 Aug 2012 18:25:54 +0000 (20:25 +0200)]
Warna bout unused variables - -Wunused-variable, on by default
Wolfgang (Blub) Bumiller [Thu, 23 Aug 2012 17:28:15 +0000 (19:28 +0200)]
fixing up prevoius commit: cannot reference the parser here
Wolfgang (Blub) Bumiller [Thu, 23 Aug 2012 17:20:50 +0000 (19:20 +0200)]
Make the lexer use the correct error-printing mechanism
Wolfgang (Blub) Bumiller [Thu, 23 Aug 2012 17:16:26 +0000 (19:16 +0200)]
-Wframe-macros, warn about duplicate frame macro definitions, on by default
Wolfgang (Blub) Bumiller [Thu, 23 Aug 2012 17:01:15 +0000 (19:01 +0200)]
the -std=qcc set of operators, still have to verify if it's the original
Wolfgang (Blub) Bumiller [Thu, 23 Aug 2012 16:40:10 +0000 (18:40 +0200)]
Add the empty globaldef/fielddef to the object, savegame skips that null-def when saving variables...
Wolfgang (Blub) Bumiller [Thu, 23 Aug 2012 16:32:11 +0000 (18:32 +0200)]
Don't add DEF_SAVEGLOBAL for locals actually...
Wolfgang (Blub) Bumiller [Thu, 23 Aug 2012 16:28:05 +0000 (18:28 +0200)]
Adding DEF_SAVEGLOBAL, marking globals as to-be-saved now, for real support of quicksaving
Wolfgang (Blub) Bumiller [Thu, 23 Aug 2012 15:22:13 +0000 (17:22 +0200)]
it's not the IR's job to fail when a local of the same name is created twice...
Wolfgang (Blub) Bumiller [Thu, 23 Aug 2012 15:16:07 +0000 (17:16 +0200)]
removing some extra newlines in ast error messages
Wolfgang (Blub) Bumiller [Thu, 23 Aug 2012 11:30:30 +0000 (13:30 +0200)]
fix: check if parsing a variable initializer failed
Wolfgang (Blub) Bumiller [Thu, 23 Aug 2012 11:21:14 +0000 (13:21 +0200)]
fixing mem-vector resize function
Wolfgang (Blub) Bumiller [Thu, 23 Aug 2012 10:42:41 +0000 (12:42 +0200)]
qcvm won't print checksum or entity field area size without the -info option anymore
Wolfgang (Blub) Bumiller [Thu, 23 Aug 2012 09:33:50 +0000 (11:33 +0200)]
-std=qcc now warns about variadic functions via -Wextensions
Wolfgang (Blub) Bumiller [Thu, 23 Aug 2012 09:30:25 +0000 (11:30 +0200)]
Removing print2 and print3 from data/parsing.qc, replaced by variadic print
Wolfgang (Blub) Bumiller [Thu, 23 Aug 2012 09:29:48 +0000 (11:29 +0200)]
Variadic functions: works for builtins, warns for implemenetd functions, -Wvariadic-function, on by default
Wolfgang (Blub) Bumiller [Thu, 23 Aug 2012 09:12:32 +0000 (11:12 +0200)]
for the lexer 3 dots now become TOKEN_DOTS
Wolfgang (Blub) Bumiller [Thu, 23 Aug 2012 08:35:03 +0000 (10:35 +0200)]
Possibility to call a main function with parameters by specifying -float, -vector or -string parameters to standalone qcvm
Wolfgang (Blub) Bumiller [Thu, 23 Aug 2012 08:24:17 +0000 (10:24 +0200)]
on linux we need -lm for sqrt
Wolfgang (Blub) Bumiller [Thu, 23 Aug 2012 08:18:59 +0000 (10:18 +0200)]
vtos should use the same quotes as we use in qc source
Wolfgang (Blub) Bumiller [Wed, 22 Aug 2012 16:51:32 +0000 (18:51 +0200)]
MUL_VF and MUL_FV get their special life-range handling
Wolfgang (Blub) Bumiller [Wed, 22 Aug 2012 16:34:48 +0000 (18:34 +0200)]
commenting on the quirks of MUL_VF and MUL_FV in gmqcc.h's instruction list
Wolfgang (Blub) Bumiller [Wed, 22 Aug 2012 16:27:49 +0000 (18:27 +0200)]
using %i for instruction opcode output is a little more consistent with the above data, so you can quickly spot if an operand is a local or something else
Wolfgang (Blub) Bumiller [Wed, 22 Aug 2012 15:49:25 +0000 (17:49 +0200)]
committing gmqcc.h for previous exec.c commit: qc_program gets .xflags
Wolfgang (Blub) Bumiller [Wed, 22 Aug 2012 15:41:24 +0000 (17:41 +0200)]
cut off too-long strings in disassembly
Wolfgang (Blub) Bumiller [Wed, 22 Aug 2012 15:37:22 +0000 (17:37 +0200)]
when using -trace in qcvm: print a newline after every print that doesn't end in a newline, so that the next disassembled instruction doesn't appear mid-text
Wolfgang (Blub) Bumiller [Wed, 22 Aug 2012 15:32:57 +0000 (17:32 +0200)]
Nicer -trace output in qcvm/exec
Wolfgang (Blub) Bumiller [Wed, 22 Aug 2012 15:32:42 +0000 (17:32 +0200)]
it's SUB_V not DUB_V
Wolfgang (Blub) Bumiller [Wed, 22 Aug 2012 14:29:27 +0000 (16:29 +0200)]
fix the functiondef's .locals...
Wolfgang (Blub) Bumiller [Wed, 22 Aug 2012 14:20:26 +0000 (16:20 +0200)]
for liferange calc: the block we start from must tart with an empty set of living values
Wolfgang (Blub) Bumiller [Wed, 22 Aug 2012 14:19:35 +0000 (16:19 +0200)]
fixing some debug output
Wolfgang (Blub) Bumiller [Wed, 22 Aug 2012 14:04:06 +0000 (16:04 +0200)]
more info with -dump
Wolfgang (Blub) Bumiller [Wed, 22 Aug 2012 13:39:15 +0000 (15:39 +0200)]
qc_vlen, and adding numbers to all builtins for clarity
Wolfgang (Blub) Bumiller [Wed, 22 Aug 2012 13:35:28 +0000 (15:35 +0200)]
error builtin to bail out, pawn now _always_ nulls the new entity data
Wolfgang (Blub) Bumiller [Wed, 22 Aug 2012 13:24:24 +0000 (15:24 +0200)]
memvector resize needs to set _count as well