Commit Graph

200 Commits (7f74602b7e0e15048835e84eac088696978479ab)

Author SHA1 Message Date
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
Daniel Kolesa 9a2de6ffd3 move include install logic outside src/ 2021-04-07 02:03:41 +02:00
Daniel Kolesa 2de2c9b46c remove get_raw_type from public interface
users of the library never need to know this
2021-04-07 00:30:39 +02:00
Daniel Kolesa 4da0cb54a8 use format contants in default ivar/fvar/svar handlers 2021-04-06 21:23:17 +02:00
Daniel Kolesa f93042d7b9 add more utility methods for string_ref 2021-04-06 01:10:49 +02:00
Daniel Kolesa e531ab3434 clean up any_value APIs for consistency 2021-04-06 00:54:46 +02:00
Daniel Kolesa 3d06157dbc guarantee valid result from new_command 2021-04-05 20:05:41 +02:00
Daniel Kolesa 8c8aa26c20 return refs for new_*var and new_ident (guarantee valid result) 2021-04-05 19:52:13 +02:00
Daniel Kolesa 1a68dd1c25 move callable into internal namespace 2021-04-05 19:22:40 +02:00
Daniel Kolesa 194d5f960b drop ret-by-reference run APIs 2021-04-05 18:32:45 +02:00
Daniel Kolesa f64df83dd8 add getter/setter api on alias, drop old broken api 2021-04-05 18:20:07 +02:00