Skip to content
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

chore: Release 2025-03-19 #2744

Merged
merged 5 commits into from
Mar 24, 2025
Merged

chore: Release 2025-03-19 #2744

merged 5 commits into from
Mar 24, 2025

Conversation

kriskowal
Copy link
Member

@kriskowal kriskowal commented Mar 20, 2025

ses v1.12.0

  • The evalTaming: option values are renamed:

    • from 'safeEval', 'unsafeEval', and 'noEval'
    • to 'safe-eval', 'unsafe-eval', and 'no-eval'

    in order to follow the convention that lockdown option values use kebob-case
    rather than camelCase. To avoid breaking old programs during the transition,
    the old names are deprecated, but continue to work for now.

  • Evaluating a non-lexical name that is also absent on the global object of a
    compartment no longer throws a ReferenceError and instead produces
    undefined because it proves impossible to do so without revealing what
    properties exist on the host globalThis to compartmentalized code with a
    shim.
    This is a divergence from the expected behavior of a native Hardened
    JavaScript implementation, like XS.

@endo/patterns v1.5.0

  • New pattern: M.containerHas(elementPatt, bound = 1n) motivated to support want patterns in Zoe, to pull out only bound number of elements that match elementPatt. bound must be a positive bigint.

  • Closely related, @endo/patterns now exports containerHasSplit to support ERTP's use of M.containerHas on non-fungible (set, copySet) and semifungible (copyBag) assets, respectively. See feat(ertp,zoe): minimal want patterns using M.containerHas(el,n) Agoric/agoric-sdk#10952 .

@endo/import-bundle v1.4.0

  • Adds support for test format bundles, which simply return a promise for an object that resembles a module exports namespace with the objects specified on the symbol-named property @exports, which is deliberately not JSON serializable or passable.
  • Adds a typedImportBundle<ExpectedExportsNamespace> function with a proper type signature, to provide a narrower signature than any without disrupting existing usage.

@endo/bundle-source v4.0.0

  • Replaces the implementation for the nestedEvaluate and getExport formats with one based on Endo's Compartment Mapper instead of Rollup, in order to obviate the need to reconcile source map transforms between Rollup and the underlying Babel generator. As a consequence, we no longer generate a source map for the bundle, but Babel ensures that we preserve line and column numbers between the original source and the bundled source.

@endo/compartment-mapper v1.6.0

  • Accommodates CommonJS modules that use defineProperty on exports.

  • Divides the role of makeBundle into makeScript and makeFunctor. The new makeScript replaces makeBundle without breaking changes, producing a JavaScript string that is suitable as a <script> tag in a web page.

  • The new makeFunctor produces a JavaScript string that, when evaluated, produces a partially applied function, so the caller can provide runtime options.

  • Both makeScript and makeFunctor now accept format, useEvaluate and sourceUrlPrefix options.

  • The functor produced by makeFunctor now accepts evaluate, require, and sourceUrlPrefix runtime options.

  • Both makeScript and makeFunctor now accept a format option. Specifiying the "cjs" format allows the bundle to exit to the host's CommonJS require for host modules.

  • Adds sourceDirname to compartment descriptors in the compartment maps generated by mapNodeModules and uses these to provide better source URL comments for bundles generated by makeScript and makeFunctor, by default.

These changes collectively allow us to replace the implementation of nestedEvaluate and getExports formats in @endo/bundle-source, including the preservation of useful line numbers and file names in stack traces.

  • mapNodeModules, importLocation and loadLocation now accept a log option for users to define a custom logging function. As of this writing, only mapNodeModules will potentially call this function if provided. Expansion of log messaging and support for the log option in more APIs is expected in the future.

@endo/evasive-transform v1.4.0

  • Adds a sourceMap option so that the generated sourcemap can project back to the original source code without unmapLoc.
  • Removes support for sourcemap unmapLoc because it is not used by contemporary Endo packages. The option is now ignored.

@kriskowal kriskowal requested a review from mhofman March 20, 2025 01:54
Copy link
Contributor

@mhofman mhofman left a comment

Choose a reason for hiding this comment

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

The News for SES needs some tweaking. Besides that, looks mechanical.

Comment on lines 14 to 17
- The value of expressions like `typeof unlikelyGlobal` is now `undefined`
instead of producing a `ReferenceError` because it proves impossible to
do so without revealing what properties exist on the host `globalThis`
to compartmentalized code.
Copy link
Contributor

Choose a reason for hiding this comment

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

typeof unlikelyGlobal was already undefined before.

it's more about the case try { unlikelyGlobal; } catch(e) { console.error(e); } that would no longer print an error.

@mhofman
Copy link
Contributor

mhofman commented Mar 20, 2025

We may have an integration failure with agoric-sdk due to unsupported syntax by esm.

SyntaxError#2: Invalid or unexpected token
          inResults?.push(element);

And a few more failures in https://github.com/Agoric/agoric-sdk/actions/runs/13962823338

I suspect some have to do with the bundle format change

@kriskowal kriskowal force-pushed the release-2025-03-20-01-10-10 branch from 61c51a6 to a164a18 Compare March 20, 2025 18:46
Copy link
Contributor

@mhofman mhofman left a comment

Choose a reason for hiding this comment

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

lint is unhappy

outResults.push(element);
if (outResults) outResults.push(element);
Copy link
Contributor

Choose a reason for hiding this comment

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

Unnecessary change

outResults.push([element, num]);
if (outResults) outResults.push([element, num]);
Copy link
Contributor

Choose a reason for hiding this comment

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

Unnecessary change

@kriskowal kriskowal force-pushed the release-2025-03-20-01-10-10 branch 3 times, most recently from c4a113c to 9af1ab2 Compare March 20, 2025 21:49
 - @endo/benchmark@0.1.1
 - @endo/bundle-source@4.0.0
 - @endo/captp@4.4.5
 - @endo/check-bundle@1.0.14
 - @endo/cli@2.3.8
 - @endo/common@1.2.10
 - @endo/compartment-mapper@1.6.0
 - @endo/daemon@2.4.8
 - @endo/errors@1.2.10
 - @endo/evasive-transform@1.4.0
 - @endo/eventual-send@1.3.1
 - @endo/exo@1.5.9
 - @endo/far@1.1.11
 - @endo/immutable-arraybuffer@0.2.4
 - @endo/import-bundle@1.4.0
 - @endo/init@1.1.9
 - @endo/lockdown@1.0.15
 - @endo/lp32@1.1.10
 - @endo/marshal@1.6.4
 - @endo/memoize@1.1.10
 - @endo/module-source@1.3.0
 - @endo/nat@5.1.0
 - @endo/netstring@1.0.15
 - @endo/pass-style@1.5.0
 - @endo/patterns@1.5.0
 - @endo/promise-kit@1.1.10
 - ses@1.12.0
 - @endo/ses-ava@1.2.10
 - @endo/skel@1.1.10
 - @endo/stream@1.2.10
 - @endo/stream-node@1.1.10
 - @endo/stream-types-test@1.0.15
 - @endo/test262-runner@0.1.45
@kriskowal kriskowal force-pushed the release-2025-03-20-01-10-10 branch from 9af1ab2 to 9b67848 Compare March 24, 2025 23:28
@kriskowal kriskowal enabled auto-merge March 24, 2025 23:29
@kriskowal kriskowal merged commit f27ab4d into master Mar 24, 2025
16 checks passed
@kriskowal kriskowal deleted the release-2025-03-20-01-10-10 branch March 24, 2025 23:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants