| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
We only need sudo for the i668 builder that needs extra packages.
Also, name each element of the matrix
Also, remove a bunch of unuser settings from the emcripten build.
|
|
|
|
|
|
|
|
| |
pep8 specifies 4 space indentation. The use of 2 spaces is, I believe,
a historical anomaly where certain large organizations such as google
chose 2 over 4 and have yet to make the switch.
For a project like wabt with little python code I think the cost of
switching is small enough to justify the churn.
|
| |
|
|
|
|
|
| |
* More bugs w/ bad strings (newlines and bad escapes)
* Incorrect hex-float exponent
* Update fuzz-wat2wasm.sh to enable features
|
|
|
|
| |
Also update the fuzz script to enable various features, so they get fuzz
testing too.
|
|
|
|
|
| |
The current lexer uses re2c. It easy to change, but it generates a huge amount of code, and it's easy to forgot to update it.
This PR rewrites the lexer manually, and uses gperf instead to match keywords. The generated source is much smaller.
|
| |
|
| |
|
|
|
|
| |
Not sure this will work.
|
| |
|
|
|
|
|
| |
* Create the artifacts before they are packaged (`before_deploy` happens
afterward)
* MacOS doesn't have sha256, so use python
|
|
|
| |
Fixes #875, maybe.
|
| |
|
| |
|
| |
|
|
|
|
| |
* wat2wasm only parses wat files (individual modules)
* wast2json parses spec test files and generates json + wasm
|
|
|
| |
See issue #543.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Remove Bison dependency
* Remove pre-generated parser files
* Rename build config from no-re2c-bison to no-re2c
* Add a simple make_unique implementation
* Move handling of module bindings into ir.cc
* Simplify lexer
- Remove lookahead, the parser handles this now
- Unify Token/LexerToken, it only contains terminal values now
- Refactor setting token type and value into one function (e.g.
LITERAL, RETURN => RETURN_LITERAL)
* New Parser
- Uses two tokens of lookahead (use Peek(0) or Peek(1))
- Consume() consumes one token of any kind
- Match(t) consumes the current token if it matches
- PeekMatch(t) returns true iff the token matches, but doesn't consume
- Basic error synchronization; plenty of room for improvement here
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Update testsuite; various lexing/parsing fixes
Lexer changes:
* Switch re2c parser to UTF-8 parser. This can almost be done "for
free" with a flag, but required a bit of work to allow us to catch
malformed UTF-8 as well.
* Change the re2c fill value to 0xff, since it's never a valid UTF-8 byte.
* Allow for more reserved tokens (basically any ascii aside from
parentheses, double-quote, and semi-colon)
* Remove "infinity" from lexer, only "inf" is allowed now.
* Change definition of EOF token, it was implemented incorrectly. The
correct way to handle it is to only return it from FILL when there is no
more data to fill.
* \r is a valid escape.
Parser changes:
* Changes to match the spec parser:
- block signatures use (result <type>) syntax
- func/global/table/memory can have multiple inline exports
- inline imports are handled in func definition instead of import
definition
- allow for inline modules (i.e. no "(module ...)" s-expr required)
* Remove FuncField. This was previously used for parsing
params/results/locals, but it's less code to just parse
right-recursive (i.e. backward) and insert everything at the front.
This requires reversing the indexes in the BindingHash too.
* Remove the nasty macros `APPEND_FIELD_TO_LIST`,
`APPEND_ITEM_TO_VECTOR`, `APPEND_INLINE_EXPORT`, and
`CHECK_IMPORT_ORDERING`. This behavior is all handled by
`append_module_fields` now.
* All inline imports/exports are handled by returning additional
ModuleFields in a list. This removes the need for `OptionalExport`,
`ExportedFunc`, `ExportedGlobal`, `ExportedTable`, and
`ExportedMemory`.
* Use "_opt" suffix instead of "non_empty_" prefix, e.g.:
- text_list => text_list_opt, non_empty_text_list => text_list
* The locations changed for some symbols, typically the use the name
following the LPAR now, e.g. (import
^^^^^^
* Add PPA for re2c 0.16
* add -y to skip confirmation on travis
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Add fuzzing helper scripts, fix fuzzing bugs
The fuzzing dictionary was old, so I updated it. Also, I've added some
simple fuzzing shell scripts that make it a bit easier to run.
Bug fixes:
* Validate function index in local name section before calling callback.
* Fix invalid assert in parse_{float,double}_infinity, which assumed
that "infinity" is required (it could be "inf").
* Bail out of resolve local names if there is no current function (e.g.
if attempting to resolve names in an elem offset expression).
* Catch bad_alloc in wast2wasm and wasm2wast. Without this, afl-fuzz
will see allocation failure as a crash.
* disable exceptions by default, add option, wrap tools in try/catch
|
|
|
|
|
|
| |
* Return non-zero on travis if tests fail
Oops, we were silently ignoring tests failures on traivs.
|
|
|
|
|
| |
* Add wabt::string_view, based on C++17 string_view
Also add wabt-unittests to test it.
|
|
|
| |
It isn't installed on Mac. This fixes the mac build (issue #325).
|
|
|
|
| |
It complicates the code everywhere. It's faster to use a stack
allocator, but not worth the trouble for maintainability.
|
| |
|
| |
|
| |
|
|
|
| |
This simplifies the invocations and aids maintainability.
|
|
|
| |
Move import to top of Python file, and remove extra blank lines to satisfy Appveyor's version of flake8
|
|
|
|
|
|
|
|
| |
* Add appveyor.yml from Binaryen
* Update gen-emscripten-exported-json.py to comply (almost) with PEP8
* fix typo
|
|
|
|
|
|
| |
* Add wasmdump binary for inspecting wasm files
Run this tool to as part of the 'dump' tests rather
than using the -d flag to wast2wasm.
|
|
|
|
|
| |
Also rename the last few places using SexprWasm, WasmWast. Make
formatting a little nicer too.
|
|
|
|
|
|
|
|
| |
This is followup to (#102) which renamed the executable
files. It propagated the rename the tools and test
runner.
It also fixes the 'run-tests' target which was passing
the wrong argument name to the run_tests.py script.
|
|
|
|
|
| |
It's not really the appropriate place to handle it. Now that we have
wasm-wast and wasm-interp, we can at least verify that the tools are
internally consistent.
|
|
|
|
|
| |
It would be nicer to have this automatically integrated with the build,
but this is OK for now.
|
|
|
|
|
| |
You can't git clone to a specific commit SHA, so we just download the
source archive from Github.
|
| |
|
| |
|
|
|
|
| |
Also, remove uses of readlink -f because they don't work on OSX.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Also refactor travis-test.sh a bit so it's easier to add more
executables.
|
|
|
|
|
| |
Primarily this is moving the sanitizer builds out of CMakeLists.txt and
into the Makefile. It's much cleaner this way.
|
|
|
|
|
|
|
|
| |
* write roundtrip files to a different location so two threads don't
fight over writing it (probably should just write it once, but I can
optimize that later)
* refactor travis-test.sh a bit to cleanup passing args to run_tests
* pass args when running gcc/Debug-no-flex-bison
|
| |
|