Daniel Kolesa
4154944726
remove fixed-size argument stacks and reliance on argument ids
2021-03-30 00:28:06 +02:00
Daniel Kolesa
8385ab01e7
use bitset to store usedargs and increase argcount to 32
2021-03-28 23:46:08 +02:00
Daniel Kolesa
f7ba70b8b2
fix conc instruction
2021-03-28 22:49:46 +02:00
Daniel Kolesa
2a017a336c
reorder vm a bit
2021-03-28 17:11:35 +02:00
Daniel Kolesa
064a7ea99b
document the instructions and drop more now useless vm code
2021-03-28 17:07:29 +02:00
Daniel Kolesa
d7700a9337
remove now unused BC_INST_CONC_M
2021-03-28 01:31:59 +01:00
Daniel Kolesa
71f45b2f07
fix up usage of IDENT_FLAG_UNKNOWN
2021-03-28 00:38:41 +01:00
Daniel Kolesa
99f227bfd9
unify arg and non-arg opcodes
2021-03-28 00:19:51 +01:00
Daniel Kolesa
d1e131dbf6
don't rely on MAX_ARGUMENTS where not necessary
2021-03-27 23:43:55 +01:00
Daniel Kolesa
a37eb25d1c
move public state methods where they belong
2021-03-27 00:26:59 +01:00
Daniel Kolesa
bd9a6cbf7c
eliminate more future private accesses
2021-03-26 02:59:42 +01:00
Daniel Kolesa
0b2c4c7038
pass thread_state in more places
2021-03-26 02:29:54 +01:00
Daniel Kolesa
468c3a07d4
get rid of some indirections
2021-03-25 01:52:03 +01:00
Daniel Kolesa
d80af7b159
hide internal_state from public state struct
2021-03-25 01:37:42 +01:00
Daniel Kolesa
14cd90116d
use the value stack in more places
2021-03-24 23:30:30 +01:00
Daniel Kolesa
4e8c3ee40f
move the VM stack off the real stack + std cleanups
2021-03-24 22:38:29 +01:00
Daniel Kolesa
3d37ea22c3
put force_ident and force_code in any_value
2021-03-24 21:01:01 +01:00
Daniel Kolesa
00b8312ad5
move most thread state into an internal structure
2021-03-24 20:33:20 +01:00
Daniel Kolesa
d774db675a
separate cs_gen.hh, various refactors
2021-03-24 02:21:32 +01:00
Daniel Kolesa
21aec59ad3
rename namespace to cubescript
2021-03-23 23:32:25 +01:00
Daniel Kolesa
b9b344cba6
remove cs_ namespace in all API
2021-03-23 23:29:32 +01:00
Daniel Kolesa
b3b4624af1
drop cubescript.cc, move parsing stuff from cs_std to cs_parser
2021-03-23 22:17:25 +01:00
Daniel Kolesa
4b6c284ea1
separate cs_parser.cc, drop cs_util.cc
2021-03-23 02:00:23 +01:00
Daniel Kolesa
2cc1b0e271
add cs_std.cc, drop cs_util.hh
2021-03-23 01:46:56 +01:00
Daniel Kolesa
4588ae2373
separate cs_state, cs_std
2021-03-23 01:11:21 +01:00
Daniel Kolesa
702dca0809
separate ident and error impls into their own files
2021-03-22 22:33:15 +01:00
Daniel Kolesa
f9a49ffba7
get rid of emptyblock
2021-03-22 22:01:49 +01:00
Daniel Kolesa
83e92e6881
ditch a bunch of reinterpret_casts
2021-03-22 21:37:13 +01:00
Daniel Kolesa
3d2f115de5
separate bytecode bits into its own file
2021-03-22 21:26:05 +01:00
Daniel Kolesa
f72a39f656
manage bytecode memory using the state allocator
...
this means *all* heap allocated memory is now handled through
the state's allocator (well, except things using std::function),
which allows for precise memory tracking and control
2021-03-21 19:23:23 +01:00
Daniel Kolesa
666f487a92
don't need full bcode_ref/unref in this case
2021-03-21 18:53:22 +01:00
Daniel Kolesa
3f866baccb
strict reference counting for bytecode references
2021-03-21 18:45:59 +01:00
Daniel Kolesa
a5b0ce5d72
drop cs_cmd_internal
2021-03-21 03:07:11 +01:00
Daniel Kolesa
436098cc38
drop the whole cs_alias_internal nonsense
2021-03-21 02:59:37 +01:00
Daniel Kolesa
f8eb07ee2b
hide implementation details of idents
2021-03-21 02:47:02 +01:00
Daniel Kolesa
be71d3a4b9
rework allocator errors and error message storage buffer
2021-03-20 21:06:26 +01:00
Daniel Kolesa
d7c93fa8b9
make format errors internal errors
2021-03-20 19:54:46 +01:00
Daniel Kolesa
82d366366e
drop libostd requirement entirely
2021-03-20 08:23:51 +01:00
Daniel Kolesa
68669413cc
get rid of most remaining ostd usage
2021-03-20 06:52:10 +01:00
Daniel Kolesa
10b2a81cec
redo (un)escape_string around output iterators
2021-03-20 06:18:31 +01:00
Daniel Kolesa
320fdbaefd
use c++20 std::span
2021-03-20 05:41:25 +01:00
Daniel Kolesa
4068c96ec2
remove the auxiliary run_<type> APIs, they are fairly useless now
2021-03-20 05:14:14 +01:00
Daniel Kolesa
d626fba537
remove file exec api
...
this is something each thing will want to do on its own...
but add a new set of calls that take code source for debug info
2021-03-20 05:10:19 +01:00
Daniel Kolesa
5648c1a757
use string_view everywhere that returns or takes a string
2021-03-20 04:10:27 +01:00
Daniel Kolesa
5a4cccf194
move strref impl to cs_util
2021-03-19 02:28:30 +01:00
Daniel Kolesa
26bcc43578
get rid of tvals_concat in favor of simpler api
2021-03-19 00:31:18 +01:00
Daniel Kolesa
64d9c0e749
make intstr/floatstr internal to cs_value
2021-03-19 00:12:47 +01:00
Daniel Kolesa
9d0494a9da
replace list_parser with a simpler api
2021-03-18 23:53:16 +01:00
Daniel Kolesa
704f9217f7
unify enum style
2021-03-18 20:55:14 +01:00
Daniel Kolesa
7023e09049
don't use memcpy for non-trivial structures
2021-03-18 01:37:38 +01:00