;;; -*- Mode:LISP; Package:LISP-INTERNALS; Base:10; Readtable:CL -*- ;(prims::defsetf prims::progn (&rest forms) (new-value) ; (let ((first-forms (butlast forms)) ; (last-form (first (last forms)))) ; `(PRIMS::PROGN ,@first-forms (PRIMS::SETF ,last-form ,new-value)))) ; ((eq function-name 'PROGN) ; (let ((first-forms (butlast function-args)) ; (last-form (first (last function-args)))) ; (multiple-value-bind (temps values stores store-form access-form) ; (get-setf-method last-form) ; (values temps ; values ; stores ; (subst `(PROGN ,@first-forms ,(car stores)) (car stores) store-form) ; `(PROGN ,@first-forms ,access-form))))) ;;; Modify macros used in primitive code. ;;; Youcef changed these to use GLOBAL:DEFINE-MODIFY-MACRO which I believe is the lossage ;;; change back to use prims:DEFINE-MODIFY-MACRO defined in CS-PRIMITIVES --pfc 5/2/88 (define-modify-macro decf (&optional (delta 1.)) - "Decrement place by delta.") (define-modify-macro incf (&optional (delta 1.)) + "Increment place by delta.")