Skip to content

Conversation

sgammon
Copy link
Member

@sgammon sgammon commented Jul 1, 2024

Draft Powered by Pull Request Badge

Summary

Continued implementation of Elide's new entrypoint; implements a stronger structure for our crates, on top of our third_party C code, and integrating with our Kotlin layer. In essence, Rust will act as the glue between the system and our tooling drivers.

Feature additions coming soon.

Structurally, this is how it works:
Screenshot 2024-07-01 at 2 17 43 PM

Changelog

  • feat(runtime): new application entrypoint
  • feat(runtime): suspending entrypoint
  • feat(runtime): initial support for clikt
  • feat(tooling): new tooling module (empty for now)
  • feat(tooling): support for orogene via new elide install
  • feat(tooling): new methods in tooling bridge for uv and orogene
  • feat(tooling): support for linting python with ruff via elide lint
  • feat(dev): crates/ root
  • feat(dev): ability to build against llvm latest
  • feat(dev): use new official compose plugin
  • feat(dev): dedicated sentry dsn for elide cli
  • feat(base): support org.slf4j.Logger through delegation
  • fix(dev): eliminate use of elide.natives at build time
  • fix(dev): auto-resolve applicable tools in elide tool
  • chore: general makefile and entrypoint cleanup
  • chore: updates to npm deps
  • chore: kdl orogene lockfile
  • chore: update kotlin → 2.0.20-Beta1
  • chore: update atomicfu → 0.25.0
  • chore: update graalvm → 24.2.x-SNAPSHOT
  • chore: update clikt → 4.4.x-SNAPSHOT
  • chore: update gradle → 8.9-RC-1
  • chore: update guava → 33.2.1-x
  • chore: update lockfiles and verification metadata
  • chore: update module pins and baselines
  • chore: native build hardening
  • chore: aligned third_party and cargo lib/include roots
  • chore: sample requirements.txt
  • chore: nightly rust toolchain and configs
  • chore: switch to git dependencies in cargo instead of submodules
  • chore: in-progress testing api (tmp)

Fixes and closes #1025

@sgammon sgammon added ✋ embargoed PRs and issues that can't proceed because of some non-code condition platform:jvm PRs and issues relating to JVM support. 🚧 WIP Works-in-progress. Blocks merge native Features relating to native code, or JNA, or JNI, or FFM labels Jul 1, 2024
@sgammon sgammon added this to the Release R7: Beta 1 milestone Jul 1, 2024
@sgammon sgammon self-assigned this Jul 1, 2024
@sgammon sgammon force-pushed the feat/entrypoint-v2-pt3 branch 2 times, most recently from b835ce4 to c8c4cde Compare July 1, 2024 21:22
@socket-security
Copy link

socket-security bot commented Jul 1, 2024

👍 Dependency issues cleared. Learn more about Socket for GitHub ↗︎

This PR previously contained dependency changes with security issues that have been resolved, removed, or ignored.

Ignoring: npm/@biomejs/[email protected]

View full report↗︎

Next steps

Take a deeper look at the dependency

Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support [AT] socket [DOT] dev.

Remove the package

If you happen to install a dependency that Socket reports as Known Malware you should immediately remove it and select a different dependency. For other alert types, you may may wish to investigate alternative packages or consider if there are other ways to mitigate the specific risk posed by the dependency.

Mark a package as acceptable risk

To ignore an alert, reply with a comment starting with @SocketSecurity ignore followed by a space separated list of ecosystem/package-name@version specifiers. e.g. @SocketSecurity ignore npm/[email protected] or ignore all packages with @SocketSecurity ignore-all

@sgammon
Copy link
Member Author

sgammon commented Jul 1, 2024

@SocketSecurity ignore npm/@biomejs/[email protected]

@sgammon sgammon force-pushed the feat/entrypoint-v2-pt3 branch 2 times, most recently from 1a5ddd8 to fe9a510 Compare July 1, 2024 23:32
elide.graalvm.variant = COMMUNITY
elide.vm.inspect = false
elide.kotlin.k2 = true
elide.entryDsn = https://cb4b4bfdfef4586f047a9240241beb12@o4507518750556160.ingest.us.sentry.io/4507518754095104
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

