Changeset 4800


Ignore:
Timestamp:
11/17/03 02:27:16 (18 years ago)
Author:
piso
Message:

Work in progress.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/j/src/org/armedbear/lisp/jvm.lisp

    r4799 r4800  
    22;;;
    33;;; Copyright (C) 2003 Peter Graves
    4 ;;; $Id: jvm.lisp,v 1.42 2003-11-17 01:56:50 piso Exp $
     4;;; $Id: jvm.lisp,v 1.43 2003-11-17 02:27:16 piso Exp $
    55;;;
    66;;; This program is free software; you can redistribute it and/or
     
    16661666      (LET*
    16671667       (compile-let*-vars varlist)))
    1668     ;; Body of LET.
     1668    ;; Body of LET/LET*.
    16691669    (do ((body (cddr form) (cdr body)))
    16701670        ((null (cdr body))
    1671          (compile-form (car body) nil))
     1671         (compile-form (car body) for-effect))
    16721672      (compile-form (car body) t))
    16731673    (when specialp
     
    17941794             (compile-form f t))))
    17951795    (setf (fill-pointer *tags*) saved-fp))
    1796   ;; TAGBODY returns NIL.
    1797   (emit-push-nil)
    1798   (emit-store-value))
     1796  (unless for-effect
     1797    ;; TAGBODY returns NIL.
     1798    (emit-push-nil)
     1799    (emit-store-value)))
    17991800
    18001801(defun compile-go (form for-effect)
     
    18231824
    18241825(defun compile-block (form for-effect)
    1825    (let* ((rest (cdr form))
    1826           (block-label (car rest))
    1827           (block-exit (gensym))
    1828           (*blocks* (acons block-label block-exit *blocks*)))
    1829      (do ((forms (cdr rest) (cdr forms)))
    1830          ((null forms))
    1831        (compile-form (car forms) (cdr forms)))
    1832      (emit 'label `,block-exit)))
     1826  (let* ((rest (cdr form))
     1827         (block-label (car rest))
     1828         (block-exit (gensym))
     1829         (*blocks* (acons block-label block-exit *blocks*)))
     1830    (do ((forms (cdr rest) (cdr forms)))
     1831        ((null forms))
     1832      (compile-form (car forms) (or (cdr forms) for-effect)))
     1833    (emit 'label `,block-exit)))
    18331834
    18341835(defun compile-progn (form for-effect)
Note: See TracChangeset for help on using the changeset viewer.