Commit Graph

6371 Commits

Author SHA1 Message Date
Nicholas Hastings
fdc3c0791e Merge pull request #266 from alliedmodders/tfconds-reducks
Replace frameloop for player condition checks in TF2 ext with sendproxies (r=All of the KyleS).
2015-02-27 04:43:15 -08:00
David Anderson
04827466b0 Rewrite the .smx parser.
This removes one the last remnants of the SourceMod 1.0 VM implementation.

The new parser introduces a number of design changes in the VM. First, the VM now takes greater responsibility for validating and sanity checking the structure of the SMX container format. Previously, malformed SMX files could easily crash SourcePawn. The loader now rejects files that have out-of-bounds offsets or incomplete sections. Complex sections, like debug info or the code stream, are verified lazily.

Internally, the sp_plugin_t structure has been removed. It has been replaced by a new LegacyImage class, designed to be independent from the SPVM API. This potentially lets us load code streams from non-.smx containers. More importantly, it removes a lot of bookkeeping and pre-computed state from PluginRuntime. The LegacyImage class is now responsible for handling debug info as well.

PluginRuntime is now intended to hold only cached or immutable data, and PluginContext holds all VM state. As such PluginContext is now responsible for allocating a plugin's runtime memory, not PluginRuntime.

Finally, some aspects of the loading process have been cleaned up. The
decompression and image handoff logic should now be easier to
understand.
2015-02-25 22:28:10 -08:00
David Anderson
afbcdc8a20 Merge branch 'rm-interpreter' 2015-02-25 22:22:07 -08:00
David Anderson
b5ae5defcf Merge branch 'simpl-fns' 2015-02-25 22:21:43 -08:00
David Anderson
1f351c50d5 Merge branch 'fix-native-updating' 2015-02-25 22:20:41 -08:00
David Anderson
9a37b94f4d Merge pull request #280 from alliedmodders/rm-ctx
Remove sp_context_t.
2015-02-26 15:46:32 -08:00
David Anderson
acf6dcac86 Remove the interpreter. 2015-02-24 23:57:08 -08:00
David Anderson
fcec0ee7c7 Use AutoPtr in more places in the JIT. 2015-02-24 23:50:42 -08:00
David Anderson
b9b0ec865c Simplify the JIT function cache. 2015-02-24 23:43:07 -08:00
David Anderson
fcaa5361c8 Don't expose mutable sp_native_t. 2015-02-24 23:10:18 -08:00
David Anderson
33588b65ce Remove sp_context_t. 2015-02-24 21:54:34 -08:00
David Anderson
c09c65e4c7 Remove sp_context_t::plugin. 2015-02-24 21:54:34 -08:00
David Anderson
11ea385169 Remove sp_context_t::rval. 2015-02-24 21:54:34 -08:00
David Anderson
3a0310e832 Remove sp_context_t::basecx. 2015-02-24 21:54:34 -08:00
David Anderson
31ab1ced06 Move hp from sp_context_t to PluginContext. 2015-02-24 21:54:34 -08:00
David Anderson
b2c61a341a Move sp from sp_context_t to PluginContext. 2015-02-24 21:54:30 -08:00
David Anderson
4c9321f02a Move frm from sp_context_t to PluginContext. 2015-02-24 21:01:05 -08:00
David Anderson
d2005bd42a Move cip from sp_context_t to PluginContext. 2015-02-24 20:53:44 -08:00
David Anderson
8817de8a55 Remove err from sp_context_t. 2015-02-24 20:41:51 -08:00
David Anderson
97dbc7ff07 Move n_err from sp_context_t to PluginContext. 2015-02-24 20:16:13 -08:00
dvander@alliedmods.net
9c104ef310 Move nidx from sp_context_t to PluginContext. 2015-02-24 19:59:45 -08:00
Asher Baker
7f0ff04ccf Updated plugin blacklist. 2015-02-25 01:10:28 +00:00
dvander@alliedmods.net
5502fbbdc1 Move the tracker from sp_context_t to PluginContext. 2015-02-24 15:43:41 -08:00
dvander@alliedmods.net
deedc1aaa6 Remove unused fields from sp_context_t. 2015-02-24 15:21:52 -08:00
dvander@alliedmods.net
37af05c456 Move the debug return stack into PluginContext. 2015-02-24 15:20:00 -08:00
David Anderson
8c35d79576 Merge pull request #279 from alliedmodders/mv-basecontext
Rename BaseContext to PluginContext.
2015-02-24 14:56:32 -08:00
Asher Baker
6572989993 Merge pull request #213 from splewis/find-array-nonzero-blocks
Add block parameter to FindValueInArray native.
2015-02-24 22:37:49 +00:00
dvander@alliedmods.net
8eed58a467 Rename sp_vm_basecontext to plugin-context. 2015-02-24 12:55:00 -08:00
dvander@alliedmods.net
2e77155b4e Rename BaseContext to PluginContext. 2015-02-24 12:50:09 -08:00
dvander@alliedmods.net
8b8edf6e70 Remove dead file and fix gcc build. 2015-02-24 11:39:28 -08:00
dvander@alliedmods.net
f0aa177bf8 Merge branch 'cc3' 2015-02-24 11:06:11 -08:00
dvander@alliedmods.net
e163204643 Merge branch 'cc2'. 2015-02-24 11:05:25 -08:00
dvander@alliedmods.net
50d7d7eedb Merge branch 'rm-watchdog-singleton' 2015-02-24 11:04:06 -08:00
David Anderson
ec05036a2d Merge pull request #274 from alliedmodders/refactor-api
Refactor the public API entrypoint for SourcePawn.
2015-02-24 11:03:32 -08:00
Nicholas Hastings
b8223d1b98 Merge pull request #267 from 50Wliu/tf2_setclientteam
Add TF2_SetClientTeam to provide symmetry to TF2_GetClientTeam (r=psychonic).
2015-02-24 10:23:23 -05:00
David Anderson
781c5129a9 Remove the JITX86 class. 2015-02-24 02:03:58 -08:00
David Anderson
111dd7eb68 Factor code stubs out of JITX86. 2015-02-24 02:03:58 -08:00
David Anderson
21f5400d9c Remove ICompilationData. 2015-02-24 02:03:57 -08:00
David Anderson
8cf3e227ea Move context var initialization into BaseContext. 2015-02-24 02:03:56 -08:00
David Anderson
8c95919b32 Move watchdog/runtime interaction into Environment. 2015-02-24 02:03:55 -08:00
David Anderson
b406c3d03d Merge sp_vm_engine and engine2. 2015-02-24 02:03:55 -08:00
David Anderson
c70e87d582 Move the code cache into Environment, and out of knight/shared. 2015-02-24 01:57:50 -08:00
David Anderson
57ba8fd09b De-singleton-ify the watchdog timer. 2015-02-24 01:53:37 -08:00
David Anderson
3cf3f6c3f8 Merge sp_vm_engine and engine2. 2015-02-24 01:52:14 -08:00
David Anderson
499f7b3929 Refactor the public API entrypoint for SourcePawn. 2015-02-24 01:52:13 -08:00
David Anderson
e58415f94a Fix shell build on Windows. 2015-02-24 01:49:03 -08:00
David Anderson
38d2c3690a Merge pull request #273 from alliedmodders/add-shell
Build the debug spshell as part of AMBuild.
2015-02-23 20:28:30 -08:00
David Anderson
4212fb88c8 Build the debug spshell as part of AMBuild. 2015-02-23 20:21:17 -08:00
David Anderson
f769e1a00c Merge pull request #272 from alliedmodders/rn-runtime
Rename BaseRuntime to PluginRuntime.
2015-02-23 16:56:18 -08:00
dvander@alliedmods.net
1f9b898702 Rename BaseRuntime files to plugin-runtime. 2015-02-23 16:44:15 -08:00