diff options
author | Spartan322 <Megacake1234@gmail.com> | 2024-07-02 09:51:59 +0200 |
---|---|---|
committer | Spartan322 <Megacake1234@gmail.com> | 2024-07-05 19:17:25 +0200 |
commit | 3eb78b27505b602c1ccfa952c4cc00f942ccb2b9 (patch) | |
tree | 457b7fbda6d4470465c05d59b0ca51ed30628640 /deps | |
parent | deed8ec0ae23651529a58125012c1b4aab015d02 (diff) |
Fix string interning pointer invalidity for ASTsimplify-string-interning
Fix errorneous string intern compare
Add symbol interning tests
Optimize non-conversion identifier cases
Add `File::size()`
Add InstanceOf concept
Remove `FlatValue::value(const symbol_interner_type&)`
Add `AbstractSyntaxTree::intern/intern_cst(lexy::lexeme)` overload
Add `DiagnosticLogger::intern/intern_cstr(lexy::lexeme)` overload
Use pinned_vector to maintain string interning pointer validity for buffers
Add vmcontainer submodule for pinned_vector
pinned_vector reserves virtual memory at runtime using OS APIs to maintain pointer validity
Remove Exception and RTTI requirement from range-v3 submodule
Diffstat (limited to 'deps')
-rw-r--r-- | deps/SCsub | 39 | ||||
m--------- | deps/dryad | 0 | ||||
m--------- | deps/range-v3 | 0 | ||||
m--------- | deps/vmcontainer | 0 |
4 files changed, 35 insertions, 4 deletions
@@ -56,7 +56,7 @@ def build_dryad(env): env.Append(CXXFLAGS=["/external:I", include_dir, "/external:W0"]) else: env.Append(CXXFLAGS=["-isystem", include_dir]) - + env.exposed_includes += env.dryad["INCPATH"] def build_fmt(env): @@ -117,7 +117,7 @@ def build_fmt(env): env.Append(CXXFLAGS=[""]) env.Append(LIBPATH=[fmt_env.Dir(source_path)]) env.Prepend(LIBS=[library_name]) - + env.exposed_includes += env.fmt["INCPATH"] def build_range_v3(env): @@ -135,10 +135,41 @@ def build_range_v3(env): env.Append(CXXFLAGS=["/external:I", include_dir, "/external:W0"]) else: env.Append(CXXFLAGS=["-isystem", include_dir]) - + env.exposed_includes += env.range_v3["INCPATH"] +def build_vmcontainer(env): + vmcontainer_env = env.Clone() + + include_path = "vmcontainer/lib/include" + source_path = "vmcontainer/lib/src" + paths = [include_path, source_path] + vmcontainer_env.Append(CPPPATH=[[vmcontainer_env.Dir(p) for p in paths]]) + sources = env.GlobRecursive("*.cpp", paths) + env.vmcontainer_sources = sources + + library_name = "libvmcontainer" + env["LIBSUFFIX"] + library = vmcontainer_env.StaticLibrary(target=os.path.join(source_path, library_name), source=sources) + Default(library) + + include_dir = vmcontainer_env.Dir(include_path) + + env.vmcontainer = {} + env.vmcontainer["INCPATH"] = [include_dir] + + env.Append(CPPPATH=env.vmcontainer["INCPATH"]) + if env.get("is_msvc", False): + env.Append(CXXFLAGS=["/external:I", include_dir, "/external:W0"]) + else: + env.Append(CXXFLAGS=["-isystem", include_dir]) + env.Append(CXXFLAGS=[""]) + env.Append(LIBPATH=[vmcontainer_env.Dir(source_path)]) + env.Prepend(LIBS=[library_name]) + + env.exposed_includes += env.vmcontainer["INCPATH"] + build_dryad(env) build_fmt(env) build_lexy(env) -build_range_v3(env)
\ No newline at end of file +build_range_v3(env) +build_vmcontainer(env)
\ No newline at end of file diff --git a/deps/dryad b/deps/dryad -Subproject 3aa3d7606cb007436bb3433ddf83b8bdcf1ecc4 +Subproject 697b8f817e0c6c2a2f398c3e9217533b1507dc2 diff --git a/deps/range-v3 b/deps/range-v3 -Subproject 97452bb3eb74a73fc86504421a6a27c92bce6b9 +Subproject 334bf5772462dbd2e0e2ce142e22c4e5a8970a9 diff --git a/deps/vmcontainer b/deps/vmcontainer new file mode 160000 +Subproject f7851cd758af9d65189f55f2a3cba0021e36908 |