should be elide.sentryDsn

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nice catch!

@socket-security
Copy link

socket-security bot commented Jul 2, 2024

New and removed dependencies detected. Learn more about Socket for GitHub ↗︎

Package New capabilities Transitives Size Publisher
npm/@biomejs/[email protected] shell 0 152 kB dominionl
npm/@esbuild/[email protected] None 0 11.7 MB evanw
npm/@esbuild/[email protected] None 0 10.3 MB evanw
npm/@esbuild/[email protected] None 0 11.7 MB evanw
npm/@esbuild/[email protected] None 0 9.58 MB evanw
npm/@esbuild/[email protected] None 0 10.2 MB evanw
npm/@esbuild/[email protected] None 0 9.31 MB evanw
npm/@esbuild/[email protected] None 0 9.97 MB evanw
npm/@esbuild/[email protected] None 0 9.5 MB evanw
npm/@esbuild/[email protected] None 0 9.31 MB evanw
npm/@esbuild/[email protected] None 0 9.45 MB evanw
npm/@esbuild/[email protected] None 0 9.63 MB evanw
npm/@esbuild/[email protected] None 0 10.8 MB evanw
npm/@esbuild/[email protected] None 0 9.7 MB evanw
npm/@esbuild/[email protected] None 0 9.31 MB evanw
npm/@esbuild/[email protected] None 0 10.4 MB evanw
npm/@esbuild/[email protected] None 0 9.97 MB evanw
npm/@esbuild/[email protected] None 0 9.95 MB evanw
npm/@esbuild/[email protected] None 0 9.98 MB evanw
npm/@esbuild/[email protected] None 0 9.95 MB evanw
npm/@esbuild/[email protected] None 0 9.41 MB evanw
npm/@esbuild/[email protected] None 0 9.71 MB evanw
npm/@esbuild/[email protected] None 0 10.2 MB evanw
npm/@types/[email protected] None 0 25.7 kB types
npm/[email protected] None 0 10 kB tootallnate
npm/[email protected] None 0 390 kB kpdecker
npm/[email protected] environment, filesystem, network, shell +2 20.5 MB evanw
npm/[email protected] None +2 7.67 MB endless
npm/[email protected] None 0 32.2 kB endless
npm/[email protected] None 0 4.59 kB feross
npm/[email protected] None 0 20.3 kB lukeed
npm/[email protected] None +5 83.4 kB wooorm
npm/[email protected] None +9 380 kB wooorm
npm/[email protected] None 0 13.3 kB lukeed
npm/[email protected] network 0 107 kB node-fetch-bot
npm/[email protected] None 0 31.5 kB lukeed
npm/[email protected] None 0 11.7 kB wooorm
npm/[email protected] None 0 10.1 kB wooorm
npm/[email protected] None +1 62.5 kB lukeed
npm/[email protected] None +3 99 kB wooorm

View full report↗︎

}

entry;
entry

Check warning

Code scanning / CodeQL

Expression has no effect

This expression has no effect.
console.log("Result of `tsc`:", { exitCode });
return exitCode;
console.log("Running `tsc`...", JSON.stringify({ args: args[0] }))
const fsMap = new Map()

Check notice

Code scanning / CodeQL

Unused variable, import, function or class

Unused variable fsMap.
@codecov
Copy link

codecov bot commented Jul 3, 2024

Codecov Report

Attention: Patch coverage is 19.03720% with 370 lines in your changes missing coverage. Please review.

Project coverage is 48.19%. Comparing base (a8dddbd) to head (7b0f9ed).

Additional details and impacted files

Impacted file tree graph

@@            Coverage Diff             @@
##             main    #1055      +/-   ##
==========================================
- Coverage   55.15%   48.19%   -6.97%     
==========================================
  Files         329      394      +65     
  Lines       10613    13653    +3040     
  Branches     1775     2339     +564     
