Commit Graph

690 Commits (7f74602b7e0e15048835e84eac088696978479ab)

Author SHA1 Message Date
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 7229672f56 clean up command call parsing 2021-04-11 00:13:10 +02:00
Daniel Kolesa 0ee0ebfb42 clean up the main parser path 2021-04-10 19:32:01 +02:00
Daniel Kolesa 51f09c3dfb clean up some more parser routines 2021-04-10 07:32:44 +02:00
Daniel Kolesa a6426c60ee rewrite compilearg 2021-04-10 05:53:17 +02:00
Daniel Kolesa e5cf9452f2 rewirte compileblockmain 2021-04-10 05:32:07 +02:00
Daniel Kolesa eac137e3c8 rewrite compileblocksub 2021-04-10 04:51:11 +02:00
Daniel Kolesa c4d39caa61 rewrite compilelookup 2021-04-10 04:40:58 +02:00
Daniel Kolesa 416c6ba8fb do not access parser state from error 2021-04-10 03:51:08 +02:00
Daniel Kolesa 83aa8bfd07 hide bcode pointers from public api 2021-04-10 03:37:59 +02:00
Daniel Kolesa 6d6a115d0c remove leftover junk 2021-04-10 03:01:41 +02:00
Daniel Kolesa d2b53b174e move all codegen stuff, make instruction vector private 2021-04-10 02:56:49 +02:00
Daniel Kolesa 05661662d2 more codegen conversions 2021-04-10 02:15:06 +02:00
Daniel Kolesa 63023f8c5e remove parser_state::gen_main 2021-04-10 00:54:28 +02:00
Daniel Kolesa 1bc94bf5af move some more codegen into proper place 2021-04-10 00:42:01 +02:00
Daniel Kolesa 295c905c32 more codegen utils 2021-04-09 03:34:48 +02:00
Daniel Kolesa 3790435c34 add more codegen utils 2021-04-09 03:22:34 +02:00
Daniel Kolesa 51da22be06 add ivar/fvar/svar lookup funcs in codegen 2021-04-09 03:14:34 +02:00
Daniel Kolesa bac186a0c7 move compileblockstr/compileunescapestr logic into gen 2021-04-09 02:54:36 +02:00
Daniel Kolesa c0fc1aa452 abstract away ugly bcode reference creation 2021-04-09 01:12:52 +02:00
Daniel Kolesa dcd5f61748 fewer direct accesses to code vector 2021-04-09 01:03:29 +02:00
Daniel Kolesa e5a05a3199 remove parser_state::done() 2021-04-09 00:56:58 +02:00
Daniel Kolesa 283f23394d add more codegen utilities 2021-04-09 00:50:13 +02:00
Daniel Kolesa 5f67b205df initial bits for separation of codegen from parser 2021-04-09 00:41:55 +02:00
Daniel Kolesa ccb0c09d59 rename codegen_state to parser_state and move it
later commits will rewrite the parser and separate the codegen
bits into their own API
2021-04-08 23:35:30 +02:00
Daniel Kolesa 9a2de6ffd3 move include install logic outside src/ 2021-04-07 02:03:41 +02:00
Daniel Kolesa f03407400c remove pic: true in the build
since meson will always default to pic for static libraries unless
overridden with -Db_staticpic=false, we don't want to mess with
this
2021-04-07 02:01:05 +02:00
Daniel Kolesa 34959f44f3 support -Ddefault_library=both for windows 2021-04-07 01:58:58 +02:00
Daniel Kolesa c09613c5ea fill in missing headers to install 2021-04-07 01:44:40 +02:00
Daniel Kolesa 3124f8a487 add a thingy in meson to guess c++ std
since meson doesn't yet support cpp_std=c++2a or c++20 for msvc++,
only gcc (and the older version we support doesn't have c++20
either), default to none and add some minimal logic which will
guess it for whatever compiler we're using

people can still override the standard manually, in which case our
guess logic will not be used
2021-04-07 01:39:18 +02:00
Daniel Kolesa e254000f5f readme rewrite 2021-04-07 01:25:28 +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 0b4f7573d2 no need to handle null result in alloc_buf 2021-04-05 20:07:25 +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
Daniel Kolesa a8cfa08bd8 split up cubescript.hh into individual files 2021-04-05 04:40:52 +02:00
Daniel Kolesa 06b1661afd hide thread_state, remove state::thread_pointer() 2021-04-05 04:10:39 +02:00
Daniel Kolesa 59c0d16d50 make threads work
this means ensuring all required fields are set when creating
new threads. as well as respecting the "global" ident flags when
an alias is not pushed (in order to erase the UNKNOWN flag for
all threads)
2021-04-05 00:55:31 +02:00
Daniel Kolesa c2de63be25 re-expose new_ident in a restricted way 2021-04-04 19:53:59 +02:00
Daniel Kolesa 1624938c0b remove public is_in_loop api 2021-04-04 19:43:28 +02:00