-
Notifications
You must be signed in to change notification settings - Fork 628
TSC meeting notes
Wang Xin edited this page Sep 1, 2023
·
10 revisions
This time we will be focused on the topic of moving WASI to component model: https://github.com/WebAssembly/WASI/pull/549
- https://github.com/bytecodealliance/meetings/blob/main/wamr/2023/wamr-08-29.md
Attendees:
- Xu, Jun/Wang, Xin/Huang, Wenyong/He, Liang - Intel
- Trenner, Thomas/Ermler, Rene/Woods, Chris - Siemens
- Emiel Van Severen
- Maricin - Amzaon
- Dongsheng Yan - Sony
- The recent feature development progress and release 1.2.0 plan (wenyong)
- Multi-tier JIT and running modes control
- Tier up from Fast JIT to LLVM JIT
- Set running mode for runtime, wasm module instance and iwasm
- Upgrade toolkits’ version
- llvm-15.0, wasi-sdk-19.0, emsdk-3.1.28, wabt 1.0.31 and so on
- GC refactoring for interpreter mode (branch dev/gc_refactor)
- wasi-threads support
- ts2wasm compiler (branch ts2wasm_experiment)
- Fast JIT multi-threading support
- Python binding for WAMR APIs (wasm_export.h)
- Multi-tier JIT and running modes control
- Github front page readme update and new blogs:
- Wenyong: in last TSC meeting we mentioned to split the repo and move some components out, how about migrating core/app-mgr and core/app-framework to other repo first? e.g. bytecodealliance/wamr-iot?
- good idea. Get a few more name candidates.
- Need to move some samples (simple, lvgl) as well
- checkpoint-restore proposal link
- WebAssembly set exceptions don't look like C++ or Java. Exceptions are different, but when you throw an exception, you throw a list of parameters and that's what's specified in the tag.
- The current API structure uses exception to mean runtime exception. Some potential for confusion and the naming and how we call things, but, at least, for the initial version we wanna focus on making sure we get the bytecode with the exception supported
- When you rethrow an exception, you rethrow with a relative marker. So in the specifications and there is a potential that could be wrong and the same with delegates. So we would mark those as and check that those are valid and if they're not then that would be essentially a bad operand to an instruction and we would report it with this string that we returned from runtime get an exception
- Error information can be passed in a variable list length and type list of arguments
-
https://github.com/WebAssembly/meetings/blob/main/wasi/2023/WASI-03-09.md
-
Emiel Van Severen:
- Make application platform agnostic. Maybe similar to how the Android app uses the manifest to fit different devices.
- what kind of requirements do we want to define in components? So these are the initial points I went to work on. Create a mail loop for offline discussion.
- Idea comes from the embedded world within rust. Different hardware abstraction layers for different underlying architectures. And my idea is basically to have different or to create on the native level different halls which implement these interfaces
-
Jun Xu: Intel sharing - GPIO API in an internal product, Peripheral interface in WebAssembly.pptx
- we have some internal product that uses Zephyr, a Realtime OS. and there is a requirement that the applications running inside the Wasm runtime need to access the peripherals like GPI, GPI and timers.
- SIG-TypeScript-Compilation proposal:https://github.com/bytecodealliance/governance/pull/28
- Open sourced the PoC in the https://github.com/bytecodealliance/wasm-micro-runtime/tree/ts2wasm_experiment
- Technical intro (if time permits)
Attendees:
- Xu, Jun1/He, Liang/Wang, Xin/Huang, Wenyong (Intel)
- Kolny, Marcin (Amazon)
- Takashi Yamamoto (Midokura)
- huang, Qi/Xiao Xiang (Xiaomi)
- Yan, Dongsheng (Sony)
- Trenner, Thomas/Ermler, Rene (Siemens)
- Yao Zhongxiao (ByteDance)
- Fast JIT
- Fast JIT to LLVM JIT tier up
- GC early proposal on the interpreter (broken now)
- Enhanced source debugger & VSCode extension
- Bindings for Python and Go
- SGX remote attestation, IPFS (Intel protected file system)
- Socket API, wasi-nn, wasi-thread (WIP)
- Nuttx system support for x86, riscv, xtensa, arm
- Improved AoT solution for esp32
- Envoy proxy new architecture support
- Continue the performance improvement
- GC latest proposal on interpreter and JIT
- Support exception feature
- Fast JIT SIMD support
- TypeScript to WebAssembly PoC
- Component model (TBD)
- Wanted
- Debugging support for multi-threading
- Open
- Fast JIT support on ARM? Not yet, call helps from the community.
- Siemens plans to publish the benchmark for WebAssembly.
- WAMR leads the most benchmarks in Frank Dennis's report: https://00f.net/2023/01/04/webassembly-benchmark-2023/
- Good feedback for usability improvement:
- Many compilation options
- Many components in one repo (iwasm vm-core, IDE integration, an “application framework library”, remote management, an SDK)
- Many tuning parameters, memory profiling as an example
- Improvements in progress
- Gitbook
- Blog Website with usages and events
- WAMR Binary release
- Enhancing the execution mode selection for instances (https://github.com/bytecodealliance/wasm-micro-runtime/issues/1842)
- More improvement ideas
- split the repo and move some components out
- Be careful, open an issue to collect community feedback
- Improving repo documents, Gitbook and Website, and more content. Marcin can help. Jun to connect Marcin on this.
- Enhancing compilation experience, maybe some mega policy for a combination of flags
- split the repo and move some components out
- Marcin Kolny:
- Walkthrough internal Intel process for validating the release - we briefly discussed it in the next meeting - could somebody from Intel walk us through the testing methodology, so we can discuss if some of the things could be moved to public and possibly off-load Intel's team?
- Jun Xu will present the WAMR current quality infrastructure and process
- Marcin:What can be moved to the public? Can provide some quality indicators in the github? Like coverage.
- Jun Xu will present the WAMR current quality infrastructure and process
- Bugfix process: How to help easily watch the bug type issues? Maybe use a label
- Walkthrough internal Intel process for validating the release - we briefly discussed it in the next meeting - could somebody from Intel walk us through the testing methodology, so we can discuss if some of the things could be moved to public and possibly off-load Intel's team?
- Dongsheng Yan: In some cases for IoT devices, the app heap memory is not enough, the high memory can enlarge the heap size that app can use if the platform could support it. Noticed that the wamr can support an external memory allocator, of which high memory can be one. However, the high memory is a valuable and scant resource that would be mapped only when the app is loaded and unmapped after use, thus at the key point of the program running lifetime, the system should call some hook functions to do some work like memory mapping/unmapping. we hope wamr can support such kind of hook functions like onStart, onStop before and after the app running, from where the embedder can do something affecting the system like a high memory map.
- To follow up offline
Attendees:
- Wang, Xin (Intel)
- Huang, Wenyong (Intel)
- Xu, Jun1 (Intel)
- He, Liang (Intel)
- Kolny, Marcin (Amazon)
- Takashi Yamamoto (Midokura)
- huang, Qi (Xiaomi)
- Yan, Dongsheng (Sony)
- Tang Wei (Ant)
- Trenner, Thomas (Siemens)
- Ermler, Rene (Siemens)
Self-introduction
Xin (Intel)
- Intel team 2023 focus
- performance
- GC support
- Component model
- Developer tooling (emcc advisor, TS2Wasm..)
- Trusted Execution Environment(TEE) like SGX/TDX use cases
- Discuss TSC meeting cadence
- start with monthly, and adjust if needed.
Marcin(Amazon):
- roadmap transparency - how do we make sure the community knows what is already planned, how can they possibly get involved etc.
- one good example I can think of is the gitbook: it'd be great to know what are the plans for it, how community can contribute, is there opportunity for brainstorming etc.
- workstream for removing singleton/global objects and introduce a concept of contexts so it's possible to embed multiple VM instances into the process
- Debugging AOT is something we at Amazon will be probably looking into Q1 next year
Wenyong (Intel):
- When to release the next version, what is the version number, and whether to merge Multi-tier JIT in this version or to merge it in next version? For example, release 1.1.2 and then merge Multi-tier JIT, or merge Multi-tier JIT and release 1.2.0 directly?
- Can each company share its roadmap? e.g. Source debugger enhancements, integration of perf tool and so on..
Dongsheng (Sony):
- introduce who we are(in 20221118_newsweek.pdf), and present SSS-Agenda-for-WAMR-TSC.pdf for our concerns and roadmap.
- Marcin: the recent WASI talk about accessing HW.
Yamt (Midokura):
- how do you evaluate startup time for fast-jit? any tools available?
- Normally we calculate it from the time iwasm started to the time the first wasm function executed: print the time at the beginning of iwasm main function, and print the time at the beginning of the wasm app's main function
Thomas and Rene (Siemens):
- Plan to implement exception feature.
Thomas (Siemens) and Jun (Intel):
- Debugging support for multiple threads
- runtime launch multiple wasm app instances in multiple threads, and launch multiple lldb to debug each of the wasm instances ---- this is OK
- runtime launch one wasm app instance, this app use pthread API to spawn several child-threads, and launch one lldb to debug the multithread wasm app ---- this will not work for now
- The main problem is that the current lldb doesn't hold the thread id for every spawned instance, it will always use the same thread id to get stack frame information, so the debugger will display the wrong data
- PTSC Chair election
- Nominate no1wudi from Xiaomi Corp to TSC member
- PTSC Meeting cadence and time discussion
- Communication setup (Zulip,TSC email address,blogs)
- Approving code commit practice
- Open
Location/Local Time/Time Zone/UTC Offset
- Beijing (Chna - Beijing), Friday July 30, 2021 at 8:00:00 am, CST, UTC+8 hours
- Portland (USA - Oregon), Thursday July 29, 2021 at 5:00:00 pm, PDT, UTC-7 hours
- Corresponding UTC (GMT), Friday July 30, 2021 at 00:00:00
This meeting is open to everyone who is interested. Please send email to [email protected] for the bridge info.
- PTSC Chair election
- xwang98 ([email protected]), 5 votes
- Nominate no1wudi from Xiaomi Corp to TSC member
- no1wudi has submitted 20 patches, including ricsv AoT support, Nutx OS support. XIP for AoT is WIP
- Future focuses: Wasm for IoT, TEE
- Votes: 5, pass
- PTSC Meeting cadence and time discussion
- Bi-weekly, two timeslots - one for PRC/Europe audience and one for US/PRC audience
- Communication setup
- discussion board: https://bytecodealliance.zulipchat.com/#narrow/stream/290350-wamr
- no need for public contact mailbox for now
- use BA blog
- Approving code commit practice
- Wenyong is the approver for now, eventually, we will use the code owner model
- Wenyong will assign other TSC members to review a patch if needed
- Source debugging feature - Tang wei
- Rebase and validation is WIP
- Roadmap
- GC: under reading spec, one meeting a week. please send email to xwang98 if you want to join the discussion
- Type import/type function reference:
- Java support
- multiple modules
- wasi-nn
- Optimizations
- performance
- compilation time, lazy compile, parallel compilation
WebAssembly Micro Runtime