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

Show wasm proposals status during compilation and execution #3989

Draft
wants to merge 2 commits into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
155 changes: 108 additions & 47 deletions build-scripts/config_common.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -162,16 +162,61 @@ if (WAMR_BUILD_LINUX_PERF EQUAL 1)
endif ()
endif ()

########################################
# Default values
########################################
if (NOT DEFINED WAMR_BUILD_BULK_MEMORY)
set (WAMR_BUILD_BULK_MEMORY 1)
endif ()

if (NOT DEFINED WAMR_BUILD_EXCE_HANDLING)
set (WAMR_BUILD_EXCE_HANDLING 0)
endif ()

if (NOT DEFINED WAMR_BUILD_GC)
set (WAMR_BUILD_GC 0)
endif ()

if (NOT DEFINED WAMR_BUILD_MEMORY64)
set (WAMR_BUILD_MEMORY64 0)
endif ()

if (NOT DEFINED WAMR_BUILD_MULTI_MEMORY)
set (WAMR_BUILD_MULTI_MEMORY 0)
endif ()

if (NOT DEFINED WAMR_BUILD_SHARED_MEMORY)
set(WAMR_BUILD_SHARED_MEMORY 0)
endif ()

if (NOT DEFINED WAMR_BUILD_STRINGREF)
set(WAMR_BUILD_STRINGREF 0)
endif ()

if (NOT DEFINED WAMR_BUILD_TAIL_CALL)
set (WAMR_BUILD_TAIL_CALL 0)
endif ()

########################################
# Compilation options to marco
########################################

