Daniel Kolesa
6821260c37
separate header/impl for strman
2021-03-23 01:25:47 +01:00
Daniel Kolesa
63251f0eac
add cs_callable to replace std::function
...
now function data can be allocated with our own allocator as
well, plus we get guarantees on small storage; this type is
move-only, and it's also more memory efficient than std::function,
at least the libstdc++ implementation
2021-03-22 01:01:51 +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
2f3d5ea938
further clean up list parser api
2021-03-20 19:34:51 +01:00
Daniel Kolesa
82d366366e
drop libostd requirement entirely
2021-03-20 08:23:51 +01:00
Daniel Kolesa
cb926a5750
get rid of ostd requirements inside library entirely
2021-03-20 07:24:25 +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
55d5397f4f
implement move behavior for cs_value
...
this prevents things from going horribly wrong when people
do move the values (since the implicit implementations don't
take care of handling the refcounts)
2021-03-20 04:49:47 +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
126d6ab2b6
use a stolen buffer for strupper/lower
2021-03-19 01:31:34 +01:00
Daniel Kolesa
af1a85fb91
get rid of public format_int/float (use cs_value)
2021-03-19 00:34:12 +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
d3ec4a47dd
ditch cs_string from public headers + style fix
2021-03-18 23:56:25 +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
fb8668a508
use more stringrefs
2021-03-17 23:32:38 +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
8b7f36319d
eliminate length field in cs_value
2021-03-17 21:16:25 +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
8c77724f88
return alias value by value
2021-03-17 00:32:25 +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
fb78b4acdd
initial support for "threads"
2018-04-26 19:23:11 +02:00
q66
bd008ffb46
introduce list_range
2018-04-26 00:20:23 +02:00
q66
07666c7564
naming consistency
2018-04-25 01:49:58 +02:00
q66
8d62c09f88
fix build
2017-04-23 15:34:45 +02:00
q66
f0f6dc437f
fix build
2017-04-17 17:13:14 +02:00
q66
d744c6b1c6
remove dependency on types.hh
2017-04-04 00:28:56 +02:00
q66
7294580ccf
use range_put_all
2017-02-19 18:13:51 +01:00
q66
5c2c441925
fix build
2017-02-19 16:44:16 +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
c2a86f1625
build fix
2017-02-16 20:03:08 +01:00
q66
8343979e03
fix build after style update
2017-02-16 19:07:22 +01:00
q66
9b4ea3e765
replace removed PointerRange
2017-02-14 17:41:15 +01:00
q66
efe4ee523a
fix build
2017-02-13 23:32: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
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
896ab4aba2
update according to ostd
2017-02-08 01:07:35 +01:00
q66
0dd69fedea
remove memory.hh includes
2017-02-01 20:20:57 +01:00
q66
6ac12f6d18
remove CsAllocator
2017-02-01 20:17:21 +01:00
q66
d88e9de11a
use unordered_map
2017-01-31 19:28:34 +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
d2d262afbd
note about std::function
2017-01-29 19:31:04 +01:00
q66
e624f98be7
remove allocator support for callbacks
2017-01-29 18:33:02 +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
7be2ee5a08
remove multi-item parse
2016-11-18 15:17:50 +01:00
q66
0307085c30
CsString is not configurable
2016-11-13 20:49:22 +01:00
q66
ed65356dbe
automagically figure out CsInt minimum and add some extra assertions
2016-11-12 19:15:28 +01:00
q66
58b8f3ba54
make some types not configurable
2016-11-11 22:19:51 +01:00
q66
4f7c05a60d
clean up ListParser api
2016-11-07 23:33:53 +01:00
q66
da37ff51d1
rename to get_element
2016-11-06 23:48:50 +01:00
q66
987d00b933
CsStream is not a thing anymore
2016-10-30 20:29:23 +01:00
q66
049cbd0035
make input private in listparser
2016-10-27 00:49:16 +02:00
q66
78df1ca95d
move element() out to header
2016-10-26 23:02:48 +02:00
q66
6fcdbe7ac1
non-allocating element() variant on ListParser
2016-10-24 02:52:25 +02:00
q66
1a08b018c6
remove list_index, add parse() that takes number of items
2016-10-24 02:45:15 +02:00
q66
61135fb79b
remove list_length and instead add a method
2016-10-24 02:33:04 +02:00
q66
ed106d7e11
remove list_explode
2016-10-23 19:32:24 +02:00
q66
b5568456a5
forgot some exports
2016-10-22 19:34:52 +02:00
q66
0a88a10d99
add a line-counting parse_string to util
2016-10-11 21:15:23 +02:00
q66
27affb1057
expose string parse
2016-10-10 20:14:16 +02:00
q66
c4471b71bf
unexpose allocator related stuff from public API
2016-10-03 19:23:15 +02:00
q66
4353bb7904
move allocator into shared state
2016-10-02 13:56:55 +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
cd515a4cff
expose word parsing into API and unify with parser
2016-09-29 20:57:47 +02:00
q66
15e692f755
save state within ListParser and throw errors on unfinished strings in lists
2016-09-25 15:26:38 +02:00
q66
ccf24e95f5
line breaking in strings without inserting newlines
2016-09-24 03:31:56 +02:00
q66
568c07521f
update allocator api
2016-09-18 19:24:56 +02:00
q66
62d4afccd2
remove set_mstr
2016-09-15 23:09:52 +02:00
q66
845232605d
remove the out stream and re-do the var printing system
2016-09-15 21:59:11 +02:00
q66
192ce615d8
remove get_err/set_err
2016-09-15 21:27:14 +02:00
q66
f12197bbe5
throw CsErrorException where appropriate (robust error handling everywhere)
2016-09-15 21:15: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
e7f3213588
custom allocf support
2016-09-14 21:33:32 +02:00
q66
e41c3c03a1
use exceptions to throw errors
2016-09-14 00:14:21 +02:00
q66
4510e53916
use normal exception handling to handle errors C++-side, also guarantee valid pointer from alloc
2016-09-13 23:47:06 +02:00
q66
f97f896017
throwing errors now does not allocate (besides the stack)
2016-09-12 21:47:29 +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
ef77d8f247
noexcept
2016-09-11 20:47:25 +02:00
q66
2268c24060
allocator fix
2016-09-11 01:26:47 +02:00
q66
fa5e360726
allocate all callbacks (if allocated) with CsState's alloc func
2016-09-11 00:53:16 +02:00
q66
dc5294bac3
re-done pcall without blocks
2016-09-10 20:44:06 +02:00
q66
6d2d8dda73
remove nodebug (useless/incompatible with pcall)
2016-09-10 20:10:15 +02:00