[movitz-cvs] CVS update: movitz/losp/los0.lisp
Frode Vatvedt Fjeld
ffjeld at common-lisp.net
Tue Jan 4 20:24:01 UTC 2005
Update of /project/movitz/cvsroot/movitz/losp
In directory common-lisp.net:/tmp/cvs-serv12613
Modified Files:
los0.lisp
Log Message:
*** empty log message ***
Date: Tue Jan 4 21:24:00 2005
Author: ffjeld
Index: movitz/losp/los0.lisp
diff -u movitz/losp/los0.lisp:1.35 movitz/losp/los0.lisp:1.36
--- movitz/losp/los0.lisp:1.35 Wed Dec 15 14:58:26 2004
+++ movitz/losp/los0.lisp Tue Jan 4 21:24:00 2005
@@ -1,6 +1,6 @@
;;;;------------------------------------------------------------------
;;;;
-;;;; Copyright (C) 2000-2004,
+;;;; Copyright (C) 2000-2005,
;;;; Department of Computer Science, University of Tromso, Norway
;;;;
;;;; Filename: los0.lisp
@@ -9,7 +9,7 @@
;;;; Created at: Fri Dec 1 18:08:32 2000
;;;; Distribution: See the accompanying file COPYING.
;;;;
-;;;; $Id: los0.lisp,v 1.35 2004/12/15 13:58:26 ffjeld Exp $
+;;;; $Id: los0.lisp,v 1.36 2005/01/04 20:24:00 ffjeld Exp $
;;;;
;;;;------------------------------------------------------------------
@@ -108,6 +108,38 @@
;;; (declare (dynamic-extent args))
;;; (apply (constantly 'test-value) args))
+(defun test-closure (x z)
+ (flet ((closure (y) (= x (1+ y))))
+ (declare (dynamic-extent (function closure)))
+ (closure z)
+ #+ignore (funcall (lambda (y) (= x (1+ y)))
+ z)))
+
+(defun test-stack-cons (x y)
+ (muerte::with-dynamic-extent-scope (zap)
+ (let ((foo (muerte::with-dynamic-extent-allocation (zap)
+ (cons x (lambda () y)))))
+ (format t "~Z: ~S, ~S" foo foo (funcall (cdr foo))))))
+
+(defun test-handler (x)
+ (let ((foo x))
+ (handler-bind
+ ((error (lambda (c)
+ (format t "error: ~S ~S" c x))))
+ (error "This is an error. ~S" foo))))
+
+(defun fooo (v w)
+ (tagbody
+ (print (block blurgh
+ (progv (list v) (list w)
+ (format t "Uh: ~S" (symbol-value v))
+ (if (symbol-value v)
+ (return-from blurgh 1)
+ (go zap)))))
+ zap)
+ t)
+
+
(defun test-break ()
(with-inline-assembly (:returns :multiple-values)
(:movl 10 :ecx)
@@ -544,14 +576,6 @@
(defun test-fixed (x y z)
(warn "x: ~W, y: ~W, z: ~W" x y z))
-(defun test-closure (x)
- (warn "lending x: ~W" x)
- (values (lambda ()
- (warn "borrowed x: ~W" x)
- (* x 2))
- (lambda (y)
- (setq x y))))
-
(defun test-let-closure ()
(tagbody
(let ((*print-base* 10)
@@ -1089,6 +1113,28 @@
(with-simple-restart (abort "Abort to command level ~D." (1+ *repl-level*))
(read-eval-print))))))
+(defun xwrite (object)
+ (with-inline-assembly (:returns :nothing)
+ (:locally (:movl (:edi (:edi-offset muerte::dynamic-env)) :eax))
+ (:movl :eax (#x1000000))
+ (:movl :ebp (#x1000004))
+ (:movl :esi (#x1000008)))
+ (block handler-case-block-1431896
+ (let (handler-case-var-1431897)
+ (tagbody
+ (handler-bind
+ ((serious-condition
+ (lambda (handler-case-temp-var-1431898)
+ (setq handler-case-var-1431897 handler-case-temp-var-1431898)
+ (go handler-case-clause-tag-1431899))))
+ (return-from handler-case-block-1431896
+ (muerte::internal-write object)))
+ handler-case-clause-tag-1431899
+ (return-from handler-case-block-1431896
+ (let ((c handler-case-var-1431897))
+ (print-unreadable-object (c *standard-output* :type t :identity t)
+ (format t " while printing ~z" object))))))))
+
(defun ub (x)
`(hello world ,x or . what))
@@ -1185,7 +1231,7 @@
;;; (vector-push funobj ts)
;;; (vector-push offset ts)
;;; (vector-push code-vector ts))))
- ;; (muerte::cli)
+ (muerte::cli)
(pic8259-end-of-interrupt 0)
(when (eql #\esc (muerte.x86-pc.keyboard:poll-char))
(break "Test-timer keyboard break."))
@@ -1219,8 +1265,7 @@
*timer-stack* (muerte::copy-current-control-stack))
(setf (pit8253-timer-mode 0) +pit8253-mode-single-timeout+
(pit8253-timer-count 0) (or timeout (+ base (random variation))))
-
- #+ignore (muerte::sti)))
+ (muerte::sti)))
(with-inline-assembly (:returns :nothing)
(:compile-form (:result-mode :ecx) muerte.x86-pc::*screen*)
(:shrl 2 :ecx)
@@ -1259,7 +1304,7 @@
(progn
;;; (unless (logbitp 9 (eflags))
;;; (break "Someone switched off interrupts!"))
- (incf (memref-int muerte.x86-pc::*screen* :type :unsigned-byte16))
+;;; (incf (memref-int muerte.x86-pc::*screen* :type :unsigned-byte16))
(throw 'foo 'inner-peace))
(incf (memref-int muerte.x86-pc::*screen* :index 80 :type :unsigned-byte16)))))
(incf (memref-int muerte.x86-pc::*screen* :index 160 :type :unsigned-byte16))))))
@@ -1305,8 +1350,8 @@
(format t "Extended memory: ~D KB~%" extended-memsize)
(idt-init)
- #+ignore
(install-los0-consing :kb-size 500)
+ #+ignore
(install-los0-consing :kb-size (max 100 (truncate (- extended-memsize 2048) 2))))
(setf *debugger-function* #'los0-debugger)
More information about the Movitz-cvs
mailing list