]> git.lizzy.rs Git - rust.git/commitdiff
Switch xfail system to use comments embedded in source files.
authorGraydon Hoare <graydon@mozilla.com>
Fri, 25 Mar 2011 19:19:20 +0000 (12:19 -0700)
committerGraydon Hoare <graydon@mozilla.com>
Fri, 25 Mar 2011 19:19:20 +0000 (12:19 -0700)
162 files changed:
Makefile.in
src/test/bench/99-bottles/99bob-iter.rs
src/test/bench/99-bottles/99bob-pattern.rs
src/test/bench/99-bottles/99bob-simple.rs
src/test/bench/99-bottles/99bob-tail.rs
src/test/bench/shootout/binarytrees.rs
src/test/bench/shootout/fannkuchredux.rs
src/test/bench/shootout/fasta.rs
src/test/bench/shootout/nbody.rs
src/test/compile-fail/bad-alt.rs
src/test/compile-fail/bad-env-capture.rs
src/test/compile-fail/bad-expr-path.rs
src/test/compile-fail/bad-main.rs
src/test/compile-fail/bad-name.rs
src/test/compile-fail/bad-recv.rs
src/test/compile-fail/bad-send.rs
src/test/compile-fail/bad-type-env-capture.rs
src/test/compile-fail/bind-alias.rs
src/test/compile-fail/comm-makes-io.rs
src/test/compile-fail/constructor-as-cast.rs
src/test/compile-fail/dead-code-be.rs
src/test/compile-fail/dead-code-ret.rs
src/test/compile-fail/direct-obj-fn-call.rs
src/test/compile-fail/does-nothing.rs
src/test/compile-fail/export.rs
src/test/compile-fail/fru-typestate.rs
src/test/compile-fail/import.rs
src/test/compile-fail/import2.rs
src/test/compile-fail/import3.rs
src/test/compile-fail/import4.rs
src/test/compile-fail/impure-pred.rs
src/test/compile-fail/infinite-tag-type-recursion.rs
src/test/compile-fail/infinite-vec-type-recursion.rs
src/test/compile-fail/io-infects-caller.rs
src/test/compile-fail/item-name-overload.rs
src/test/compile-fail/missing-return.rs
src/test/compile-fail/native-makes-unsafe.rs
src/test/compile-fail/no-self-dispatch.rs
src/test/compile-fail/not-a-pred.rs
src/test/compile-fail/pred-on-wrong-slots.rs
src/test/compile-fail/put-in-fn.rs
src/test/compile-fail/return-uninit.rs
src/test/compile-fail/slot-as-pred.rs
src/test/compile-fail/spawn-non-nil-fn.rs
src/test/compile-fail/tail-non-call.rs
src/test/compile-fail/unbalanced-comment.rs
src/test/compile-fail/unnecessary-io.rs
src/test/compile-fail/unnecessary-unsafe.rs
src/test/compile-fail/unsafe-infects-caller.rs
src/test/compile-fail/use-uninit-2.rs
src/test/compile-fail/use-uninit-3.rs
src/test/compile-fail/use-uninit.rs
src/test/compile-fail/while-bypass.rs
src/test/compile-fail/while-expr.rs
src/test/compile-fail/writing-through-read-alias.rs
src/test/compile-fail/writing-through-uninit-vec.rs
src/test/compile-fail/writing-to-immutable-obj.rs
src/test/compile-fail/writing-to-immutable-rec.rs
src/test/compile-fail/writing-to-immutable-tup.rs
src/test/compile-fail/writing-to-immutable-vec.rs
src/test/run-fail/explicit-fail.rs
src/test/run-fail/fail.rs
src/test/run-fail/linked-failure.rs
src/test/run-fail/non-exhaustive-match.rs
src/test/run-fail/pred.rs
src/test/run-fail/str-overrun.rs
src/test/run-fail/task-comm-14.rs
src/test/run-fail/vec-overrun.rs
src/test/run-fail/vec-underrun.rs
src/test/run-pass/acyclic-unwind.rs
src/test/run-pass/alt-pattern-drop.rs
src/test/run-pass/alt-type-simple.rs
src/test/run-pass/arith-unsigned.rs
src/test/run-pass/basic-1.rs
src/test/run-pass/basic-2.rs
src/test/run-pass/basic.rs
src/test/run-pass/box-compare.rs
src/test/run-pass/child-outlives-parent.rs
src/test/run-pass/clone-with-exterior.rs
src/test/run-pass/comm.rs
src/test/run-pass/constrained-type.rs
src/test/run-pass/destructor-ordering.rs
src/test/run-pass/empty-mutable-vec.rs
src/test/run-pass/float-signature.rs
src/test/run-pass/float.rs
src/test/run-pass/float2.rs
src/test/run-pass/floatlits.rs
src/test/run-pass/fn-lval.rs
src/test/run-pass/generic-bind-2.rs
src/test/run-pass/generic-fn-box.rs
src/test/run-pass/generic-tag.rs
src/test/run-pass/generic-tup.rs
src/test/run-pass/iter-ret.rs
src/test/run-pass/lazychan.rs
src/test/run-pass/leak-tag-copy.rs
src/test/run-pass/lib-bitv.rs
src/test/run-pass/lib-deque.rs
src/test/run-pass/lib-int.rs
src/test/run-pass/lib-io.rs
src/test/run-pass/lib-map.rs
src/test/run-pass/lib-rand.rs
src/test/run-pass/lib-sha1.rs
src/test/run-pass/lib-sort.rs
src/test/run-pass/lib-str-buf.rs
src/test/run-pass/lib-str.rs
src/test/run-pass/lib-task.rs
src/test/run-pass/lib-uint.rs
src/test/run-pass/lib-vec-str-conversions.rs
src/test/run-pass/lib-vec.rs
src/test/run-pass/many.rs
src/test/run-pass/maybe-mutable.rs
src/test/run-pass/mlist-cycle.rs
src/test/run-pass/mlist.rs
src/test/run-pass/multi.rc
src/test/run-pass/mutable-alias-vec.rs
src/test/run-pass/native-mod.rc
src/test/run-pass/native.rc
src/test/run-pass/obj-as.rs
src/test/run-pass/obj-dtor.rs
src/test/run-pass/pred.rs
src/test/run-pass/preempt.rs
src/test/run-pass/rt-circular-buffer.rs
src/test/run-pass/seq-compare.rs
src/test/run-pass/size-and-align.rs
src/test/run-pass/spawn-fn.rs
src/test/run-pass/spawn-module-qualified.rs
src/test/run-pass/spawn.rs
src/test/run-pass/str-append.rs
src/test/run-pass/syntax-extension-fmt.rs
src/test/run-pass/syntax-extension-shell.rs
src/test/run-pass/task-comm-0.rs
src/test/run-pass/task-comm-1.rs
src/test/run-pass/task-comm-10.rs
src/test/run-pass/task-comm-11.rs
src/test/run-pass/task-comm-12.rs
src/test/run-pass/task-comm-13-thread.rs
src/test/run-pass/task-comm-13.rs
src/test/run-pass/task-comm-15.rs
src/test/run-pass/task-comm-2.rs
src/test/run-pass/task-comm-3.rs
src/test/run-pass/task-comm-7.rs
src/test/run-pass/task-comm-8.rs
src/test/run-pass/task-comm-9.rs
src/test/run-pass/task-comm-chan-nil.rs
src/test/run-pass/task-comm.rs
src/test/run-pass/task-killjoin.rs
src/test/run-pass/task-life-0.rs
src/test/run-pass/threads.rs
src/test/run-pass/type-sizes.rs
src/test/run-pass/typestate-cfg-nesting.rs
src/test/run-pass/use-import-export.rs
src/test/run-pass/use.rs
src/test/run-pass/user.rs
src/test/run-pass/utf8.rs
src/test/run-pass/utf8_chars.rs
src/test/run-pass/vec-alloc-append.rs
src/test/run-pass/vec-append.rs
src/test/run-pass/vec-slice.rs
src/test/run-pass/while-and-do-while.rs
src/test/run-pass/while-with-break.rs
src/test/run-pass/yield.rs
src/test/run-pass/yield2.rs

index fd8d8b52923b1f83ff50bdd52df7dc52d71209a2..1cb84047a26d5e318bfe5d121b83d24d9f141eb3 100644 (file)
@@ -568,195 +568,17 @@ docsnap: doc/rust.pdf
 # Testing variables
 ######################################################################
 
