Comment by ~radgerayden on ~duangle/scopes
Fixed in 2516:d7ee1d0a6ab2
Comment by ~radgerayden on ~duangle/scopes
Doesn't reproduce anymore. Probably fixed together with #12.
REPORTED
RESOLVED FIXEDComment by ~radgerayden on ~duangle/scopes
Fixed in rev 2304 and 2305.
REPORTED
RESOLVED FIXEDREPORTED
RESOLVED BY_DESIGNTicket created by ~radgerayden on ~duangle/scopes
repro:
# was only able to repro with this combination of one # case, one pass and a repeated pass. Order doesn't seem to matter. switch 10 pass 3 pass 3 do ; case 1 ; pass 2 do ; default ; # terminate called after throwing an instance of 'std::bad_alloc' what(): std::bad_alloc Stack dump: 0. Running pass 'Function Pass Manager' on module '/home/[redacted]/backend-abort-repro.sc:3'. 1. Running pass 'X86 DAG->DAG Instruction Selection' on function '@"/home/[redacted]/backend-abort-repro.sc:3<>$f1f7646c81ab64326_2"'
Ticket created by ~radgerayden on ~duangle/scopes
repro:
fn vertex () using import glsl using import glm buffer attr : struct Attributes plain data : (array vec2) gl_Position = (vec4 (attr.data @ gl_VertexID) 0 1) fn fragment () using import glsl using import glm out fcolor : vec4 fcolor = (vec4 1) # use your own link-shader fn here let program = link-shader static-compile-glsl 420 'vertex (static-typify vertex) static-compile-glsl 420 'fragment (static-typify fragment) # will yield this runtime (OpenGL) error: #0:3(16): error: syntax error, unexpected NEW_IDENTIFIER # it can be solved by patching in (inserts after the #version line): let vsource = patch-shader static-compile-glsl 420 'vertex (static-typify vertex) "#extension GL_ARB_shader_storage_buffer_object : require\n"
Ticket created by ~radgerayden on ~duangle/scopes
# HG changeset patch # User Westerbly Snaydley <westerbly@gmail.com> # Date 1607926470 18000 # Mon Dec 14 01:14:30 2020 -0500 # Node ID c8b28f01678c8685fbbd773ad09ffa3312c46580 # Parent 7c4d7e4ebbfe8e4bfb91225cc39d763b4201cf2b core: countof constant string is constant diff -r 7c4d7e4ebbfe -r c8b28f01678c lib/scopes/core.sc --- a/lib/scopes/core.sc Fri Dec 11 15:31:09 2020 +0100 +++ b/lib/scopes/core.sc Mon Dec 14 01:14:30 2020 -0500 @@ -2018,7 +2018,6 @@ 'define-symbols string buffer = sc_string_buffer - __countof = sc_string_count __@ = string@ __lslice = sc_string_lslice __rslice = sc_string_rslice @@ -2032,6 +2031,19 @@ __<= = (box-pointer (simple-binary-op (inline (a b) (icmp<=s (sc_string_compare a b) 0)))) __> = (box-pointer (simple-binary-op (inline (a b) (icmp>s (sc_string_compare a b) 0)))) __>= = (box-pointer (simple-binary-op (inline (a b) (icmp>=s (sc_string_compare a b) 0)))) + __countof = + box-pointer + spice-macro + fn (args) + let argc = (sc_argcount args) + verify-count argc 1 1 + let self = (sc_getarg args 0) + if ('constant? self) + let count = + sc_string_count (unbox self string) + `count + else + `(sc_string_count self) 'define-symbols list __typecall = list-constructor
Ticket created by ~radgerayden on ~duangle/scopes
repro:
using import testing using import glm let v1 = (vec4) test (typeof v1.st) == vec2 local v2 : vec4 dump (typeof v2.st) # vec4(vectorof i32 0 1) test (typeof v2.st) == vec2
Ticket created by ~radgerayden on ~duangle/scopes
repro:
using import Box using import testing # I use Box here, but seems to happen with any lifetime checked type. let T = (Box i32) fn A () label l do merge l (T) fn B () label l merge l (T) fn C () label l T; C; B; # cannot access value of type (uniqueof <Box i32> 1000) because it has been moved test-compiler-error A; none