message ("-- Build Configurations:")
message (" Build as target ${WAMR_BUILD_TARGET}")
message (" CMAKE_BUILD_TYPE " ${CMAKE_BUILD_TYPE})
################## running mode ##################
if (WAMR_BUILD_INTERP EQUAL 1)
message (" WAMR Interpreter enabled")
else ()
message (" WAMR Interpreter disabled")
endif ()
if ((WAMR_BUILD_FAST_INTERP EQUAL 1) AND (WAMR_BUILD_INTERP EQUAL 1))
add_definitions (-DWASM_ENABLE_FAST_INTERP=1)
message (" Fast interpreter enabled")
else ()
add_definitions (-DWASM_ENABLE_FAST_INTERP=0)
message (" Fast interpreter disabled")
endif ()
if (WAMR_BUILD_AOT EQUAL 1)
message (" WAMR AOT enabled")
else ()
Expand Down Expand Up @@ -202,6 +247,16 @@ if (WAMR_BUILD_FAST_JIT EQUAL 1 AND WAMR_BUILD_JIT EQUAL 1
AND WAMR_BUILD_LAZY_JIT EQUAL 1)
message (" Multi-tier JIT enabled")
endif ()
################## test modes ##################
if (WAMR_BUILD_SPEC_TEST EQUAL 1)
add_definitions (-DWASM_ENABLE_SPEC_TEST=1)
message (" spec test compatible mode is on")
endif ()
if (WAMR_BUILD_WASI_TEST EQUAL 1)
add_definitions (-DWASM_ENABLE_WASI_TEST=1)
message (" wasi test compatible mode is on")
endif ()
################## native ##################
if (WAMR_BUILD_LIBC_BUILTIN EQUAL 1)
message (" Libc builtin enabled")
else ()
Expand All @@ -214,38 +269,36 @@ elseif (WAMR_BUILD_LIBC_WASI EQUAL 1)
else ()
message (" Libc WASI disabled")
endif ()
if ((WAMR_BUILD_FAST_INTERP EQUAL 1) AND (WAMR_BUILD_INTERP EQUAL 1))
add_definitions (-DWASM_ENABLE_FAST_INTERP=1)
message (" Fast interpreter enabled")
else ()
add_definitions (-DWASM_ENABLE_FAST_INTERP=0)
message (" Fast interpreter disabled")
if (WAMR_BUILD_THREAD_MGR EQUAL 1)
message (" Thread manager enabled")
endif ()
if (WAMR_BUILD_LIB_PTHREAD EQUAL 1)
message (" Lib pthread enabled")
endif ()
if (WAMR_BUILD_LIB_PTHREAD_SEMAPHORE EQUAL 1)
message (" Lib pthread semaphore enabled")
endif ()
if (WAMR_BUILD_LIB_WASI_THREADS EQUAL 1)
message (" Lib wasi-threads enabled")
endif ()
if (WAMR_BUILD_LIBC_EMCC EQUAL 1)
message (" Libc emcc enabled")
endif ()
if (WAMR_BUILD_LIB_RATS EQUAL 1)
message (" Lib rats enabled")
endif()
################## WAMR features ##################
if (WAMR_BUILD_MULTI_MODULE EQUAL 1)
add_definitions (-DWASM_ENABLE_MULTI_MODULE=1)
message (" Multiple modules enabled")
else ()
add_definitions (-DWASM_ENABLE_MULTI_MODULE=0)
message (" Multiple modules disabled")
endif ()
if (WAMR_BUILD_SPEC_TEST EQUAL 1)
add_definitions (-DWASM_ENABLE_SPEC_TEST=1)
message (" spec test compatible mode is on")
endif ()
if (WAMR_BUILD_WASI_TEST EQUAL 1)
add_definitions (-DWASM_ENABLE_WASI_TEST=1)
message (" wasi test compatible mode is on")
endif ()
if (NOT DEFINED WAMR_BUILD_BULK_MEMORY)
# Enable bulk memory by default
set (WAMR_BUILD_BULK_MEMORY 1)
endif ()
if (WAMR_BUILD_BULK_MEMORY EQUAL 1)
add_definitions (-DWASM_ENABLE_BULK_MEMORY=1)
message (" Bulk memory feature enabled")
else ()
add_definitions (-DWASM_ENABLE_BULK_MEMORY=0)
message (" Bulk memory feature disabled")
endif ()
if (WAMR_BUILD_SHARED_MEMORY EQUAL 1)
add_definitions (-DWASM_ENABLE_SHARED_MEMORY=1)
Expand All @@ -265,31 +318,11 @@ if (WAMR_BUILD_MEMORY64 EQUAL 1)
endif()
add_definitions (-DWASM_ENABLE_MEMORY64=1)
set (WAMR_DISABLE_HW_BOUND_CHECK 1)
message (" Memory64 memory enabled")
endif ()
if (WAMR_BUILD_MULTI_MEMORY EQUAL 1)
add_definitions (-DWASM_ENABLE_MULTI_MEMORY=1)
message (" Multi memory enabled")
set (WAMR_BUILD_DEBUG_INTERP 0)
endif ()
if (WAMR_BUILD_THREAD_MGR EQUAL 1)
message (" Thread manager enabled")
endif ()
if (WAMR_BUILD_LIB_PTHREAD EQUAL 1)
message (" Lib pthread enabled")
endif ()
if (WAMR_BUILD_LIB_PTHREAD_SEMAPHORE EQUAL 1)
message (" Lib pthread semaphore enabled")
endif ()
if (WAMR_BUILD_LIB_WASI_THREADS EQUAL 1)
message (" Lib wasi-threads enabled")
endif ()
if (WAMR_BUILD_LIBC_EMCC EQUAL 1)
message (" Libc emcc enabled")
endif ()
if (WAMR_BUILD_LIB_RATS EQUAL 1)
message (" Lib rats enabled")
endif()
if (WAMR_BUILD_MINI_LOADER EQUAL 1)
add_definitions (-DWASM_ENABLE_MINI_LOADER=1)
message (" WASM mini loader enabled")
Expand Down Expand Up @@ -319,7 +352,6 @@ endif ()
if (WAMR_BUILD_SIMD EQUAL 1)
if (NOT WAMR_BUILD_TARGET MATCHES "RISCV64.*")
add_definitions (-DWASM_ENABLE_SIMD=1)
message (" SIMD enabled")
else ()
message (" SIMD disabled due to not supported on target RISCV64")
endif ()
Expand Down Expand Up @@ -349,16 +381,11 @@ if (WAMR_BUILD_DUMP_CALL_STACK EQUAL 1)
endif ()
if (WAMR_BUILD_TAIL_CALL EQUAL 1)
add_definitions (-DWASM_ENABLE_TAIL_CALL=1)
message (" Tail call enabled")
endif ()
if (WAMR_BUILD_REF_TYPES EQUAL 1)
add_definitions (-DWASM_ENABLE_REF_TYPES=1)
message (" Reference types enabled")
else ()
message (" Reference types disabled")
endif ()
if (WAMR_BUILD_GC EQUAL 1)
message (" GC enabled")
if (WAMR_TEST_GC EQUAL 1)
message(" GC testing enabled")
endif()
Expand All @@ -370,7 +397,6 @@ else ()
message (" GC performance profiling disabled")
endif ()
if (WAMR_BUILD_STRINGREF EQUAL 1)
message (" Stringref enabled")
if (NOT DEFINED WAMR_STRINGREF_IMPL_SOURCE)
message (" Using WAMR builtin implementation for stringref")
else ()
Expand Down Expand Up @@ -599,3 +625,38 @@ endif()
if (NOT WAMR_BUILD_SANITIZER STREQUAL "")
message (" Sanitizer ${WAMR_BUILD_SANITIZER} enabled")
endif ()