==========================================
+ Hits         5854     6580     +726     
- Misses       4158     6361    +2203     
- Partials      601      712     +111     
Flag Coverage Δ
gradle 48.19% <19.03%> (-6.97%) ⬇️
jvm 48.19% <19.03%> (-6.97%) ⬇️
lib 48.19% <19.03%> (-6.97%) ⬇️
plugin 48.19% <19.03%> (-6.97%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

Files Coverage Δ
...ase/src/jvmMain/kotlin/elide/runtime/jvm/Logger.kt 100.00% <100.00%> (ø)
...ages/cli/src/main/kotlin/elide/tool/cli/Statics.kt 50.00% <100.00%> (ø)
.../elide/tool/cli/options/EngineJavaScriptOptions.kt 41.66% <ø> (ø)
.../cli/src/main/kotlin/elide/tool/code/CodeSource.kt 0.00% <ø> (ø)
.../main/kotlin/elide/tool/err/DefaultErrorHandler.kt 72.72% <ø> (ø)
...s/cli/src/main/kotlin/elide/tool/err/ErrorTests.kt 0.00% <ø> (ø)
...cli/src/main/kotlin/elide/tool/lint/Diagnostics.kt 0.00% <ø> (ø)
...cli/src/main/kotlin/elide/tool/testing/SelfTest.kt 0.00% <ø> (ø)
...rc/main/kotlin/elide/runtime/exec/GuestExecutor.kt 0.00% <ø> (ø)
...ntime/gvm/internals/intrinsics/js/JsPromiseImpl.kt 47.76% <ø> (-1.50%) ⬇️
... and 22 more

... and 50 files with indirect coverage changes


Continue to review full report in Codecov by Sentry.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update a8dddbd...7b0f9ed. Read the comment docs.

@sgammon sgammon force-pushed the feat/entrypoint-v2-pt3 branch from 184feac to ef44a57 Compare July 4, 2024 04:23
@sgammon sgammon changed the base branch from main to feat/fs-copy-file July 6, 2024 06:18
@sgammon sgammon force-pushed the feat/entrypoint-v2-pt3 branch from 98f7d6f to 95cba75 Compare July 6, 2024 06:18
Base automatically changed from feat/fs-copy-file to main July 6, 2024 07:22
sgammon and others added 8 commits July 6, 2024 00:22
- feat(runtime): new application entrypoint
- feat(runtime): suspending entrypoint
- feat(runtime): initial support for clikt
- feat(tooling): new `tooling` module (empty for now)
- feat(tooling): support for `orogene` via new `elide install`
- feat(tooling): new methods in tooling bridge for uv and orogene
- feat(tooling): support for linting python with `ruff` via `elide lint`
- feat(dev): `crates/` root
- feat(dev): ability to build against llvm latest
- feat(dev): use new official compose plugin
- feat(dev): dedicated sentry dsn for elide cli
- feat(base): support `org.slf4j.Logger` through delegation
- fix(dev): eliminate use of `elide.natives` at build time
- fix(dev): auto-resolve applicable tools in `elide tool`
- chore: general makefile and entrypoint cleanup
- chore: updates to npm deps
- chore: kdl orogene lockfile
- chore: update kotlin → `2.0.20-Beta1`
- chore: update atomicfu → `0.25.0`
- chore: update graalvm → `24.2.x-SNAPSHOT`
- chore: update clikt → `4.4.x-SNAPSHOT`
- chore: update gradle → `8.9-RC-1`
- chore: update guava → `33.2.1-x`
- chore: update lockfiles and verification metadata
- chore: update module pins and baselines
- chore: native build hardening
- chore: aligned `third_party` and cargo lib/include roots
- chore: sample `requirements.txt`
- chore: `nightly` rust toolchain and configs
- chore: switch to git dependencies in cargo instead of submodules
- chore: in-progress testing api (tmp)

Fixes and closes #1025

Signed-off-by: Sam Gammon <[email protected]>
Signed-off-by: Sam Gammon <[email protected]>
Signed-off-by: Sam Gammon <[email protected]>
Signed-off-by: Sam Gammon <[email protected]>
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 20.14.8 to 20.14.9.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Signed-off-by: Sam Gammon <[email protected]>
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.25.10 to 3.25.11.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](github/codeql-action@23acc5c...b611370)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Signed-off-by: Sam Gammon <[email protected]>
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 7.14.1 to 7.15.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v7.15.0/packages/parser)

