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
Daniel Kolesa
6ed9ae1235
get rid of standard i/o inside vm
2021-03-18 00:03:30 +01:00
Daniel Kolesa
7eaf3679a4
get rid of cs_value::get_strr
2021-03-17 21:59:37 +01:00
Daniel Kolesa
2f5bb697eb
use string refs more instead of allocated strings
2021-03-17 21:46:37 +01:00
Daniel Kolesa
e3cff816c7
reduce copying strings around (ensure refs are not erased)
2021-03-17 21:00:19 +01:00
Daniel Kolesa
64130a12bf
remove handling of constants from codegen, bytecode and cs_value
...
also drop move semantics on cs_value
2021-03-17 20:41:08 +01:00
Daniel Kolesa
c004db42c6
refactor cs_value and related structures to contain state
...
this will allow us to intern strings inside cs_value
2021-03-17 01:26:30 +01:00
Daniel Kolesa
dcae5b30b2
initial implementation of unique/interned string manager
2021-03-16 00:45:09 +01:00
q66
8805594bc2
style fixes
2018-04-27 23:53:55 +02:00
q66
d12e7f67ee
gcc warning fixes
2017-11-06 01:07:53 +01:00
q66
efdc82324e
fix includes
2017-06-20 21:21:39 +02:00
q66
f0f6dc437f
fix build
2017-04-17 17:13:14 +02:00
q66
73d1b142d1
fixes
2017-03-31 03:34:09 +02:00
q66
5c2c441925
fix build
2017-02-19 16:44:16 +01:00
q66
73699bd1cf
use std::min, max, clamp
2017-02-18 17:49:01 +01:00
q66
e87b1b566c
use appender_range directly
2017-02-18 17:28:43 +01:00
q66
14436d6aa0
fix build
2017-02-16 20:51:03 +01:00
q66
8343979e03
fix build after style update
2017-02-16 19:07:22 +01:00
q66
74edc2821d
fix build
2017-02-15 19:41:12 +01:00
q66
9b4ea3e765
replace removed PointerRange
2017-02-14 17:41:15 +01:00
q66
41eb8b211f
begin naming scheme rework
2017-02-13 18:11:19 +01:00
q66
140ccf08c6
add cs_internal_error exception and use it for unrecoverable unlikely errors
2017-02-12 22:52:43 +01:00
q66
6e67ce8574
clean up pointerrange constructor
2017-02-09 22:54:09 +01:00
q66
fda734a868
ostd fixes
2017-02-09 21:27:57 +01:00
q66
2536179500
use standard type traits
2017-02-09 20:59:14 +01:00
q66
0dd69fedea
remove memory.hh includes
2017-02-01 20:20:57 +01:00
q66
58bf658409
update according to ostd
2017-01-30 19:38:11 +01:00
q66
8dc423dcaa
update according to ostd
2017-01-30 01:18:55 +01:00
q66
3bdb0c4d7b
update according to ostd
2017-01-29 15:17:43 +01:00
q66
8e31583612
use uint32_t
2017-01-25 02:10:17 +01:00
q66
1c5c0939e1
use size_t
2017-01-25 02:09:50 +01:00
q66
d14c8f8593
update to latest ostd
2017-01-25 01:57:33 +01:00
q66
57478f6866
move to std::vector
2017-01-25 01:18:29 +01:00
q66
79b1a031ca
use new ostd features
2016-11-15 22:54:05 +01:00
q66
c4471b71bf
unexpose allocator related stuff from public API
2016-10-03 19:23:15 +02:00
q66
5d70e2c80f
simplify parser error handling (and allow for wider usage of line infos)
2016-09-29 21:21:21 +02:00
q66
64b12b442b
remove a jump
2016-09-23 21:06:44 +02:00
q66
3a0cd8d378
exception-proof rundepth
2016-09-23 21:04:52 +02:00
q66
604fd4e000
proper line infos at parse time
2016-09-22 01:44:35 +02:00
q66
814b2824e9
match ostd api
2016-09-18 19:31:19 +02:00
q66
845232605d
remove the out stream and re-do the var printing system
2016-09-15 21:59:11 +02:00
q66
f12197bbe5
throw CsErrorException where appropriate (robust error handling everywhere)
2016-09-15 21:15:54 +02:00
q66
377e9d7702
throw out of the VM on errors
2016-09-15 20:55:58 +02:00
q66
38c17d1911
implement break/continue in bytecode
2016-09-15 02:12:22 +02:00
q66
b05bc51b14
reduce the instruction number by merging some instructions
2016-09-15 02:02:54 +02:00
q66
c5772f0720
add loop control (break and continue)
2016-09-14 23:24:13 +02:00
q66
b20eb94a9e
alloc error stack using CsState
2016-09-14 21:46:47 +02:00
q66
e41c3c03a1
use exceptions to throw errors
2016-09-14 00:14:21 +02:00
q66
ce62593840
move idents/identmap into internal state
2016-09-12 20:04:59 +02:00
q66
083f905913
explicitly pass CsState to all callbacks (might be a different thread eventually)
2016-09-11 23:13:39 +02:00
q66
dc5294bac3
re-done pcall without blocks
2016-09-10 20:44:06 +02:00
q66
233b9dc7dd
get rid of noalias
2016-09-10 19:54:55 +02:00
q66
dfe491e4b3
error cleanup and always include lineinfo where possible
2016-09-10 16:06:01 +02:00
q66
3e0b35e427
fix a subtle bug with small int->string conversions
2016-09-10 15:31:13 +02:00
q66
323c84c3d6
trigger actual errors from parser
2016-09-10 15:01:49 +02:00
q66
879737ce83
remove unnecessary func, allow formatted errors
2016-09-10 01:11:21 +02:00
q66
32c53a31a0
pass callstack state with errors
2016-09-09 19:19:50 +02:00
q66
f1039148b0
allow for arbitrarily sized CsInt/CsFloat
2016-09-09 17:43:23 +02:00
q66
5674375614
clean up the call stack in a scoped way properly always
2016-09-08 23:42:14 +02:00
q66
e3310ce74f
fix invalid free in code cleanup
2016-09-08 22:04:36 +02:00
q66
f3fd6892bc
rename p_stack to p_callstack in CsState
2016-09-08 21:30:08 +02:00
q66
cdb5a5f6f8
source tree reorg
2016-09-07 22:57:28 +02:00