-# Float doesn't work in boot
-
-FLOAT_XFAILS := $(S)src/test/run-pass/float.rs \
-                $(S)src/test/run-pass/float2.rs \
-                $(S)src/test/run-pass/float-signature.rs \
-                $(S)src/test/run-pass/floatlits.rs
-
-# Temporarily xfail tests broken by the nominal-tags change.
-
-NOMINAL_TAG_XFAILS := $(S)src/test/run-pass/mlist.rs
-
-# Temporarily xfail tests broken by the constant-tags change.
-
-CONST_TAG_XFAILS := $(S)src/test/run-pass/generic-tag.rs
-
-# Temporarily xfail some of the task tests, while debugging the
-# overhauled inter-domain messaging system.
-
-TASK_XFAILS := $(addprefix $(S)src/test/run-pass/, \
-                 task-comm-8.rs \
-                 task-comm-10.rs \
-                 task-comm-15.rs \
-                 task-comm-12.rs \
-                 task-comm-2.rs \
-                 task-comm-9.rs \
-                 task-comm-chan-nil.rs \
-                 task-life-0.rs \
-                 alt-type-simple.rs \
-                 many.rs)
-
-TEST_XFAILS_BOOT := $(TASK_XFAILS) \
-                    $(NOMINAL_TAG_XFAILS) \
-                    $(CONST_TAG_XFAILS) \
-                    $(FLOAT_XFAILS) \
-                    $(addprefix $(S)src/test/run-pass/, \
-                      arith-unsigned.rs \
-                      box-compare.rs \
-                      child-outlives-parent.rs \
-                      clone-with-exterior.rs \
-                      constrained-type.rs \
-                      destructor-ordering.rs \
-                      obj-as.rs \
-                      vec-slice.rs \
-                      fn-lval.rs \
-                      empty-mutable-vec.rs \
-                      generic-bind-2.rs \
-                      generic-fn-box.rs \
-                      generic-tup.rs \
-                      iter-ret.rs \
-                      leak-tag-copy.rs \
-                      lib-io.rs \
-                      maybe-mutable.rs \
-                      mlist-cycle.rs \
-                      obj-as.rs \
-                      seq-compare.rs \
-                      task-comm.rs \
-                      task-comm-3.rs \
-                      vec-slice.rs \
-                      while-and-do-while.rs) \
-                    $(addprefix $(S)src/test/run-fail/, \
-                      task-comm-14.rs) \
-                    $(addprefix $(S)src/test/compile-fail/, \
-                      bad-expr-path.rs \
-                      import.rs \
-                      import2.rs \
-                      import3.rs \
-                      import4.rs \
-                      bad-recv.rs \
-                      bad-send.rs \
-                      infinite-vec-type-recursion.rs \
-                      tail-non-call.rs \
-                      writing-through-read-alias.rs) \
-                    $(S)src/test/bench/shootout/nbody.rs
-
-TEST_XFAILS_STAGE0 := $(addprefix $(S)src/test/run-pass/, \
-                        acyclic-unwind.rs \
-                        alt-pattern-drop.rs \
-                        alt-type-simple.rs \
-                        basic-1.rs \
-                        basic-2.rs \
-                        basic.rs \
-                        child-outlives-parent.rs \
-                        clone-with-exterior.rs \
-                        comm.rs \
-                        constrained-type.rs \
-                        destructor-ordering.rs \
-                        iter-ret.rs \
-                        lazychan.rs \
-                        lib-bitv.rs \
-                        lib-deque.rs \
-                        lib-int.rs \
-                        lib-io.rs \
-                        lib-map.rs \
-                        lib-rand.rs \
-                        lib-sha1.rs \
-                        lib-sort.rs \
-                        lib-str.rs \
-                        lib-str-buf.rs \
-                        lib-task.rs \
-                        lib-uint.rs \
-                        lib-vec-str-conversions.rs \
-                        lib-vec.rs \
-                        many.rs \
-                        mlist-cycle.rs \
-                        mlist.rs \
-                        mutable-alias-vec.rs \
-                        obj-as.rs \
-                        obj-dtor.rs \
-                        pred.rs \
-                        preempt.rs \
-                        rt-circular-buffer.rs \
-                        size-and-align.rs \
-                        spawn-fn.rs \
-                        spawn-module-qualified.rs \
-                        spawn.rs \
-                        str-append.rs \
-                        syntax-extension-fmt.rs \
-                        syntax-extension-shell.rs \
-                        task-comm-0.rs \
-                        task-comm-1.rs \
-                        task-comm-10.rs \
-                        task-comm-11.rs \
-                        task-comm-12.rs \
-                        task-comm-13-thread.rs \
-                        task-comm-13.rs \
-                        task-comm-15.rs \
-                        task-comm-2.rs \
-                        task-comm-3.rs \
-                        task-comm-7.rs \
-                        task-comm-8.rs \
-                        task-comm-9.rs \
-                        task-comm.rs \
-                        task-killjoin.rs \
-                        task-life-0.rs \
-                        threads.rs \
-                        type-sizes.rs \
-                        typestate-cfg-nesting.rs \
-                        use.rs \
-                        use-import-export.rs \
-                        user.rs \
-                        utf8.rs \
-                        utf8_chars.rs \
-                        vec-alloc-append.rs \
-                        vec-append.rs \
-                        vec-slice.rs \
-                        while-with-break.rs \
-                        yield.rs \
-                        yield2.rs \
-                        multi.rc \
-                        native-mod.rc \
-                        native.rc \
-                        ) \
-                     $(filter-out \
-                      $(addprefix $(S)src/test/compile-fail/, \
-                        alt-tag-nullary.rs \
-                        alt-tag-unary.rs \
-                        arg-count-mismatch.rs \
-                        arg-type-mismatch.rs \
-                        bad-expr-path.rs \
-                        bad-expr-path2.rs \
-                        bogus-tag.rs \
-                        fru-extra-field.rs \
-                        import.rs \
-                        import2.rs \
-                        import3.rs \
-                        import4.rs \
-                        import-loop.rs \
-                        import-loop-2.rs \
-                        multiline-comment-line-tracking.rs \
-                        output-type-mismatch.rs \
-                        rec-missing-fields.rs \
-                        reserved-dec.rs \
-                        reserved-f128.rs \
-                        reserved-f16.rs \
-                        reserved-f80.rs \
-                        reserved-m128.rs \
-                        reserved-m32.rs \
-                        reserved-m64.rs \
-                        tail-non-call.rs \
-                        tail-typeck.rs \
-                        type-shadow.rs \
-                        while-type-error.rs \
-                        wrong-ret-type.rs \
-                        ), \
-                     $(wildcard $(S)src/test/*fail/*.rs test/*fail/*.rc)) \
-                     $(S)src/test/bench/shootout/fannkuchredux.rs \
-                     $(S)src/test/bench/shootout/fasta.rs \
-                     $(S)src/test/bench/shootout/binarytrees.rs \
-                     $(wildcard $(S)src/test/bench/99-bottles/*rs)
+TEST_XFAILS_BOOT = $(shell grep \
+                       --recursive \
+                       --files-with-matches \
+                       --include=*.rs --include=*.rc \
+                       xfail-boot $(S)src/test)
+
+TEST_XFAILS_STAGE0 = $(shell grep \
+                       --recursive \
+                       --files-with-matches \
+                       --include=*.rs --include=*.rc \
+                       xfail-stage0 $(S)src/test)
 
 ifdef MINGW_CROSS
 TEST_XFAILS_BOOT += $(S)src/test/run-pass/native-mod.rc
@@ -767,106 +589,106 @@ TEST_XFAILS_BOOT += $(S)src/test/run-pass/native-mod.rc
 TEST_XFAILS_STAGE0 += $(S)src/test/run-pass/native-mod.rc
 endif
 
-BENCH_RS := $(wildcard $(S)src/test/bench/shootout/*.rs) \
+BENCH_RS = $(wildcard $(S)src/test/bench/shootout/*.rs) \
             $(wildcard $(S)src/test/bench/99-bottles/*.rs)
-RPASS_RC := $(wildcard $(S)src/test/run-pass/*.rc)
-RPASS_RS := $(wildcard $(S)src/test/run-pass/*.rs) $(BENCH_RS)
-RFAIL_RC := $(wildcard $(S)src/test/run-fail/*.rc)
-RFAIL_RS := $(wildcard $(S)src/test/run-fail/*.rs)
-CFAIL_RC := $(wildcard $(S)src/test/compile-fail/*.rc)
-CFAIL_RS := $(wildcard $(S)src/test/compile-fail/*.rs)
+RPASS_RC = $(wildcard $(S)src/test/run-pass/*.rc)
+RPASS_RS = $(wildcard $(S)src/test/run-pass/*.rs) $(BENCH_RS)
+RFAIL_RC = $(wildcard $(S)src/test/run-fail/*.rc)
+RFAIL_RS = $(wildcard $(S)src/test/run-fail/*.rs)
+CFAIL_RC = $(wildcard $(S)src/test/compile-fail/*.rc)
+CFAIL_RS = $(wildcard $(S)src/test/compile-fail/*.rs)
 
 ifdef CHECK_XFAILS
-TEST_RPASS_CRATES_BOOT := $(filter $(TEST_XFAILS_BOOT), $(RPASS_RC))
-TEST_RPASS_CRATES_STAGE0 := $(filter $(TEST_XFAILS_STAGE0), $(RPASS_RC))
-TEST_RPASS_SOURCES_BOOT := $(filter $(TEST_XFAILS_BOOT), $(RPASS_RS))
-TEST_RPASS_SOURCES_STAGE0 := $(filter $(TEST_XFAILS_STAGE0), $(RPASS_RS))
+TEST_RPASS_CRATES_BOOT = $(filter $(TEST_XFAILS_BOOT), $(RPASS_RC))
+TEST_RPASS_CRATES_STAGE0 = $(filter $(TEST_XFAILS_STAGE0), $(RPASS_RC))
+TEST_RPASS_SOURCES_BOOT = $(filter $(TEST_XFAILS_BOOT), $(RPASS_RS))
+TEST_RPASS_SOURCES_STAGE0 = $(filter $(TEST_XFAILS_STAGE0), $(RPASS_RS))
 else
-TEST_RPASS_CRATES_BOOT := $(filter-out $(TEST_XFAILS_BOOT), $(RPASS_RC))
-TEST_RPASS_CRATES_STAGE0 := $(filter-out $(TEST_XFAILS_STAGE0), $(RPASS_RC))
-TEST_RPASS_SOURCES_BOOT := $(filter-out $(TEST_XFAILS_BOOT), $(RPASS_RS))
-TEST_RPASS_SOURCES_STAGE0 := $(filter-out $(TEST_XFAILS_STAGE0), $(RPASS_RS))
+TEST_RPASS_CRATES_BOOT = $(filter-out $(TEST_XFAILS_BOOT), $(RPASS_RC))
+TEST_RPASS_CRATES_STAGE0 = $(filter-out $(TEST_XFAILS_STAGE0), $(RPASS_RC))
+TEST_RPASS_SOURCES_BOOT = $(filter-out $(TEST_XFAILS_BOOT), $(RPASS_RS))
+TEST_RPASS_SOURCES_STAGE0 = $(filter-out $(TEST_XFAILS_STAGE0), $(RPASS_RS))
 endif
 
-TEST_RPASS_EXES_BOOT := \
+TEST_RPASS_EXES_BOOT = \
   $(subst $(S)src/,,$(TEST_RPASS_CRATES_BOOT:.rc=.boot$(X))) \
   $(subst $(S)src/,,$(TEST_RPASS_SOURCES_BOOT:.rs=.boot$(X)))
-TEST_RPASS_EXES_STAGE0 := \
+TEST_RPASS_EXES_STAGE0 = \
   $(subst $(S)src/,,$(TEST_RPASS_CRATES_STAGE0:.rc=.stage0$(X))) \
   $(subst $(S)src/,,$(TEST_RPASS_SOURCES_STAGE0:.rs=.stage0$(X)))
 
-TEST_RPASS_OUTS_BOOT  := \
+TEST_RPASS_OUTS_BOOT  = \
   $(TEST_RPASS_EXES_BOOT:.boot$(X)=.boot.out)
-TEST_RPASS_OUTS_STAGE0 := \
+TEST_RPASS_OUTS_STAGE0 = \
   $(TEST_RPASS_EXES_STAGE0:.stage0$(X)=.stage0.out)
 
-TEST_RPASS_TMPS_BOOT  := \
+TEST_RPASS_TMPS_BOOT  = \
   $(TEST_RPASS_EXES_BOOT:.boot$(X)=.boot$(X).tmp)
-TEST_RPASS_TMPS_STAGE0 := \
+TEST_RPASS_TMPS_STAGE0 = \
   $(TEST_RPASS_EXES_STAGE0:.stage0$(X)=.stage0$(X).tmp)
 
 
-TEST_RFAIL_CRATES_BOOT := $(filter-out $(TEST_XFAILS_BOOT), $(RFAIL_RC))
-TEST_RFAIL_CRATES_STAGE0 := $(filter-out $(TEST_XFAILS_STAGE0), $(RFAIL_RC))
-TEST_RFAIL_SOURCES_BOOT := $(filter-out $(TEST_XFAILS_BOOT), $(RFAIL_RS))
-TEST_RFAIL_SOURCES_STAGE0 := $(filter-out $(TEST_XFAILS_STAGE0), $(RFAIL_RS))
+TEST_RFAIL_CRATES_BOOT = $(filter-out $(TEST_XFAILS_BOOT), $(RFAIL_RC))
+TEST_RFAIL_CRATES_STAGE0 = $(filter-out $(TEST_XFAILS_STAGE0), $(RFAIL_RC))
+TEST_RFAIL_SOURCES_BOOT = $(filter-out $(TEST_XFAILS_BOOT), $(RFAIL_RS))
+TEST_RFAIL_SOURCES_STAGE0 = $(filter-out $(TEST_XFAILS_STAGE0), $(RFAIL_RS))
 
-TEST_RFAIL_EXES_BOOT := \
+TEST_RFAIL_EXES_BOOT = \
   $(subst $(S)src/,,$(TEST_RFAIL_CRATES_BOOT:.rc=.boot$(X))) \
   $(subst $(S)src/,,$(TEST_RFAIL_SOURCES_BOOT:.rs=.boot$(X)))
-TEST_RFAIL_EXES_STAGE0 := \
+TEST_RFAIL_EXES_STAGE0 = \
   $(subst $(S)src/,,$(TEST_RFAIL_CRATES_STAGE0:.rc=.stage0$(X))) \
   $(subst $(S)src/,,$(TEST_RFAIL_SOURCES_STAGE0:.rs=.stage0$(X)))
 
-TEST_RFAIL_OUTS_BOOT  := \
+TEST_RFAIL_OUTS_BOOT  = \
   $(TEST_RFAIL_EXES_BOOT:.boot$(X)=.boot.out)
-TEST_RFAIL_OUTS_STAGE0 := \
+TEST_RFAIL_OUTS_STAGE0 = \
   $(TEST_RFAIL_EXES_STAGE0:.stage0$(X)=.stage0.out)
 
-TEST_RFAIL_TMPS_BOOT  := \
+TEST_RFAIL_TMPS_BOOT  = \
   $(TEST_RFAIL_EXES_BOOT:.boot$(X)=.boot$(X).tmp)
-TEST_RFAIL_TMPS_STAGE0 := \
+TEST_RFAIL_TMPS_STAGE0 = \
   $(TEST_RFAIL_EXES_STAGE0:.stage0$(X)=.stage0$(X).tmp)
 
 
-TEST_CFAIL_CRATES_BOOT := $(filter-out $(TEST_XFAILS_BOOT), $(CFAIL_RC))
-TEST_CFAIL_CRATES_STAGE0 := $(filter-out $(TEST_XFAILS_STAGE0), $(CFAIL_RC))
-TEST_CFAIL_SOURCES_BOOT := $(filter-out $(TEST_XFAILS_BOOT), $(CFAIL_RS))
-TEST_CFAIL_SOURCES_STAGE0 := $(filter-out $(TEST_XFAILS_STAGE0), $(CFAIL_RS))
+TEST_CFAIL_CRATES_BOOT = $(filter-out $(TEST_XFAILS_BOOT), $(CFAIL_RC))
+TEST_CFAIL_CRATES_STAGE0 = $(filter-out $(TEST_XFAILS_STAGE0), $(CFAIL_RC))
+TEST_CFAIL_SOURCES_BOOT = $(filter-out $(TEST_XFAILS_BOOT), $(CFAIL_RS))
+TEST_CFAIL_SOURCES_STAGE0 = $(filter-out $(TEST_XFAILS_STAGE0), $(CFAIL_RS))
 
-TEST_CFAIL_EXES_BOOT := \
+TEST_CFAIL_EXES_BOOT = \
   $(subst $(S)src/,,$(TEST_CFAIL_CRATES_BOOT:.rc=.boot$(X))) \
   $(subst $(S)src/,,$(TEST_CFAIL_SOURCES_BOOT:.rs=.boot$(X)))
-TEST_CFAIL_EXES_STAGE0 := \
+TEST_CFAIL_EXES_STAGE0 = \
   $(subst $(S)src/,,$(TEST_CFAIL_CRATES_STAGE0:.rc=.stage0$(X))) \
   $(subst $(S)src/,,$(TEST_CFAIL_SOURCES_STAGE0:.rs=.stage0$(X)))
 
-TEST_CFAIL_OUTS_BOOT := \
+TEST_CFAIL_OUTS_BOOT = \
   $(TEST_CFAIL_EXES_BOOT:.boot$(X)=.boot.out)
-TEST_CFAIL_OUTS_STAGE0 := \
+TEST_CFAIL_OUTS_STAGE0 = \
   $(TEST_CFAIL_EXES_STAGE0:.stage0$(X)=.stage0.out)
 
-TEST_CFAIL_TMPS_BOOT := \
+TEST_CFAIL_TMPS_BOOT = \
   $(TEST_CFAIL_EXES_BOOT:.boot$(X)=.boot$(X).tmp)
-TEST_CFAIL_TMPS_STAGE0 := \
+TEST_CFAIL_TMPS_STAGE0 = \
   $(TEST_CFAIL_EXES_STAGE0:.stage0$(X)=.stage0$(X).tmp)
 
 
-ALL_TEST_CRATES := $(TEST_CFAIL_CRATES_BOOT) \
+ALL_TEST_CRATES = $(TEST_CFAIL_CRATES_BOOT) \
                    $(TEST_RFAIL_CRATES_BOOT) \
                    $(TEST_RPASS_CRATES_BOOT) \
                    $(TEST_CFAIL_CRATES_STAGE0) \
                    $(TEST_RFAIL_CRATES_STAGE0) \
                    $(TEST_RPASS_CRATES_STAGE0)
 
-ALL_TEST_SOURCES := $(TEST_CFAIL_SOURCES_BOOT) \
+ALL_TEST_SOURCES = $(TEST_CFAIL_SOURCES_BOOT) \
                     $(TEST_RFAIL_SOURCES_BOOT) \
                     $(TEST_RPASS_SOURCES_BOOT) \
                     $(TEST_CFAIL_SOURCES_STAGE0) \
                     $(TEST_RFAIL_SOURCES_STAGE0) \
                     $(TEST_RPASS_SOURCES_STAGE0)
 
-ALL_TEST_INPUTS := $(wildcard $(S)src/test/*/*.rs   \
+ALL_TEST_INPUTS = $(wildcard $(S)src/test/*/*.rs   \
                               $(S)src/test/*/*/*.rs \
                               $(S)src/test/*/*.rc)
 
@@ -1131,7 +953,7 @@ PKG_3RDPARTY := rt/valgrind.h rt/memcheck.h \
                 rt/bigint/bigint.h rt/bigint/bigint_int.cpp \
                 rt/bigint/bigint_ext.cpp rt/bigint/low_primes.h
 
-PKG_FILES :=\
+PKG_FILES \
     $(wildcard $(S)src/etc/*.*)                \
     $(S)LICENSE.txt $(S)README                 \
     $(S)configure $(S)Makefile.in              \
index 096389416a85516e743748f972f8feaaab45fec3..e43541f492969b3a7a76998013a37bbdef72ea72 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-stage0
 /* -*- mode:rust;indent-tabs-mode:nil -*- 
  * Implementation of 99 Bottles of Beer
  * http://99-bottles-of-beer.net/
index 58d2d2c3e5434f3cbfab908e1f5e04ec48e919f1..539f81526fd9a63dcc4f8ec0a7ada9778a4b77c2 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-stage0
 /* -*- mode:rust;indent-tabs-mode:nil -*- 
  * Implementation of 99 Bottles of Beer
  * http://99-bottles-of-beer.net/
index 3c426f51036c5b8b100a122e9f4c56aae53edae4..d5adf102c5285536c81fd43b703bb0a8c3eed79b 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-stage0
 /* -*- mode:rust;indent-tabs-mode:nil -*- 
  * Implementation of 99 Bottles of Beer
  * http://99-bottles-of-beer.net/
index 16e66d333d3e65061526fc54c50aaa7e51d4b8b9..41e2c536ed1200215e9fd7c037ea61ffa54dc5d7 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-stage0
 /* -*- mode:rust;indent-tabs-mode:nil -*- 
  * Implementation of 99 Bottles of Beer
  * http://99-bottles-of-beer.net/
index 92bedb8b9e64ddf256ac0928050526a349daf215..0fc7ced4a9f59a43ea10fed816a7c25aa4a9ab0b 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-stage0
 use std;
 
 import std._int;
index 2d44067bec33ca9c41a5558481b2df0aafb75e1c..65f6bdb239d0d728b82be408ff2c2f8c1fd652b4 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-stage0
 // Based on Isaac Gouy's fannkuchredux.csharp
 
 use std;
index f88f4330fcef624fd2cfd2b93fcd21e128fcddf5..82d65e84e627113d119ff62161140bcde2f5b69e 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-stage0
 /* -*- mode: rust; indent-tabs-mode: nil -*-
  * Implementation of 'fasta' benchmark from
  * Computer Language Benchmarks Game
index b0ac2d446976474e25afb8e41a38460a300ddab0..5d9e304a420e54b81b23c4c51be11dbb848faac4 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-boot
 // based on:
 // http://shootout.alioth.debian.org/u32/benchmark.php?test=nbody&lang=java
 
index f2582879ce5e48d6ae383a627d0eed09d1b97ae1..0b5dbbfe996eba65e2fd03c0e37436f8114c75c2 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-stage0
 // error-pattern: Unexpected token 'x'
 
 fn main() {
index 013bb56e445811312f51d0c2c9d054f12872fea0..8e30ac4407d65d285500c2e7ad261fa5d9d7f534 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-stage0
 // error-pattern: attempted dynamic environment-capture
 fn foo() {
   let int x;
index 97c95c015457c0731efa8e06e2e6be15e6bc6a85..01e27c5a15a4981d225d4b2c4a4173d5d4746899 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-boot
 // error-pattern: unresolved name: a
 
 mod m1 {
index 8e3fa503eaf9bf3b7b1c593fe0e868fe1e6281e7..d1a5203f5d803e0c978b7bc6679a46521d0a5689 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-stage0
 // error-pattern: bad type signature
 
 fn main(int x) {
index 44a30219f1d59cc5b3e1b3c9dc5ddeecb146fa00..99324ce12c0f3372387413985dcaa0f7c5f17fcd 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-stage0
 
 // error-pattern: malformed name
 
index cccb735da055a8647fd183290c85a4eae96b46aa..031d1059f9d1abd6a4e65abbbd923a2f9cab26b6 100644 (file)
@@ -1,3 +1,5 @@
+// xfail-boot
+// xfail-stage0
 // error-pattern: mismatched types
 
 fn main() {
index e699b4e38dfb8e575bbac9d0c89526e0fb2ec80d..4a97539f011e0d4b0e425ebd6f4c7f49d364d506 100644 (file)
@@ -1,3 +1,5 @@
+// xfail-boot
+// xfail-stage0
 // error-pattern: mismatched types
 
 fn main() {
index e18e63a76afcd10a03986dac846716afa7aa5eb3..53b96278a48e0039f43d04c39c4e8df55f106c4e 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-stage0
 // error-pattern: attempted dynamic environment-capture
 fn foo[T]() { obj bar(T b) {} }
 fn main() {}
\ No newline at end of file
index b2f53252c69ddf9ac60e89870ce3f5c5226bcc2f..7d85d07f8a004a453e1ed0c46bf1a5c6309ea856 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-stage0
 // error-pattern: binding alias slot
 
 fn f(&int x) {}
index 57a8e6e86f6d06c5a0cf86dd1672b017fe4455dc..4a0f704a0d225ffa0e1b2cdb4c7ecec4f5e0927e 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-stage0
 // error-pattern: calculated effect is 'impure'
 
 fn main() {
index 2374cd2ce377a56c0560307534a7c3245f4777f3..6d81b69361052d81c3bb66bb0d87347fa8bccf3b 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-stage0
 // error-pattern: non-type context
 type base =
   obj {
index af1456a4105ed7de4d69bbf8ceac7f03c5b85f1e..5a069c5ae7aeb525f89b69f7d98f80d99b990931 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-stage0
 // -*- rust -*-
 
 // error-pattern: dead
index 4c52fcaa372adfa5784aff7fd256292bb0587cb2..c992e4e5d0a07942808cdc130c8d995ff0ff5e02 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-stage0
 // -*- rust -*-
 
 // error-pattern: dead
index fa0677253da0d49f02abbfa64c5cfe1ef7aa0454..e4184ccda97f0e75f107fa4933260a1be29d1a99 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-stage0
 
 // error-pattern: is not a mod
 
index 805d31426226091441bf5ca9c31a4df64f11f66c..e6680193d944d0596e2c0ab19336b370ae3d86d2 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-stage0
 // error-pattern: does nothing
 fn main() {
   log "doing";
index 7a00f22191db659adde15e830eb4404194fbae37..84e87c2e561ec03052d5467f17ea9f526c74d398 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-stage0
 // error-pattern: unknown module item
 mod foo {
   export x;
index 86c68e5b9056d17bd77698999b0ded36548f845c..74fcdb265205d3d7fe7816d7588e9cdd3e6bd1b9 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-stage0
 // -*- rust -*-
 
 // error-pattern: precondition
index 71ef0dec9c584e4f08f141c36e10620be2e91cd0..db1eac5c36960f1a5d4583e2904d8ec5cbde88ef 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-boot
 // error-pattern: unresolved name: baz
 import zed.bar;
 import zed.baz;
index 5a9ddcbd81513669fdaf57ba6de9f6cdf7eb9bb1..91d2ade36fcb6f4a00d709b9a27eabdda72da85f 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-boot
 // error-pattern: unresolved name: zed
 import baz.zed.bar;
 mod baz {
index 16aa43eab83724052941d0d8c404141da759f6b8..eede762610ca6b269d7c2bb6c805ba2cf7325017 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-boot
 // error-pattern: main is not a module or crate
 import main.bar;
 
index 3e1208f51e701b2fc22e4ffa18130d29a67eb826..bbef8d53eae84fc25cb99ecf8f254c8f85f80334 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-boot
 // error-pattern: cyclic import
 
 import zed.bar;
index c322850b6dd19cd8361cd65652fa8acca6861be1..17a651cad7a67f40c2afd409874b4c4575263916 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-stage0
 // -*- rust -*-
 
 // error-pattern: impure function used in constraint
index 17f8f594f9274bb9e9fcb1ac21110c6ba09c4ec7..8ba0e25be739b8bc04e5bbe5872cccc4c9ca21b6 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-stage0
 // -*- rust -*-
 
 // error-pattern: tag of infinite size
index 9315488b0562e769542b61b64cc6266db5789af5..4534f119e178ccb1aa909d10ced3784ed4ed9439 100644 (file)
@@ -1,3 +1,5 @@
+// xfail-boot
+// xfail-stage0
 // -*- rust -*-
 
 // error-pattern: infinite recursive type definition
index b07f46e6d20cadfc0b785211d96df8cb1935d04d..5e8281c53e4c576772416e176631f7557b87ba59 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-stage0
 // error-pattern: calculated effect is 'impure'
 
 impure fn foo() {
index f0f585f5eb8e27ba58cf73e85e0ef40f41926817..5cff8b986e7a0bfcad12f28ec238e9493778fbda 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-stage0
 // -*- rust -*-
 
 // error-pattern: name
index 34fb4105b8e00620331b3e85c00149e7a50cd372..4c73a4fd4c9beadf03269f6ce6fc6e0fd2438f0a 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-stage0
 // error-pattern: return
 
 fn f() -> int {
index d6e77b0d991002a1a3f82a294b4aa6a707800819..d158f56324d144a0b83700bb5aefd60aab832d03 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-stage0
 // error-pattern: calculated effect is 'unsafe'
 
 native mod foo {
index be90c12fec2906e7929c3d0a6da895e9af9abbc6..96089e670c0a04028325e937d183a93badaea977 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-stage0
 // error-pattern: unresolved identifier
 obj oT() {
   fn get() -> int {
index 4a899512e31ea5819fcb32882276b9d097a6aab8..c599f3bcb45b76bf302199db140c042485b1392a 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-stage0
 // -*- rust -*-
 
 // error-pattern: mismatched types
index cf31b8bdf0b4c9c57d2ff3deb8d7a713ea7506c1..7106df5c80bec25f433d3f5f4553df23cc1bc49d 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-stage0
 // -*- rust -*-
 
 // error-pattern: Unsatisfied .* lt(a, c)
index 9f704bc35b0d1a395b10097135f5c1e5b348c8fa..22882ff2aeed770e1392362b05726a716eba5f9a 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-stage0
 // error-pattern: iterator function
 
 fn f() -> int {
index 3711716927a39b6dc5ebec4b71daa455f3acf804..047db518fab4331a603aefa98267ed80b22253ef 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-stage0
 // error-pattern: precondition constraint
 
 fn f() -> int {
index 1da8df840c1b4d2324b32fcb20fb19beb3a4fd76..2ba4a30cae4e8457bffee908823cbc4293e404ab 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-stage0
 // -*- rust -*-
 
 // error-pattern: mismatched types
index 4d869bba2399d06f8bb754591047b5fe6aea033a..bd7d7d9f02737d8f6d5fdffbfea7c9c7d8217d38 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-stage0
 // error-pattern: mismatched types
 
 fn f(int x) -> int {
index 00a451f647aabc76e5405edafb7cecbe4f83d1b1..e2dbc381fb168e04b64bb3a9d22e00c050beae9a 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-boot
 // error-pattern: Non-call expression in tail call
 
 fn f() -> int {
index a1916fdccacd96e81b6673023d50b218740b0a0a..f49e744769251a82e1bf6528ae9ec3ee80e596ee 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-stage0
 // -*- rust -*-
 
 // error-pattern: token
index fb50a54ccbf1608bb38f5890bb49c24d51e68da1..64784661b3cb3f50e4bb85c50b2dfcfda2e0a97b 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-stage0
 // error-pattern: calculated effect is ''
 impure fn main() {
   log "hi";
index 6705bf3464582789730fec2c19d75c667100377c..9d48f164e231b5ee5ce51f4e08c476e41c57205e 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-stage0
 // error-pattern: calculated effect is ''
 unsafe fn main() {
   log "hi";
index 28daea6c9f5a23cc51d79f71cddb6a3785d44dbb..532024e59d0675b399b569c319fe566d57d2ae17 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-stage0
 // error-pattern: calculated effect is 'unsafe'
 
 native mod foo {
index 79cebe2811f874cb70ba55218084f8f21dc01341..c77676b80999f952968fcf82be4ca32263290287 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-stage0
 // error-pattern:Unsatisfied precondition
 
 fn foo(int x) {
index e65454518a3284262afb17fccb761d32f203e9a2..5dd3926ba0dfc440bb6f311ee9521b45a48e66b1 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-stage0
 // error-pattern:Unsatisfied precondition
 
 fn foo(int x) {
index 03dafdcc003840e70e2cb2b534627e4a2d21e76d..bd2e9f416a2ee4437f356a8742c8bb2d96272db3 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-stage0
 // error-pattern:Unsatisfied precondition
 
 fn foo(int x) {
index 1de89e909dafb3593aae63bd4053341dfe9885af..b49152b3e98cb390d4f705fcd55671f7b5f8a21a 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-stage0
 // error-pattern: precondition constraint
 
 fn f() -> int {
index 9077c18fd62f42c5d9bb8665e942108ad37df500..295752f8e0299d9e5540c718a27e6b20291a09f6 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-stage0
 // error-pattern: precondition constraint
 
 fn main() {
index 2a8ec11eaf3a78d16f8e7b0f2bf292f86224d998..373c60828cd141e42c1ffb695c3dd4fed2e8340a 100644 (file)
@@ -1,3 +1,5 @@
+// xfail-boot
+// xfail-stage0
 // -*- rust -*-
 
 // error-pattern: writing to immutable type
index 55edbf8787515e5cf9c741ad23049bdc1828626b..7757609df7839bbe062ee970a4f12ca4b0f684a0 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-stage0
 // error-pattern: Unsatisfied precondition constraint
 
 fn test() {
index ffa2cebe2fd801559e1fea4153247faf5406db45..563fc9cd84e6b681b8ebfced3341eed056af0ab7 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-stage0
 // error-pattern: writing to immutable type
 obj objy(int x) {
     fn foo() -> () {
index 42206fe4124ef91328c2836ca9faf152e657a89b..8e94dfd94877e2f164eb3f364a97bd8582ff5a1d 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-stage0
 // error-pattern: writing to immutable type
 fn main() {
   let rec(int x) r = rec(x=1);
index bd974dcc786aa6fd19c4a06ccd53a7ef1e07d560..e05aa55b457b2c0eba54ad5e8a3b43fd29f5e9f6 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-stage0
 // error-pattern: writing to immutable type
 fn main() {
   let tup(int) t = tup(1);
index 341037c346c2ae0b0bd061d74480d9036366dbed..dac122b8d803e548eb3752f1cbf8377b368c6c86 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-stage0
 // error-pattern: writing to immutable type
 fn main() {
   let vec[int] v = vec(1, 2, 3);
index cb0e37e5ce875d2da5f1c2bc2a971de6cf0b2f60..3ab821d5de1a28f40576d7051ab0cfab79d1946e 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-stage0
 // error-pattern:explicit
 
 fn main() {
index 8808b8c890f9003459f21a03a1bb97069be0e4dc..e8c9cf71bcbee00274442a9439263761ffa801ff 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-stage0
 // error-pattern:1 == 2
 
 fn main() {
index 4990f33cf87efa1ca7811b5aceb7267f5f498787..df8b49d6cfee86ab5070cf42e02ab93904ba1d94 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-stage0
 // -*- rust -*-
 
 // error-pattern:1 == 2
index eb533ef30771b6d19b159ee2198a8578b9a30e22..85418022ff00a51e7697616397d60d6dcc188efd 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-stage0
 // -*- rust -*-
 
 // error-pattern:non-exhaustive match failure
index e5456a5eebd6637f9a921f46062beeb301d81402..d4430703c710b7e25f8a01c45df9ae2a4e1856e3 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-stage0
 // -*- rust -*-
 
 // error-pattern:predicate check
index cd455fb4ba7813a80c166c5b8470537117a6ea16..4388cb3ac802e5d7bc101fdce9e540d09d9f8b2a 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-stage0
 // -*- rust -*-
 
 // error-pattern:bounds check
index 786f7428f7bb90032f90c906541c4ea70a224b88..b56723c2832911d211c6b3c88f1cc7c928cb30aa 100644 (file)
@@ -1,3 +1,5 @@
+// xfail-boot
+// xfail-stage0
 io fn main() {
     let port[int] po = port();
 
index e646a107113849cde1ba3ac39b6dd7ccce92948b..961da730e3bdaa0a22df41317880e3abe9eb0096 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-stage0
 // -*- rust -*-
 
 // error-pattern:bounds check
index c9073030300d7c9684f97be00fe0a2b8008045b4..a230d1be7ff7613f7065341883cc7e33b8f08874 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-stage0
 // -*- rust -*-
 
 // error-pattern:bounds check
index 27cffad46d40a4d324f7b01b059f738d873bef0c..4df67c9bd41d18650a9d8ee3f577d31bde7326ef 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-stage0
 // -*- rust -*-
 
 impure fn f(chan[int] c)
index 4ee2c12bec25d957f95fcc92e3576df03310ec72..d3c62485fa83dbc088d9be6c1c3198910f157410 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-stage0
 // -*- rust -*-
 
 use std;
index 85f6ff684598ac6aab144fbee2b2dcc1d8df3dfb..62193866e7205bd77108985b5a3afeee77811687 100644 (file)
@@ -1,3 +1,5 @@
+// xfail-boot
+// xfail-stage0
 fn altsimple(any x) {
   alt type (f) {
     case (int i) { print("int"); }
index 3fac37142f80a95fbac221de2686b67af2568d3d..748ff6b7da32bb724b4f9a72a2a17c0c98ab6f88 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-boot
 // Unsigned integer operations
 
 fn main() {
index f61bf8951122ef49af99c500122b34d861ec1e06..5697eea43b3ff848faf2eebf2497ab07422831c8 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-stage0
 // -*- rust -*-
 
 impure fn a(chan[int] c) {
index d2b2e240f8d42b0f2a24d9409de3694ce8da5c5f..d73366847735563f314a50905a8089a3d7749ae8 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-stage0
 // -*- rust -*-
 
 impure fn a(chan[int] c) {
index a92247c98322c160af2cd84a613eb96aa01840f1..7495f037fed4fc3fedf08e7a2d474a9e51f54c17 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-stage0
 // -*- rust -*-
 
 impure fn a(chan[int] c) {
index 5115d5109a9da01b987b1940cacc72397dff7a78..619790d796512d3ff381c92136d5c53a7e0eac61 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-boot
 fn main() {
   check (@1 < @3);
   check (@@"hello " > @@"hello");
index d7d7c34430274c8bba845fbcf78bb392b8c81874..01ee19afb44c1e2f9255abcc0e87bfe321ee192a 100644 (file)
@@ -1,3 +1,5 @@
+// xfail-boot
+// xfail-stage0
 // Reported as issue #126, child leaks the string.
 
 fn child2(str s) {
index 7de90425a35b3d241ac96028c4e277de35548961..e97c409d50f3b9d653dd42bab0a639a46c657667 100644 (file)
@@ -1,3 +1,5 @@
+// xfail-boot
+// xfail-stage0
 fn f(@rec(int a, int b) x) {
   check (x.a == 10);
   check (x.b == 12);
index a6610d57ff0ec4954e286dca88c2a7e082fc32a7..93ccacfcc2a7700e44ac381066f2455f3779500f 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-stage0
 // -*- rust -*-
 
 impure fn main() {
index 1fc6f49a54cf6d04053e6baf23305eacc27cbe96..3c110400438d227ae7f691ad4949f0e99ac8e8fe 100644 (file)
@@ -1,3 +1,5 @@
+// xfail-boot
+// xfail-stage0
 // -*- rust -*-
 
 // Reported as issue #141, as a parse error. Ought to work in full though.
index f7f5b8c82c3d4f80a347f2f9074fb4eefce3b5b7..aed38bc2fe3127f93049f6d64e2031aa49454028 100644 (file)
@@ -1,3 +1,5 @@
+// xfail-boot
+// xfail-stage0
 // This test checks that destructors run in the right order.  Because
 // stateful objects can't have destructors, we have the destructors
 // record their expected order into a channel when they execute (so
index a972fda4e53b37b3b9aeddc9d12f863b00ba368a..237805ca8fdcf49f6fef3368442a0831d54d9964 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-boot
 fn main() {
     let vec[mutable int] v = vec(mutable);
 }
index da18390d69b9362b5a13b03928ab31936d0873f9..55c42a6e187e4148a3b935193858cb83acd23188 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-boot
 fn main() {
     fn foo(float n) -> float {
         ret n + 0.12345;
index dad2f6d8a0ebc396a2925d2192aba259aaadf740..950271fb118856a691a383850c0d5a5b3ee05d07 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-boot
 fn main() {
   auto pi = 3.1415927;
 
index 0c111ba9779e86662c65627a1374a08e2533711f..9cc3a8ca9cd31a5bab77ac3cc88a43398af0da0b 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-boot
 fn main() {
   auto a = 1.5e6;
   auto b = 1.5E6;
index db82b486af05a0540c2352324b4d6149bd6338a2..10b0fb7766a60aa063eabd5cad05ef433fa127de 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-boot
 fn main() {
   auto f = 4.999999999999;
   check (f > 4.90);
index de0d3f48f0e28e4bcef332ce01e6b146b1be18ac..4223e02268129b6143ed2fe419c32e03ada12e41 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-boot
 // -*- rust -*-
 
 fn foo((fn(int) -> int) f) {}
index 95a8cab48cc15b6de67fbace48cb2236a43e8b9a..3975867ac29a32f13781f9bbeab80695c162d8e3 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-boot
 fn id[T](&T t) -> T {
   ret t;
 }
index e821a784598d2275a23e67bcf20dd110a02103df..1092ea8b65f30d5b83685198c3c6d326d9e347bc 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-boot
 fn f[T](@T x) -> @T {
     ret x;
 }
index 68d7c18f8d2b99ff53d44e9f89bc336926cef957..12a813e30853e31aead84c7ca1a5c33d8d33dd7c 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-boot
 tag option[T] {
   some(@T);
   none;
index 29a66371f115bd13299cfcbf410eda4849e90a7f..c387ef1928dc119d80799bbd4ed8cf8bdc41f19c 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-boot
 
 fn get_third[T](&tup(T,T,T) t) -> T {
   ret t._2;
index 12eb9b4e645aea9f93670e0096ac152085c21140..6d7250614fce506cfc81ce2647353b136c3605b1 100644 (file)
@@ -1,3 +1,5 @@
+// xfail-boot
+// xfail-stage0
 iter x() -> int {
 }
 
index b5bf8872712adaf210aaf7aff0b412550d5272db..adc14434e18da3e919f2dd51e568c5a7a5bc3256 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-stage0
 // -*- rust -*-
 
 impure fn main() {
index 25d87c6e874939a0b0b2a9dc92ea98e9e0d72509..5a4ead33365edb8b6314749b762757f529e0b2e9 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-boot
 tag t {
   a;
   b(@int);
index c3ffa8ea0ca64193deb27a0211ddad6052821690..3bd5a03ac80653553c0b3c5ea157d0d91790d689 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-stage0
 use std;
 import std._vec;
 import std.bitv;
index ab45b3975595127dfb2d96ee9314e8d6d5401e0d..b51ff241d2f5b118120f0aa159c195e085000f7c 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-stage0
 // -*- rust -*-
 
 use std;
index 2e85abf6509f23ac9589c25fe55989a0c6f2e312..9fd127ef6fbf8efdedd95318ee75f159fb818a75 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-stage0
 use std;
 
 import std._int;
index 0c0bcdcd041ceb20a638d290818da2f041cf6cb5..aab6713f7ef9a08619edd2afdb9928179b75623d 100644 (file)
@@ -1,3 +1,5 @@
+// xfail-boot
+// xfail-stage0
 // -*- rust -*-
 
 use std;
index 0ae8cc6b387d411a39da2dc5ea732af3c9b3974b..319c8a9b684157fd116217e989c89e33a24557aa 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-stage0
 // -*- rust -*-
 
 use std;
index df227f6632ca2f3a2661dc6357913d5dd9d66190..62d94dc463050340bb5fb7c5ffdd028e54949f6e 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-stage0
 // -*- rust -*-
 
 use std;
index 57e3cdc856b6d95b9e1d80d0522495044c7af5e4..82c497c8506ffc0a52fa5db4a1b89ecc082e1249 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-stage0
 // -*- rust -*-
 
 use std;
index e2c3465cdfd47f23a4036f6ce7e2b2a9ac9ff903..f6076e5858552bf73adbbf5dc56881510c905960 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-stage0
 use std;
 
 fn check_sort(vec[int] v1, vec[int] v2) {
index 7ba19e925d76d53f08b5c52e63b45123408bea87..bd5cb036a699fb4fd1a74f442321cbc5c205efe3 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-stage0
 // -*- rust -*-
 
 use std;
index f3552aad373a5414065e756522b8c2af985182e6..52f0f51b0870e2d9433cdc06776bea6f0db54e25 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-stage0
 use std;
 import std._str;
 
index 18499f4e5d03e645a54afe1df3a29bd71537b372..06e9182c7e633ad3ef031017402fe86cef226dc1 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-stage0
 use std;
 import std._task;
 
index 356ca374092c2be02202933a1b2307c5cec4d3d6..98d3755016bc79b14fd821211d2df7c247c72070 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-stage0
 // -*- rust -*-
 
 use std;
index 1d6b61a1900e3d630a56771fadc4cb36327db0e4..b8da0777dc3249909d211328191593405a66c761 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-stage0
 // -*- rust -*-
 
 use std;
index 4d6166483bcf2cbec936c67b9a014ad832db1535..6fde06ad33d72ab19cbfdcdc8b26927415de5377 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-stage0
 use std;
 
 fn test_init_elt() {
index 2c3d642523e61105e87dc39c778c3ab35a710ccb..8fe47133f69d9c3db9734a7a0192fbb863da08c4 100644 (file)
@@ -1,3 +1,5 @@
+// xfail-boot
+// xfail-stage0
 // -*- rust -*-
 
 impure fn sub(chan[int] parent, int id) {
index c0af0867faa5af26e98562ad11a535b28e6772d3..b859ae7c4641f2889c2a428147ee3cdecf3813f6 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-boot
 // -*- rust -*-
 
 fn len(vec[mutable? int] v) -> uint {
index 5dedd3d04aa1ebe3963eecbb298c82219348910d..050565921b84ca3e1be079eeea1e9c832a44a8cb 100644 (file)
@@ -1,3 +1,5 @@
+// xfail-boot
+// xfail-stage0
 // -*- rust -*-
 
 use std;
index 3754d044c4a7f102a4db8d6c0476f8117fe3c782..6fc45d7c65bf713641ddc2dc8da3869fe26b63c4 100644 (file)
@@ -1,3 +1,5 @@
+// xfail-boot
+// xfail-stage0
 // -*- rust -*-
 
 tag mlist {
index 90f03ee99db6bc41ef22c51a3e489ed12cf13f9a..ad08db6ba9159aa4700b72828ef264a3fa7962fc 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-stage0
 mod multi = "multi-src" {
 
   mod foo; // implicitly = "foo.rs"
index 887fb39125eef28d8b5ca28f70d544008f87bf78..367afaf861759c9fdb4eabffc99472fca793f950 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-stage0
 // -*- rust -*-
 
 use std;
index 4fcf4499e75b44c6663c0c3b8a7ef1d627923f97..17925c798b5c8290abce586905e2af7fb2b19497 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-stage0
 // -*- rust -*-
 
 native mod libc = target_libc {
index c0f019c54998025b452ffcec5f0c2f9cb34cb5d7..8955609643bb2989b43f46fb2f4112afcf5a54d6 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-stage0
 // -*- rust -*-
 
 native "rust" mod rustrt {
index 62eda294838961bd8778cffef875f833a4426568..6e0dac37b8fe62f3708323192c7430a6a5dae552 100644 (file)
@@ -1,3 +1,6 @@
+// xfail-boot
+// xfail-boot
+// xfail-stage0
 
 obj big() {
   fn one() -> int { ret 1; }
index d1f54f8fa6cf38b64799f2267b067c517d526222..389675da23201dd5ed530969c52f690263d91825 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-stage0
 obj worker(chan[int] c) {
   drop {
     log "in dtor";
index b3338f383d3e1e18358737cce1aecb5545735044..c2bea01025e429e0a0889802032ffb8e9f49de7e 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-stage0
 // -*- rust -*-
 
 fn f(int a, int b) : lt(a,b) {
index 067870971893a7bda831f7b2bad06d9ed2b4a310..42d6229d07c5acd4bec4761c51de79aec36e5fbb 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-stage0
 // This checks that preemption works.
 
 impure fn starve_main(chan[int] alive) {
index 542846b4dcdc923170b86573c8378df1f38016ca..170781168352c3ad311cf1baaa323578f4ab500e 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-stage0
 // -*- rust -*-
 
 // Regression tests for circular_buffer when using a unit
index b3fe570193d6b2fa3607499bca56fef6ec092c11..36db2b4667eed1e19683742cd92bddeac11fdf30 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-boot
 fn main() {
   check ("hello" < "hellr");
   check ("hello " > "hello");
index 58d529e8374d6148d6a24fa8681cd73068af2087..5e0a9c207ddf3143931bc1f313a7b8480441dd64 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-stage0
 // -*- rust -*-
 
 tag clam[T] {
index 894a8321528ef33b0375f703e67d9abcdf54d039..ea069e31fd019474a7d2a0e67220d2ee37449959 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-stage0
 // -*- rust -*-
 
 fn x(str s, int n) {
index 68f665df7d8d04371854250a618051cb64d739a2..833e246aa301a6517c316365b95c0ba83e55ad30 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-stage0
 fn main() {
   auto x = spawn m.child(10);
   join x;
index 765d4c9e25af0ee4d0eda3b1b270746b5862f5dc..5dd758baf1c5041332a6a3491d502ce3ef848fb4 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-stage0
 // -*- rust -*-
 
 fn main() {
index da4ca07fc26a28c02d3936d0ea1143a6e6e9dd83..724a0893c17f3ba73e2178db40e4a24d69c9cdd7 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-stage0
 // -*- rust -*-
 
 use std;
index ebb09f96ba2c90930f62bf69b7750bed08e00478..db0d8a1958314a17e0f4ef5a6ff5db956a02d222 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-stage0
 use std;
 import std._str;
 
index 509b6d8b468d5274d08cf812a86e676edf36a716..f48a1b814a0848eba4cb14463eaa1ddbe6eb9686 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-stage0
 fn main() {
   auto s = #shell { uname -a };
   log s;
index 085f958e01893b8a5d58de76fa4a711867a813f0..9030340c19b31df559207694333448ae65c693f0 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-stage0
 impure fn main() -> () {
     test05();
 }
index 48983b71e1af20a1b686c6ce3e54c352eabf0300..61613a20267d6f0bd9ac4e1467a8befe504f434d 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-stage0
 fn main() -> () {
    test00(); 
 }
index e0164596390da809978b6e70b649c8dee81bbd64..6932f7e0ba40469da744293b44faebd4bd88e2e1 100644 (file)
@@ -1,3 +1,5 @@
+// xfail-boot
+// xfail-stage0
 impure fn start(chan[chan[str]] c) {
     let port[str] p = port();
     c <| chan(p);
index 41069c7fd86bd7747c5250d3b7f1fe9fdca090fa..6de447ae934e76d8025a7765bcf724f82625d614 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-stage0
 impure fn start(chan[chan[str]] c) {
     let port[str] p = port();
     c <| chan(p);
index ceb6ba017293bd53f1fd77e881423e41b9f164c0..5d89b5d3c471aa29222eefca1903cafeb52c9115 100644 (file)
@@ -1,3 +1,5 @@
+// xfail-boot
+// xfail-stage0
 use std;
 import std._task;
 
index e7cfc24720d9a9f8fc1b9ed8b120a3eb7a3f13ce..2fb32f95332a6cb2d7b15111ee4d9a197d68ea6f 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-stage0
 use std;
 import std._task;
 
index 6b29ec1ee2a85ebb745344de99cb61f0485fcaee..719edbb7eabf4b16a62258a3f96a298b8f2b60a5 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-stage0
 use std;
 import std._task;
 
index b5bd733144c338332d68c392391bdb3c6a800ff7..1eee1a0927a9153ddd0983c96135fbca38005f8b 100644 (file)
@@ -1,3 +1,5 @@
+// xfail-boot
+// xfail-stage0
 impure fn start(chan[int] c, int n) {
     let int i = n;
 
index 864d49de1e09b2cfb74ad5306a6a601c2b288436..a6fc911587ad68a29133106e1e9addddf623746c 100644 (file)
@@ -1,3 +1,5 @@
+// xfail-boot
+// xfail-stage0
 fn main() -> () {    
     log "===== SPAWNING and JOINING TASKS =====";
     test00(false);
index d833c3a5810332af85f7b46eeec713ef94f0425c..b172a099712a7731a0ac3ebf9567b1e669b950ac 100644 (file)
@@ -1,3 +1,5 @@
+// xfail-boot
+// xfail-stage0
 impure fn main() -> () {
    log "===== WITHOUT THREADS =====";
    test00(false);
index 099f8d6b6d4e07feeba1d8f95023ba09133b9048..599d2d832a668563d1b13afadf304a1afac21325 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-stage0
 impure fn main() -> () {
    test00();
 }
index 87fa3d895489d9214a8d9381b1d9964eee42e668..1bc02660acd1bee6691c5d7749d91b2235e27947 100644 (file)
@@ -1,3 +1,5 @@
+// xfail-boot
+// xfail-stage0
 impure fn main() -> () {
    test00();
 }
index 370a36e34b83d926d9d1dd043116a1f77e4d03af..cf3758533940e3a9366804e770e909e8f81a7e02 100644 (file)
@@ -1,3 +1,5 @@
+// xfail-boot
+// xfail-stage0
 impure fn main() -> () {
    test00();
 }
index c8f5a90f59ecd51a63e4c068cc7d466639e995ee..a341d939769011ecd2bf5f90592d9fb28839de97 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-boot
 // -*- rust -*-
 
 // rustboot can't transmit nils across channels because they don't have
index d5f9a3a0dae2030df0c0ce9824a7ca4711bdce8b..04751e374782e25147623266ad49a1196a3771ac 100644 (file)
@@ -1,3 +1,5 @@
+// xfail-boot
+// xfail-stage0
 
 impure fn main() -> () {
     test00(true);
index 558c168710693354a16195c13cd8496fa42e5400..6a9f272fe1c7937800f5370064152456c2580cf5 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-stage0
 // Create a task that is supervised by another task,
 // join the supervised task from the supervising task,
 // then fail the supervised task. The supervised task
index f15792fbcf77f2595cff9c95dda25de0ee8f8b92..567f63a9561a7460a74243fc22a82ce0168610e9 100644 (file)
@@ -1,3 +1,5 @@
+// xfail-boot
+// xfail-stage0
 fn main() -> () {
     spawn child("Hello");
 }
index aa6e763fd0edb1a8fbb6b613307f3334d474f5d0..3b6d8c0b39da7a375b32b89fe492d4031b4eadb8 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-stage0
 // -*- rust -*-
 
 fn main() {
index a257ee0930e65f0213c71c5ac1c9d5c93f0c3e2f..67b8b57871ff69d64e61b4215ebbc3a8f0823d5d 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-stage0
 
 import size_of = std.sys.rustrt.size_of;
 
index 8f0506469b1e5cf0f43f9e14efdb39fec58ead20..73399525f9c8c038ec60d0acdbf78c1c2ceef6e5 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-stage0
 
 fn f() {
 
index 0b3302691a458a2a59e49518f22965dc01607a75..5149593115e6f62aca5df51e88fc5831de1e9d3d 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-stage0
 
 mod foo {
   export x;
index ac46061c40f78d2187f8a9840fbe4b1af483907e..a71957f20e4f7c85591ced7e1db9056753928eab 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-stage0
 use std;
 use libc();
 use zed(name = "std");
index e72d0bca7c37552bd3eab880b4b3e52ad3bedcdb..b8a8144c227949acd437939c4e10db2d0029a4f4 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-stage0
 // -*- rust -*-
 
 use std (name = "std",
index 5fd4dcfe96c07af5673fdc6516634a708dce8d18..68f5fa9f680032ad367f2f696add750c9df21fd2 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-stage0
 fn main() {
   let char yen = '¥';         // 0xa5
   let char c_cedilla = 'ç';   // 0xe7
index 04f8f574133bbd423939a37135625f326bf64bd0..08671093edfb75b1b905b37d40915e76c8d16b26 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-stage0
 use std;
 import std._str;
 import std._vec;
index 8dba98120bbebc905d2a34e791d11375209a4a72..83d58d73978f03f20114422e2d37c015ea379691 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-stage0
 // This is a test for issue #109.
 
 use std;
index ca906e5568ecfba589526c1df0cb8ef9d27723d2..0f9f56dd9541b834793b699628ed110147c4cd2f 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-stage0
 // -*- rust -*-
 
 use std;
index 332eff346f9c99581a831e5049728289a2ccda69..5517414230899055bab3cbc6accc81013175854a 100644 (file)
@@ -1,3 +1,6 @@
+// xfail-boot
+// xfail-boot
+// xfail-stage0
 fn main() {
   let vec[int] v = vec(1,2,3,4,5);
   auto v2 = v.(1,2);
index ebf7809929b2c43d117180c7202111db9bd596cf..e48ab2fc246a83bcbda690d561a7096269d08758 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-boot
 fn main() {
   let int x = 10;
   let int y = 0;
index 0e27f252ebb310e69e4cf3a7834d44fccef790f7..40efebc81bccbc89835e9f990f119f8679de9c92 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-stage0
 // -*- rust -*-
 
 fn main() {
index d2ae592a80acd02de78cd61b3035e2d368d68dfa..7b931afb73e9d411166c5cf38ad709b9d8aab7b8 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-stage0
 // -*- rust -*-
 
 fn main() {
index 11285822a7e8449699b55c4c213c54ee24a0319d..f1a543416d00a7409e6bded487d864a094b01265 100644 (file)
@@ -1,3 +1,4 @@
+// xfail-stage0
 // -*- rust -*-
 
 fn main() {