---
updated-dependencies:
- dependency-name: "@typescript-eslint/parser"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Signed-off-by: Sam Gammon <[email protected]>
Bumps [preact](https://github.com/preactjs/preact) from 10.22.0 to 10.22.1.
- [Release notes](https://github.com/preactjs/preact/releases)
- [Commits](preactjs/preact@10.22.0...10.22.1)

---
updated-dependencies:
- dependency-name: preact
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Signed-off-by: Sam Gammon <[email protected]>
sgammon added 4 commits July 6, 2024 01:18
- feat: ability to build cc/c++ with rust/cargo
- feat: deferred linker plugin lto
- feat: build `terminal` as rust crate
- feat: build `sqlite` as rust crate
- feat: build `transport` as rust crate (`epoll`, `kqueue`, `uring`, etc)
- feat: build `tcnative` as rust crate
- feat: everything should use the same copy of `boringssl`
- feat: run `make rebuild-natives` to completely rebuild native substrate
- feat: build with neon support, other cpu flag optimizations on macos
- test: restore tests for `cli` module
- test: run boringssl tests during native build
- test: enhance testing for jvm logger
- test: small test nits for node fs tests
- fix: `rustc` flags on macos aarch64
- fix: crash in sqlite due to bounds sanitization
- fix: circular dependency between `engine` and `graalvm`
- fix: ignore local dirty submodules
- fix: ignore generated js and java files
- fix: completely eliminate use of `elide.natives` during build
- fix: deadlock during native build at edge
- fix: `rustc` with llvm at latest
- fix: boringssl target path for `boring` crate
- fix: align defines for sqlite build
- chore: pin `graalvm` tree at JVM 21
- chore: apply copyright header
- chore: general npm updates
- chore: update pnpm → `9.4.0`
- chore: update deps and re-lock cargo
- chore: update `engine` and `graalvm` module pins
- chore: update `engine` and `graalvm` detekt baselines
- chore: build all native jni code with rust instead of gradle
- chore: add rust `builder` module for reusable build code
- chore: tuning for `rustc` flags and linkage
- chore: switch back to cargo/rustc nightly
- chore: restore `cli` module, retire `runtime` module
- chore: drop unused panama sources for native modules

Signed-off-by: Sam Gammon <[email protected]>
@sgammon sgammon force-pushed the feat/entrypoint-v2-pt3 branch from 6b998a9 to 37b8c00 Compare July 7, 2024 20:36
sgammon added 4 commits July 7, 2024 13:58
Signed-off-by: Sam Gammon <[email protected]>
Signed-off-by: Sam Gammon <[email protected]>
Signed-off-by: Sam Gammon <[email protected]>
@sgammon sgammon force-pushed the feat/entrypoint-v2-pt3 branch from 5f3012f to bf27192 Compare July 7, 2024 21:43
sgammon and others added 16 commits July 7, 2024 15:01
Signed-off-by: GitHub <[email protected]>
@sgammon sgammon marked this pull request as ready for review July 11, 2024 07:16
@sgammon sgammon merged commit 14ef44f into main Jul 11, 2024
@sgammon sgammon deleted the feat/entrypoint-v2-pt3 branch July 11, 2024 17:20
@sgammon sgammon mentioned this pull request Mar 11, 2025
64 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

✋ embargoed PRs and issues that can't proceed because of some non-code condition native Features relating to native code, or JNA, or JNI, or FFM platform:jvm PRs and issues relating to JVM support. 🚧 WIP Works-in-progress. Blocks merge

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

Hanging build at GVM edge C build hardening Tracking: Mainline crash related to coroutines

2 participants