Dale Weiler [Sat, 24 May 2014 15:50:16 +0000 (11:50 -0400)]
Mage inexact travel across constants.
Dale Weiler [Sat, 24 May 2014 15:42:10 +0000 (11:42 -0400)]
Some things. Fix testsuite as well. One test will fail (inexact).
Dale Weiler [Sat, 24 May 2014 14:38:02 +0000 (10:38 -0400)]
Arithmetic exception flag and a plethora of tests.
Dale Weiler [Sat, 24 May 2014 14:04:14 +0000 (10:04 -0400)]
Don't forget the BSDmakefile too.
Dale Weiler [Sat, 24 May 2014 14:02:58 +0000 (10:02 -0400)]
Disable stupid clang warning.
Dale Weiler [Sat, 24 May 2014 13:59:43 +0000 (09:59 -0400)]
Use flags instead.
Dale Weiler [Sat, 24 May 2014 13:53:38 +0000 (09:53 -0400)]
Perliminary work on arithmetic exception handling in the constant evaluator. We can safely check for arithmetic underflow, overflow, divison by zero and inexactness now. Inexactness of expressions are propagated through the AST such that using an inexact value in a comparison will trigger a warning with -Winexact-compares.
Dale Weiler [Wed, 14 May 2014 03:22:25 +0000 (23:22 -0400)]
Merge branch 'master' into cooking
Dale Weiler [Fri, 9 May 2014 06:39:25 +0000 (02:39 -0400)]
On platforms that the byte order check fails on the runtime test is concluded instead. It still needs these swap functions at compile time since the runtime test has to run. This fixes a FTBFS on BE selected ARMs.
Dale Weiler [Tue, 8 Apr 2014 09:06:16 +0000 (05:06 -0400)]
Fix style
Dale Weiler [Tue, 8 Apr 2014 08:02:23 +0000 (04:02 -0400)]
Only increment the buffer location for macro output whitespace stripping if the situation is actually stripable, otherwise macros like #define foo(X) bar(#X), with foo(test) will expand to bartest) instead of bar(test). This should fix Xonotic builds.
Dale Weiler [Tue, 8 Apr 2014 07:26:08 +0000 (03:26 -0400)]
Added memory protection to prevent mismatching of mem_d or vec_free on pointers which are otherwise unknown to be allocated memory or allocated vectors. Also fixed the preprocessor to only strip on ' ' and '\t' around macros.
Wolfgang Bumiller [Mon, 7 Apr 2014 12:28:11 +0000 (14:28 +0200)]
fix a silly macro issue
Wolfgang Bumiller [Mon, 7 Apr 2014 12:23:35 +0000 (14:23 +0200)]
Merge remote-tracking branch 'origin/master' into cooking
Dale Weiler [Mon, 7 Apr 2014 10:00:04 +0000 (06:00 -0400)]
Match C's preprocessor semantics for token pasting with '##'.
Dale Weiler [Sat, 5 Apr 2014 09:16:36 +0000 (05:16 -0400)]
Eliminate debug log
Dale Weiler [Sat, 5 Apr 2014 09:16:15 +0000 (05:16 -0400)]
Rework distro package build system.
Dale Weiler [Sat, 5 Apr 2014 06:53:03 +0000 (02:53 -0400)]
Order
Dale Weiler [Sat, 5 Apr 2014 06:52:01 +0000 (02:52 -0400)]
Consistency
Dale Weiler [Sat, 5 Apr 2014 06:50:07 +0000 (02:50 -0400)]
Fixed Windows builds. Now we also build Win64 packages.
Dale Weiler [Mon, 17 Mar 2014 14:24:48 +0000 (10:24 -0400)]
Less parens
Dale Weiler [Mon, 17 Mar 2014 14:23:13 +0000 (10:23 -0400)]
Remove the qcint cast.
Dale Weiler [Mon, 17 Mar 2014 13:43:17 +0000 (09:43 -0400)]
Use powf instead of pow.
Dale Weiler [Mon, 17 Mar 2014 13:41:53 +0000 (09:41 -0400)]
Fix left/right shift constant fold.
Dale Weiler [Mon, 17 Mar 2014 13:39:59 +0000 (09:39 -0400)]
Add qc_pow.
Wolfgang Bumiller [Sun, 23 Feb 2014 11:31:01 +0000 (12:31 +0100)]
Merge pull request #142 from CurrentResident/big_endian_testsuite
Big endian testsuite
Jim Thoenen [Sun, 23 Feb 2014 04:21:29 +0000 (22:21 -0600)]
White space tweak
Jim Thoenen [Sun, 23 Feb 2014 03:22:41 +0000 (21:22 -0600)]
Tweak for coding convention
Jim Thoenen [Mon, 3 Feb 2014 01:24:59 +0000 (19:24 -0600)]
Allow testsuite to pass on big endian
Move the progs header and body byteswapping into util functions and
call those functions when either reading or writing the progs.
Wolfgang Bumiller [Sat, 8 Feb 2014 09:33:50 +0000 (10:33 +0100)]
Merge branch 'master' into cooking
Dale Weiler [Sat, 8 Feb 2014 07:50:06 +0000 (02:50 -0500)]
s/atanhf/atanh/
Wolfgang Bumiller [Sun, 2 Feb 2014 10:04:18 +0000 (11:04 +0100)]
moving the length multiplication for 64 bit types from util_endianswap into util_swap64; renaming length parameter to count
Dale Weiler [Sun, 2 Feb 2014 10:00:15 +0000 (02:00 -0800)]
Merge pull request #141 from CurrentResident/big_endian_swap_fix
Big endian swap fix
Jim Thoenen [Sun, 2 Feb 2014 08:32:50 +0000 (02:32 -0600)]
Update per IRC peer review feedback
Restore the swap function's original name, remove convenience function,
use %u in log message, whitespace tweak.
Jim Thoenen [Sun, 2 Feb 2014 07:52:50 +0000 (01:52 -0600)]
Oops, scale int64 count into int32 count for swapper.
Jim Thoenen [Sun, 2 Feb 2014 06:57:02 +0000 (00:57 -0600)]
Big-endian: Byteswap only the field contents when writing progs.dat
The previous code swapped not just the fields' contents themselves, but
also field positions within several of the structs, resulting in a
non-working progs.dat when compiled on big endian (ppc in my case).
Swapping on a field-by-field basis now.
Also:
* Addresses weird swap size requests (30+ bytes in one case)
* Take a guess at the right way to log a weird swap request before dying
* Fix swap array length scaling
* Rename the main swap function to reflect its native->little-endian
purpose. Figued that was okay because progs.dat is required to be
always little-endian...
* Add a non-array version of the swap function for convenience
Wolfgang Bumiller [Sun, 26 Jan 2014 11:38:00 +0000 (12:38 +0100)]
Merge branch 'master' into cooking
Wolfgang Bumiller [Sun, 26 Jan 2014 11:37:33 +0000 (03:37 -0800)]
Merge pull request #140 from Sicness/gmqcc.1-hyphen
Fix hyphen-used-as-minus-sign in gmqcc.1
Anton Balashov [Sun, 26 Jan 2014 08:14:18 +0000 (12:14 +0400)]
Fix hyphen-used-as-minus-sign in gmqcc.1
I: gmqcc: hyphen-used-as-minus-sign usr/share/man/man1/gmqcc.1.gz:338
N:
N: This manual page seems to contain a hyphen where a minus sign was
N: intended. By default, "-" chars are interpreted as hyphens (U+2010) by
N: groff, not as minus signs (U+002D). Since options to programs use
minus
N: signs (U+002D), this means for example in UTF-8 locales that you
cannot
N: cut and paste options, nor search for them easily. The Debian
groff
N: package currently forces "-" to be interpreted as a minus sign due
to
N: the number of manual pages with this problem, but this is a
N: Debian-specific modification and hopefully eventually can be
removed.
N:
N: "-" must be escaped ("\-") to be interpreted as minus. If you
really
N: intend a hyphen (normally you don't), write it as "\(hy" to
emphasise
N: that fact. See groff(7) and especially groff_char(7) for details,
and
N: also the thread starting with
N:
http://lists.debian.org/debian-devel/2003/debian-devel-200303/msg01481.html
N:
N: If you use some tool that converts your documentation to groff
format,
N: this tag may indicate a bug in the tool. Some tools convert dashes
of
N: any kind to hyphens. The safe way of converting dashes is to
convert
N: them to "\-".
N:
N: Because this error can occur very often, Lintian shows only the
first 10
N: occurrences for each man page and give the number of suppressed
N: occurrences. If you want to see all warnings, run Lintian with the
N: -d/--debug option.
N:
N: Refer to /usr/share/doc/groff-base/README.Debian and the
groff_char(7)
N: manual page for details.
N:
N: Severity: wishlist, Certainty: possible")"
Dale Weiler [Tue, 7 Jan 2014 18:13:25 +0000 (13:13 -0500)]
Screw clang
Dale Weiler [Tue, 7 Jan 2014 17:58:53 +0000 (12:58 -0500)]
Fix lshift/rshift for runtime and const-fold consistency.
Wolfgang Bumiller [Tue, 7 Jan 2014 14:04:29 +0000 (15:04 +0100)]
sometimes I hate travis
Wolfgang Bumiller [Tue, 7 Jan 2014 14:01:52 +0000 (15:01 +0100)]
Do not create coverage calls on array accessors.
Wolfgang Bumiller [Tue, 7 Jan 2014 13:33:26 +0000 (14:33 +0100)]
Adding coverage support:
The -coverage option causes all values have AST_FLAG_BLOCK_COVERAGE
set by default.
The coverage attribute can be used to control coverage:
It takes an optional list of coverage types, currently only "block"
and "none" is recognized.
[[coverage]] defaults to [[coverage(block)]].
Use [[coverage(none)]] or [[coverage()]] to disable.
Dale Weiler [Wed, 1 Jan 2014 11:25:00 +0000 (06:25 -0500)]
Happy new year redux!
Dale Weiler [Wed, 1 Jan 2014 11:24:16 +0000 (06:24 -0500)]
Happy new year!
Wolfgang Bumiller [Wed, 1 Jan 2014 11:21:00 +0000 (12:21 +0100)]
That's not how it should fail :P
Wolfgang Bumiller [Wed, 1 Jan 2014 11:18:54 +0000 (12:18 +0100)]
improved test of last attribute
Wolfgang Bumiller [Wed, 1 Jan 2014 11:16:19 +0000 (12:16 +0100)]
definite -> last keyword; testcase updated too
Dale Weiler [Wed, 1 Jan 2014 10:32:24 +0000 (05:32 -0500)]
Cleanup some code duplication. This whole parser ugh I just want to rm -rf all of it. Time for GMQCC2.
Dale Weiler [Wed, 1 Jan 2014 10:12:21 +0000 (05:12 -0500)]
Remove final attribute and bareword. [[definite]] is now old [[final]]. There is no bareword definite either.
Dale Weiler [Sun, 15 Dec 2013 06:45:36 +0000 (01:45 -0500)]
More cleanup
Dale Weiler [Sun, 15 Dec 2013 06:37:24 +0000 (01:37 -0500)]
hash cleanups.
Dale Weiler [Sat, 14 Dec 2013 22:30:51 +0000 (17:30 -0500)]
Remove SSE hash, t's just too much effort to maintain.
Dale Weiler [Sat, 14 Dec 2013 20:07:04 +0000 (15:07 -0500)]
Fix some stuff
Dale Weiler [Sat, 14 Dec 2013 19:57:10 +0000 (14:57 -0500)]
Partially fix that.
Dale Weiler [Sat, 14 Dec 2013 11:02:39 +0000 (06:02 -0500)]
typo
Dale Weiler [Sat, 14 Dec 2013 06:34:33 +0000 (01:34 -0500)]
Do not include this function unless !defined(__SSE__)
Dale Weiler [Sat, 14 Dec 2013 06:23:39 +0000 (01:23 -0500)]
Faster hashing reaching 16 GB/s on Phenom II X4.
Dale Weiler [Mon, 9 Dec 2013 00:01:44 +0000 (19:01 -0500)]
Only optimize (a - (-b)) into (a + b) when the unary operand is a negation. This fixes (a - (!b)) being turned into (a + b).
Wolfgang Bumiller [Fri, 6 Dec 2013 21:41:15 +0000 (22:41 +0100)]
adding 'final'
Dale Weiler [Tue, 3 Dec 2013 22:40:15 +0000 (17:40 -0500)]
Bitshifting operators <<, >>, and compound assignment versions now work in non-constant expressions
Dale Weiler [Sun, 1 Dec 2013 15:52:42 +0000 (10:52 -0500)]
Mask out the math constant precedence stuff unless -fftepp-mathdefs
Dale Weiler [Sun, 1 Dec 2013 15:45:43 +0000 (10:45 -0500)]
Mask ftepp math constants with a compiler flag
Dale Weiler [Sun, 1 Dec 2013 15:30:24 +0000 (10:30 -0500)]
User supplied math constants take precedence
Dale Weiler [Sun, 1 Dec 2013 15:26:36 +0000 (10:26 -0500)]
Ignore emitting implicit math constants in the preprocessor if they exist.
Dale Weiler [Sat, 30 Nov 2013 18:14:04 +0000 (13:14 -0500)]
Merge branch 'master' into cooking
Dale Weiler [Sat, 30 Nov 2013 18:13:26 +0000 (10:13 -0800)]
Merge pull request #139 from ignatenkobrain/update_fedora
fedora: Update .spec and INSTALL
Dale Weiler [Sat, 30 Nov 2013 18:13:19 +0000 (10:13 -0800)]
Merge pull request #138 from ignatenkobrain/fix_authors
s/brian/brain/ ;)
Dale Weiler [Sat, 30 Nov 2013 18:13:12 +0000 (10:13 -0800)]
Merge pull request #137 from ignatenkobrain/fix_build_big_endian
fix build on big endian arches
Igor Gnatenko [Sat, 30 Nov 2013 08:35:07 +0000 (12:35 +0400)]
fedora: Update .spec and INSTALL
Signed-off-by: Igor Gnatenko <i.gnatenko.brain@gmail.com>
Igor Gnatenko [Sat, 30 Nov 2013 08:31:21 +0000 (12:31 +0400)]
s/brian/brain/ ;)
Signed-off-by: Igor Gnatenko <i.gnatenko.brain@gmail.com>
Igor Gnatenko [Sat, 30 Nov 2013 08:28:59 +0000 (12:28 +0400)]
fix build on big endian arches
Signed-off-by: Dan Horák <dan@danny.cz>
Signed-off-by: Igor Gnatenko <i.gnatenko.brain@gmail.com>
Dale Weiler [Fri, 29 Nov 2013 18:50:06 +0000 (13:50 -0500)]
Simplify
Dale Weiler [Fri, 29 Nov 2013 18:48:03 +0000 (13:48 -0500)]
Fix fold_op_cmp
Dale Weiler [Fri, 29 Nov 2013 18:36:35 +0000 (13:36 -0500)]
Fixes
Dale Weiler [Fri, 29 Nov 2013 18:18:50 +0000 (13:18 -0500)]
oops
Dale Weiler [Fri, 29 Nov 2013 18:13:39 +0000 (13:13 -0500)]
cleanup
Dale Weiler [Fri, 29 Nov 2013 12:15:49 +0000 (07:15 -0500)]
Cleanup lexer old cruft
Dale Weiler [Fri, 29 Nov 2013 12:03:55 +0000 (07:03 -0500)]
Handle byte order mark for unicode. (0xEFBBBF)
Wolfgang Bumiller [Thu, 28 Nov 2013 11:04:01 +0000 (12:04 +0100)]
static variables now don't get re-initialized in functions; cannot be initialized with non-constants anymore; and a counter has been added so you can use the same name in a different scope for another static variable again.
Dale Weiler [Mon, 25 Nov 2013 19:08:05 +0000 (14:08 -0500)]
Make log use the slightly improved algorithm for small values.
Dale Weiler [Mon, 25 Nov 2013 18:44:00 +0000 (13:44 -0500)]
Reorder intrinsics table
Dale Weiler [Mon, 25 Nov 2013 18:42:17 +0000 (13:42 -0500)]
out isn't used
Dale Weiler [Mon, 25 Nov 2013 18:32:02 +0000 (13:32 -0500)]
Never mind
Dale Weiler [Mon, 25 Nov 2013 18:30:45 +0000 (13:30 -0500)]
Only g++ is this retarded
Dale Weiler [Mon, 25 Nov 2013 18:26:24 +0000 (13:26 -0500)]
Another one
Dale Weiler [Mon, 25 Nov 2013 18:25:29 +0000 (13:25 -0500)]
Pregenerate 2.0 for const folder since it's used often
Dale Weiler [Mon, 25 Nov 2013 18:21:27 +0000 (13:21 -0500)]
Implemented __builtin_ln, __builtin_log, __builtin_log10, __builtin_log2 and __builtin_logb. This algorithm is nuts.
Dale Weiler [Mon, 25 Nov 2013 16:29:36 +0000 (11:29 -0500)]
Fix
Dale Weiler [Mon, 25 Nov 2013 16:26:16 +0000 (11:26 -0500)]
Implement __builtin_nan, __builtin_inf and __builtin_epsilon to generate machine nan, inf and epsilon values (at runtime).
Dale Weiler [Mon, 25 Nov 2013 07:11:45 +0000 (02:11 -0500)]
Fix CRC16
Dale Weiler [Sun, 24 Nov 2013 02:17:35 +0000 (21:17 -0500)]
Fix
Dale Weiler [Sun, 24 Nov 2013 02:14:13 +0000 (21:14 -0500)]
More compiler intrinsics for math functions
Dale Weiler [Sat, 23 Nov 2013 18:13:21 +0000 (13:13 -0500)]
strength reduct (a - (-b)) into (a + b)
Dale Weiler [Sat, 23 Nov 2013 17:45:22 +0000 (12:45 -0500)]
Better exp algorithm from divVerent
Dale Weiler [Sat, 23 Nov 2013 16:15:28 +0000 (11:15 -0500)]
Fix comments
Dale Weiler [Sat, 23 Nov 2013 16:14:42 +0000 (11:14 -0500)]
Fixed pow
Dale Weiler [Sat, 23 Nov 2013 15:58:03 +0000 (10:58 -0500)]
Guard against nullfunc
Dale Weiler [Sat, 23 Nov 2013 15:31:51 +0000 (10:31 -0500)]
Some math constants