diff --git a/basis/compiler/compiler.factor b/basis/compiler/compiler.factor index d6da95408d..24ce3debeb 100644 --- a/basis/compiler/compiler.factor +++ b/basis/compiler/compiler.factor @@ -1,15 +1,14 @@ ! Copyright (C) 2004, 2009 Slava Pestov. ! See http://factorcode.org/license.txt for BSD license. USING: accessors kernel namespaces arrays sequences io words fry -continuations vocabs assocs dlists definitions math graphs -generic combinators deques search-deques io stack-checker -stack-checker.state stack-checker.inlining -combinators.short-circuit compiler.errors compiler.units -compiler.tree.builder compiler.tree.optimizer -compiler.cfg.builder compiler.cfg.optimizer +continuations vocabs assocs dlists definitions math graphs generic +combinators deques search-deques macros io stack-checker +stack-checker.state stack-checker.inlining combinators.short-circuit +compiler.errors compiler.units compiler.tree.builder +compiler.tree.optimizer compiler.cfg.builder compiler.cfg.optimizer compiler.cfg.linearization compiler.cfg.two-operand -compiler.cfg.linear-scan compiler.cfg.stack-frame -compiler.codegen compiler.utilities ; +compiler.cfg.linear-scan compiler.cfg.stack-frame compiler.codegen +compiler.utilities ; IN: compiler SYMBOL: compile-queue @@ -50,8 +49,12 @@ SYMBOLS: +optimized+ +unoptimized+ ; H{ } clone generic-dependencies set f swap compiler-error ; +: ignore-error? ( word error -- ? ) + [ [ inline? ] [ macro? ] bi or ] + [ compiler-error-type +warning+ eq? ] bi* and ; + : fail ( word error -- * ) - [ swap compiler-error ] + [ 2dup ignore-error? [ 2drop ] [ swap compiler-error ] if ] [ drop [ compiled-unxref ]