diff --git a/genRuntimeSrc b/genRuntimeSrc index 48a06c43..d76a73a6 100755 --- a/genRuntimeSrc +++ b/genRuntimeSrc @@ -1,10 +1,11 @@ #!./BQN +# a version of genRuntime that also generates source maps, so that errors in the runtime or compiler get error messages args←•args "Usage: ./getRuntime.bqn path/to/mlochbaum/BQN"!1≤≠args path←⊑•args CC ← {𝕨 •FChars ⟨1,path,"-i",𝕩⟩ •Import "cc.bqn"} "src/gen/src" •FChars "#define RT_SRC 1"∾@+10 - "src/gen/compiler"CC"c" + "src/gen/compiles"CC"cc" "src/gen/runtime0"CC"r0" "src/gen/runtime1"CC"r1" "src/gen/formatter"CC"f" diff --git a/src/builtins/sfns.c b/src/builtins/sfns.c index 85d0a311..53dc9d60 100644 --- a/src/builtins/sfns.c +++ b/src/builtins/sfns.c @@ -23,8 +23,8 @@ B m_vec1(B a) { if (isF64(a)) { i32 i = (i32)a.f; if (RARE(a.f != i)) { f64* rp; B r = m_f64arrv(&rp, 1); rp[0] = a.f; return r; } - if (q_ibit(i)) { u64* rp; B r = m_bitarrv(&rp, 1); rp[0] = i; return r; } - if (i == (i8 )i) { i8* rp; B r = m_i8arrv (&rp, 1); rp[0] = i; return r; } + else if (q_ibit(i)) { u64* rp; B r = m_bitarrv(&rp, 1); rp[0] = i; return r; } + else if (i == (i8 )i) { i8* rp; B r = m_i8arrv (&rp, 1); rp[0] = i; return r; } else if (i == (i16)i) { i16* rp; B r = m_i16arrv(&rp, 1); rp[0] = i; return r; } else { i32* rp; B r = m_i32arrv(&rp, 1); rp[0] = i; return r; } }