compiler.cfg.builder.alien.boxing compiler.cfg.builder.blocks
compiler.cfg.instructions compiler.cfg.stack-frame
compiler.cfg.stacks compiler.cfg.stacks.local
-compiler.cfg.registers compiler.cfg.hats ;
+compiler.cfg.registers compiler.cfg.hats compiler.errors ;
FROM: compiler.errors => no-such-symbol no-such-library ;
IN: compiler.cfg.builder.alien
{
{ [ dup library-dll dll-valid? not ] [
[ library-dll dll-path ] [ dlerror>> ] bi
- cfg get word>> no-such-library drop
+ cfg get word>> no-such-library-error drop
] }
{ [ 2dup library-dll dlsym-valid? not ] [
- drop dlerror cfg get word>> no-such-symbol
+ drop dlerror cfg get word>> no-such-symbol-error
] }
[ 2drop ]
} cond ;
drop [ clear-compiler-error ] [ deoptimize* ] bi ;
: remember-error ( word error -- * )
- [ swap <compiler-error> compiler-error ]
+ [ swap <compiler-error> save-compiler-error ]
[ [ drop ] [ not-compiled-def ] 2bi deoptimize-with ]
2bi ;
compiler-errors linkage-errors
[ get-global delete-at ] bi-curry@ bi ;
-: compiler-error ( error -- )
+: save-compiler-error ( error -- )
dup asset>> compiler-errors get-global set-at ;
T{ error-type
M: no-such-library summary drop "Library not found" ;
-: no-such-library ( name message word -- ) \ no-such-library linkage-error ;
+: no-such-library-error ( name message word -- ) \ no-such-library linkage-error ;
TUPLE: no-such-symbol name message ;
M: no-such-symbol summary drop "Symbol not found" ;
-: no-such-symbol ( name message word -- ) \ no-such-symbol linkage-error ;
+: no-such-symbol-error ( name message word -- ) \ no-such-symbol linkage-error ;
ERROR: not-compiled word error ;