Skip to content

TSC meeting notes

Wang Xin edited this page Sep 1, 2023 · 10 revisions

WAMR TSC Meeting 2023-08-29 9:00 AM (UTC)

Agenda:

This time we will be focused on the topic of moving WASI to component model: https://github.com/WebAssembly/WASI/pull/549

Meeting notes and shared materials


WAMR TSC Meeting 2023-03-21

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

Updates

  1. 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)
  2. Github front page readme update and new blogs:

Opens

  1. 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
  2. checkpoint-restore proposal link

Exception handling status (Chris)

  • 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

GPIO/SPI WASI API

  • 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.

TS2Wasm status (Not talked due to time constraints)

WAMR TSC Meeting 2023-01-17

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)

WAMR community 2022 achievements:

  • 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

The 2023 roadmap:

  • 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.

3rd party performance evaluation and usability improvement

  • 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
  • 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

Discussions

  • 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.
    • Bugfix process: How to help easily watch the bug type issues? Maybe use a label
  • 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

WAMR TSC Meeting 2022/12/1

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)

Topic collection

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

2021-07-30

Agenda

  • 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

Meeting time and bridge

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.

Meeting notes

  • PTSC Chair election
  • 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
  • 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