Commit Graph

717 Commits (master)

Author SHA1 Message Date
Daniel Kolesa 00b8312ad5 move most thread state into an internal structure 2021-03-24 20:33:20 +01:00
Daniel Kolesa 4ded59ce70 launder aligned_storage pointers 2021-03-24 02:42:33 +01:00
Daniel Kolesa d774db675a separate cs_gen.hh, various refactors 2021-03-24 02:21:32 +01: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 b3b4624af1 drop cubescript.cc, move parsing stuff from cs_std to cs_parser 2021-03-23 22:17:25 +01:00
Daniel Kolesa 7139370990 move belonging stuff into cs_ident 2021-03-23 21:57:38 +01:00
Daniel Kolesa d06396f88f move more stuff into cs_state.cc 2021-03-23 21:55:19 +01:00
Daniel Kolesa 95e0da1fff move some more stuff, don't use both_libraries() in meson 2021-03-23 02:48:14 +01:00
Daniel Kolesa b5b0d0adf5 move some public state api into cs_state, separate lib_base 2021-03-23 02:43:18 +01:00
Daniel Kolesa 87e141ab36 move public ident interfaces to cs_ident.cc 2021-03-23 02:35:31 +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 4b6c284ea1 separate cs_parser.cc, drop cs_util.cc 2021-03-23 02:00:23 +01:00
Daniel Kolesa 68b66c0b28 move strref implementation to strman 2021-03-23 01:49:29 +01:00
Daniel Kolesa 2cc1b0e271 add cs_std.cc, drop cs_util.hh 2021-03-23 01:46:56 +01:00
Daniel Kolesa f52aeead32 eliminate the strref friend kludge 2021-03-23 01:35:04 +01:00
Daniel Kolesa 6821260c37 separate header/impl for strman 2021-03-23 01:25:47 +01:00
Daniel Kolesa 4588ae2373 separate cs_state, cs_std 2021-03-23 01:11:21 +01:00
Daniel Kolesa 702dca0809 separate ident and error impls into their own files 2021-03-22 22:33:15 +01:00
Daniel Kolesa f9a49ffba7 get rid of emptyblock 2021-03-22 22:01:49 +01:00
Daniel Kolesa 83e92e6881 ditch a bunch of reinterpret_casts 2021-03-22 21:37:13 +01:00
Daniel Kolesa 3d2f115de5 separate bytecode bits into its own file 2021-03-22 21:26:05 +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 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 45bf6ed7ef fix crash on quit where interfaces are destroyed instead of impls 2021-03-21 06:20:56 +01:00
Daniel Kolesa a591384afd use our allocator for more buffers 2021-03-21 06:13:45 +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 3905ff0e9d fix/clean up compileblockstr 2021-03-21 00:00:20 +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 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 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 70d7e15ed5 eliminate cs_vector/cs_map, use our allocator for all state 2021-03-19 23:05:19 +01:00
Daniel Kolesa ac1af69d96 move cs_valbuf/charbuf before cs_shared_state 2021-03-19 22:54:22 +01:00
Daniel Kolesa f41462deaf move cs_allocator out of cs_shared_state 2021-03-19 22:53:42 +01:00
Daniel Kolesa b81e419db6 get rid of cs_vector in most places 2021-03-19 22:49:52 +01:00
Daniel Kolesa 0ca8561d5d add cs_valbuf 2021-03-19 22:40:11 +01:00