Skip to content

migrate NAPI front-end to WASM and ESM#1120

Merged
OmarTawfik merged 1 commit intoNomicFoundation:mainfrom
OmarTawfik-forks:wasm
Oct 8, 2024
Merged

migrate NAPI front-end to WASM and ESM#1120
OmarTawfik merged 1 commit intoNomicFoundation:mainfrom
OmarTawfik-forks:wasm

Conversation

@OmarTawfik
Copy link
Copy Markdown
Contributor

@OmarTawfik OmarTawfik commented Oct 8, 2024

See the added changesets for the specific API changes/additions.

Additionally, this PR:

  • deprecates/removes NAPI build/pipeline.
  • adds jco as a sub-module to the repo.
  • deletes the platform-specific packages, as we now just need one.

Closes #410
Closes #570
Closes #573
Closes #816
Closes #987

@OmarTawfik OmarTawfik requested a review from a team as a code owner October 8, 2024 20:12
@OmarTawfik OmarTawfik enabled auto-merge October 8, 2024 20:12
@changeset-bot
Copy link
Copy Markdown

changeset-bot bot commented Oct 8, 2024

🦋 Changeset detected

Latest commit: 4c08c9e

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
@nomicfoundation/slang Minor

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

Copy link
Copy Markdown
Contributor

@AntonyBlakey AntonyBlakey left a comment

Choose a reason for hiding this comment

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

Phew!

