Dale Weiler
|
c8c25ef6f7
|
Some cleanups and smaller binaries!
|
2013-07-28 00:23:15 +00:00 |
|
Dale Weiler
|
0291726c09
|
Fedora spec files (0.2.9 and 0.3.0) + INSTALL documentation, thanks Igor Gnatenko.
|
2013-07-27 16:33:33 +00:00 |
|
Dale Weiler
|
8db9724c5d
|
Revert "Smaller memory footprint, 4/8 bytes vs 12/24 for individual token lex_ctx's. Use to be a 'shallow' copy of the details in lex_file, now it's a pointer to the contents in lex_file."
This reverts commit cddf70f46b .
|
2013-07-26 16:17:41 +00:00 |
|
Dale Weiler
|
cddf70f46b
|
Smaller memory footprint, 4/8 bytes vs 12/24 for individual token lex_ctx's. Use to be a 'shallow' copy of the details in lex_file, now it's a pointer to the contents in lex_file.
|
2013-07-26 16:09:26 +00:00 |
|
Dale Weiler
|
629fe05083
|
Fix the ctype replacements to work with macro arguments that have side-effect, with exception to isspace which *might* need to become a function.
|
2013-07-26 12:28:02 +00:00 |
|
Dale Weiler
|
6db2e69f9a
|
Oh my god microsoft you suck
|
2013-06-20 11:20:56 +00:00 |
|
Dale Weiler
|
8afd373e4f
|
Fixed whitespace
|
2013-06-14 21:36:16 +00:00 |
|
Dale Weiler
|
17fd017d6f
|
Revert "Actually works now"
This reverts commit daa1487aef .
|
2013-06-13 22:23:07 +00:00 |
|
Dale Weiler
|
daa1487aef
|
Actually works now
|
2013-06-13 22:20:17 +00:00 |
|
Dale Weiler
|
144672fada
|
Strict prototyping
|
2013-06-06 02:51:13 +00:00 |
|
Dale Weiler
|
11179a2a71
|
Major header reworking, this respects the namespaces properly. Makes object dependency more obvious, allows for better make caches, and prevents misuse of library features, i.e use con_* instead of printf.
|
2013-06-04 02:47:07 +00:00 |
|
Dale Weiler
|
ee42d2a570
|
Some cleanups
|
2013-06-02 08:37:22 +00:00 |
|
Dale Weiler
|
9af3c502da
|
Major utility rewrite for compiler memory utilization statistics. Cleanups everywhere, no more NOTRACK stuff, all allocates are tracked. Major identifier cleanups as well.
|
2013-06-02 08:21:06 +00:00 |
|
Dale Weiler
|
0b6269f607
|
column printing for warnings and errors now
|
2013-05-30 19:36:01 +00:00 |
|
Dale Weiler
|
e02ebfe486
|
Result of shift operation on signed integers is bad.
|
2013-05-29 02:24:12 +00:00 |
|
Dale Weiler
|
f281de7a3c
|
Cleanups and fixes
|
2013-05-29 02:16:50 +00:00 |
|
Wolfgang Bumiller
|
4d0a5af475
|
removing this dead code_init call
|
2013-05-07 19:59:06 +02:00 |
|
Wolfgang Bumiller
|
c5225b2fa1
|
fixing a few leaks - code_write doesn't delete the code object anymore, code_cleanup has to be called
|
2013-05-07 19:56:41 +02:00 |
|
Wolfgang Bumiller
|
b8e536d409
|
Starting point of 0.3.0
|
2013-04-27 16:30:35 +02:00 |
|
Wolfgang Bumiller
|
219508e478
|
this should be tagged 0.2.9
|
2013-04-27 16:30:03 +02:00 |
|
Dale Weiler
|
3d8e8cd80d
|
cleaner
|
2013-04-25 12:08:43 +00:00 |
|
Dale Weiler
|
9fee84f250
|
less globals
|
2013-04-25 12:08:13 +00:00 |
|
Dale Weiler
|
785ab7c072
|
No more globals for codegen
|
2013-04-25 09:35:30 +00:00 |
|
Wolfgang Bumiller
|
73070395eb
|
these can be const now
|
2013-04-25 09:55:58 +02:00 |
|
Dale Weiler
|
1b5504fb9e
|
Fix alignment issues (can remove a clang warning, and also makes our code more portable!)
|
2013-04-25 03:17:52 +00:00 |
|
Wolfgang Bumiller
|
3a4aba0b31
|
Grrrr
|
2013-04-24 17:47:42 +02:00 |
|
Dale Weiler
|
b3fc77efd6
|
Implemented __TIME_STAMP__ predef, expands to a timestamp of when the __FILE__ was last modified, returned in the format: "Www Mmm dd hh:mm:ss yyyy", where Www is the weekday, Mmm the month (in letter), dd the day of the month, hh:mm:ss the time, and yyyy the year.
|
2013-04-24 04:48:05 +00:00 |
|
Dale Weiler
|
489ad486bc
|
Get it compiling in visual studio again.
|
2013-04-24 01:43:53 +00:00 |
|
Dale Weiler
|
160e7cf7ee
|
Remove trailing whitespace
|
2013-04-21 10:24:55 +00:00 |
|
Dale Weiler
|
8c08897749
|
Fixes
|
2013-04-21 10:13:51 +00:00 |
|
Dale Weiler
|
b47e3ebccf
|
Remove hashset
|
2013-04-21 04:56:41 +00:00 |
|
Wolfgang Bumiller
|
46752af74b
|
parser_const_string now uses hashtables; hashtables may want to dup an empty string without it becoming NULL - also replacing ir_strdup with the new util_ one
|
2013-04-17 18:23:30 +02:00 |
|
Dale Weiler
|
0b0b6423ba
|
Use hashtable for macro definitions in the preprocessor, this speeds up the search for them, and the removal of them making it O(1) instead of O(n). This also makes my 30 second xonotic compiles take only 13 seconds
|
2013-04-17 10:51:33 +00:00 |
|
Dale Weiler
|
d7be99c9dd
|
More perliminary reworking for threading
|
2013-04-17 06:30:09 +00:00 |
|
Dale Weiler
|
1f0a1b8140
|
Perliminary parser reworking, required for the proposed multithreading.
|
2013-04-17 00:52:52 +00:00 |
|
Wolfgang Bumiller
|
1a9c82483c
|
fix macro parameters
|
2013-04-15 21:07:44 +02:00 |
|
Wolfgang Bumiller
|
1caf1b3ebe
|
util_strdup: don't use util_memory_a with -DNOTRACK
|
2013-04-15 20:53:53 +02:00 |
|
Dale Weiler
|
ef528d6710
|
Added tracing to strdup for allocations, fixed some memleaks, this isn't pretty (trying to track down some weird memory leak issues)
|
2013-04-14 23:51:16 +00:00 |
|
Dale Weiler
|
7ba7fd5968
|
Fet rid of explicit file stream flushes, streams are flushed on exit, which we can always gurantee.
|
2013-04-14 01:32:29 +00:00 |
|
Dale Weiler
|
eb2a74f7e7
|
Flatten more external functions
|
2013-04-14 01:25:11 +00:00 |
|
Dale Weiler
|
3e7340c52c
|
More external function flatening (less external symbols)
|
2013-04-14 01:07:39 +00:00 |
|
Dale Weiler
|
aebab8b68a
|
Push definitions when -O0
|
2013-02-25 08:52:17 +00:00 |
|
Dale Weiler
|
5acde18ef1
|
Sigh
|
2013-02-10 02:09:12 +00:00 |
|
Dale Weiler
|
b0c6dc5ab2
|
Fix mem leak.
|
2013-02-10 02:08:17 +00:00 |
|
Dale Weiler
|
8d59d7029d
|
Cleanup cargocult directory and file specific things, to fs.c (renamed file.c which also contains directory handling stuff). Also cleaned up some stuff, and added proper end comments to conditional inclusion stuff.
|
2013-02-08 12:06:59 +00:00 |
|
Wolfgang Bumiller
|
46892daa3a
|
Reverting this awful unmaintainable mess of option description system
|
2013-02-04 00:19:56 +01:00 |
|
Dale Weiler
|
a6ecc3cbc4
|
Cache lengths in corrector. This speeds up the corrector a little.
|
2013-01-30 23:22:03 +00:00 |
|
Dale Weiler
|
b9f46f4ef7
|
Not an assembler instruction, but virtual instruction used by the IR.
|
2013-01-30 06:31:24 +00:00 |
|
Dale Weiler
|
18c317a787
|
Empty string, not "<null>"
|
2013-01-30 06:28:02 +00:00 |
|
Dale Weiler
|
8c6f4c3fc3
|
Cleanups
|
2013-01-30 06:27:06 +00:00 |
|
Dale Weiler
|
44c87bedfc
|
It is used, gcc is a liar.
|
2013-01-30 06:14:35 +00:00 |
|
Dale Weiler
|
98fd5cd429
|
Some cleanups and what not.
|
2013-01-30 06:13:11 +00:00 |
|
Dale Weiler
|
36c5722273
|
Rename
|
2013-01-30 05:35:07 +00:00 |
|
Dale Weiler
|
d201cfe6b4
|
Work in progress options cleanup.
|
2013-01-30 05:24:30 +00:00 |
|
Dale Weiler
|
480b2fc7b6
|
Added documentation to all options inside the binary itself. These will be used later for "man/nroff -man"-like documentation on OSs that lack "man" and the concept of system wide documentation. Also it will be nice to add -Wsome_warning help (to get some help about a specific warning/error, etc).
|
2013-01-30 02:56:58 +00:00 |
|
Wolfgang Bumiller
|
06f53b1a28
|
When not actually executing, don't complain about invalid progs.dat versions for now.
|
2013-01-17 17:36:06 +01:00 |
|
Wolfgang Bumiller
|
3652a122ed
|
Removed -fenhanced-diagnostics - it's now --correct, which makes sense since it doesn't affect the compilation process itself
|
2013-01-12 17:10:07 +01:00 |
|
Wolfgang Bumiller
|
199ed6c31f
|
Fix a typo - why the hell does clang not complain? Why the hell does it even compile with clang...
|
2013-01-11 20:04:46 +01:00 |
|
Wolfgang Bumiller
|
3436fa7d89
|
added the --add-info compile switch: it adds a global const string named version to the 'reserved' namespace, ie ends up named 'reserved:version', containing the --version string
|
2013-01-11 19:18:51 +01:00 |
|
Wolfgang Bumiller
|
5ea710e317
|
In order to avoid release version strings in non-git builds, by default --version on non-tagged commits now also prints 'development build' as the 2nd line
|
2013-01-11 10:40:33 +01:00 |
|
Wolfgang Bumiller
|
1c1ea1d0f7
|
strictness sweep: (void)-ing all vec_ macros which don't evaluate to a sensible value
|
2013-01-10 18:26:35 +01:00 |
|
Wolfgang Bumiller
|
7a5a328c54
|
--version now prints GMQCC_GITINFO, which is not not defined in gmqcc.h to some empty string, it just won't exist in release builds
|
2013-01-10 16:07:33 +01:00 |
|
Wolfgang Bumiller
|
10c7f4f838
|
don't call correct_edit anew for each scope
|
2013-01-09 21:16:22 +01:00 |
|
Wolfgang Bumiller
|
4f7113116d
|
-Wall now does not set -Wuninitialized-global
|
2013-01-09 20:39:17 +01:00 |
|
Wolfgang Bumiller
|
9c8ddb3771
|
An evil optimization to the trie, now has a fixed amount of branches and uses a char-to-index map to index into the branches...
|
2013-01-06 13:07:28 +01:00 |
|
Wolfgang Bumiller
|
8bc9d4b427
|
Committing an evil allocator and a trie to speed up the correction stuff
|
2013-01-05 19:09:36 +01:00 |
|
Dale Weiler
|
d97e032fcf
|
Cleanups and add the corrector to the makefile. Starting integration with the parser.
|
2013-01-04 10:05:41 +00:00 |
|
Dale Weiler
|
9bda8f61f4
|
Add specialized diagnostics for when predefined macros are used and ftepp predefined macros are not enabled.
|
2013-01-03 12:04:32 +00:00 |
|
Wolfgang Bumiller
|
ae09831227
|
Introducing TYPE_NOEXPR so that these undefined labels cannot be used on the expression side of goto ternary expressions; ast_label now is TYPE_NOEXPR; we may consider setting ast_ifthen to that too unless we want ifthen to return a value...
|
2013-01-03 12:49:21 +01:00 |
|
Dale Weiler
|
467a4740da
|
Fix some issues
|
2013-01-02 16:34:55 +00:00 |
|
Dale Weiler
|
686394654f
|
Implemented a optimized hash-set that can be used in various parts of the compiler (to get a little more speed). I intend this to replace the hackery that is code_genstring, and code_util_str_htgeth.
|
2013-01-01 07:59:04 +00:00 |
|
Dale Weiler
|
29db4a44ed
|
Happy new years!
|
2013-01-01 05:08:55 +00:00 |
|
Dale Weiler
|
1182ab55c5
|
Fix #include for <machine/endian.h> s/endiane/endian/
|
2012-12-31 14:40:08 +00:00 |
|
Wolfgang Bumiller
|
e37adb8c47
|
GMQCC_GITINFO
|
2012-12-28 20:39:30 +01:00 |
|
Wolfgang Bumiller
|
40b2a26e89
|
TYPE_NIL, builder->nil, ast_value_codegen for TYPE_NIL
|
2012-12-28 18:05:28 +01:00 |
|
Dale Weiler
|
8f34e9fa37
|
added util_vasprintf/util_asprintf .. so we can stop assuming a certian static array size for formatting strings ... I expect to see full migration to this before the next release for protection of over/under flows. As well as identifers >= 1024 bytes :)
|
2012-12-28 15:02:53 +00:00 |
|
Dale Weiler
|
566dda6ad7
|
Working on getting gmqcc to work when compiled with tcc
|
2012-12-28 09:30:01 +00:00 |
|
Wolfgang Bumiller
|
5cfd97c344
|
-fbail-on-werror option
|
2012-12-27 12:46:36 +01:00 |
|
Wolfgang Bumiller
|
b42328dbc6
|
Switch over to LONGBIT
|
2012-12-26 21:39:00 +01:00 |
|
Wolfgang Bumiller
|
2d66431af4
|
-q, --quiet option
|
2012-12-24 10:53:51 +01:00 |
|
Dale Weiler
|
fa155f8a42
|
Added my awesome MT1997 PRNG, and use it instead of stdio's rand()/srand() .. which are implementation specific .. and simply unsafe (for example one of the compilers at work simply has it's standard library implementation of rand() return 0 always (which is perfectly conformant)).
|
2012-12-24 01:43:27 +00:00 |
|
Wolfgang Bumiller
|
d3568627e9
|
code_genstring now caches strings, no need for code_cachestring
|
2012-12-23 21:42:00 +01:00 |
|
Wolfgang Bumiller
|
cff74493a7
|
Even safer vector macros
|
2012-12-23 20:55:15 +01:00 |
|
Wolfgang Bumiller
|
46c2fe2443
|
Fixing vector macros
|
2012-12-23 20:49:50 +01:00 |
|
Wolfgang Bumiller
|
e72d141ec4
|
Uchar -> uchar_t for consistency
|
2012-12-23 10:34:29 +01:00 |
|
Wolfgang Bumiller
|
a707440e52
|
-futf8 implementation
|
2012-12-23 10:23:42 +01:00 |
|
Wolfgang Bumiller
|
fe3d8e44e6
|
Importing utf8lib
|
2012-12-23 10:23:41 +01:00 |
|
Dale Weiler
|
da49a40b96
|
Bump 0.2 -> 0.3
|
2012-12-23 09:18:17 +00:00 |
|
Dale Weiler
|
d51a6ab3db
|
Whitespace
|
2012-12-23 09:10:31 +00:00 |
|
Dale Weiler
|
5bc815c63f
|
Revert "Whitespace fixes"
This reverts commit 4580dcf1ea .
|
2012-12-23 09:10:07 +00:00 |
|
Dale Weiler
|
4580dcf1ea
|
Whitespace fixes
|
2012-12-23 08:42:53 +00:00 |
|
Dale Weiler
|
f598fbeaea
|
Actually fix the segfault this time
|
2012-12-23 08:08:05 +00:00 |
|
Dale Weiler
|
3b27107676
|
con_default_out for opts.pp_only (removes recently added TODO .. and fixes a segfault)
|
2012-12-23 07:57:06 +00:00 |
|
Dale Weiler
|
c3964cf29d
|
Make compiler and virtual-machine compile as C++ code, also removed gmqcc_voidptr hack.
|
2012-12-23 07:51:19 +00:00 |
|
Dale Weiler
|
d35d953a91
|
Remove parser_compile_string_len, and make parser_compiler_string take an additional length argument.
|
2012-12-23 07:22:15 +00:00 |
|
Dale Weiler
|
6951f3dfcc
|
fix comments
|
2012-12-23 07:19:49 +00:00 |
|
Dale Weiler
|
4224ac5ca0
|
fixes, and removed a #pragma warning(disable ...) in MSVC .. thanks to the FILE wrapping interface.
|
2012-12-23 07:18:00 +00:00 |
|
Dale Weiler
|
d18656c2dc
|
Cleanup flexible array / vector system
|
2012-12-23 07:14:16 +00:00 |
|
Dale Weiler
|
13003bf6af
|
Wrapper around FILE to take advantage of MSVC "secure" CRT. We don't actually defend bounds checks (we just hack in the few ones to silent MSVC .. and to pass WinRT "native code" rules)
|
2012-12-23 06:05:22 +00:00 |
|
Dale Weiler
|
322fbaf389
|
More cleanups
|
2012-12-22 07:54:14 +00:00 |
|