https://github.com/cub3d/wasm89
C89 WASM, escape vendor toolchains
https://github.com/cub3d/wasm89
Last synced: 5 months ago
JSON representation
C89 WASM, escape vendor toolchains
- Host: GitHub
- URL: https://github.com/cub3d/wasm89
- Owner: CUB3D
- Created: 2024-05-16T00:00:00.000Z (about 2 years ago)
- Default Branch: master
- Last Pushed: 2024-07-17T02:22:18.000Z (about 2 years ago)
- Last Synced: 2024-12-31T03:42:30.250Z (over 1 year ago)
- Language: WebAssembly
- Homepage:
- Size: 1.31 MB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
## Wasm89 - Wasm for bad compilers
This is a port of [wac-esp](https://github.com/grassel/wac-esp) with the following changes to support bad/outdated c89/c90 compilers, for when you have to deal with outdated vendor toolchains.
### Changes:
- Removed dependency on `stdint.h`
- Doesn't need `snprintf`
- Comments style changed from `//` to `/*`
- Removed ESP specific code
- Replaced `clz`/`popcnt`/etc builtins with slow c versions
- Replaced c89 missing float ops
- Moved inline variable definitions to start of function
- Added `extern "C"` guards for use from c++
- Added support for "Sign Extention Extension"
- Add test environment
- Passes a large amount of WG-1.0
### Compiler requirements:
This currently requires the following non-standard features, pull requests to change this are welcome:
- A 64 bit integer type `long long` / `_int64`
- Parser support for variadic macros (or remove all the logs)
### Compiler support:
- clang
- gcc
- MSVC 2008 or newer (Tested with 15.0.21022.08)
### Architecture support:
- ARMv4T
- ARM64
- x86
- x86_64