@OmarTawfik OmarTawfik added this pull request to the merge queue Oct 8, 2024
Merged via the queue into NomicFoundation:main with commit 25eef3e Oct 8, 2024
@OmarTawfik OmarTawfik deleted the wasm branch October 8, 2024 21:38
@github-actions github-actions bot mentioned this pull request Oct 8, 2024
github-merge-queue bot pushed a commit that referenced this pull request Oct 9, 2024
This PR was opened by the [Changesets
release](https://github.com/changesets/action) GitHub action. When
you're ready to do a release, you can merge this and publish to npm
yourself or [setup this action to publish
automatically](https://github.com/changesets/action#with-publishing). If
you're not ready to do a release yet, that's fine, whenever you add more
changesets to main, this PR will be updated.


# Releases
## @nomicfoundation/slang@0.18.0

### Minor Changes

- [#1120](#1120)
[`25eef3e`](25eef3e)
Thanks [@OmarTawfik](https://github.com/OmarTawfik)! - migrate NAPI
front-end to WASM and ESM

- [#1120](#1120)
[`25eef3e`](25eef3e)
Thanks [@OmarTawfik](https://github.com/OmarTawfik)! - add
`TerminalKindExtensions.is_valid()` API to distinguish correctly-parsed
and erroneous nodes

- [#1117](#1117)
[`be7bb79`](be7bb79)
Thanks [@OmarTawfik](https://github.com/OmarTawfik)! - rename `Language`
API to `Parser`, in preparation for introducing a multi-file compilation
API.

- [#1116](#1116)
[`c88f9b5`](c88f9b5)
Thanks [@OmarTawfik](https://github.com/OmarTawfik)! - merge `language`,
`parse_error`, `parse_output` namespaces into the `parser` namespace.

- [#1115](#1115)
[`96df645`](96df645)
Thanks [@OmarTawfik](https://github.com/OmarTawfik)! - merge `cursor`,
`kinds`, `query`, and `text_index` namespaces into the `cst` namespace.

- [#1120](#1120)
[`25eef3e`](25eef3e)
Thanks [@OmarTawfik](https://github.com/OmarTawfik)! - unify API methods
on `TerminalNode` and `NonTerminalNode`, and add type assertions and
guards to both types

- [#1120](#1120)
[`25eef3e`](25eef3e)
Thanks [@OmarTawfik](https://github.com/OmarTawfik)! - expose edges and
edge labels on CST nodes via `Node.children()` method. This allows
distinguishing between children of the same node based on their
label/role in the parent, even if they have the same kind.

- [#1120](#1120)
[`25eef3e`](25eef3e)
Thanks [@OmarTawfik](https://github.com/OmarTawfik)! - add
`TerminalNode.id` and `Nonterminal.id` properties to get a numeric ID
that can be used in indexing/comparison at runtime.

- [#1120](#1120)
[`25eef3e`](25eef3e)
Thanks [@OmarTawfik](https://github.com/OmarTawfik)! - add
`TerminalKindExtensions.is_trivia()` API to distinguish between trivia
nodes and other contentful nodes

### Patch Changes

- [#1096](#1096)
[`15c437c`](15c437c)
Thanks [@OmarTawfik](https://github.com/OmarTawfik)! - add support for
Solidity `0.8.27`.

- [#1120](#1120)
[`25eef3e`](25eef3e)
Thanks [@OmarTawfik](https://github.com/OmarTawfik)! - change
`Parser::new()` constructor to `Parser::create()` static method.

- [#1097](#1097)
[`e17af22`](e17af22)
Thanks [@OmarTawfik](https://github.com/OmarTawfik)! - Fix the grammar
of keywords (`blobbasefee`, `blobhash`, `mcopy`, `tload`, `tstore`)
added in `0.8.24`, as they were actually reserved in `0.8.25`.

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
OmarTawfik added a commit to OmarTawfik-forks/slang that referenced this pull request Nov 14, 2024
minor improvement to the codegen backend based on earlier changes in NomicFoundation#1101 and NomicFoundation#1120

- build npm packages in parallel
- rename `BuiltInLabel` to `PredefinedLabel` to disambiguate from the newly introduced built-ins in bindings.
- Fix a bug where breaking versions in built-ins were not considered in other parts of codegen.
- rename `wasm32-wasi` to `wasm32-wasip1`, as it is already deprecated in nightly.
@OmarTawfik OmarTawfik mentioned this pull request Nov 15, 2024
OmarTawfik added a commit to OmarTawfik-forks/slang that referenced this pull request Nov 15, 2024
minor improvement to the codegen backend based on earlier changes in NomicFoundation#1101 and NomicFoundation#1120

- build npm packages in parallel
- rename `BuiltInLabel` to `PredefinedLabel` to disambiguate from the newly introduced built-ins in bindings.
- Fix a bug where breaking versions in built-ins were not considered in other parts of codegen.
- rename `wasm32-wasi` to `wasm32-wasip1`, as it is already deprecated in nightly.
OmarTawfik added a commit to OmarTawfik-forks/slang that referenced this pull request Nov 15, 2024
minor improvement to the codegen backend based on earlier changes in NomicFoundation#1101 and NomicFoundation#1120

- build npm packages in parallel
- rename `BuiltInLabel` to `PredefinedLabel` to disambiguate from the newly introduced built-ins in bindings.
- rename `wasm32-wasi` to `wasm32-wasip1`, as it is already deprecated in nightly.
OmarTawfik added a commit to OmarTawfik-forks/slang that referenced this pull request Nov 22, 2024
minor improvement to the codegen backend based on earlier changes in NomicFoundation#1101 and NomicFoundation#1120

- build npm packages in parallel
- rename `BuiltInLabel` to `PredefinedLabel` to disambiguate from the newly introduced built-ins in bindings.
- rename `wasm32-wasi` to `wasm32-wasip1`, as it is already deprecated in nightly.
github-merge-queue bot pushed a commit that referenced this pull request Nov 22, 2024
minor improvements to the codegen backend based on earlier changes in
#1101 and #1120

- build npm packages in parallel
- rename `BuiltInLabel` to `PredefinedLabel` to disambiguate from the
newly introduced built-ins in bindings.
- rename `wasm32-wasi` to `wasm32-wasip1`, as it is already deprecated
in nightly.
rollup-smithbm0p added a commit to rollup-smithbm0p/slang that referenced this pull request Dec 26, 2025
This PR was opened by the [Changesets
release](https://github.com/changesets/action) GitHub action. When
you're ready to do a release, you can merge this and publish to npm
yourself or [setup this action to publish
automatically](https://github.com/changesets/action#with-publishing). If
you're not ready to do a release yet, that's fine, whenever you add more
changesets to main, this PR will be updated.


# Releases
## @nomicfoundation/slang@0.18.0

### Minor Changes

- [#1120](NomicFoundation/slang#1120)
[`25eef3e`](NomicFoundation/slang@25eef3e)
Thanks [@OmarTawfik](https://github.com/OmarTawfik)! - migrate NAPI
front-end to WASM and ESM

- [#1120](NomicFoundation/slang#1120)
[`25eef3e`](NomicFoundation/slang@25eef3e)
Thanks [@OmarTawfik](https://github.com/OmarTawfik)! - add
`TerminalKindExtensions.is_valid()` API to distinguish correctly-parsed
and erroneous nodes

- [#1117](NomicFoundation/slang#1117)
[`be7bb79`](NomicFoundation/slang@be7bb79)
Thanks [@OmarTawfik](https://github.com/OmarTawfik)! - rename `Language`
API to `Parser`, in preparation for introducing a multi-file compilation
API.

- [#1116](NomicFoundation/slang#1116)
[`c88f9b5`](NomicFoundation/slang@c88f9b5)
Thanks [@OmarTawfik](https://github.com/OmarTawfik)! - merge `language`,
`parse_error`, `parse_output` namespaces into the `parser` namespace.

- [#1115](NomicFoundation/slang#1115)
[`96df645`](NomicFoundation/slang@96df645)
Thanks [@OmarTawfik](https://github.com/OmarTawfik)! - merge `cursor`,
`kinds`, `query`, and `text_index` namespaces into the `cst` namespace.

- [#1120](NomicFoundation/slang#1120)
[`25eef3e`](NomicFoundation/slang@25eef3e)
Thanks [@OmarTawfik](https://github.com/OmarTawfik)! - unify API methods
on `TerminalNode` and `NonTerminalNode`, and add type assertions and
guards to both types

- [#1120](NomicFoundation/slang#1120)
[`25eef3e`](NomicFoundation/slang@25eef3e)
Thanks [@OmarTawfik](https://github.com/OmarTawfik)! - expose edges and
edge labels on CST nodes via `Node.children()` method. This allows
distinguishing between children of the same node based on their
label/role in the parent, even if they have the same kind.

- [#1120](NomicFoundation/slang#1120)
[`25eef3e`](NomicFoundation/slang@25eef3e)
Thanks [@OmarTawfik](https://github.com/OmarTawfik)! - add
`TerminalNode.id` and `Nonterminal.id` properties to get a numeric ID
that can be used in indexing/comparison at runtime.

- [#1120](NomicFoundation/slang#1120)
[`25eef3e`](NomicFoundation/slang@25eef3e)
Thanks [@OmarTawfik](https://github.com/OmarTawfik)! - add
`TerminalKindExtensions.is_trivia()` API to distinguish between trivia
nodes and other contentful nodes

### Patch Changes

- [#1096](NomicFoundation/slang#1096)
[`15c437c`](NomicFoundation/slang@15c437c)
Thanks [@OmarTawfik](https://github.com/OmarTawfik)! - add support for
Solidity `0.8.27`.

- [#1120](NomicFoundation/slang#1120)
[`25eef3e`](NomicFoundation/slang@25eef3e)
Thanks [@OmarTawfik](https://github.com/OmarTawfik)! - change
`Parser::new()` constructor to `Parser::create()` static method.

- [#1097](NomicFoundation/slang#1097)
[`e17af22`](NomicFoundation/slang@e17af22)
Thanks [@OmarTawfik](https://github.com/OmarTawfik)! - Fix the grammar
of keywords (`blobbasefee`, `blobhash`, `mcopy`, `tload`, `tstore`)
added in `0.8.24`, as they were actually reserved in `0.8.25`.

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

2 participants