Commit Graph

1400 Commits

Author SHA1 Message Date
Javan
f2a63d8623
Fix aot bh_assert failed issue on darwin platform x86_64 target (#476) (#488)
Modify the macro control sentences as darwin platform doesn't support mmap with MAP_32BIT flag to put the mapping address into 0-2G range.

Co-authored-by: Wenyong Huang <wenyong.huang@intel.com>
2020-12-30 21:01:36 +08:00
Xiaokang Qin
6c967b71f1
Fix two issues for wasm-c-api (#487)
Fix incorrect func_type unpacking for results
Fix crash for multiple instance usage due to wrong size provided

Signed-off-by: Kanghua Yu <kanghua.ykh@antgroup.com>
Signed-off-by: Xiaokang Qin <xiaokang.qxk@antgroup.com>

Co-authored-by: Kanghua Yu <kanghua.ykh@antgroup.com>
2020-12-30 13:37:19 +08:00
Wenyong Huang
365ec6360b
Update build scripts and documents of workload samples for wasi-sdk-12.0 (#484)
Update the build scripts of sample workloads (meshoptimizer/bwa/wasm-av1) to use the wasi-sdk-12.0 firstly to build the workload and discard clang-11, as wasi-sdk-12 supports wasi, simd and pthread better. And update the related documents.
Also modify wasm mini loader to sync up with the change of wasm normal loader.

Signed-off-by: Wenyong Huang <wenyong.huang@intel.com>
2020-12-29 14:41:09 +08:00
Wenyong Huang
724858c731
Update wasm app build scripts for wasi-sdk-12 and refine interpreter (#481)
Update wasm app build scripts for wasi-sdk-12.0: add --export=__main_argc_argv, remove --no-threads
Lookup function with name "__main_argc_argv" as main function besides "main"
Change module_malloc to runtime_malloc in wasi native lib
Refine classic interpreter op_block and op_br_table
Refine faster interpreter op_br_table

Signed-off-by: Wenyong Huang <wenyong.huang@intel.com>
2020-12-28 10:46:31 +08:00
Max Desiatov
50f9a3e340
NFC: fix typo in invokeNative_aarch64.s comment (#479)
`inteter` -> `integer`
2020-12-26 09:45:11 +08:00
Yuta Saito
cb0e593c15
Remove debris tlsf in git repo (#475) 2020-12-21 18:24:14 +08:00
Wenyong Huang
adb05ea719
Enable SIMD support for Linux SGX platform (#474) 2020-12-21 15:17:36 +08:00
Yuta Saito
a2294877f5
Fix struct stat fields for darwin (#473)
Darwin doesn't support POSIX compatible stat fields when -fmodule
2020-12-21 10:56:33 +08:00
Wenyong Huang
ad35c3c21b
Implement SIMD float ceil/floor/trunc/nearest opcodes (#472)
Implement SIMD f32x4/f64x2 ceil/floor/trunc/nearest opcodes

Signed-off-by: Wenyong Huang <wenyong.huang@intel.com>
2020-12-16 15:33:25 +08:00
Wenyong Huang
16e6f41b3a
Fix wamr compiler issues and refine some error messages (#470)
Fix potential memory leak issue when using llvm::EngineBuilder().selectTarget()
Fix issue of accessing aot_value's fields after it is freed
Fix JIT not print failed to link import warning
Change some error messages: 'fail to' to 'failed to'
Update error message when SIMD isn't enabled
Fix install littlevgl wasm app of wasi version failed

Signed-off-by: Wenyong Huang <wenyong.huang@intel.com>
2020-12-15 13:05:39 +08:00
Huang Qi
b75224ce03
Using posix thread implementation for NuttX (#462)
Signed-off-by: Huang Qi <huangqi3@xiaomi.com>

Co-authored-by: Huang Qi <huangqi3@xiaomi.com>
2020-12-07 21:15:41 +08:00
Wenyong Huang
388530c738
Modify os_cond_reltimedwait to support long time wait (#461)
Modify the argument of os_cond_reltimedwait to uint64 type to support long time wait, and handle possible integer overflow.
2020-12-07 17:37:53 +08:00
Xu Jun
a84d51271c
Support AssemblyScript's new/retain/release APIs (#460) 2020-12-07 16:37:49 +08:00
Wenyong Huang
5176fe2595
Fix timer setTimeout issue and some coding style issues (#459) 2020-12-04 18:07:52 +08:00
Wenyong Huang
2f530e67fc
Fix app manager install atomics app issue and optimize workload scripts (#458) 2020-12-04 15:35:45 +08:00
sophy228
c8b0a1cee1
Fix some issues for Arm platform. (#457)
Motivation:
we found some issues during enable the WAMR on arm devices, such as relocation issues, stack alignment issues.

Proposed change:
We optimized the relocation process for arm platform, for relocation jump table, the SP should be aligned to 16 bytes. And we also make "getentropy" worked for other non-supported platform.
2020-12-02 10:22:55 +08:00
Wenyong Huang
591e4ce536
Refine aot exception throw, remove unnecessary labels (#456) 2020-11-30 17:57:22 +08:00
Wenyong Huang
0700dc9cd4
Fix wasi ctx memory free issue when app heap is corrupted (#455) 2020-11-30 17:00:53 +08:00
Wenyong Huang
282831eba5
Fix some compilation warnings and add esp-idf platform for experiment (#454)
And fix some code indent issues.
2020-11-30 16:03:51 +08:00
Karl Fessel
7d8b79a7a7
Addapt to RIOT changes (#452)
RIOT removed kernel_types.h in favor of sched.h
2020-11-27 09:10:00 +08:00
Wenyong Huang
0359805c82
Import FreeRTOS platform experiment codes for further development (#451) 2020-11-26 19:10:05 +08:00
Wenyong Huang
74be7a0b7c
Add more checks to enhance security (#446)
add more checks to enhance security
clear "wasi proc exit" exception before return to caller in wasm/aot call functions
fix memory profiling issue
change movdqa to movdqu in simd invokeNative asm codes to fix issue of unaligned address access
move setjmp/longjmp from libc-builtin to libc-emcc
fix zephyr platform compilation issue in latest zephyr version
2020-11-24 14:00:09 +08:00
Wenyong Huang
f4770ae8c8
Add more llvm optimization passes (#445)
Add more llvm optimization passes to improve AOT/JIT performance
2020-11-23 10:48:22 +08:00
Wenyong Huang
892af84161
Update sample workload wasm-av1 and add workload XNNPACK (#443) 2020-11-13 17:53:23 +08:00
Wenyong Huang
a3074df21b
Import SIMD feature and add some workload samples (#438) 2020-11-05 18:15:15 +08:00
Wenyong Huang
667282eea9
Implement stat and getentropy for sgx with ocall to run tensorflow (#436) 2020-10-30 12:36:00 +08:00
Wang Ning
c9c882e43d
Fix compilation error for sgxsdk-2.11 (#431)
sgxsdk-2.11 enable pthread_rwlock APIs support, and causes compilation
error. We use macro SGX_THREAD_LOCK_INITIALIZER to control it.
2020-10-23 18:16:56 +08:00
Wenyong Huang
91b9458ebd
Add more checks to enhance app heap's security (#428) 2020-10-22 18:52:33 +08:00
Wang Ning
c515fb1b75
Add tensorflow sample under samples/workload/tensorflow (#427) 2020-10-22 16:18:37 +08:00
lum1n0us
4787b150b8
Enable multi-module support for wasm-c-api (#426)
it is allowed that all imported functions and globals can be
linked by multi-module feature automatically or by wasm-c-api manually
2020-10-16 17:43:57 +08:00
Karl Fessel
f1fe5d7872
add RIOT-OS support to WAMR (#425)
* add RIOT platform

see riot-os.org

* add simple RIOT example
2020-10-16 11:21:53 +08:00
YAMAMOTO Takashi
f7903caa65
wasm_loader_ctx_init: Don't use false as a pointer (#422) 2020-10-13 14:13:30 +08:00
Xu Jun
c87f28eacd
support tail-call in AoT (#419) 2020-10-13 08:34:31 +08:00
Karl Fessel
cc0aab1063
Remove '@' when declare function invokeNative to fix compile error (#417) 2020-10-12 16:52:28 +08:00
Xiaokang Qin
c83a5713f9
Add the fast-interp tail call support (#409)
And also fix one bug in loader for tail-call

Signed-off-by: Xiaokang Qin <xiaokang.qxk@antgroup.com>
2020-09-29 10:35:10 +08:00
Xu Jun
c13746c22c
move memory_data out from MemoryInstance, add call stack (#408) 2020-09-28 18:38:15 +08:00
Huang Qi
0bf7f7310b
Add NULL check for memory inst in aot/wasm module malloc/free (#403)
* Add NULL check for memory page in aot/wasm module malloc/free

Signed-off-by: Huang Qi <huangqi3@xiaomi.com>

* Update aot_runtime.c

* Update wasm_runtime.c

Co-authored-by: Huang Qi <huangqi3@xiaomi.com>
Co-authored-by: Wenyong Huang <wenyong.huang@intel.com>
2020-09-28 12:44:23 +08:00
Xu Jun
4bfcbc2cab
fix problem about local in fast-interp (#406) 2020-09-27 18:05:20 +08:00
Xiaokang Qin
a70daed17d
Add the tail-call feature support for classic-interp (#401)
* Add the tail-call feature support for classic-interp

Signed-off-by: Xiaokang Qin <xiaokang.qxk@antgroup.com>

* add CI for tail call and custom name section

* add CI for tail call and custom name section

* update CI for mac

Co-authored-by: Xu Jun <693788454@qq.com>
2020-09-24 12:38:54 +08:00
Wenyong Huang
a3d374eb57
Fix jit target arch not set issue and custom name section typo issue (#400)
And set target machine's cpu to host cpu when creating JIT execution engine.

Signed-off-by: Wenyong Huang wenyong.huang@intel.com
2020-09-24 11:21:20 +08:00
Huang Qi
b639c3ce61
Use macro instead of enum to define MEM_ALLOCATOR for better compatibility (#399)
Co-authored-by: Huang Qi <huangqi3@xiaomi.com>
2020-09-24 10:48:34 +08:00
Xiaokang Qin
a7e7711f63
Add the support for custom name section (#398)
Add the function name field for internal function struct

Signed-off-by: Zhongmin Wu <vwzm@live.com>
Signed-off-by: Xiaokang Qin <xiaokang.qxk@antgroup.com>

Co-authored-by: Zhongmin Wu <vwzm@live.com>
2020-09-23 16:12:09 +08:00
Huang Qi
a290aaf93e
Fix wasm loader malloc(0) issue which returns NULL is some platforms (#397)
Signed-off-by: Huang Qi <huangqi3@xiaomi.com>

Co-authored-by: Huang Qi <huangqi3@xiaomi.com>
2020-09-23 15:54:22 +08:00
jmpews(AKA.zz)
d8d367b367
Update some assembler directives for darwin target (#395) 2020-09-23 13:10:26 +08:00
Xu Jun
dc4b8c4822
remove errno in wasm_application_execute_func (#396) 2020-09-23 11:50:37 +08:00
Wenyong Huang
e501a6963b
Fix some coding style issues, fix doc typo and refine some codes (#392) 2020-09-20 08:20:45 +08:00
Xiaokang Qin
7c8ccc7c26
Fix the build warnings on Mac (#388)
Signed-off-by: Xiaokang Qin <xiaokang.qxk@antgroup.com>
2020-09-18 18:22:26 +08:00
Xiaokang Qin
2d06567cd1
Reimplement the utf8 string check (#389)
Previous implementation doesn't take care of overlong encoding

Signed-off-by: Xiaokang Qin <xiaokang.qxk@antgroup.com>
2020-09-18 18:06:13 +08:00
Xu Jun
0226dbbb3d
introduce WAMR memory profiling tool (experimental) (#390) 2020-09-18 18:04:56 +08:00
Huang Qi
04a7cc322f
core/shared: Add guard to avoid redefine macro (#386)
Signed-off-by: Huang Qi <huangqi3@xiaomi.com>

Co-authored-by: Huang Qi <huangqi3@xiaomi.com>
2020-09-16 17:53:03 +08:00
Huang Qi
c004b01be3
Introduce support for NuttX RTOS (#377)
Signed-off-by: Huang Qi <huangqi3@xiaomi.com>

Co-authored-by: Huang Qi <huangqi3@xiaomi.com>
2020-09-15 20:56:45 +08:00
Xu Jun
547298d4e7
Add macro to exclude sgx wasi/pthread ocalls if not needed (#384) 2020-09-15 15:49:09 +08:00
Xu Jun
2499e1ec4b
Fix issue and compilation warnings of new function call APIs (#383) 2020-09-14 15:30:42 +08:00
Xiaokang Qin
728890103b
Add the Windows COFF format support for AOT (#382)
Add the Windows COFF format support to wamr-compiler and iwasm can
load and excute it on Windows(X64) platform.

Signed-off-by: Wu Zhongmin <vwzm@live.com>
Signed-off-by: Xiaokang Qin <xiaokang.qxk@antgroup.com>

Co-authored-by: Wu Zhongmin <vwzm@live.com>
2020-09-11 18:32:58 +08:00
Xiaokang Qin
264e189690
Add Windows support for C-API and Runtime API libraries and examples. (#379)
* Add Windows support for C-API and Runtime API libraries and examples.

Signed-off-by: Wu Zhongmin <vwzm@live.com>
Signed-off-by: Xiaokang Qin <xiaokang.qxk@antgroup.com>

* Address the review comments

Signed-off-by: Xiaokang Qin <xiaokang.qxk@antgroup.com>

* Rewrite the the bh_getopt to make it avaliable for more kinds of options

Signed-off-by: Wu Zhongmin <vwzm@live.com>
Signed-off-by: Xiaokang Qin <xiaokang.qxk@antgroup.com>

* Add the license header

Signed-off-by: Xiaokang Qin <xiaokang.qxk@antgroup.com>

Co-authored-by: Zhongmin Wu <vwzm@live.com>
2020-09-11 17:36:04 +08:00
Xiaokang Qin
5418e09712
Add two apis for wasm function call (#375)
Add below two apis:

bool wasm_runtime_call_wasm_a(WASMExecEnv *exec_env,
                                                      WASMFunctionInstanceCommon *function,
                                                      uint32 num_results, wasm_val_t results[],
                                                      uint32 num_args, wasm_val_t args[])

bool wasm_runtime_call_wasm_v(WASMExecEnv *exec_env,
                                                      WASMFunctionInstanceCommon *function,
                                                      uint32 num_results, wasm_val_t results[],
                                                      uint32 num_args, ...)

Signed-off-by: Xiaokang Qin <xiaokang.qxk@antgroup.com>
2020-09-08 13:03:35 +08:00
Xu Jun
2135badc54
fix problem in wasm_module_malloc (#374) 2020-09-07 17:32:00 +08:00
Xu Jun
2e0cef3ef1
fix exec_env not checked issue, export __heap_base and __data_end in sample to decrease memory usage (#371) 2020-09-05 14:48:08 +08:00
Wenyong Huang
c8df3f6eed
Fix app heap migrate issue and aot compilation warning (#368) 2020-09-03 11:16:38 +08:00
Wenyong Huang
034606b0a9
Change wasm app offset type from int32 to uint32 (#361)
And fix some sign/unsigned conversion compilation warnings.
2020-08-26 18:33:29 +08:00
qinxk-inter
049760b849
Fix the build issues on mac for some samples (#358)
Fix the build issues on mac for basic/multi-module/multi-thread/
simple/spawn-thread/wasm-c-api under samples.
And all these samples could be run as expected.

Signed-off-by: Xiaokang Qin <xiaokang.qxk@antgroup.com>
2020-08-21 15:14:04 +08:00
Wenyong Huang
0103f6429c
Refactor error/exception strings to reduce binary size (#359) 2020-08-21 15:11:31 +08:00
Wenyong Huang
89d2937cde
Refactor app heap and memory boundary check, and fix os_printf compilation error (#356)
Insert app heap before __heap_base, or before new page
Fix os_printf compilation error in some platforms
2020-08-20 12:43:12 +08:00
Xu Jun
6b5f376e79
fix issue in mini-loader (#353) 2020-08-14 19:58:19 +08:00
Xu Jun
1266ebb222
fix coding style for windows build patch (#350) 2020-08-13 16:40:19 +08:00
Karl Fessel
874cc951c6
Optimize get_current_target in AOT loader for more archs (#347) 2020-08-13 15:13:45 +08:00
Xu Jun
21efe12505
add win64 support (#348) 2020-08-13 14:41:20 +08:00
Wenyong Huang
8c820730ba
Add cmake variable to set the max app thread stack size (#346) 2020-08-11 14:47:24 +08:00
sophy228
8ad9c1775f
Add wamrc AoT compiler building support for Windows(MSVC) (#332) 2020-08-11 11:30:51 +08:00
Karl Fessel
3be29c3f46
optimize: get_current_target for AOT thumb loader (#342) 2020-08-11 09:40:18 +08:00
Xu Jun
6aeefbebb2
implement atomics opcodes for interpreter (#344) 2020-08-10 19:43:58 +08:00
Wenyong Huang
1b6ddb37d0
Implement libc-WASI for Linux SGX platform and update documents (#343) 2020-08-10 15:12:26 +08:00
Wenyong Huang
aa7b0ba6b6
Fix wamrc link error and arm assembly code issue (#335) 2020-08-05 09:07:30 +08:00
Karl Fessel
37aae1bc49
make include headers follow strict protoype rule (#331) 2020-08-04 19:53:34 +08:00
Xu Jun
2db335c6d4
add spawn thread API and sample (#333) 2020-08-04 17:40:45 +08:00
Xu Jun
29e45e1527
implement atomic opcode in AOT/JIT (#329) 2020-08-03 11:30:26 +08:00
dpinthinker
cc05f8fb1c
Use quicksort to sort native_symbols (#324) 2020-07-31 20:54:03 +08:00
Wenyong Huang
93ca9d8c62
Disable memory shrink opt when memory.size opcode is found (#323) 2020-07-30 10:18:55 +08:00
Wenyong Huang
056b824ac4
Fix fast interpreter i64 shift issue for non-x86 arch (#319) 2020-07-28 13:46:37 +08:00
lum1n0us
08d01b65c5
Eable post-MVP feature wasm-c-api (#315) 2020-07-23 16:54:13 +08:00
Xu Jun
32b2943369
enable pthread for AoT && update AOT current version to 2 (#311) 2020-07-16 20:35:04 +08:00
dpinthinker
49555f48b3
remove duplicated method resolve_main_func (#305) 2020-07-10 16:47:22 +08:00
Jämes Ménétrey
0472ddc0d0
Change whence_t constant values to match pre-existing agreed-upon values. (#307) 2020-07-10 16:41:08 +08:00
Weining
1a85051415
Implement multi-value feature and import binarydump tool (#308) 2020-07-10 16:29:15 +08:00
wenyongh
16a284a67c
Fix compile issue of zephyr (#306) 2020-07-09 16:07:41 +08:00
wenyongh
2fc7230009
Enhance the native stack overflow check (#302) 2020-07-07 09:56:46 +08:00
dpinthinker
9b8fc6ae95
fix one typo in module_wasm_app.c's log (#299)
* fix comments wrong position

* fix one typo in module_wasm_app.c's log
2020-07-01 16:57:22 +08:00
dpinthinker
1f6b589c12
fix comments wrong position (#296) 2020-07-01 12:24:36 +08:00
wenyongh
ee3d448eb6
Fix aot issue in 32-bit platform (#297)
fix aot 32-bit boundary check issue
2020-07-01 12:22:13 +08:00
wenyongh
847dccaa34
Refine get/set global opcodes for interpreter (#294) 2020-06-29 14:17:27 +08:00
wenyongh
ee315e4049
Implement memory access bound check with hardware trap for 64-bit platforms (#293)
Also implement native stack overflow check with hardware trap for 64-bit platforms
Refine classic interpreter and fast interpreter to improve performance
Update document
2020-06-28 15:41:25 +08:00
Josh Triplett
548926ab1a Rename "master" branch to "main"
Update all links accordingly. Also update links to other repositories
whose branches have renamed.

The references to repositories whose branches have not renamed should be
referencing specific commits anyway, so reference those specific commits
by hash.
2020-06-27 02:39:47 -07:00
Xu Jun
e3c04e6684
support pthread_key related APIs (#288) 2020-06-18 11:37:31 +08:00
Xu Jun
acb68c64c2
update doc for multi-thread (#284) 2020-06-16 15:01:35 +08:00
Xu Jun
d98ab63e5c
Enable shared memory && add pthread support (#282) 2020-06-15 19:04:04 +08:00
J-Heinemann
f4d4d69736
wasm_export.h Function Description & SGX SDK Include path (#279)
* Missing SGX SDK Include fixed

* Update shared_platform.cmake

* CMakeFile remove stdlib from untrusted part

* Added two times in function description zero as possible return value

* Update shared_platform.cmake

Co-authored-by: Joshua Heinemann <heineman@ibr.cs.tu-bs.de>
Co-authored-by: wenyongh <wenyong.huang@intel.com>
2020-06-12 18:47:06 +08:00
wenyongh
10980a1dd7
Fix app manager parse applet name issue (#280) 2020-06-11 14:19:55 +08:00
wenyongh
7a287fd1a9
Implement wasm mini loader and refine footprint of loader and runtime (#276) 2020-06-08 11:19:09 +08:00
J-Heinemann
002f3b7ac4
Missing SGX SDK Include fixed (#275)
* Missing SGX SDK Include fixed

* Update shared_platform.cmake

Co-authored-by: Joshua Heinemann <heineman@ibr.cs.tu-bs.de>
Co-authored-by: wenyongh <wenyong.huang@intel.com>
2020-06-08 11:00:22 +08:00
wenyongh
752826a667
Implement multi-module feature and bulk-memory feature (#271)
Refine wasm loader and aot loader
Fix potential issue of os_mmap/os_munmap
Update document
2020-06-02 14:53:06 +08:00
dpinthinker
e81f72d41f
MacOs: fix wamrc Error invaid llvm binary bin_type (#269)
* add darwin support for wamr-compiler compiling

* add darwin support for wamr-compiler

* Update CMakeLists.txt

* MacOs: fix wamrc Error invaid llvm binary bin_type

Co-authored-by: wenyongh <wenyong.huang@intel.com>
2020-05-31 12:40:12 +08:00
wenyongh
a0bb761beb
Update API comments, refine footprint of wasm loader (#256)
and fix issues of get native stack boundary
2020-05-15 17:44:36 +08:00
Wenbo Hu
1362b6d81f
Rename log_level enums (#252)
* rename loglevel enums

* Update bh_log.c
2020-05-12 13:06:37 +08:00
wenyongh
7abd1ca813
Change llvm void pointer to i8 pointer to avoid assert failed (#250) 2020-05-08 13:40:04 +08:00
wenyongh
44ccfd20ad
Fix issue of condition settings of app boundary check (#249) 2020-05-08 13:34:07 +08:00
wenyongh
e8e45aeecd
Refine aot stack overflow check and enhance wasm loader malformed checks (#248)
And separate global data from wasm memory instance
2020-05-08 12:38:59 +08:00
wenyongh
d381b0fdec
Implement post-MVP features and native stack overflow check (#243)
Implement native thread stack overflow check
Implement post-MVP: Non-trapping float-to-int conversions
Implement post-MVP: Sign-extension operators
Enhance WASM loader checks
2020-04-30 17:52:11 +08:00
Lei Zhang
ab4f0c5419
bugfix: check type for opcode block, loop and if (#238) (#239)
Otherwise a block opcode with invalid type signature could crash the
wasm loader.
2020-04-25 11:48:24 +08:00
wenyongh
f72e848114
Refine aot memory boundary check, add more llvm passes (#236)
Fix issue of some error info mismatch with spec cases
2020-04-22 18:43:50 +08:00
Wang Xin
a661c49cd0
Merge branch 'master' into master 2020-04-13 11:05:54 +08:00
wenyongh
b40e79c160
Make heap and linear memory contiguous to refine compilation time and footprint (#233)
Use FastISel for JIT mode
Use united aot version in aot file and aot runtime
Disable check signature failed warning for wamrc
Fix fast interpreter x86_32 float issue
Remove unused empty lvgl folder
2020-04-13 10:49:40 +08:00
Weining
ffd975d2d6
Fix zephyr samples build issue caused by zephyr kernel API update (#232)
* Clean compiling warnings of zephyr samples

* Support xtensa AOT and fix build issue of alios

* Refine wgl native functions call

* Fix zephyr samples build issue caused by zephyr kernel API update
2020-04-13 07:46:16 +08:00
Wang Xin
42d982e431
update wgl readme 2020-04-12 22:53:10 +08:00
Wang Xin
bf8fbee92e
Refactor the wasm graphic layer (wgl) and the gui sample (#231) 2020-04-12 16:30:01 +08:00
Wang Xin
5b4054d010 add missing wasm app 2020-04-12 16:19:51 +08:00
Wang Xin
4c1558a785 build and test pass 2020-04-12 16:15:54 +08:00
Wang Xin
66d6a3986a refactor the lvgl wasm api layer 2020-04-12 14:19:23 +08:00
Xu Jun
5e196253f6
Fix function type not set issue of aot_call_indirect (#229)
Add registration of libc-wasi to 'wasi_snapshot_preview1' to support cargo-wasi
change zephyr build method from cmake to west
fix problem when preserve space for local vars
fix wasi authority problem
2020-04-07 11:04:46 +08:00
Weining
374e687938
Refine wgl native functions call (#225) 2020-04-02 17:58:46 +08:00
Weining
c6fc12b7b6
Add xtensa AOT support and fix build issue of alios (#223)
* Clean compiling warnings of zephyr samples

* Support xtensa AOT and fix build issue of alios
2020-04-01 18:38:42 +08:00
wenyongh
c1a0e6d877
Implement register/call native API with raw (unextracted) arguments (#222) 2020-04-01 12:52:08 +08:00
Xu Jun
d9890d2ccb
re-org ems mem allocator source codes, update prot_wamr.md (#217) 2020-03-30 11:06:39 +08:00
Xu Jun
75009a2421
fix sgx compile and link error, preserve space for locals before set/tee opcode (#214)
Co-authored-by: Xu Jun <jun1.xu@intel.com>
2020-03-27 09:28:30 +08:00
wenyongh
01e85144f4
Enable aarch64 support, add component test framework and test suite (#211)
and refine aot call indirect op
2020-03-24 19:04:29 +08:00
Xu Jun
8ae161b779
fix vprintf in android platform, avoid importing abort in assemblyscript (#210) 2020-03-23 22:30:28 +08:00
Shi Lei
67495919b0
Add a basic sample to show how native runtime invokes wasm apps in WAMR and how wasm apps invoke native functions. (#207)
* Add printingAdd print time for wamrc, fix posix mmap bug time for wamrc, fixed a posix mmap bug.

Change-Id: Ib6517b8a69cf022a1a6a74efa1f98155aec143bc

* Add a basic sample to show how native runtime invokes wasm app in WAMR, and how wasm app invokes native functions.

Change-Id: I700ae413ad5e9ea04540d5187952305e1ee92d73
2020-03-20 16:39:13 +08:00
Shi Lei
b6cae54b54
Add printingAdd print time for wamrc, fix posix mmap bug time for wamrc, fixed a posix mmap bug. (#206)
Change-Id: Ib6517b8a69cf022a1a6a74efa1f98155aec143bc
2020-03-20 16:06:40 +08:00
yzha107
e07381c4a8
Fix a WASM_OP_SET_LOCAL type check issue (#205) 2020-03-20 13:28:18 +08:00
wenyongh
c6042c45a3
Sync with internal feature (#204) 2020-03-18 17:49:23 +08:00
Xu Jun
6523868a9a
fix aot load import global bug && enhance dead code processing (#203)
Co-authored-by: Xu Jun <jun1.xu@intel.com>
2020-03-17 17:51:51 +08:00
Xu Jun
f1a0e75ab7
re-org platform APIs, simplify porting process (#201)
Co-authored-by: Xu Jun <jun1.xu@intel.com>
2020-03-16 16:43:57 +08:00
wenyongh
751a3b5865
Enhance interpreter performance (#196) 2020-03-12 08:59:02 +08:00
Weining
aa42335a4e
minor changes (#195) 2020-03-11 13:49:52 +08:00
wenyongh
0fdd49ea31
Re-org memory allocation interfaces, add --stack-size and --heap-size option (#193) 2020-03-10 19:54:44 +08:00
Xu Jun
381859d530
fix unaligned 64bit access on MCU (#192) 2020-03-10 11:48:28 +08:00
wenyongh
180ee4c78a
Add realloc func argument for memory allocator (#191) 2020-03-08 21:18:18 +08:00
Xu Jun
057c849fc0
re-org bh_definition.c && introduce wamr fast interpreter (#189)
Co-authored-by: Xu Jun
2020-03-07 22:20:38 +08:00
wenyongh
cfcaca3d35
Refine build script of zephyr product-mini, enable aot soft-float support (#188) 2020-03-05 21:46:24 +08:00
wenyongh
0d3f304191
Implement native function pointer check, addr conversion and register, update documents (#185)
Modified WASM runtime API:
- wasm_runtime_module_malloc()
- wasm_runtime_lookup_function()
Introduced runtime API
- wasm_runtime_register_natives()
2020-03-04 20:12:38 +08:00
wenyongh
9a961c4843
Enable ARM and THUMB AOT support, enable Android platform support (#182)
* Sync with internal/feature: enable arm aot and android platform
2020-02-27 16:38:44 +08:00
wenyongh
4dbe7c44d0
Fix block addr cache uninitialized issue in aot compiler (#181) 2020-02-27 15:33:56 +08:00
qdaoming-intel
7962c47085
Diasble AOT in SGX build by default, as it requires SGX SDKv2.8 or la… (#180)
* Diasble AOT in SGX build by default, as it requires SGX SDKv2.8 or later.

* Update bh_platform.c

Co-authored-by: daomingq <daomingq@users.noreply.github.com>
Co-authored-by: wenyongh <wenyong.huang@intel.com>
2020-02-25 16:00:37 +08:00
Renji Panicker
76eea80046
fixed typecast error when compiling in C++ (#179) 2020-02-25 10:03:26 +08:00
renjipanicker
af4a96e2a0
Fixed darwin build (#178)
* RSIZE_MAX is already defined by system on darwin

* MADV_HUGEPAGE is not available on darwin

* Fixed linker error 'Undefined symbol _get_ext_lib_export_apis' on darwin when building iwasm dylib
2020-02-24 17:16:18 +08:00
wenyongh
72d9e886e8
Merge two levels of hash cache of branch block address into one (#173) 2020-02-22 21:05:08 +08:00
Wang Xin
82b0bb44c3
sdk build tools and app framework updates (#171) 2020-02-22 10:12:26 +08:00
qdaoming-intel
a4ac16a1c8
Add SGX AOT support with SGX SDKv2.8 unpublic sgx_rsrv_mem_mngr.h (#169) 2020-02-19 15:11:12 +08:00
wenyongh
e62bbeb9e8 Refine wasm loader and interpreter, enhance wamrc to support SGX (#167)
Former-commit-id: 76f4a121d3c2a67114414fc60e80eba4bf49aa8e [formerly b1ab47945a]
Former-commit-id: 8e5c6e895eae22051a79a8d337a87cd2f431b6bc
2020-02-18 15:15:24 +08:00
Xu Jun
5a10651dd0 support app framework base library in assemblyscript (#164) 2020-02-13 15:51:22 +08:00
wenyongh
b5cbc02e90 Refine interpreter to improve performance (#162) 2020-02-10 15:42:37 +08:00
wenyongh
256ecdfdf9 Refine interpreter to improve performance, refine memory usage (#161) 2020-02-10 12:36:45 +08:00
wenyongh
46b93b9d22 Enable AoT and wamr-sdk, and change arguments of call wasm API (#157)
* Implement memory profiler, optimize memory usage, modify code indent

* Implement memory.grow and limit heap space base offset to 1G; modify iwasm build type to Release and 64 bit by default

* Add a new extension library: connection

* Fix bug of reading magic number and version in big endian platform

* Re-org platform APIs: move most platform APIs from iwasm to shared-lib

* Enhance wasm loader to fix some security issues

* Fix issue about illegal load of EXC_RETURN into PC on stm32 board

* Updates that let a restricted version of the interpreter run in SGX

* Enable native/app address validation and conversion for wasm app

* Remove wasm_application_exectue_* APIs from wasm_export.h which makes confused

* Refine binary size and fix several minor issues

Optimize interpreter LOAD/STORE opcodes to decrease the binary size
Fix issues when using iwasm library: _bh_log undefined, bh_memory.h not found
Remove unused _stdin/_stdout/_stderr global variables resolve in libc wrapper
Add macros of global heap size, stack size, heap size for Zephyr main.c
Clear compile warning of wasm_application.c

* Add more strict security checks for libc wrapper API's

* Use one libc wrapper copy for sgx and other platforms; remove bh_printf macro for other platform header files

* Enhance security of libc strcpy/sprintf wrapper function

* Fix issue of call native for x86_64/arm/mips, add module inst parameter for native wrapper functions

* Remove get_module_inst() and fix issue of call native

* Refine wgl lib: remove module_inst parameter from widget functions; move function index check to runtime instantiate

* Refine interpreter call native process, refine memory boudary check

* Fix issues of invokeNative function of arm/mips/general version

* Add a switch to build simple sample without gui support

* Add BUILD_TARGET setting in makefile to replace cpu compiler flags in source code

* Re-org shared lib header files, remove unused info; fix compile issues of vxworks

* Add build target general

* Remove unused files

* Update license header

* test push

* Restore file

* Sync up with internal/feature

* Sync up with internal/feature

* Rename build_wamr_app to build_wasm_app

* Fix small issues of README

* Enhance malformed wasm file checking
Fix issue of print hex int and implement utf8 string check
Fix wasi file read/write right issue
Fix minor issue of build wasm app doc

* Sync up with internal/feature

* Sync up with internal/feature: fix interpreter arm issue, fix read leb issue

* Sync up with internal/feature

* Fix bug of config.h and rename wasi config.h to ssp_config.h

* Sync up with internal/feature

* Import wamr aot

* update document

* update document

* Update document, disable WASI in 32bit

* update document

* remove files

* update document

* Update document

* update document

* update document

* update samples

* Sync up with internal repo
2020-01-21 13:26:14 +08:00
greenknot
2a4528c749 Fix out-of-bounds read in wasm loader (#156) 2020-01-17 13:38:21 +08:00
wenyongh
2b12e2c957 Add thumb target, implement xtensa invokeNative asm code and update makefiles (#151) 2019-12-24 11:09:54 +08:00
wenyongh
5875a37f34 Remove iwasm/runtime/platform src files, refine interpreter and fix issue of --repl option (#150) 2019-12-18 11:53:43 +08:00
wenyongh
631b7a2403 Enhance wasm loader and interpreter, enhance code security and update document (#149) 2019-12-13 15:30:30 +08:00
wenyongh
1c81ad6da5 Enhance wasm loader and update build app document (#147) 2019-11-27 10:52:12 +08:00
wenyongh
7c5a84cf75 Update README, change wasi primitive lib position and add some exception checks (#146)
Add exception throw when some initial checks fail in executing main or specific function
2019-11-25 23:16:40 +08:00
qdaoming-intel
74f74b6490 Fix sgx porting issues: incorrect compile flags, porting func impl, document, etc. (#145)
* Fix sgx porting issues: incorrect compilation flags, porting function impl, document, etc.

* Update bh_platform.c

Add check for function bh_vprintf_sgx: check whether print_function is not NULL.
2019-11-22 15:33:37 +08:00
Weining
a7a7d04dc6 Restore some files and fix minor issues of SGX platform (#144) 2019-11-21 10:30:57 +08:00
Weining
27f246b5f3 Enable WASI feature, enhance security and add SGX sample (#142)
Change emcc to clang
Refine interpreter to improve perforamnce
2019-11-20 21:16:36 +08:00
wenyongh
be15c08cf3 Remove unused files and update license header of some files (#138) 2019-11-11 20:38:49 -06:00
Josh Triplett
b0b0789dca Relicense to Apache-2.0 with the LLVM-exception (#137)
With agreement from contributors.
2019-11-12 07:45:21 +08:00
wenyongh
49127efa99 Re-org shared lib header files, remove unused info (#136)
And fix compile issues of vxworks
2019-11-04 18:56:27 -06:00
wenyongh
28993946ad Add BUILD_TARGET setting in makefile (#135) 2019-11-01 00:38:45 -05:00
Weining
2a8b1ef454 Remove the binding between current thread and module instance and bugs fix (#131)
Remove wasm_export_api.h that may confuse
Implement wasm_runtime_validate_app_str_addr()
Fix bugs of loader and pass more spec cases

Signed-off-by: Weining Lu <weining.x.lu@intel.com>
2019-10-11 15:25:23 +08:00
Xu Jun
bbae4426a0 Add toolchain for WAMR (#127)
* add toolchain for wamr

* add copyright
2019-09-26 19:35:37 +08:00
wenyongh
f8f61dc898 Add a switch to build simple sample without gui support (#126)
* Implement memory profiler, optimize memory usage, modify code indent

* Implement memory.grow and limit heap space base offset to 1G; modify iwasm build type to Release and 64 bit by default

* Add a new extension library: connection

* Fix bug of reading magic number and version in big endian platform

* Re-org platform APIs: move most platform APIs from iwasm to shared-lib

* Enhance wasm loader to fix some security issues

* Fix issue about illegal load of EXC_RETURN into PC on stm32 board

* Updates that let a restricted version of the interpreter run in SGX

* Enable native/app address validation and conversion for wasm app

* Remove wasm_application_exectue_* APIs from wasm_export.h which makes confused

* Refine binary size and fix several minor issues

Optimize interpreter LOAD/STORE opcodes to decrease the binary size
Fix issues when using iwasm library: _bh_log undefined, bh_memory.h not found
Remove unused _stdin/_stdout/_stderr global variables resolve in libc wrapper
Add macros of global heap size, stack size, heap size for Zephyr main.c
Clear compile warning of wasm_application.c

* Add more strict security checks for libc wrapper API's

* Use one libc wrapper copy for sgx and other platforms; remove bh_printf macro for other platform header files

* Enhance security of libc strcpy/sprintf wrapper function

* Fix issue of call native for x86_64/arm/mips, add module inst parameter for native wrapper functions

* Remove get_module_inst() and fix issue of call native

* Refine wgl lib: remove module_inst parameter from widget functions; move function index check to runtime instantiate

* Refine interpreter call native process, refine memory boudary check

* Fix issues of invokeNative function of arm/mips/general version

* Add a switch to build simple sample without gui support
2019-09-25 03:42:56 -05:00
wenyongh
2fca3aa3f5 Re-implement invokeNative function of arm/mips/general version (#125)
Re-implement them due to the function prototype was changed.
Fix typo of sample/gui/README.
2019-09-22 21:52:39 -05:00
wenyongh
42dc2d65a1 Refine interpreter call native process and memory boundary check (#124) 2019-09-19 04:05:15 -05:00
wenyongh
6e99a37bf2 Refine wgl lib and refine wasm function index check (#122)
Refine wgl lib: remove module_inst parameter from widget functions
Refine wasm function check: move function index check from interpreter call_indirect to runtime instantiate
2019-09-16 14:49:17 +08:00
wenyongh
ff0267b7e6 Remove get_module_inst() and fix issue of call native (#120) 2019-09-11 15:56:47 +08:00
Weining
a770706cb6 Fix typo 'destory' and compile issue (#119)
* Optimize samples build process

* Samples: build 64 bit version by default

* Fix typo 'destory'

* Fix compile issue
2019-09-10 15:52:03 +08:00
wenyongh
26149021ff Add parameter module inst for native wrapper functions (#117)
And add asm code of em64/arm/mips version to call native wrapper functions;
Fix some issues of calling wrapper functions;
2019-09-10 10:23:46 +08:00
Jonathan Dong
8deef78624 Add build configuration for Mac (#110)
* Add build configuration for Mac

This patch implements Mac build basically based on Linux platform
implementations and configurations.

The document to build it on Mac has been updated as well.

* Update wasm_application.h

* Update lib_export.h

Add comments for the functions.
2019-09-06 16:51:36 +08:00
wenyongh
4a14e54e86 Enhance security of libc strcpy/sprintf wrapper function (#108) 2019-08-29 14:31:15 +08:00
wenyongh
5257dd8a48 Use one libc wrapper copy for sgx and other platforms (#107)
And remove bh_printf macro for other platform header files
2019-08-28 15:19:52 +08:00
wenyongh
5c69543c54 Add Linux SGX support (#106) 2019-08-28 15:08:52 +08:00
wenyongh
c808aa2ebb Add more security checks for libc wrapper API's (#105) 2019-08-28 15:06:04 +08:00
wenyongh
92cbecbec8 Refine binary size and fix several minor issues (#104)
* Implement memory profiler, optimize memory usage, modify code indent

* Implement memory.grow and limit heap space base offset to 1G; modify iwasm build type to Release and 64 bit by default

* Add a new extension library: connection

* Fix bug of reading magic number and version in big endian platform

* Re-org platform APIs: move most platform APIs from iwasm to shared-lib

* Enhance wasm loader to fix some security issues

* Fix issue about illegal load of EXC_RETURN into PC on stm32 board

* Updates that let a restricted version of the interpreter run in SGX

* Enable native/app address validation and conversion for wasm app

* Remove wasm_application_exectue_* APIs from wasm_export.h which makes confused

* Refine binary size and fix several minor issues

Optimize interpreter LOAD/STORE opcodes to decrease the binary size
Fix issues when using iwasm library: _bh_log undefined, bh_memory.h not found
Remove unused _stdin/_stdout/_stderr global variables resolve in libc wrapper
Add macros of global heap size, stack size, heap size for Zephyr main.c
Clear compile warning of wasm_application.c
2019-08-27 14:09:23 +08:00
wenyongh
de81b95ab8 Enable native/app address validation and conversion for wasm app (#102)
Enable setting external memory space for wasm app, the feature is disabled by default;
Remove wasm_application_exectue_* APIs from wasm_export.h which makes confused.
2019-08-21 16:39:50 +08:00
wenyongh
3f15fb3424 Enhance wasm loader to fix some security issues (#91)
* Implement memory profiler, optimize memory usage, modify code indent

* Implement memory.grow and limit heap space base offset to 1G; modify iwasm build type to Release and 64 bit by default

* Add a new extension library: connection

* Fix bug of reading magic number and version in big endian platform

* Re-org platform APIs: move most platform APIs from iwasm to shared-lib

* Enhance wasm loader to fix some security issues
2019-08-08 16:53:56 +08:00
Weining
3b19306869 Optimize samples build process and build 64 bit binaries by default (#90)
* Optimize samples build process

* Samples: build 64 bit version by default
2019-08-02 14:00:35 +08:00
Weining
9aa9cbde77 Implement 2D graphic API (#87)
* Implement 2D graphic library based on LittlevGL

* Add lvgl license file
2019-08-01 16:57:54 +08:00
wenyongh
1db5a2f697 Re-org platform APIs: move most platform APIs of iwasm to shared-lib (#45) 2019-07-22 11:32:51 +08:00
Yiting Wang
08ebc6c773 Add support for VxWorks (#43)
This adds iwasm support for VxWorks 7.
2019-07-10 16:01:43 +08:00
wenyongh
5b0c8fa0ba Fix bug of reading magic number and version in big endian platform (#41) 2019-06-13 22:29:08 -05:00
wenyongh
7f1e024fce Add a new extension library: connection (#39) 2019-06-10 21:52:15 -05:00
wenyongh
504268b297 Implement memory.grow and limit heap space base offset to 1G (#36)
* Implement memory profiler, optimize memory usage, modify code indent

* Implement memory.grow and limit heap space base offset to 1G; modify iwasm build type to Release and 64 bit by default
2019-05-31 01:21:39 -05:00
wenyongh
ff7cbdd2fb Implement memory profiler, optimize memory usage, modify code indent (#35) 2019-05-23 05:03:31 -05:00
zhujinzhou
9136abfe31 add support for AliOS Things (#34)
* Add support of AliOS-Things

* update the README.md format

* update the README.md #1

* update the README.md #2
2019-05-22 20:33:39 -07:00
wenyongh
36741a7392 Fix some compile errors 2019-05-17 18:01:35 +08:00
wenyongh
dd5b133fa5 Import app manager, samples and test-tools 2019-05-17 17:15:25 +08:00
wenyongh
40e7c627aa implement printf syscall wrapper for linux 2019-05-15 14:32:35 +08:00
wenyongh
a595ec79ab Fix code indent issue and 64-bit compiler error in libc wrapper src 2019-05-14 21:17:12 +08:00
Eric Engestrom
108254974f add installation directives (#14)
Signed-off-by: Eric Engestrom <eric.engestrom@intel.com>
2019-05-10 23:21:54 +08:00
Weining
174fddd60e convert tab to 4 spaces in header files (#4) 2019-05-09 16:25:23 +08:00
Weining Lu
f3163f9471 1. add comments for app lib
2. fix bug of sensor_config_with_attr
2019-05-08 16:42:39 +08:00
Wang Xin
cf92fc0965 code cleanup 2019-05-07 14:15:28 +08:00
Wang Xin
a75a5f0f41 WebAssembly Micro Runtime first version 2019-05-07 10:18:18 +08:00