David Anderson
fe16e8e47c
Move the SetCommandClient hook into GameHooks.
2015-09-09 20:03:23 -07:00
David Anderson
c54b54ded0
Use GameHooks for ChatTriggers.
2015-09-09 18:51:21 -07:00
David Anderson
5757b729ac
Hide MRES_SUPERCEDE from command hook callbacks.
2015-09-09 18:45:20 -07:00
David Anderson
b048dc7b10
Move ConCommand hooks into GameHooks and switch callbacks to ICommandArgs.
2015-09-09 18:40:04 -07:00
David Anderson
b63bfdc72a
Rename QueryHookMode to ClientCvarQueryMode.
2015-09-09 18:40:01 -07:00
David Anderson
fa93426f6a
Remove blanket includes from sm_stringutil.
2015-09-09 15:18:24 -07:00
David Anderson
86f0a77e73
Reduce dependence on sm_strdup.
2015-09-09 15:18:24 -07:00
David Anderson
13a783d441
Remove UTIL_Format() and UTIL_FormatArgs().
2015-09-09 15:18:17 -07:00
David Anderson
e08697ad54
Remove strncopy().
2015-09-09 14:57:47 -07:00
David Anderson
67ba703b84
Merge pull request #392 from alliedmodders/mv-datapack
...
Move CDataPack from core to logic.
2015-09-09 14:41:49 -07:00
David Anderson
67c8ee4ce3
Move CDataPack from core to logic.
2015-09-06 11:02:52 -07:00
David Anderson
69984f472f
Remove unused, NPOTB CrazyDebugger.
2015-09-05 20:44:00 -07:00
David Anderson
55647cc18e
Update to the latest SourcePawn revision.
2015-08-18 09:51:24 -07:00
David Anderson
4e275eea97
Split intercom.h into separate headers and reduce shared header inclusion.
2015-08-31 10:00:49 -07:00
David Anderson
4f1705e001
Rename some bridge interfaces.
2015-08-31 09:57:32 -07:00
David Anderson
5d55ff23bd
Move OnQueryCvarValueFinished into the global hook manager.
2015-08-31 09:22:08 -07:00
David Anderson
2ed044804d
Move OnConVarChanged into a global hook.
2015-08-31 09:18:29 -07:00
David Anderson
32ba03538b
Move CCommandArgs into its own header.
2015-08-31 00:07:37 -07:00
David Anderson
23feee0e00
Put the game provider in its own header.
2015-08-31 00:07:34 -07:00
David Anderson
401aa038f8
Start a new bridge mechanism for global callbacks.
2015-08-31 00:07:27 -07:00
David Anderson
38e1c2f1f3
Clean up the core side of the logic bridge.
2015-08-30 23:30:15 -07:00
David Anderson
9e4d396d5e
Virtualize MMS functions in the core/logic bridge.
2015-08-30 23:29:46 -07:00
David Anderson
5c5d43137d
Virtualize game state functions in the core/logic bridge.
2015-08-30 23:29:23 -07:00
David Anderson
bdfdab1d3a
Virtualize game description functions in the core/logic bridge.
2015-08-30 23:28:59 -07:00
David Anderson
9366882ac4
Virtualize ConVar bridge functions.
2015-08-30 23:28:44 -07:00
David Anderson
0f9e5234fe
Convert core_bridge to a proper class declaration.
2015-08-30 23:28:28 -07:00
David Anderson
3d5c9f0e21
Rename smcore to bridge, and use it as a pointer.
2015-08-30 23:27:53 -07:00
David Anderson
a2dac43833
Remove CCommand from the logic bridge.
2015-08-30 21:02:14 -07:00
David Anderson
28346c99f2
Move RootConsoleMenu into core/logic.
2015-08-30 21:01:46 -07:00
David Anderson
23d55dd9d5
Move RootConsoleMenu::ConsolePrint into the logic bridge.
2015-08-30 21:01:27 -07:00
David Anderson
2c886943a0
Move RootConsoleMenu into its own header and .cpp file.
2015-08-30 21:01:10 -07:00
David Anderson
9d805ea9fb
Replace the AddRootConsoleCommand API to not expose internal structures.
2015-08-30 21:01:03 -07:00
David Anderson
e992c33f35
Factor irrelevant stuff out of RootConsoleMenu.
2015-08-30 21:00:42 -07:00
David Anderson
ecbcc7ba16
Move the sourcemod_version convar.
2015-08-30 21:00:39 -07:00
David Anderson
6503e92d66
Move LibrarySys from core to logic.
2015-08-30 20:11:22 -07:00
David Anderson
207f643d3a
Replace g_LibSys usage with AMTL primitives.
2015-08-30 20:11:02 -07:00
David Anderson
ec01ca72a0
Replace internal ILibrary use with ke::SharedLib.
2015-08-30 20:10:59 -07:00
David Anderson
5ecd906905
Replace CLibrary with a wrapper around ke::SharedLib.
2015-08-30 20:10:57 -07:00
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