########################################
# Show Phase4 Wasm proposals status.
########################################

message (
"------------------------------------------------------------\n"
"Phase4 Wasm Proposals:\n"
" Always-on:\n"
" Extended Constant Expressions\n"
" Multi-value\n"
" Non-trapping float-to-int conversions\n"
" Sign-extension operators\n"
" WebAssembly C and C++ API\n"
" Configurable(0 is OFF. 1 is ON):\n"
" Bulk Memory Operation: ${WAMR_BUILD_BULK_MEMORY}\n"
" Fixed-width SIMD: ${WAMR_BUILD_SIMD}\n"
" Garbage collection: ${WAMR_BUILD_GC}\n"
" Legacy Exception handling: ${WAMR_BUILD_EXCE_HANDLING}\n"
" Memory64: ${WAMR_BUILD_MEMORY64}\n"
" Multiple memories: ${WAMR_BUILD_MULTI_MEMORY}\n"
" Reference Types: ${WAMR_BUILD_REF_TYPES}\n"
" Reference-Typed Strings: ${WAMR_BUILD_STRINGREF}\n"
" Tail call: ${WAMR_BUILD_TAIL_CALL}\n"
" Thread: ${WAMR_BUILD_SHARED_MEMORY}\n"
" Typed Function References: ${WAMR_BUILD_GC}\n"
" Unsupported:\n"
" Branch Hinting\n"
" Custom Annotation Syntax in the Text Format\n"
" Exception handling\n"
" Import/Export of Mutable Globals\n"
" JS String Builtins\n"
" Relaxed SIMD\n"
"------------------------------------------------------------\n"
)
37 changes: 37 additions & 0 deletions product-mini/platforms/common/wasm_proposal.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
/*
* Copyright (C) 2023 Amazon.com Inc. or its affiliates. All rights reserved.
* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
*/

#include <stdio.h>

void
wasm_proposal_print_status(void)
{
printf("Phase4 Wasm Proposals Status:\n");
printf(" Always-on:\n");
printf(" - Extended Constant Expressions\n");
printf(" - Multi-value\n");
printf(" - Non-trapping float-to-int conversions\n");
printf(" - Sign-extension operators\n");
printf(" - WebAssembly C and C++ API\n");
printf(" Configurable:\n");
printf(" - Bulk Memory Operation: %u\n", WASM_ENABLE_BULK_MEMORY);
printf(" - Fixed-Width SIMD: %u\n", WASM_ENABLE_SIMD);
printf(" - Garbage Collection: %u\n", WASM_ENABLE_GC);
printf(" - Legacy Exception Handling: %u\n", WASM_ENABLE_EXCE_HANDLING);
printf(" - Memory64: %u\n", WASM_ENABLE_MEMORY64);
printf(" - Multiple Memory: %u\n", WASM_ENABLE_MULTI_MEMORY);
printf(" - Reference Types: %u\n", WASM_ENABLE_REF_TYPES);
printf(" - Reference-Typed Strings: %u\n", WASM_ENABLE_REF_TYPES);
printf(" - Tail Call: %u\n", WASM_ENABLE_TAIL_CALL);
printf(" - Threads: %u\n", WASM_ENABLE_SHARED_MEMORY);
printf(" - Typed Function References: %u\n", WASM_ENABLE_GC);
printf(" Unsupported:\n");
printf(" - Branch Hinting\n");
printf(" - Custom Annotation Syntax in the Text Format\n");
printf(" - Exception handling\n");
printf(" - Import/Export of Mutable Globals\n");
printf(" - JS String Builtins\n");
printf(" - Relaxed SIMD\n");
}
12 changes: 12 additions & 0 deletions product-mini/platforms/common/wasm_proposal.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
/*
* Copyright (C) 2023 Amazon.com Inc. or its affiliates. All rights reserved.
* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
*/

#ifndef _WASM_PROPOSAL_H_
#define _WASM_PROPOSAL_H_

void
wasm_proposal_print_status(void);

#endif /* _WASM_PROPOSAL_H_ */
4 changes: 4 additions & 0 deletions product-mini/platforms/posix/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@
#include "../common/libc_wasi.c"
#endif

#include "../common/wasm_proposal.c"

#if BH_HAS_DLFCN
#include <dlfcn.h>
#endif
Expand Down Expand Up @@ -798,6 +800,8 @@ main(int argc, char *argv[])
wasm_runtime_get_version(&major, &minor, &patch);
printf("iwasm %" PRIu32 ".%" PRIu32 ".%" PRIu32 "\n", major, minor,
patch);
printf("\n");
wasm_proposal_print_status();
return 0;
}
else {
Expand Down
Loading