<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -26,7 +26,7 @@
 (defun character? (a) (characterp a))
 (defun string? (a) (stringp a))
 (defun vector? (a) (vectorp a))
-(defun error-halt (message args) (apply #'error (cons message args)))
+(defun error-halt () (error &quot;error-halt&quot;))
 
 ;;; This provides the subject language semantics
 (defun symbol? (a)</diff>
      <filename>bootstrap/cl-dialect.lisp</filename>
    </modified>
    <modified>
      <diff>@@ -934,17 +934,6 @@
 
 ;;; Misc. runtime
 
-(define-reg-use (error-halt attrs message args) 0)
-(define-codegen (error-halt attrs message args)
-  (let* ((l (gen-label)))
-    (emit-smart-label cg l)
-    (emit-comment cg &quot;error-halt: ~S&quot;
-                  (if (eq? 'quote (first message)) 
-                      (form-attr message 'quoted)
-                      &quot;unknown&quot;))
-    (emit cg &quot;hlt&quot;)
-    (emit-smart-jump cg l)))
-
 (define-operator (fixnum-&gt;raw val) val ()
   (emit-sar cg number-tag-bits val))
 </diff>
      <filename>compiler/codegen.pco</filename>
    </modified>
    <modified>
      <diff>@@ -24,8 +24,6 @@
 (define keywords-1
   '(begin definitions if
 
-    error-halt
-    
     eq? function?
     
     symbol? symbol-name symbol-id raw-make-symbol</diff>
      <filename>compiler/compiler.pco</filename>
    </modified>
    <modified>
      <diff>@@ -102,8 +102,6 @@
 (defmacro (reify form)
   (quasiquote (define (unquote form) (unquote form))))
 
-(reify (error-halt message args))
-
 (reify (eq? a b))
 (reify (function? a))
 
@@ -158,6 +156,7 @@
 
 (when-interpreting
   ;; Provide function forms for some interpreter builtins
+  (reify (error-halt))
   (reify (intern a))
 
   ;; Gensym is an interesting case.  We need it early on for macros.
@@ -211,9 +210,12 @@
 ;;; The real definition of error requires formatted output, which is a
 ;;; bit late in the day.  So put a stub definition in place here.
 (define (error message . args)
-  (error-halt message args))
+  (error-halt))
 
 (when-compiling
+  (define (error-halt)
+    (c-call &quot;abort&quot;))
+
   (define (arity-mismatch nparams nargs)
     (error &quot;expected ~S arguments, got ~S&quot; nparams nargs))
 
@@ -1026,7 +1028,7 @@
 
 (set! (error message . args)
   (formout stderr &quot;~A~%&quot; (format-list message args))
-  (error-halt message args))
+  (error-halt))
 
 (when-compiling
   (define gensym-counter 0)</diff>
      <filename>runtime/runtime.pco</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>ee095e455847f29b0286f978ece710f18712e628</id>
    </parent>
  </parents>
  <author>
    <name>David Wragg</name>
    <email>david@wragg.org</email>
  </author>
  <url>http://github.com/dpw/pachuco/commit/2c3257198f2d1bc39307600fe9e5ed2fe9218fcc</url>
  <id>2c3257198f2d1bc39307600fe9e5ed2fe9218fcc</id>
  <committed-date>2008-11-11T16:00:21-08:00</committed-date>
  <authored-date>2008-11-11T16:00:21-08:00</authored-date>
  <message>Simplify error-halt

We don't lean heavily on error-halt these days, so we can simplify its
implementation.  Now in the compiler it is just a function that c-calls
abort(3).</message>
  <tree>bd6db8f30380250cfc0cff73c4245bbbb20ea7ee</tree>
  <committer>
    <name>David Wragg</name>
    <email>david@wragg.org</email>
  </committer>
</commit>
