-
Notifications
You must be signed in to change notification settings - Fork 17
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: omnibus release cleanup #1251
Conversation
Updated dependencies detected. Learn more about Socket for GitHub ↗︎
|
kotlin { | ||
jvm() | ||
} | ||
|
||
sourceSets.all { | ||
kotlin.setSrcDirs(listOf("jmh/src")) | ||
resources.setSrcDirs(listOf("jmh/resources")) | ||
// kotlin.srcDirs(listOf("jmh/src")) | ||
// resources.srcDirs(listOf("jmh/resources")) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
cleanup
@@ -1,3 +1,4 @@ | |||
[versions] | |||
micronaut-core = "4.7.1" | |||
micronaut-platform = "4.7.4" | |||
micronaut-picocli = "5.7.0" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
there are probably other overrides/upgrades we can apply here
private const val ENABLE_JVM = true | ||
private const val ENABLE_RUBY = true | ||
private const val ENABLE_PYTHON = true | ||
private const val ENABLE_JVM = false | ||
private const val ENABLE_RUBY = false | ||
private const val ENABLE_PYTHON = false |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nts: flip before merge
private const val ENABLE_COLOR_SUPPORT = true | ||
private const val ENABLE_COLOR_SUPPORT = false |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
tmp: multi-width chars and other quirks are breaking formatting here
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
facade is missing the Elide
global (it is being converted into a native symbol); this is breaking serving from js, which mounts its symbols there
// Register security providers at JVM startup time. | ||
@JvmStatic @Synchronized private fun registerProviders() { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
delete entirely
5d0e2ae
to
e3b2592
Compare
9ba96f5
to
c99bf57
Compare
feat: support for exact metadata in native image feat: static-umbrella and prefer-shared linkage modes feat: stronger hardening flags for both clang and gcc feat: use oxc parser from truffle typescript feat: integrate cargo and gradle builds feat: switch to explicit target triples for cargo feat: early musl support for rustlibs feat: build conventions for target info + triples feat: use native typescript parser by default feat: ability to enforce custom cargo configs by name fix: javascript format for esm should follow ts fix: gc of sections by linker fix: lto and cflags alignment fix: cross-lang lto with linker plugins fix: always produce debug symbols on linux fix: remove vendored native tls in orogene fix: remove vendored boringssl fix: native access to oxc parser fix: bloat from static rust libs fix: make orogene and uv conditional fix: target `x86-64-v3` fix: better support for clang fix: aligned cflags for hardening fix: some issues building against musl fix: drop sqlite math fns for libm dep fix: build embedded + benchmarks by default fix: consolidate `elide.target` and related props fix: entirely eliminate the "elide natives" root fix: drop bouncycastle (unused) fix: drop mosaic and compose (tmp, unused) fix: respect cflags from all native builds fix: continued support for cfi/branch protection fix: drop unused / irrelevant resources fix: colors break native error printing fix: copy method visibility for node child process records fix: drop module preloading chore: bump version for release chore: add support for es2024 setting chore: add run configurations for idea chore: update llvm/clang → `19.x` chore: update gradle → `8.13` chore: update typescript → `5.8.2` chore: update pnpm → `10.5.2` chore: update protobuf → `4.28.2` chore: generate initial new-format reachability metadata chore: update crates chore: update pnpm deps chore: update maven deps chore: trim unused crates and deps chore: relocate vm feature classes to `engine` chore: update api pins chore: update detekt baselines chore: update pgo profiles Signed-off-by: Sam Gammon <sam@elide.dev>
c99bf57
to
08da217
Compare
|
Summary
Implements the new TypeScript native parser, and switches to it from the language engine; fixes several binary bloat issues which were causing a compounding size problem in the final binary. Re-generated PGO profiles and switched back to PGO optimization for release. Fixed C compiler flag alignment, LLVM 19 support, and LTO. Fixed link-time section GC.
BoringSSL and vendored native TLS in Orogene have both been dropped in favor of linking to system OpenSSL (a size tradeoff).
Elide's binary, with this PR, reduces from
1.3G
(!!) on x86-64 to about400MB
(estimated, with Python). It's still too large, but it is a fantastic improvement.Several other bugs were fixed with regard to JNA and static modules. Elide's runtime "natives" root has been eliminated, which fixes a longstanding circular build flaw. Instead, the build-time "target root" is now considered a staging area for finalized native libraries, which will be copied (in a future PR) to be peers with the final binary, clearing the way for a feature which ultimately splits several slices of Elide into shared libraries.
Elide's Rust build now uses explicit target triples, and the Gradle build is aware of how to build the third-party natives and Rust libs. Running a Gradle build should be sufficient for these tools to run as well. Now that we use explicit target triples, we can begin to plan for cross-compiled native libs, which will solve downstream issues with libraries like
elide-sqlite
.-fuse-linker-plugin
)Fix embedded kotlinc/javac