Commit Graph

77 Commits (f4b8d077bb894f4fb06ed6e764a127c0521eaa3b)

Author SHA1 Message Date
Daniel Kolesa f4b8d077bb alias_local and get_ident() memory safety (always return refs) 2021-04-24 23:34:44 +02:00
Daniel Kolesa 36bf0e368f drop readline support in repl
this library is bad, and its documentation is even worse

and our linenoise now supports every non-boomer platform already
anyway
2021-04-12 20:43:19 +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 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 e531ab3434 clean up any_value APIs for consistency 2021-04-06 00:54:46 +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 194d5f960b drop ret-by-reference run APIs 2021-04-05 18:32:45 +02:00
Daniel Kolesa 9c2d375471 remove overrides for fvar and svar handlers in repl 2021-04-04 19:35:45 +02:00
Daniel Kolesa 529e34d268 add a variable value change trigger callback 2021-04-04 04:30:36 +02:00
Daniel Kolesa bab8633a05 add proper var value setting helpers 2021-04-04 02:58:04 +02:00
Daniel Kolesa e9fc023daa implement override value saving 2021-04-04 02:44:35 +02:00
Daniel Kolesa 3d91cf2ee7 rea-add proper handling of variable overrides 2021-04-04 02:33:28 +02:00
Daniel Kolesa b00a08ea88 remove most variable code and leave it to user-defined handlers
the user can now define commands '//ivar', '//fvar' and '//svar'
which take identity (which is the variable) as the first argument
followed by any number of user defined arguments with types (one
can use the N argument type to check argument count, and when no
value arguments are provided, print the variable); this allows us
to implement different styles of variable setting without the
interpreter itself knowing about it, as well as ditch all the
stuff with overridden vars and hex vars and whatnot since this is
all specific to the engine and has no place in here

there is still leftover code remaining, which will get cleaned up
afterwards...
2021-04-03 03:16:57 +02:00
Daniel Kolesa 6068a7259b switch to modified cpp-linenoise, use it on windows 2021-03-31 23:48:22 +02:00
Daniel Kolesa b9c74d86b5 msvc warning fixes 2021-03-31 02:21:32 +02:00
Daniel Kolesa 2270d8e41f up the default warning level, turn off rtti by default 2021-03-31 01:35:02 +02:00
Daniel Kolesa 13d46881e8 windows fixes and other correctness/portability stuff 2021-03-31 01:13:35 +02: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 3d9f73c7b2 drop removed arg types in repl 2021-03-23 02:23:24 +01:00
Daniel Kolesa 4b766a380f drop the util namespace 2021-03-23 02:02:43 +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 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 704f9217f7 unify enum style 2021-03-18 20:55:14 +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 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 3224a33645 fix warnings 2020-09-11 23:41:09 +02:00
Daniel Kolesa ccb35eb1c4 fixes 2017-06-19 20:13:54 +02:00
Daniel Kolesa 5b1baafdb3 fixes 2017-04-01 01:06:36 +02:00
Daniel Kolesa 6b17c4594f remove slice_until 2017-03-31 03:18:26 +02:00
Daniel Kolesa 69b9042fdc ostd fixes 2017-03-10 20:16:20 +01:00
Daniel Kolesa 8343979e03 fix build after style update 2017-02-16 19:07:22 +01:00
Daniel Kolesa 41eb8b211f begin naming scheme rework 2017-02-13 18:11:19 +01:00
Daniel Kolesa 58bf658409 update according to ostd 2017-01-30 19:38:11 +01:00
Daniel Kolesa 8dc423dcaa update according to ostd 2017-01-30 01:18:55 +01:00
Daniel Kolesa d14c8f8593 update to latest ostd 2017-01-25 01:57:33 +01:00
Daniel Kolesa 58b54aff66 do not iterate argv twice 2016-10-06 20:29:07 +02:00
Daniel Kolesa da8120f5c8 repl cleanup 2016-10-05 21:33:59 +02:00
Daniel Kolesa 845232605d remove the out stream and re-do the var printing system 2016-09-15 21:59:11 +02:00
Daniel Kolesa 192ce615d8 remove get_err/set_err 2016-09-15 21:27:14 +02:00
Daniel Kolesa 377e9d7702 throw out of the VM on errors 2016-09-15 20:55:58 +02:00
Daniel Kolesa b0917ade03 use type inference for shorter command funcs 2016-09-15 00:42:19 +02:00
Daniel Kolesa e41c3c03a1 use exceptions to throw errors 2016-09-14 00:14:21 +02:00
Daniel Kolesa 4510e53916 use normal exception handling to handle errors C++-side, also guarantee valid pointer from alloc 2016-09-13 23:47:06 +02:00
Daniel Kolesa f97f896017 throwing errors now does not allocate (besides the stack) 2016-09-12 21:47:29 +02:00