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

xsnap release build has mxDebug #2216

Closed
dckc opened this issue Jan 19, 2021 · 2 comments · Fixed by #2225
Closed

xsnap release build has mxDebug #2216

dckc opened this issue Jan 19, 2021 · 2 comments · Fixed by #2225
Assignees
Labels
bug Something isn't working

Comments

@dckc
Copy link
Member

dckc commented Jan 19, 2021

Describe the bug

The XS SDK has 2 GOALs in their makefiles: release and debug. Normally, only the debug build does stuff like print each exception. But the xsnap makefiles define mxDebug=1 even for release builds.

I don't think we want this.

@kriskowal @warner thoughts?

@dckc dckc added the bug Something isn't working label Jan 19, 2021
@dckc dckc self-assigned this Jan 19, 2021
@kriskowal
Copy link
Member

Seems like a bug to me.

dckc added a commit to dckc/agoric-sdk that referenced this issue Jan 20, 2021
fixes Agoric#2216

only tested on lin, not mac nor win
dckc added a commit to dckc/agoric-sdk that referenced this issue Jan 21, 2021
fixes Agoric#2216

only tested on lin, not mac nor win
dckc added a commit to dckc/agoric-sdk that referenced this issue Jan 21, 2021
fixes Agoric#2216

only tested on lin, not mac nor win
dckc added a commit to dckc/agoric-sdk that referenced this issue Jan 23, 2021
fixes Agoric#2216

only tested on lin, not mac nor win
dckc added a commit to dckc/agoric-sdk that referenced this issue Jan 23, 2021
fixes Agoric#2216

only tested on lin, not mac nor win
dckc added a commit to dckc/agoric-sdk that referenced this issue Jan 23, 2021
fixes Agoric#2216

only tested on lin, not mac nor win
dckc added a commit to dckc/agoric-sdk that referenced this issue Jan 24, 2021
fixes Agoric#2216

only tested on lin, not mac nor win
dckc added a commit that referenced this issue Jan 24, 2021
* feat(xsnap): setImmediate and print

In addition to detecting XS Machine quiescense so we can safely take
snapshots, the supervisor has to detect vat queiscense so it can tell
when a delivery is done.

I have resorted to ad-hoc `fprintf()` at the C level for debugging
enough to justify restoring print. Here we test that it's only
available in the start compartment.

note print() includes fflush()

* build(xsnap): don't set mxDebug in release builds

fixes #2216

only tested on lin, not mac nor win

* build(xsnap): build GOAL=debug too

* fix(xsnap): don't swallow error message

* feat(xsnap): return data from xsnap.evaluate()

Using the .result property of a mutable object rather than
the resolution of a promise is a little awkward, but it seems to work.

* chore(xs-vat-worker): prune obsolete dependencies

* build(xs-vat-worker): moddable submodule is obsolete

* style(xs-vat-worker): use canonical @Agoric style

* feat(xs-vat-worker): TextDecoder, HandledPromise before lockdown

* refactor(SwingSet): unify vat-worker filenames

fixes #2202

* feat(swingset): xsnap vat manager

 - build xsnap bootstrap bundles
 - bytes to tagged array and back
 - setBundle,  importBundle
 - syscall
 - delivery success symbol is ok, not deliverDone
 - Use Tagged type consistently;
   don't constrain tag to be string.
 - clean up logging: use parentLog(), trace(), ...
 - static typing for doProcess: capture dispatch while
   it's known to be not null
 - silence parentLog, workerLog for xsnap
 - no, handleSyscall doesn't return Tagged
 - inherit stdout, stderr in xsnap
 - vatid arg on doNotify is no more

* fix: crank 1 comment in vat-target.js

* fix: supply groupCollapsed etc. in console-shim for SES

* fix(xsnap): handle edge cases in sending replies to e, ?

* refactor: avoid 2nd round trip to xsnap

  - manager: prune commandResult
  - supervisor: factor out "transport" logic as `ManagerPort`,
    separate from vat-worker `makeWorker()`
    - ManagerPort.handler provides `{ result?: ArrayBuffer }` idiom
      based on Promise<Tagged>
    - testLog uses ManagerPort.send
  - clean up redundant 'ok' tag in doMessage, doNotify
  - refactor: tagged -> item for consistency

* feat(xsnap worker): pass console log messages to manager

 - prune 'starting xsnap' log msg (per code review)
 - handle rejection in ManagerPort.handler

* fix(xsnap): build args

* refactor(xsnap): fold in what's left of xs-vat-worker

  - prune obsolete locate.js

* chore(xsnap): move lockdown-shim out of src/ to avoid tsc errors

move lockdown-shim.js and the rest of the SES bootstrap files from
src/ to lib/ to avoid many tsc errors of the form...

```
Error: ../../node_modules/ses/src/error/assert.js(24,20): error TS2304: Cannot find name 'StringablePayload'.
```

* docs(xsnap): document XS handleCommand async idiom

* refactor: build XS bundles with Kernel bundles

* fix(xsnap worker): update syscall API to use .resolve()

* chore(xsnap): provide non-trivial console in start compartment

add TODO re other console methods with pointer to
#2146
@dckc
Copy link
Member Author

dckc commented Mar 29, 2023

p.s. for more on mxDebug, see

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants