Implement stack frame GC object tracking for the reclaim root set traversing
And update wamr-test-suites for latest spec cases:
- Update GC spec cases to latest version
- Patch spec interpreter to support building it with ocaml 4.0.8
- Fix runtest.py to ref.null result
- Comment some supported cases in type-cannon and type-equivalence
Implement GC bytecode validation in loader stage, except for opcode
let and and func.bind. Pass the related spec cases.
And implement some GC object related APIs.
The source code may be not so elegant, we will optimize it in the future.
Import basic codes of GC feature:
- Add basic GC related macros, data structures and APIs
- Change WASMType to WASMFuncType/AOTFuncType and re-org interp/aot codes
- Import GC opcodes and add empty opcode handling in loader and interpreter
- Implement type section loading to resolve func/struct/array type
- Implement is_subtype_of for func/struct/array, implement struct field offset calculation
- Add -G option for test_wamr.sh to test GC spec cases
Signed-off-by: Wenyong Huang <wenyong.huang@intel.com>