Asher Baker
29ddb9f4d9
Fix spcomp compilation on OS X 10.9
...
Summary:
10.9's SDK changed strlcat and strlcmp to macros, which has broken lots of code. As they will always be available from the system (being BSD functions), just use the system ones there.
tempnam has also been deprecated, refactoring spcomp to use it safely is quite a bit of work, and it's not critical, so just hacking around it with mkstemp.
Test Plan: Compiled spcomp.
Reviewers: dvander
Differential Revision: https://phabricator.alliedmods.net/D3
--HG--
extra : rebase_source : 535b88f815727b186fa6a141036599651a60e334
2013-12-02 13:08:27 +00:00
David Anderson
96d6cf8def
Fix some memory errors (bug 5904, r=ds).
2013-10-29 18:58:34 -04:00
Asher Baker
edab49c4ef
Support HUGE files in spcomp (bug 5959, r=dvander)
...
Summary: When there are more than 32768 SLOC in a file, spcomp underflows when storing debug info. These are safe to change as the file-backed struct uses uint32_t already.
Test Plan: Compiled the test plugin from bug 5959. I didn't load it, but it compiled without error and the SMX file is valid.
Reviewers: BAILOPAN
Differential Revision: https://phabricator.alliedmods.net/D2
--HG--
extra : rebase_source : fa907333b8c0dcab6e78c69ad4a92cdfb048083f
extra : amend_source : c7d2ec7d8b880459a57e4b2df5c1e8bbab5585bb
2013-10-15 23:36:16 +01:00
Nicholas Hastings
55bf8ec095
Fix watchdog timer hanging on exit (r=dvander).
2013-09-23 22:29:28 -04:00
David Anderson
f9f4c7dcd6
Add an interpreter because. (bug 5902, r=ds).
2013-09-01 00:23:44 -07:00
David Anderson
9a86be24a7
Remove experimental decompiler from the tree; superceded by Lysis.
2013-08-30 11:39:47 -07:00
Nicholas Hastings
124ede82b3
Fix build.
2013-08-29 15:05:34 -04:00
Nicholas Hastings
1c40d77b14
Fix build.
2013-08-29 14:16:18 -04:00
Kyle Sanderson
d05feabcd6
Suppress SpewOpcode if not a debug build (bug 5859, r=dvander).
2013-08-27 08:39:15 -04:00
David Anderson
90a2d1bb39
Update AMTL with a number of changes.
...
- Introduce HashMap, a key-value map based on HashTable.
- Introduce LinkedList, to port from SourceHook::List.
- Introduce AString, to port from SourceHook::String.
- Introduce KE_OVERRIDE and KE_DELETE helpers for C++11.
- HashTable now constructs/destructs only live items.
- Fix insert-on-removed-item bug in HashTable.
- Fix Vector keeping a new maxsize if allocation fails.
- Renamed am-inline-list.h to am-inlinelist.h.
--HG--
rename : public/amtl/am-inline-list.h => public/amtl/am-inlinelist.h
2013-08-23 22:29:44 -07:00
David Anderson
d6a6194e68
Make amtl headers BSD-licensed and clean up outstanding style issues.
2013-08-22 17:11:17 -07:00
David Anderson
c373527851
Rename ke_* headers to am-*
...
--HG--
rename : public/amtl/ke_allocator_policies.h => public/amtl/am-allocator-policies.h
rename : public/amtl/ke_inline_list.h => public/amtl/am-inline-list.h
rename : public/amtl/ke_thread_posix.h => public/amtl/am-thread-posix.h
rename : public/amtl/ke_thread_utils.h => public/amtl/am-thread-utils.h
rename : public/amtl/ke_thread_windows.h => public/amtl/am-thread-windows.h
rename : public/amtl/ke_utility.h => public/amtl/am-utility.h
rename : public/amtl/ke_vector.h => public/amtl/am-vector.h
2013-08-22 17:10:59 -07:00
David Anderson
de8726ab73
Move ke_ headers to new public/amtl folder.
...
--HG--
rename : public/sourcepawn/ke_allocator_policies.h => public/amtl/ke_allocator_policies.h
rename : public/sourcepawn/ke_inline_list.h => public/amtl/ke_inline_list.h
rename : public/sourcepawn/ke_thread_posix.h => public/amtl/ke_thread_posix.h
rename : public/sourcepawn/ke_thread_utils.h => public/amtl/ke_thread_utils.h
rename : public/sourcepawn/ke_thread_windows.h => public/amtl/ke_thread_windows.h
rename : public/sourcepawn/ke_utility.h => public/amtl/ke_utility.h
rename : public/sourcepawn/ke_vector.h => public/amtl/ke_vector.h
2013-08-22 16:30:44 -07:00
David Anderson
b972ea4781
Fix stack alignment when lazily compiling scripted calls (bug 5871, r=ds).
2013-08-20 23:59:11 -07:00
David Anderson
582162460f
Fix OP_MOVS to not clobber random memory (bug 5868, r=psychonic).
2013-08-19 12:59:10 -07:00
David Anderson
c48cc0afdc
Fix OS X build.
2013-08-15 16:26:16 -07:00
David Anderson
3ac43497b9
Implement a watchdog timer for scripts that take too long to execute (bug 5837, r=fyren).
...
--HG--
extra : rebase_source : ffacb38457eca581660ce8f15c444ad828b7fedd
2013-08-14 23:54:25 -07:00
David Anderson
a4b7ad0d42
Fixed memory corruption when parsing natives. (bug 5840, r=fyren)
2013-08-12 01:33:04 +01:00
Kyle Sanderson
86c699dd36
Fixed various memory issues. (bug 5766, r=asherkin)
2013-08-12 00:44:22 +01:00
David Anderson
b39fcebe65
Remove InfoVars, reassign DAT from EBP to ESI to preserve C++ stacktraces in JIT code (bug 5844 part 10, r=ds).
2013-08-12 00:24:02 +01:00
David Anderson
04129a0841
Remove InfoVars::frm (bug 5844 part 9, r=ds).
2013-08-12 00:23:54 +01:00
David Anderson
a7658f013e
Eliminate InfoVars::hp (bug 5844 part 8, r=ds).
2013-08-12 00:23:00 +01:00
David Anderson
2822bf7a65
Eliminate InfoVars::cip (bug 5844 part 7, r=ds).
2013-08-12 00:22:54 +01:00
David Anderson
87ccd272ee
Eliminate InfoVars::rval (bug 5844 part 6, r=ds).
2013-08-12 00:22:41 +01:00
David Anderson
18275ce2c9
Remove InfoVars::ctx (bug 5844 part 5, r=fyren).
2013-08-11 11:33:47 -07:00
David Anderson
5935070dfa
Remove InfoVars::memory (bug 5844 part 4, r=ds).
2013-08-11 11:33:29 -07:00
David Anderson
8391c83121
Remove InfoVars::stp (bug 5844 part 3, r=fyren).
2013-08-11 11:31:55 -07:00
David Anderson
4255ee105f
Remove InfoVars::data_size (bug 5844 part 2, r=ds).
2013-08-11 11:31:24 -07:00
David Anderson
e3c45bd1f7
Clean up INFO register structure (bug 5844 part 1, r=ds).
2013-08-11 11:30:27 -07:00
David Anderson
449617474b
Statically align the stack at function boundaries (bug 5842, r=ds).
2013-08-11 11:27:19 -07:00
David Anderson
ce542ac5f6
Move tracker related opcodes entirely to C++.
...
The tracker related opcodes:
GENARRAY
GENARRAY_Z
TRACKER_POP_SETHEAP
TRACKER_PUSH_C
All contain some vastly overcomplicated assembly containing logic that could
be implemented much easier in C++. If it were a performance concern, these
opcodes would be entirely in C++, but most of them call out to one or more
routines to do additional work. This patch just moves most of the logic out
to C++ to reduce complexity and fix reported bugs.
--HG--
extra : rebase_source : 1397056ac3ca3efb969e66ec577e2b33ca725e1a
2013-08-10 21:23:02 -07:00
David Anderson
bf325b72f1
Use SSE when available for floating-point operations (bug 5841, r=her).
2013-08-08 20:26:36 -07:00
David Anderson
9e56725406
Refactor the JIT to use a newer, simpler macro assembler. (bug 5827, r=ann)
2013-08-08 09:41:24 -07:00
Asher Baker
351142f93f
Fixed inaccurate compiler error when ternary operator is involved (bug 5711, r=dvander).
2013-07-18 17:59:24 -04:00
Kyle Sanderson
29bc273e58
Removed -Wno-parentheses from posix build and fixed warnings (bug 5745, r=psychonic).
2013-07-18 15:50:57 -04:00
Kyle Sanderson
b96e0c8713
Fixed accidental assignment in each of SDKTools and sp compiler (bug 5745, r=psychonic).
2013-07-18 15:50:50 -04:00
Asher Baker
68ab7e2e3e
Fixed unaligned memory access in spcomp (r=dvander).
2013-05-02 20:47:35 +00:00
Asher Baker
d5ec523584
Support emscripten for compiling spcomp (r=dvander).
2013-04-05 07:03:43 +01:00
Asher Baker
0f62a8ec2f
Generate debugging information during compilation (bug 5227, r=ds).
2013-03-17 21:00:28 +00:00
Kyle Sanderson
6f45794574
Fixed mismatched delete [] on thunks in JIT CompData dtor (bug 5639, r=dvander).
2013-03-16 13:08:35 -04:00
Kyle Sanderson
7d93eba321
Removed call to getchar() in debug build of compiler (bug 5626, r=ds).
2013-02-25 16:30:19 -06:00
Asher Baker
7625ca439e
Check the debug stringbase when loading plugins, lest it be null and cause crashes down the line (bug 5478, r=dvander).
2012-09-08 17:31:31 +01:00
Asher Baker
bf76be5dfa
Overhauled versioning information (bug 5453, r=dvander).
2012-08-26 01:33:54 +01:00
Nicholas Hastings
76fa100c1d
Updated jit vcproj/makefile (NPOTB).
2012-08-15 15:10:55 -04:00
Asher Baker
de27cb8a2f
Added system to block malware or illegal plugins (bug 5289, r=dvander).
2012-08-09 01:54:43 +01:00
Zach Kanzler
f1e01a3cf6
Increase maximum .sp line length to 4095 characters. (bug 5347, r=dvander)
2012-08-04 13:08:08 -07:00
Nicholas Hastings
80fbc25442
Updated vc projs to use MMSOURCE19, added loader & topmenus, fixed CSGO sdk path in cstrike (NPOTB).
2012-07-25 08:31:01 -04:00
Nicholas Hastings
78f4640736
VC10 proj: removed old bintools cfgs, fixed swarm build, fixed jit dll name (NPOTB).
2012-07-20 15:43:15 -04:00
Nicholas Hastings
080405c022
Added some missing proj files from last commit (NPOTB).
2012-07-12 19:43:01 -04:00
Asher Baker
5f551fa67a
Backed out changeset: 387b27fb575b (bug 5227)
2012-04-14 01:12:24 +01:00
Asher Baker
393c54fdc2
Generate debugging information during compilation. (bug 5227, r=ds)
2012-02-16 19:26:49 +00:00
Fyren
dfe8ae4fd1
Bring compiler Makefile more in line with ambuild (NPOTB)
2011-11-10 20:26:21 +00:00
Nicholas Hastings
069d67b24b
Third try's a charm.
2011-11-09 21:34:30 -05:00
Nicholas Hastings
0c926b84bc
Another build fix.
2011-11-09 21:29:36 -05:00
Nicholas Hastings
11bdd68d73
Maybe fixed build.
2011-11-09 21:19:04 -05:00
Nicholas Hastings
1beeaf3d4f
Removed GLIBC_2.7 dependency from spcomp (r=fyren).
2011-11-09 21:10:29 -05:00
Nicholas Hastings
4d07acd384
Backed out changeset: 294fded6a0d0 (bug 4902, bug 5068).
2011-10-28 11:23:02 -04:00
Fyren
4d52fe0490
Revert 3336, try fix #2 (bug 4852, r=dvander)
2011-07-09 20:47:43 -07:00
David Anderson
bb48a16466
Fix compiler creating bogus arrays when missing a dimension (bug 4902, r=fyren).
2011-07-06 17:56:40 -04:00
David Anderson
a02ff01d84
Prevent declaring arrays that the compiler is too buggy to handle (bug 4977, r=fyren).
2011-07-06 17:56:03 -04:00
David Anderson
66d27d6ac5
Fix return omission with else-after-return (bug 4852, r=fyren).
2011-07-06 17:55:14 -04:00
David Anderson
053b522aff
Fixed some vars not being marked for init on first compile pass (bug 4643, r=fyren).
2011-07-06 17:50:26 -04:00
javalia
1ff0f478d4
Increase symbol name limit to 63 characters (bug 4564, r=dvander).
2011-07-04 15:26:08 -07:00
David Anderson
6c68082359
Fix crash when dynamic arrays run out of memory (bug 4632, r=fyren).
2011-07-04 01:57:19 -07:00
Fyren
b4a7d21b9e
Removed compiler double include check (bug 4863, r=dvander).
2011-05-24 10:49:40 -04:00
Scott Ehlert
939bc00b2b
Added detection for clang compiler and fixed various warnings triggered by it (bug 4878, r=dvander).
2011-04-23 21:53:53 -05:00
Berni
86a1641ac1
Fix compiler hanging when #including a directory (bug 4822, r=dvander)
2011-04-13 04:02:22 -07:00
Fyren
9799970042
Update spcomp Makefile
2011-03-08 12:07:06 -08:00
Asher Baker
0824e49000
Added missing files to the spcomp project file (bug 4824, r=dvander).
2011-03-07 15:05:51 +07:00
Fyren
430c001d58
Static gamedata checker (NPOTB)
2010-10-01 12:15:43 -07:00
David Anderson
e76a73e276
Fixed Windows build fo' realz.
2010-07-11 18:06:06 -07:00
David Anderson
ccf0490624
Windows build fix.
2010-07-11 17:45:35 -07:00
David Anderson
fdd1a9afef
Use hash table for global name lookups (bug 4496, r=fyren).
2010-07-11 17:32:46 -07:00
David Anderson
4f2fc17a8f
Fixed staging buffers reallocating on every operation (bug 3820, r=fyren+fyren).
2010-07-02 18:16:50 -07:00
David Anderson
7bc019547f
Fixed O(n) insertion of debug strings (bug 4495, r=fyren).
2010-07-02 18:16:15 -07:00
David Anderson
f8c2629a3e
Fixed O(n^2) generation of debug info tables (bug 4493, r=fyren).
2010-07-02 18:15:59 -07:00
David Anderson
b5b4bff2fc
Fixed bogus assert in callfunction (bug 4487, r=fyren).
2010-07-02 18:15:21 -07:00
David Anderson
7054b92a14
Fixed bogus assert about name lengths (bug 4486, r=fyren).
2010-07-02 18:12:31 -07:00
Fyren
e332f4e12b
Possible dynamic array dimension fix (bug 4428, r=dvander)
2010-06-19 15:15:23 -07:00
David Anderson
97ab5dd1b5
Fixed switch case comparisons failing with large numbers (bug 4457, r=pred).
2010-06-13 20:26:58 -07:00
David Anderson
271b52158e
Mac build fixes (bug 4392, r=me).
2010-05-11 01:46:55 -07:00
Fyren
c78e89c3c1
Compiler confused |any| tag with |String| on array arguments.
2010-02-08 20:00:06 -08:00
Scott Ehlert
fcfd5c7419
Fixed crash when a plugin was unloaded before a client convar query had returned results (bug 4044, r=dvander).
2009-10-06 13:37:30 -05:00
David Anderson
d682361cfc
More changes for new build system.
2009-08-30 00:46:56 -07:00
David Anderson
d3f0a14867
Imported support for new build system.
2009-08-30 00:21:42 -07:00
David Anderson
1923368353
Fixed build.
2009-05-30 20:04:55 -04:00
David Anderson
752bd78de5
Fixed compiler asserting when returning a string literal (bug 3836, r=fyren).
2009-05-30 20:03:56 -04:00
David Anderson
c4b17855e5
Fixed compiler erroring when tagging functions for string return (bug 3837, r=fyren).
2009-05-30 20:03:01 -04:00
David Anderson
a1543f79cb
Fixed compiler not handling constant chained relational operators correctly (bug 3838, r=fyren).
2009-05-30 20:02:05 -04:00
David Anderson
614188c82b
Fixed compiler using NDEBUG in debug builds (bug 3815, r=fyren).
2009-05-24 12:08:27 -04:00
Matt Woodrow
7710a1fdb0
Merge from 1.2 branch
2009-05-11 11:45:08 +12:00
David Anderson
211c5dcfcd
Fixed compiler reading uninitialized strings while processing varargs (bug 3811, r=fyren,pred, a12=blocking).
2009-05-10 11:01:19 -04:00
David Anderson
bf8c57c669
Fixed compiler choosing whether to emit stradjust.pri on dynamic arrays based on uninitialized memory (bug 3810, r=fyren,pred, a12=blocking).
2009-05-09 09:21:14 -04:00
Fyren
f6bb6037f3
Allow spaces in compiler command line options (bug 3729, r=dvander)
2009-03-12 18:37:04 -07:00
Scott Ehlert
d8264fada7
Merge from 1.2 branch.
2009-03-05 15:48:38 -06:00
Scott Ehlert
72da49415e
Added -dev tag back to version.h files for manual builds.
2009-03-05 14:59:09 -06:00
David Anderson
8e744ec5f7
Re-added -dev tag, bumped version to 1.2.1.
2009-03-05 02:36:27 -05:00
David Anderson
8dfbcf5a9f
Bumped versions.
2009-03-05 02:07:44 -05:00
David Anderson
1f636bf7a9
Bumped trunk to 1.3.0.
2009-03-05 01:48:18 -05:00
Scott Ehlert
2c3bf7dd23
Ran versionchanger script for consistency.
2009-02-25 23:44:18 -06:00