David Anderson
e78fe93e92
Move gnprintf/atcprintf from core to logic.
2015-08-30 19:32:46 -07:00
David Anderson
9d2bee261c
Move TrimWhitespace from core to logic.
2015-08-30 18:42:25 -07:00
David Anderson
c261bb0b2e
Merge branch 'rm-strncopy'
2015-08-30 18:38:31 -07:00
David Anderson
204ca3aca5
Update to the latest AMTL revision.
2015-08-30 18:38:05 -07:00
David Anderson
a158205f30
Remove strncopy from the core/logic bridge.
2015-08-30 18:21:07 -07:00
David Anderson
3786a2756b
Merge pull request #379 from alliedmodders/rm-format
...
Remove Format/FormatArgs from the core/logic bridge.
2015-08-30 21:04:20 -04:00
David Anderson
457266d249
Make UTIL_Format wrap ke::SafeSprintf.
2015-08-30 18:03:36 -07:00
David Anderson
9ba1363d86
Remove Format/FormatArgs from the core/logic bridge.
2015-08-30 18:03:31 -07:00
David Anderson
2d40af31a2
Merge pull request #383 from alliedmodders/new-amtl
...
Update to the latest AMTL version.
2015-08-27 10:55:00 -04:00
David Anderson
c87b3c0859
Update to the latest AMTL version.
2015-08-27 01:01:18 -04:00
David Anderson
e30b57cb4a
Update build scripts for new AMTL folder structure.
2015-08-26 15:54:55 -04:00
David Anderson
ff692f6040
Merge pull request #366 from peace-maker/timer_paused
...
Fix calling timer callback in paused plugins
2015-08-13 22:14:02 -07:00
David Anderson
246c32a202
Update SourcePawn and AMTL.
2015-08-13 22:08:47 -07:00
David Anderson
f81786cea0
Merge pull request #368 from alliedmodders/rm-binding
...
Update includes to remove binding syntax.
2015-08-12 12:31:55 -07:00
David Anderson
bcfef75c5d
Update regex and datapack includes to not use binding syntax.
2015-08-12 11:52:57 -07:00
David Anderson
17c4649651
Update SourcePawn for bug 6396.
2015-08-02 12:54:34 -07:00
David Anderson
152807b977
Update AMTL and SourcePawn submodules to master.
2015-07-25 17:25:59 -07:00
David Anderson
cb6024e334
Update AMTL and SourcePawn.
2015-05-27 10:22:40 -04:00
David Anderson
5dd4037c02
Update the sourcepawn repo.
2015-03-30 16:24:23 -07:00
David Anderson
8b0a10ad1d
Checkout submodules recursively.
2015-03-15 19:31:34 -07:00
David Anderson
7fc993e079
Fix build.
2015-03-15 19:27:44 -07:00
David Anderson
d846d91b0b
Merge pull request #300 from alliedmodders/sp-upstream
...
Use upstream SourcePawn as a submodule.
2015-03-15 19:19:55 -07:00
David Anderson
2ab3498ab0
Use upstream SourcePawn as a submodule.
2015-03-15 16:38:38 -07:00
David Anderson
7f24f137d6
Merge pull request #299 from alliedmodders/amtl-upstream
...
Use upstream AMTL as a submodule.
2015-03-08 12:13:11 -07:00
David Anderson
eaea3c927d
Update upstream AMTL as a submodule.
2015-03-08 00:24:03 -08:00
David Anderson
72475d6770
Merge pull request #295 from DoctorMcKay/fix-doc
...
Moved note about releasing resources from OnPluginStart to OnPluginEnd
2015-03-08 00:10:13 -08:00
David Anderson
8bb6f0e5c6
Merge pull request #297 from alliedmodders/rm-packing
...
Remove scpack.
2015-03-07 12:42:00 -08:00
David Anderson
0b990e46ab
Remove scpack.
2015-03-07 11:39:11 -08:00
David Anderson
1d313e3120
Move macro assembler out of public/assembler into sourcepawn/vm/x86.
2015-03-07 11:16:37 -08:00
David Anderson
561004c4bf
Move SourcePawn headers out of public/ into sourcepawn/include.
2015-03-07 11:13:32 -08:00
David Anderson
6f1eefbdbe
Strip internal SourcePawn dependencies on SM relative paths.
2015-03-07 11:07:20 -08:00
David Anderson
23ac0b4637
Keep one copy of zlib in the SourcePawn tree.
2015-03-07 11:02:44 -08:00
David Anderson
a008a3f804
Remove msvc project files for SourcePawn.
2015-03-07 10:53:12 -08:00
David Anderson
c81e7e3410
Move batchtool out of sourcepawn.
2015-03-07 10:52:13 -08:00
David Anderson
d459ebee41
Rename jit/ to vm/.
2015-03-07 10:50:35 -08:00
David Anderson
0c5cbe536f
Revert unintentional change.
2015-03-06 11:00:15 -08:00
David Anderson
175f9afa68
Merge pull request #240 from alliedmodders/stock-values
...
Allow capturing non-public functions as values.
2015-03-06 10:53:21 -08:00
David Anderson
8216097b2c
Allow capturing non-public functions as values.
2015-03-06 10:51:46 -08:00
David Anderson
7c775aee2e
Merge pull request #288 from klausenbusk/patch-1
...
Updated KillTimer documentation to reflect "Invalid handles" = runtime error.
2015-03-06 01:52:32 -08:00
David Anderson
fa2dc5b20a
Merge pull request #290 from InstantMuffin/patch-1
...
Documentation oddities for Call_PushStringEx
2015-03-06 01:43:54 -08:00
David Anderson
782eee3c58
Merge pull request #291 from VoiDeD/spcomp-error25-improvements
...
Improve the diagnostic given when a function prototype doesn't match an existing definition
2015-03-05 23:04:19 -08:00
David Anderson
90d3841ab2
Fix mac build.
2015-03-05 11:51:08 -08:00
David Anderson
715a51d01f
Merge pull request #285 from alliedmodders/frames
...
Implement a new stack and error handling model for the SourcePawn VM.
2015-03-04 23:45:59 -08:00
David Anderson
a1afa23bc4
Implement a new stack and error handling model for the SourcePawn VM.
...
This has three major changes to SourcePawn. First, the API now supports the concept of "exceptions". The exception state is a global property of an instance of the SourcePawn VM. Exceptions can be caught or suppressed. Many places in SourceMod have been updated to check exceptions instead of errors.
The new API obsoletes major parts of the embedder API - all but one method of invoking functions is obsoleted, and the debug interface has been scrapped. Extensions using the native API will not be affected, however, ThrowNativeError has been deprecated in favor of ReportError.
Second, the SourcePawn concept of a "stack" has been unified at the API level. A stack frame iterator now iterates over all SourcePawn invocations, rather than the topmost plugin. This makes error handling more consistent and removes another dependency on context-per-plugin.
Finally, the implementation of stack frames has been changed dramatically. Rather than maintain a complicated and expensive return pointer stack, we now rely on the implicit one provided by the CPU. The stack frame iterator now walks the JIT stack directly. This removes many unnecessary bookkeeping instructions from the generated code, in particular making the CALL instruction 40% faster.
These changes required some fair surgery to the JIT. Its error paths are now slightly more complicated, as they have to throw an exception rather than return an error code. In addition, any path that can throw an exception is now responsible for creating an "exit frame", which exists to tell the stack frame iterator about transitions from the JIT to the VM.
2015-03-04 23:45:30 -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
[email protected]
9c104ef310
Move nidx from sp_context_t to PluginContext.
2015-02-24 19:59:45 -08:00
[email protected]
5502fbbdc1
Move the tracker from sp_context_t to PluginContext.
2015-02-24 15:43:41 -08:00
[email protected]
deedc1aaa6
Remove unused fields from sp_context_t.
2015-02-24 15:21:52 -08:00
[email protected]
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
[email protected]
8eed58a467
Rename sp_vm_basecontext to plugin-context.
2015-02-24 12:55:00 -08:00
[email protected]
2e77155b4e
Rename BaseContext to PluginContext.
2015-02-24 12:50:09 -08:00
[email protected]
8b8edf6e70
Remove dead file and fix gcc build.
2015-02-24 11:39:28 -08:00
[email protected]
f0aa177bf8
Merge branch 'cc3'
2015-02-24 11:06:11 -08:00
[email protected]
e163204643
Merge branch 'cc2'.
2015-02-24 11:05:25 -08:00
[email protected]
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
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
[email protected]
1f9b898702
Rename BaseRuntime files to plugin-runtime.
2015-02-23 16:44:15 -08:00
[email protected]
2f71cb4cd7
Rename BaseRuntime to PluginRuntime.
2015-02-23 16:40:36 -08:00
David Anderson
b8d2be9a0d
Merge pull request #271 from alliedmodders/rm-jit-function
...
Rename some horrible classes.
2015-02-23 16:28:28 -08:00
[email protected]
b2d8dde3a5
Rename Function to CompiledFunction.
2015-02-23 16:27:57 -08:00
[email protected]
0ee4885056
Rename sp_vm_function to scripted-invoker.
2015-02-23 16:14:59 -08:00
[email protected]
45bac7feb0
Rename jit_function to compiled-function.
2015-02-23 16:04:57 -08:00
[email protected]
892b8c05b1
Rename JitFunction to CompiledFunction and CFunction to ScriptedInvoker.
2015-02-23 16:03:08 -08:00
David Anderson
7d64ade621
Merge pull request #270 from alliedmodders/modernize-vm-style
...
Modernize sourcepawn/jit style.
2015-02-23 14:38:28 -08:00
[email protected]
45c43f4aee
Modernize sp_vm_basecontext.
2015-02-23 13:40:01 -08:00
[email protected]
1b47aa10ca
Modernize sp_vm_engine style.
2015-02-23 13:08:28 -08:00
[email protected]
bcd88b4437
Modernize sp_vm_function style.
2015-02-23 13:01:00 -08:00