Daniel Kolesa
f4b8d077bb
alias_local and get_ident() memory safety (always return refs)
2021-04-24 23:34:44 +02:00
Daniel Kolesa
e7578f7e17
document error, ident
2021-04-20 02:52:27 +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
a5003678da
fix build with libc++, and try using it in CI with clang
2021-04-12 19:53:24 +02:00
Daniel Kolesa
5e9aefb52a
disable mac and mingw cross CI builds for now
...
apparently macos c++ stdlib is missing c++20 features (particularly
string_view doesn't seem to accept two pointers in a constructor)
and mingw is only present as gcc9 in ubuntu 20.04 (too old)
2021-04-12 03:59:01 +02:00
Daniel Kolesa
8114279816
fix warning with msvc
2021-04-12 00:17:07 +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
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
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
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
06b1661afd
hide thread_state, remove state::thread_pointer()
2021-04-05 04:10:39 +02:00