Raymond Toy pushed to branch issue-256-loop-var-nil at cmucl / cmucl
Commits:
b9f04ee4 by Raymond Toy at 2024-01-30T07:47:03-08:00
Add test for (loop for var nil ...)
Just verifies that the loop works.
- - - - -
1 changed file:
- + tests/loop.lisp
Changes:
=====================================
tests/loop.lisp
=====================================
@@ -0,0 +1,14 @@
+;;; Tests from gitlab issues
+
+(defpackage :loop-tests
+ (:use :cl :lisp-unit))
+
+(in-package "LOOP-TESTS")
+
+(define-test loop-var-nil
+ (:tag :issues)
+ ;; Just verify that (loop for var nil ...) works. Previously it
+ ;; signaled an error. See Gitlab issue #256.
+ (assert-equal '(1 2)
+ (loop for var nil from 1 to 2 collect var)))
+
View it on GitLab: https://gitlab.common-lisp.net/cmucl/cmucl/-/commit/b9f04ee4af21be571ecc312…
--
View it on GitLab: https://gitlab.common-lisp.net/cmucl/cmucl/-/commit/b9f04ee4af21be571ecc312…
You're receiving this email because of your account on gitlab.common-lisp.net.
Raymond Toy pushed to branch master at cmucl / cmucl
Commits:
c65d8078 by Raymond Toy at 2024-01-29T17:32:41+00:00
Fix #271: Update ASDF to version 3.3.7
- - - - -
7e4b96a1 by Raymond Toy at 2024-01-29T17:32:44+00:00
Merge branch 'issue-271-update-asdf-3.3.7' into 'master'
Fix #271: Update ASDF to version 3.3.7
See merge request cmucl/cmucl!186
- - - - -
5 changed files:
- src/contrib/asdf/asdf.lisp
- src/contrib/asdf/doc/asdf.html
- src/contrib/asdf/doc/asdf.info
- src/contrib/asdf/doc/asdf.pdf
- src/general-info/release-21f.md
Changes:
=====================================
src/contrib/asdf/asdf.lisp
=====================================
@@ -1,5 +1,5 @@
;;; -*- mode: Lisp; Base: 10 ; Syntax: ANSI-Common-Lisp ; Package: CL-USER ; buffer-read-only: t; -*-
-;;; This is ASDF 3.3.6: Another System Definition Facility.
+;;; This is ASDF 3.3.7: Another System Definition Facility.
;;;
;;; Feedback, bug reports, and patches are all welcome:
;;; please mail to <asdf-devel(a)common-lisp.net>.
@@ -1848,7 +1848,7 @@ form suitable for testing with #+."
(in-package :uiop/version)
(with-upgradability ()
- (defparameter *uiop-version* "3.3.6")
+ (defparameter *uiop-version* "3.3.7")
(defun unparse-version (version-list)
"From a parsed version (a list of natural numbers), compute the version string"
@@ -2144,18 +2144,56 @@ use getenvp to return NIL in such a case."
(defsetf getenv (x) (val)
"Set an environment variable."
- (declare (ignorable x val))
- #+allegro `(setf (sys:getenv ,x) ,val)
- #+clasp `(ext:setenv ,x ,val)
- #+clisp `(system::setenv ,x ,val)
- #+clozure `(ccl:setenv ,x ,val)
- #+cmucl `(unix:unix-setenv ,x ,val 1)
- #+(or ecl clasp) `(ext:setenv ,x ,val)
- #+lispworks `(setf (lispworks:environment-variable ,x) ,val)
- #+mkcl `(mkcl:setenv ,x ,val)
- #+sbcl `(progn (require :sb-posix) (symbol-call :sb-posix :setenv ,x ,val 1))
- #-(or allegro clasp clisp clozure cmucl ecl lispworks mkcl sbcl)
- '(not-implemented-error '(setf getenv)))
+ (declare (ignorable x val)) ; for the not-implemented cases.
+ (if (constantp val)
+ (if val
+ #+allegro `(setf (sys:getenv ,x) ,val)
+ #+clasp `(ext:setenv ,x ,val)
+ #+clisp `(system::setenv ,x ,val)
+ #+clozure `(ccl:setenv ,x ,val)
+ #+cmucl `(unix:unix-setenv ,x ,val 1)
+ #+ecl `(ext:setenv ,x ,val)
+ #+lispworks `(setf (lispworks:environment-variable ,x) ,val)
+ #+mkcl `(mkcl:setenv ,x ,val)
+ #+sbcl `(progn (require :sb-posix) (symbol-call :sb-posix :setenv ,x ,val 1))
+ #-(or allegro clasp clisp clozure cmucl ecl lispworks mkcl sbcl)
+ '(not-implemented-error '(setf getenv))
+ ;; VAL is NIL, unset the variable
+ #+allegro `(symbol-call :excl.osi :unsetenv ,x)
+ ;; #+clasp `(ext:setenv ,x ,val) ; UNSETENV is not supported.
+ #+clisp `(system::setenv ,x ,val) ; need fix -- no idea if this works.
+ #+clozure `(ccl:unsetenv ,x)
+ #+cmucl `(unix:unix-unsetenv ,x)
+ #+ecl `(ext:setenv ,x ,val) ; Looked at source, don't see UNSETENV
+ #+lispworks `(setf (lispworks:environment-variable ,x) ,val) ; according to their docs, this should unset the variable
+ #+mkcl `(mkcl:setenv ,x ,val) ; like other ECL-family implementations, don't see UNSETENV
+ #+sbcl `(progn (require :sb-posix) (symbol-call :sb-posix :unsetenv ,x))
+ #-(or allegro clisp clozure cmucl ecl lispworks mkcl sbcl)
+ '(not-implemented-error 'unsetenv))
+ `(if ,val
+ #+allegro (setf (sys:getenv ,x) ,val)
+ #+clasp (ext:setenv ,x ,val)
+ #+clisp (system::setenv ,x ,val)
+ #+clozure (ccl:setenv ,x ,val)
+ #+cmucl (unix:unix-setenv ,x ,val 1)
+ #+ecl (ext:setenv ,x ,val)
+ #+lispworks (setf (lispworks:environment-variable ,x) ,val)
+ #+mkcl (mkcl:setenv ,x ,val)
+ #+sbcl (progn (require :sb-posix) (symbol-call :sb-posix :setenv ,x ,val 1))
+ #-(or allegro clasp clisp clozure cmucl ecl lispworks mkcl sbcl)
+ '(not-implemented-error '(setf getenv))
+ ;; VAL is NIL, unset the variable
+ #+allegro (symbol-call :excl.osi :unsetenv ,x)
+ ;; #+clasp (ext:setenv ,x ,val) ; UNSETENV not supported
+ #+clisp (system::setenv ,x ,val) ; need fix -- no idea if this works.
+ #+clozure (ccl:unsetenv ,x)
+ #+cmucl (unix:unix-unsetenv ,x)
+ #+ecl (ext:setenv ,x ,val) ; Looked at source, don't see UNSETENV
+ #+lispworks (setf (lispworks:environment-variable ,x) ,val) ; according to their docs, this should unset the variable
+ #+mkcl (mkcl:setenv ,x ,val) ; like other ECL-family implementations, don't see UNSETENV
+ #+sbcl (progn (require :sb-posix) (symbol-call :sb-posix :unsetenv ,x))
+ #-(or allegro clisp clozure cmucl ecl lispworks mkcl sbcl)
+ '(not-implemented-error 'unsetenv))))
(defun getenvp (x)
"Predicate that is true if the named variable is present in the libc environment,
@@ -2240,7 +2278,7 @@ then returning the non-empty string value of the variable"
;; Note if not using International ACL
;; see http://www.franz.com/support/documentation/8.1/doc/operators/excl/ics-targe…
(excl:ics-target-case (:-ics "8"))
- (and (member :smp *features*) "S"))
+ (and (member :smp *features*) "SBT"))
#+armedbear (format nil "~a-fasl~a" s system::*fasl-version*)
#+clisp
(subseq s 0 (position #\space s)) ; strip build information (date, etc.)
@@ -2282,7 +2320,8 @@ suitable for use as a directory name to segregate Lisp FASLs, C dynamic librarie
(or (implementation-type) (lisp-implementation-type))
(lisp-version-string)
(or (operating-system) (software-type))
- (or (architecture) (machine-type))))))
+ (or (architecture) (machine-type))
+ #+sbcl (if (featurep :sb-thread) "S" "")))))
;;;; Other system information
@@ -2426,8 +2465,6 @@ the number having BYTES octets (defaulting to 4)."
(end-of-file (c)
(declare (ignore c))
nil)))))
-
-
;;;; -------------------------------------------------------------------------
;;;; Portability layer around Common Lisp pathnames
;; This layer allows for portable manipulation of pathname objects themselves,
@@ -4554,7 +4591,7 @@ Upon success, the KEEP form is evaluated and the file is is deleted unless it ev
,@before)))
,@(when after
(assert pathnamep)
- `((,afterf (,pathname) ,@after))))
+ `((,afterf (,pathname) (declare (ignorable ,pathname)) ,@after))))
#-gcl (declare (dynamic-extent ,@(when before `(#',beforef)) ,@(when after `(#',afterf))))
(call-with-temporary-file
,(when before `#',beforef)
@@ -4673,7 +4710,7 @@ when the image is restarted, but before the entry point is called.")
before the image dump hooks are called and before the image is dumped.")
(defvar *image-dump-hook* nil
- "Functions to call (in order) when before an image is dumped"))
+ "Functions to call (in order) before an image is dumped"))
(eval-when (#-lispworks :compile-toplevel :load-toplevel :execute)
(deftype fatal-condition ()
@@ -4984,9 +5021,17 @@ or COMPRESSION on SBCL, and APPLICATION-TYPE on SBCL/Windows."
#-(or clisp clozure (and cmucl executable) lispworks sbcl scl)
(when executable
(not-implemented-error 'dump-image "dumping an executable"))
- #+allegro
+ #+allegro ;; revised with help from Franz
(progn
- (sys:resize-areas :global-gc t :pack-heap t :sift-old-areas t :tenure t) ; :new 5000000
+ #+(and allegro-version>= (version>= 11))
+ (sys:resize-areas
+ :old :no-change :old-code :no-change
+ :global-gc t
+ :tenure t)
+ #+(and allegro-version>= (version= 10 1))
+ (sys:resize-areas :old 10000000 :global-gc t :pack-heap t :sift-old-areas t :tenure t)
+ #+(and allegro-version>= (not (version>= 10 1)))
+ (sys:resize-areas :global-gc t :pack-heap t :sift-old-areas t :tenure t)
(excl:dumplisp :name filename :suppress-allegro-cl-banner t))
#+clisp
(apply #'ext:saveinitmem filename
@@ -5122,7 +5167,8 @@ or COMPRESSION on SBCL, and APPLICATION-TYPE on SBCL/Windows."
;; Variables
#:*compile-file-warnings-behaviour* #:*compile-file-failure-behaviour*
#:*output-translation-function*
- #:*optimization-settings* #:*previous-optimization-settings*
+ ;; the following dropped because unnecessary.
+ ;; #:*optimization-settings* #:*previous-optimization-settings*
#:*base-build-directory*
#:compile-condition #:compile-file-error #:compile-warned-error #:compile-failed-error
#:compile-warned-warning #:compile-failed-warning
@@ -5132,7 +5178,10 @@ or COMPRESSION on SBCL, and APPLICATION-TYPE on SBCL/Windows."
;; Types
#+sbcl #:sb-grovel-unknown-constant-condition
;; Functions & Macros
- #:get-optimization-settings #:proclaim-optimization-settings #:with-optimization-settings
+ ;; the following three removed from UIOP because they have bugs, it's
+ ;; easier to remove tham than to fix them, and they could never have been
+ ;; used successfully in the wild. [2023/12/11:rpg]
+ ;; #:get-optimization-settings #:proclaim-optimization-settings #:with-optimization-settings
#:call-with-muffled-compiler-conditions #:with-muffled-compiler-conditions
#:call-with-muffled-loader-conditions #:with-muffled-loader-conditions
#:reify-simple-sexp #:unreify-simple-sexp
@@ -5167,6 +5216,7 @@ what more while the input-file is shortened if possible to ENOUGH-PATHNAME relat
This can help you produce more deterministic output for FASLs."))
;;; Optimization settings
+#+ignore
(with-upgradability ()
(defvar *optimization-settings* nil
"Optimization settings to be used by PROCLAIM-OPTIMIZATION-SETTINGS")
@@ -5224,7 +5274,7 @@ This can help you produce more deterministic output for FASLs."))
(proclaim `(optimize ,@,reset-settings)))))
#-(or allegro clasp clisp)
`(let ,(loop :for v :in +optimization-variables+ :collect `(,v ,v))
- ,@(when settings `((proclaim `(optimize ,@,settings))))
+ ,@(when settings `((proclaim '(optimize ,@settings))))
,@body)))
@@ -5495,7 +5545,16 @@ Simple means made of symbols, numbers, characters, simple-strings, pathnames, co
using READ within a WITH-SAFE-IO-SYNTAX, that represents the warnings currently deferred by
WITH-COMPILATION-UNIT. One of three functions required for deferred-warnings support in ASDF."
#+allegro
- (list :functions-defined excl::.functions-defined.
+ (list :functions-defined
+ #+(and allegro-version>= (version>= 11))
+ (let (functions-defined)
+ (maphash #'(lambda (k v)
+ (declare (ignore v))
+ (push k functions-defined))
+ excl::.functions-defined.)
+ functions-defined)
+ #+(and allegro-version>= (not (version>= 11)))
+ excl::.functions-defined.
:functions-called excl::.functions-called.)
#+clozure
(mapcar 'reify-deferred-warning
@@ -5539,10 +5598,18 @@ One of three functions required for deferred-warnings support in ASDF."
#+allegro
(destructuring-bind (&key functions-defined functions-called)
reified-deferred-warnings
- (setf excl::.functions-defined.
+ (setf #+(and allegro-version>= (not (version>= 11)))
+ excl::.functions-defined.
+ #+(and allegro-version>= (not (version>= 11)))
(append functions-defined excl::.functions-defined.)
excl::.functions-called.
- (append functions-called excl::.functions-called.)))
+ (append functions-called excl::.functions-called.))
+ #+(and allegro-version>= (version>= 11))
+ ;; in ACL >= 11, instead of adding defined functions to a list,
+ ;; we insert them into a no-values hash-table.
+ (mapc #'(lambda (fn)
+ (excl:puthash-key fn excl::.functions-defined.))
+ functions-defined))
#+clozure
(let ((dw (or ccl::*outstanding-deferred-warnings*
(setf ccl::*outstanding-deferred-warnings* (ccl::%defer-warnings t)))))
@@ -5605,7 +5672,11 @@ One of three functions required for deferred-warnings support in ASDF."
"Reset the set of deferred warnings to be handled at the end of the current WITH-COMPILATION-UNIT.
One of three functions required for deferred-warnings support in ASDF."
#+allegro
- (setf excl::.functions-defined. nil
+ (setf excl::.functions-defined.
+ #+(and allegro-version>= (not (version>= 11)))
+ nil
+ #+(and allegro-version>= (version>= 11))
+ (make-hash-table :test #'equal :values nil)
excl::.functions-called. nil)
#+clozure
(if-let (dw ccl::*outstanding-deferred-warnings*)
@@ -7809,7 +7880,8 @@ DEPRECATED."
#:*post-upgrade-cleanup-hook* #:cleanup-upgraded-asdf
;; There will be no symbol left behind!
#:with-asdf-deprecation
- #:intern*)
+ #:intern*
+ #:asdf-install-warning)
(:import-from :uiop/package #:intern* #:find-symbol*))
(in-package :asdf/upgrade)
@@ -7894,7 +7966,7 @@ previously-loaded version of ASDF."
;; "3.4.5.67" would be a development version in the official branch, on top of 3.4.5.
;; "3.4.5.0.8" would be your eighth local modification of official release 3.4.5
;; "3.4.5.67.8" would be your eighth local modification of development version 3.4.5.67
- (asdf-version "3.3.6")
+ (asdf-version "3.3.7")
(existing-version (asdf-version)))
(setf *asdf-version* asdf-version)
(when (and existing-version (not (equal asdf-version existing-version)))
@@ -7970,6 +8042,19 @@ previously-loaded version of ASDF."
(call-functions (reverse *post-upgrade-cleanup-hook*)))
t))))
+ (define-condition asdf-install-warning (simple-condition warning)
+ ((format-control
+ :initarg :format-control)
+ (format-arguments
+ :initarg :format-arguments
+ :initform nil))
+ (:documentation "Warning class for issues related to upgrading or loading ASDF.")
+ (:report (lambda (c s)
+ (format s "WARNING: ~?"
+ (slot-value c 'format-control)
+ (slot-value c 'format-arguments)))))
+
+
(defun upgrade-asdf ()
"Try to upgrade of ASDF. If a different version was used, return T.
We need do that before we operate on anything that may possibly depend on ASDF."
@@ -12551,7 +12636,9 @@ into a single file"))
#:package-inferred-system #:sysdef-package-inferred-system-search
#:package-system ;; backward compatibility only. To be removed.
#:register-system-packages
- #:*defpackage-forms* #:*package-inferred-systems* #:package-inferred-system-missing-package-error))
+ #:*defpackage-forms* #:*package-inferred-systems*
+ #:package-inferred-system-missing-package-error
+ #:package-inferred-system-unknown-defpackage-option-error))
(in-package :asdf/package-inferred-system)
(with-upgradability ()
@@ -12602,15 +12689,34 @@ every such file"))
trying to define package-inferred-system ~A from file ~A~>")
(error-system c) (error-pathname c)))))
- (defun package-dependencies (defpackage-form)
+ (define-condition package-inferred-system-unknown-defpackage-option-error (system-definition-error)
+ ((system :initarg :system :reader error-system)
+ (pathname :initarg :pathname :reader error-pathname)
+ (option :initarg :clause-head :reader error-option)
+ (arguments :initarg :clause-rest :reader error-arguments))
+ (:report (lambda (c s)
+ (format s (compatfmt "~@<Don't know how to infer package dependencies ~
+ for non-standard option ~S ~
+ while trying to define package-inferred-system ~A ~
+ from file ~A~>")
+ (cons (error-option c)
+ (error-arguments c))
+ (error-system c)
+ (error-pathname c)))))
+
+ (defun package-dependencies (defpackage-form &optional system pathname)
"Return a list of packages depended on by the package
defined in DEFPACKAGE-FORM. A package is depended upon if
-the DEFPACKAGE-FORM uses it or imports a symbol from it."
+the DEFPACKAGE-FORM uses it or imports a symbol from it.
+
+SYSTEM should be the name of the system being defined, and
+PATHNAME should be the file which contains the DEFPACKAGE-FORM.
+These will be used to report errors when encountering an unknown defpackage argument."
(assert (defpackage-form-p defpackage-form))
(remove-duplicates
(while-collecting (dep)
(loop :for (option . arguments) :in (cddr defpackage-form) :do
- (ecase option
+ (case option
((:use :mix :reexport :use-reexport :mix-reexport)
(dolist (p arguments) (dep (string p))))
((:import-from :shadowing-import-from)
@@ -12619,7 +12725,37 @@ the DEFPACKAGE-FORM uses it or imports a symbol from it."
((:local-nicknames)
(loop :for (nil actual-package-name) :in arguments :do
(dep (string actual-package-name))))
- ((:nicknames :documentation :shadow :export :intern :unintern :recycle)))))
+ ((:nicknames :documentation :shadow :export :intern :unintern :recycle))
+
+ ;;; SBCL extensions to defpackage relating to package locks.
+ ;; See https://www.sbcl.org/manual/#Implementation-Packages .
+ #+(or sbcl ecl) ;; MKCL too?
+ ((:lock)
+ ;; A :LOCK clause introduces no dependencies.
+ nil)
+ #+sbcl
+ ((:implement)
+ ;; A :IMPLEMENT clause introduces dependencies on the listed packages,
+ ;; as it's not meaningful to :IMPLEMENT a package which hasn't yet been defined.
+ (dolist (p arguments) (dep (string p))))
+
+ #+lispworks
+ ((:add-use-defaults) nil)
+
+ #+allegro
+ ((:implementation-packages :alternate-name :flat) nil)
+
+ ;; When encountering an unknown OPTION, signal a continuable error.
+ ;; We cannot in general know whether the unknown clause should introduce any dependencies,
+ ;; so we cannot do anything other than signal an error here,
+ ;; but users may know that certain extensions do not introduce dependencies,
+ ;; and may wish to manually continue building.
+ (otherwise (cerror "Treat the unknown option as introducing no package dependencies"
+ 'package-inferred-system-unknown-defpackage-option-error
+ :system system
+ :pathname pathname
+ :option option
+ :arguments arguments)))))
:from-end t :test 'equal))
(defun package-designator-name (package)
@@ -13974,6 +14110,13 @@ system or its dependencies if it has already been loaded."
(when (boundp 'excl:*warn-on-nested-reader-conditionals*)
(setf excl:*warn-on-nested-reader-conditionals* uiop/common-lisp::*acl-warn-save*))
+ #+(and allegro allegro-v10.1) ;; check for patch needed for upgradeability
+ (unless (assoc "ma040" (cdr (assoc :lisp sys:*patches*)) :test 'equal)
+ (warn 'asdf-install-warning
+ :format-control "On Allegro Common Lisp 10.1, patch pma040 is ~
+needed for correct ASDF upgrading. Please update your Allegro image ~
+using (SYS:UPDATE-ALLEGRO)."))
+
;; Advertise the features we provide.
(dolist (f '(:asdf :asdf2 :asdf3 :asdf3.1 :asdf3.2 :asdf3.3)) (pushnew f *features*))
=====================================
src/contrib/asdf/doc/asdf.html
=====================================
The diff for this file was not included because it is too large.
=====================================
src/contrib/asdf/doc/asdf.info
=====================================
The diff for this file was not included because it is too large.
=====================================
src/contrib/asdf/doc/asdf.pdf
=====================================
Binary files a/src/contrib/asdf/doc/asdf.pdf and b/src/contrib/asdf/doc/asdf.pdf differ
=====================================
src/general-info/release-21f.md
=====================================
@@ -23,6 +23,7 @@ public domain.
* Add support for Gray streams implementation of file-length via
`ext:stream-file-length` generic function.
* Changes:
+ * Update to ASDF 3.3.7
* ANSI compliance fixes:
* Bug fixes:
* Gitlab tickets:
View it on GitLab: https://gitlab.common-lisp.net/cmucl/cmucl/-/compare/95352e0d557d7d8beb750b…
--
View it on GitLab: https://gitlab.common-lisp.net/cmucl/cmucl/-/compare/95352e0d557d7d8beb750b…
You're receiving this email because of your account on gitlab.common-lisp.net.
Raymond Toy pushed to branch master at cmucl / cmucl
Commits:
95352e0d by Raymond Toy at 2024-01-08T15:39:09-08:00
Reorder docstring for defpackage to match CLHS
Minor tweak to list the options to `defpackage` to match the order
showns in the CLHS entry for `defpackage`. Since it's just a change
in the docstring, no changes in behavior anywhere.
- - - - -
2 changed files:
- src/code/package.lisp
- src/i18n/locale/cmucl.pot
Changes:
=====================================
src/code/package.lisp
=====================================
@@ -915,14 +915,14 @@
"Defines a new package called PACKAGE. Each of OPTIONS should be one of the
following:
(:NICKNAMES {package-name}*)
- (:SIZE <integer>)
+ (:DOCUMENTATION doc-string)
+ (:USE {package-name}*)
(:SHADOW {symbol-name}*)
(:SHADOWING-IMPORT-FROM <package-name> {symbol-name}*)
- (:USE {package-name}*)
(:IMPORT-FROM <package-name> {symbol-name}*)
- (:INTERN {symbol-name}*)
(:EXPORT {symbol-name}*)
- (:DOCUMENTATION doc-string)
+ (:INTERN {symbol-name}*)
+ (:SIZE <integer>)
All options except :SIZE and :DOCUMENTATION can be used multiple times."
(let ((nicknames nil)
(size nil)
=====================================
src/i18n/locale/cmucl.pot
=====================================
@@ -8164,14 +8164,14 @@ msgid ""
"Defines a new package called PACKAGE. Each of OPTIONS should be one of the\n"
" following:\n"
" (:NICKNAMES {package-name}*)\n"
-" (:SIZE <integer>)\n"
+" (:DOCUMENTATION doc-string)\n"
+" (:USE {package-name}*)\n"
" (:SHADOW {symbol-name}*)\n"
" (:SHADOWING-IMPORT-FROM <package-name> {symbol-name}*)\n"
-" (:USE {package-name}*)\n"
" (:IMPORT-FROM <package-name> {symbol-name}*)\n"
-" (:INTERN {symbol-name}*)\n"
" (:EXPORT {symbol-name}*)\n"
-" (:DOCUMENTATION doc-string)\n"
+" (:INTERN {symbol-name}*)\n"
+" (:SIZE <integer>)\n"
" All options except :SIZE and :DOCUMENTATION can be used multiple times."
msgstr ""
View it on GitLab: https://gitlab.common-lisp.net/cmucl/cmucl/-/commit/95352e0d557d7d8beb750b2…
--
View it on GitLab: https://gitlab.common-lisp.net/cmucl/cmucl/-/commit/95352e0d557d7d8beb750b2…
You're receiving this email because of your account on gitlab.common-lisp.net.
Raymond Toy pushed to branch master at cmucl / cmucl
Commits:
de453c9a by Raymond Toy at 2024-01-04T16:48:10+00:00
Fix #260: Mention hemlock must loaded for -edit/-slave to exist
- - - - -
1e7aa127 by Raymond Toy at 2024-01-04T16:48:11+00:00
Merge branch 'issue-260-hemlock-in-core-for-options' into 'master'
Fix #260: Mention hemlock must loaded for -edit/-slave to exist
Closes #260
See merge request cmucl/cmucl!182
- - - - -
1 changed file:
- src/general-info/lisp.1
Changes:
=====================================
src/general-info/lisp.1
=====================================
@@ -79,13 +79,16 @@ default is used. The actual maximum allowed heap size is platform-specific.
Requires an argument that should be the number of megabytes (1048576 bytes)
that should be allocated for the binding stack. If not specified, a platform-specific
default is used. The actual maximum allowed heap size is platform-specific.
+.TP
.BR \-edit
Causes Lisp to enter the
.I Hemlock
editor.
A file to edit may be specified by
placing the name of the file between the program name (usually `lisp') and
-the first switch.
+the first switch. For this option to be defined, Lisp must have
+.I Hemlock
+already loaded into the core.
.TP
.BR \-eval " expression"
Evaluates the specified Lisp
@@ -122,7 +125,10 @@ Specifies that Lisp should start up as a
.I slave
Lisp and try to
connect to an editor Lisp. The name of the editor to connect to must be
-specified. To find the editor's name, use the
+specified. For this option to be defined, Lisp must have already
+loaded
+.I Hemlock
+into the core. To find the editor's name, use the
.I Hemlock
`Accept Slave Connections' command.
.I editor-name
View it on GitLab: https://gitlab.common-lisp.net/cmucl/cmucl/-/compare/eb1848d98c57439e983ed6…
--
View it on GitLab: https://gitlab.common-lisp.net/cmucl/cmucl/-/compare/eb1848d98c57439e983ed6…
You're receiving this email because of your account on gitlab.common-lisp.net.
Raymond Toy pushed to branch issue-260-hemlock-in-core-for-options at cmucl / cmucl
Commits:
be8a3764 by Raymond Toy at 2024-01-04T08:27:20-08:00
Apply all suggested changes.
Italicize Hemlock and use "Lisp" instead of "lisp".
- - - - -
1 changed file:
- src/general-info/lisp.1
Changes:
=====================================
src/general-info/lisp.1
=====================================
@@ -86,7 +86,8 @@ Causes Lisp to enter the
editor.
A file to edit may be specified by
placing the name of the file between the program name (usually `lisp') and
-the first switch. For this option to be defined, lisp must have hemlock
+the first switch. For this option to be defined, Lisp must have
+.I Hemlock
already loaded into the core.
.TP
.BR \-eval " expression"
@@ -124,8 +125,10 @@ Specifies that Lisp should start up as a
.I slave
Lisp and try to
connect to an editor Lisp. The name of the editor to connect to must be
-specified. For this option to be defined, lisp must have already
-loaded hemlock into the core. To find the editor's name, use the
+specified. For this option to be defined, Lisp must have already
+loaded
+.I Hemlock
+into the core. To find the editor's name, use the
.I Hemlock
`Accept Slave Connections' command.
.I editor-name
View it on GitLab: https://gitlab.common-lisp.net/cmucl/cmucl/-/commit/be8a3764f81ec3bba120dc0…
--
View it on GitLab: https://gitlab.common-lisp.net/cmucl/cmucl/-/commit/be8a3764f81ec3bba120dc0…
You're receiving this email because of your account on gitlab.common-lisp.net.
Raymond Toy pushed to branch master at cmucl / cmucl
Commits:
1b8fd5fe by Tarn W. Burton at 2023-12-30T16:04:40-05:00
Add support for Gray interactive-stream-p
- - - - -
eb1848d9 by Raymond Toy at 2024-01-03T03:30:28+00:00
Merge branch 'gray-interactive' into 'master'
Add support for Gray interactive-stream-p
See merge request cmucl/cmucl!183
- - - - -
2 changed files:
- src/i18n/locale/cmucl.pot
- src/pcl/gray-streams.lisp
Changes:
=====================================
src/i18n/locale/cmucl.pot
=====================================
@@ -21176,6 +21176,10 @@ msgid ""
" to clean up the side effects of having created the stream."
msgstr ""
+#: src/pcl/gray-streams.lisp
+msgid "Returns non-nil if the given Stream can is interactive."
+msgstr ""
+
#: src/pcl/gray-streams.lisp
msgid "Convert pathspec (a pathname, string or stream) into a pathname."
msgstr ""
=====================================
src/pcl/gray-streams.lisp
=====================================
@@ -138,6 +138,24 @@
+(fmakunbound 'interactive-stream-p)
+
+(defgeneric interactive-stream-p (stream)
+ (:documentation _N"Returns non-nil if the given Stream can is interactive."))
+
+(defmethod interactive-stream-p (stream)
+ (declare (ignore stream))
+ nil)
+
+(defmethod interactive-stream-p ((stream lisp-stream))
+ (funcall (lisp-stream-misc stream) stream :interactive-p))
+
+(when (find-class 'stream:simple-stream nil)
+ (defmethod interactive-stream-p ((stream stream:simple-stream))
+ (stream::%interactive-stream-p stream)))
+
+
+
(defgeneric pcl-pathname (pathspec)
(:documentation _N"Convert pathspec (a pathname, string or stream) into a pathname."))
View it on GitLab: https://gitlab.common-lisp.net/cmucl/cmucl/-/compare/c59d4284dde7d5e78c712a…
--
View it on GitLab: https://gitlab.common-lisp.net/cmucl/cmucl/-/compare/c59d4284dde7d5e78c712a…
You're receiving this email because of your account on gitlab.common-lisp.net.