Skip to content

Instantly share code, notes, and snippets.

View lqd's full-sized avatar
💭
I may be slow to respond.

Rémy Rakic lqd

💭
I may be slow to respond.
View GitHub Profile
#!/bin/bash
__printusage() {
echo "Usage: $1 <crate> <version> | <crate>-<version>"
echo ""
echo "e.g. $1 conrod 0.32.0"
}
if [[ "$#" == 2 ]]; then
_crate=$1
(module
(memory 1 1)
(start $__wasm_start)
(type $rustfn-0-13 (func (param i32 i32) (result i32)))
(type $rustfn-0-25 (func))
(type $rustfn-0-27 (func (result i32)))
(type $rustfn-0-30 (func (result i32)))
(type $rustfn-0-33 (func (param i32 i32) (result i32)))
(type $__wasm_start (func))
(export "memory" (memory $0))
(module
(memory 1 1)
(start $__wasm_start)
(type $rustfn-0-13 (func (param i32 i32) (result i32)))
(type $rustfn-0-25 (func))
(type $rustfn-0-27 (func (result i32)))
(type $rustfn-0-30 (func (result i32)))
(type $rustfn-0-33 (func (param i32 i32) (result i32)))
(type $__wasm_start (func))
(export "memory" (memory $0))
// beginning a Binaryen API trace
#include <math.h>
#include <map>
#include "src/binaryen-c.h"
int main() {
std::map<size_t, BinaryenFunctionTypeRef> functionTypes;
std::map<size_t, BinaryenExpressionRef> expressions;
std::map<size_t, BinaryenFunctionRef> functions;
std::map<size_t, RelooperBlockRef> relooperBlocks;
BinaryenModuleRef the_module = NULL;
(module
(memory 1 1)
(start $__wasm_start)
(type $rustfn-0-3 (func))
(type $__wasm_start (func))
(export "memory" (memory $0))
(export "main" (func $main))
(func $main (type $rustfn-0-3)
(local $0 i32)
(i32.store
(module
(memory 1 1)
(start $__wasm_start)
(type $rustfn-0-3 (func))
(type $__wasm_start (func))
(export "memory" (memory $0))
(export "main" (func $main))
(func $main (type $rustfn-0-3)
(local $0 i32)
(local $1 i32)
// beginning a Binaryen API trace
#include <math.h>
#include <map>
#include "src/binaryen-c.h"
int main() {
std::map<size_t, BinaryenFunctionTypeRef> functionTypes;
std::map<size_t, BinaryenExpressionRef> expressions;
std::map<size_t, BinaryenFunctionRef> functions;
std::map<size_t, RelooperBlockRef> relooperBlocks;
BinaryenModuleRef the_module = NULL;
- handle more types than i32s
- handle more of wasm's BinaryOps
- fix the `fun_names` map to not use the Sig but the Substs otherwise we'll end up with duplicate translated fns ( + with the same name) when more complex cases with traits/generics/monomorphizations are tested
- monomorphization tests to exercize more of the use cases (including the previous mentioned known issue)
- activate CI on the repo (it's been a couple times things related to isize have been broken either on x86 or x64; maybe automatically running rustfmt could be nice if that was possible)
- assert/panic — I actually just committed the first pass of this in my fork after writing this: https://github.com/brson/mir2wasm/pull/36
- have a list of milestones of language features: useful for us as well as possible entry points for new contributors
- tidy up the things eholk mentioned during the last big PR review (rusfmt, move the stack pointer, etc) (I started working on this already but it's not finished)
- optimize the calling convention es
running 5 tests
test compile_fail ... ignored
test compile_pass ... running tests for target x86_64-apple-darwin
test [compile-pass] tests/compile-pass/cenum.rs ... ok
test [compile-pass] tests/compile-pass/cmp.rs ... ok
test [compile-pass] tests/compile-pass/enum.rs ... ok
test [compile-pass] tests/compile-pass/fibonacci.rs ... ok
test [compile-pass] tests/compile-pass/iterator.rs ... ok
test [compile-pass] tests/compile-pass/nocore-hello-world.rs ... ok
test [compile-pass] tests/compile-pass/operators.rs ... ok
; ModuleID = 'test.cpp'
source_filename = "test.cpp"
target datalayout = "e-m:o-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-apple-macosx10.10.0"
; Function Attrs: ssp uwtable
define void @_Z3bazv() #0 {
entry:
%x.i.i = alloca i32, align 4
call void @llvm.dbg.declare(metadata i32* %x.i.i, metadata !7, metadata !12), !dbg !13