Daniel Kolesa
d748b0e671
remove state::get_idents
...
this was never going to be good from API standpoint, and is no
longer necessary (can use ident_count + get_ident by index with
a loop, for example)
2021-05-16 00:51:26 +02:00
Daniel Kolesa
4fb6b9a0bc
add ident getter by index, + ident count method on state
2021-05-16 00:50:14 +02:00
Daniel Kolesa
8086c23a77
memory safe error stack state
2021-05-15 23:27:34 +02:00
Daniel Kolesa
3189d87ac9
use a reference for the ident in stack node
2021-05-15 04:23:47 +02:00
Daniel Kolesa
497502bdb0
drop util::print_stack
2021-05-10 01:49:14 +02:00
Daniel Kolesa
1739cbed6e
remove separate stack_state
2021-05-09 20:21:35 +02:00
Daniel Kolesa
fdcc8a09e9
remove gap property from stack_state
2021-05-09 20:01:47 +02:00
Daniel Kolesa
6e779f827f
cap default recursion limit at 1024
2021-05-08 21:41:13 +02:00
Daniel Kolesa
54a7b4b7f1
add assert in lib_base, remove formatting public error api
2021-05-08 17:20:56 +02:00
Daniel Kolesa
dec7e844e7
use a regular union for any_value
2021-05-08 06:42:47 +02:00
Daniel Kolesa
7f74602b7e
add convenience constructors and assignment ops to any_value
2021-05-07 01:56:43 +02:00
Daniel Kolesa
9437e0951b
eliminate type separation between IVAR/FVAR/SVAR
2021-05-07 00:07:13 +02:00
Daniel Kolesa
6218adb78a
remove public type specializations for vars
2021-05-06 23:13:48 +02:00
Daniel Kolesa
6fede13b97
remove set_value() specialization per-vartype
2021-05-06 04:13:11 +02:00
Daniel Kolesa
fa5e38afad
remove the call() specializations per-vartype
2021-05-06 04:07:45 +02:00
Daniel Kolesa
6a892b4b2c
move set_raw_value to builtin_var
2021-05-06 04:01:29 +02:00
Daniel Kolesa
74f437f851
s/global_var/builtin_var/
2021-05-06 03:47:38 +02:00
Daniel Kolesa
a57072fb73
use any_value for var storage and return it from value()
2021-05-06 03:34:25 +02:00
Daniel Kolesa
344bba07f3
remove is_ helpers for ident types (except is_var)
2021-05-05 03:24:41 +02:00
Daniel Kolesa
bd1e7825d8
be consistent with usage of get_/set_ prefixes
2021-05-05 03:16:32 +02:00
Daniel Kolesa
03325af1e6
pass old and new values to var_changed
2021-05-05 00:37:12 +02:00
Daniel Kolesa
7febb8f5b1
remove internal_error
2021-05-03 00:39:00 +02:00
Daniel Kolesa
5b54c74f2a
remove call() methods from state
2021-05-02 22:44:38 +02:00
Daniel Kolesa
4dd1518f6c
s/run/call/
2021-04-30 02:55:20 +02:00
Daniel Kolesa
9c14e6ca65
rename r type to v
2021-04-29 20:02:04 +02:00
Daniel Kolesa
5d4bcaf797
use an ellipsis for variadics instead of V
2021-04-29 19:56:48 +02:00
Daniel Kolesa
e14d5c4aa3
remove automatic concatenating variadics
...
these were pretty much just pointless sugar for something that
can be better achieved with ordinary variadics and an extra call
(which is what it did, except in VM)
2021-04-29 19:29:51 +02:00
Daniel Kolesa
e52720ebb2
rename N in arglist to #
2021-04-29 04:15:16 +02:00
Daniel Kolesa
da7548664c
remove b and F arg types + renames + set default args to none
...
setting default args to none rather than whatever default
value allows for easily checking whether the arg was set,
without losing anything (since e.g. calling get_integer on
a none value still returns a 0)
'b' and 'F' were kinda ugly and handled special niches, which
are no longer a thing now that we're defaulting to none
2021-04-29 01:40:55 +02:00
Daniel Kolesa
a9afa89af6
rework API for by-name lookups/assignments, simplify VM for that
2021-04-28 03:23:17 +02:00
Daniel Kolesa
acdb9a4a0e
remove unused prototype
2021-04-26 02:44:31 +02:00
Daniel Kolesa
92281e88c1
remove state::get_alias(), make get_ident() return an optional
2021-04-26 02:42:08 +02:00
Daniel Kolesa
fadee6ab6f
alias_local belongs in ident.hh, not util.hh
2021-04-25 00:48:04 +02:00
Daniel Kolesa
43e6dc9341
remove get_ utilities from ident
...
this is not a good api (it prevents extensibility, requires
handling errors twice to be safe - once on user side, once
internally - and so on); just cast it
2021-04-25 00:44:45 +02:00
Daniel Kolesa
f19fd57549
get rid of some more pointers in API
2021-04-24 23:50:06 +02:00
Daniel Kolesa
f4b8d077bb
alias_local and get_ident() memory safety (always return refs)
2021-04-24 23:34:44 +02:00
Daniel Kolesa
960f463259
complete the public API documentation
2021-04-23 03:20:53 +02:00
Daniel Kolesa
0a432d2f19
document values
2021-04-22 05:20:59 +02:00
Daniel Kolesa
e7578f7e17
document error, ident
2021-04-20 02:52:27 +02:00
Daniel Kolesa
816d6e521d
support user conf file
2021-04-15 20:40:34 +02:00
Daniel Kolesa
84f6d1f0d6
make std::span user replaceable
...
this will allow usage on some older compilers for those who want it
2021-04-15 20:27:24 +02:00
Daniel Kolesa
8b1aaa63fe
add initial doxygen documentation infra
2021-04-15 02:42:06 +02:00
Daniel Kolesa
a5003678da
fix build with libc++, and try using it in CI with clang
2021-04-12 19:53:24 +02:00
Daniel Kolesa
8207ef0ce3
use overloads for new var methods
2021-04-11 20:49:26 +02:00
Daniel Kolesa
b26bae3ec5
move standard library init outside state, make it never error
2021-04-11 19:36:41 +02:00
Daniel Kolesa
a2c50744da
remove public state::destroy()
2021-04-11 18:56:08 +02:00
Daniel Kolesa
e644674724
hide internal_state from all public headers
2021-04-11 18:46:45 +02:00
Daniel Kolesa
3ed7b59d0b
only store trivial types in any_value (manage strrefs manually)
2021-04-11 03:55:16 +02:00
Daniel Kolesa
d358dd83e7
halve the size of any_value by removing state pointer from it
...
this brings more advantages too like actually being default
constructible, so it can be used more easily in data structures etc
2021-04-11 03:32:33 +02:00
Daniel Kolesa
83aa8bfd07
hide bcode pointers from public api
2021-04-10 03:37:59 +02:00