Adding the default.nix is quite straightforward, however we have to make today's SBCL happy: due to package locking it no longer likes sclf using an sb-impl internal constant for some reason. This is however a good opportunity to clean up the stat-*-time code: It converted the times in an implementation specific way even though time.lisp does provide a generic way to convert between unix and universal time. Note that the updated ASDF file is untested, but should be a trivial enough change. Change-Id: If193bf830ac704cc53e0855d8e9fff2b5a5ef291 Reviewed-on: https://cl.tvl.fyi/c/depot/+/3268 Tested-by: BuildkiteCI Reviewed-by: grfn <grfn@gws.fyi>
		
			
				
	
	
		
			258 lines
		
	
	
	
		
			6.8 KiB
		
	
	
	
		
			Common Lisp
		
	
	
	
	
	
			
		
		
	
	
			258 lines
		
	
	
	
		
			6.8 KiB
		
	
	
	
		
			Common Lisp
		
	
	
	
	
	
;;;  package.lisp --- packages description
 | 
						|
 | 
						|
;;;  Copyright (C) 2006, 2007, 2008, 2009, 2010 by Walter C. Pelissero
 | 
						|
;;;  Copyright (C) 2021 by the TVL Authors
 | 
						|
 | 
						|
;;;  Author: Walter C. Pelissero <walter@pelissero.de>
 | 
						|
;;;  Project: sclf
 | 
						|
 | 
						|
#+cmu (ext:file-comment "$Module: package.lisp $")
 | 
						|
 | 
						|
;;; This library is free software; you can redistribute it and/or
 | 
						|
;;; modify it under the terms of the GNU Lesser General Public License
 | 
						|
;;; as published by the Free Software Foundation; either version 2.1
 | 
						|
;;; of the License, or (at your option) any later version.
 | 
						|
;;; This library is distributed in the hope that it will be useful,
 | 
						|
;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
						|
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 | 
						|
;;; Lesser General Public License for more details.
 | 
						|
;;; You should have received a copy of the GNU Lesser General Public
 | 
						|
;;; License along with this library; if not, write to the Free
 | 
						|
;;; Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
 | 
						|
;;; 02111-1307 USA
 | 
						|
 | 
						|
(in-package :cl-user)
 | 
						|
 | 
						|
(defpackage :sclf
 | 
						|
  (:use :common-lisp
 | 
						|
	;; we need the MOP for lazy.lisp and serial.lisp
 | 
						|
	#+cmu :pcl
 | 
						|
	#+sbcl :sb-mop)
 | 
						|
  ;; Don't know why but compute-effective-slot-definition-initargs is
 | 
						|
  ;; internal in both CMUCL and SBCL
 | 
						|
  (:import-from #+cmu"PCL" #+sbcl"SB-PCL"
 | 
						|
		#-(or cmu sbcl) "CLOS"
 | 
						|
		"COMPUTE-EFFECTIVE-SLOT-DEFINITION-INITARGS")
 | 
						|
  #+cmu (:import-from :mp
 | 
						|
		      #:make-process
 | 
						|
		      #:current-process
 | 
						|
		      #:all-processes
 | 
						|
		      #:processp
 | 
						|
		      #:process-name
 | 
						|
		      #:process-state
 | 
						|
		      #:process-whostate
 | 
						|
		      #:process-wait
 | 
						|
		      #:process-wait-with-timeout
 | 
						|
		      #:process-yield
 | 
						|
		      #:process-interrupt
 | 
						|
		      #:disable-process
 | 
						|
		      #:enable-process
 | 
						|
		      #:without-scheduling
 | 
						|
		      #:atomic-incf
 | 
						|
		      #:atomic-decf
 | 
						|
		      #:process-property-list)
 | 
						|
  (:export #:be #:be*
 | 
						|
	   #:defconst
 | 
						|
	   #:with-gensyms
 | 
						|
	   #:d+
 | 
						|
	   #:s+
 | 
						|
	   #:f++
 | 
						|
	   #:list->string
 | 
						|
	   #:string-starts-with #:string-ends-with
 | 
						|
	   #:aif #:awhen #:acond #:aand #:acase #:it
 | 
						|
	   #:+whitespace+
 | 
						|
	   #:string-trim-whitespace
 | 
						|
	   #:string-right-trim-whitespace
 | 
						|
	   #:string-left-trim-whitespace
 | 
						|
	   #:whitespace-p #:seq-whitespace-p
 | 
						|
	   #:not-empty
 | 
						|
	   #:position-any
 | 
						|
	   #:+month-names+
 | 
						|
	   #:find-any
 | 
						|
	   #:split-at
 | 
						|
	   #:split-string-at-char
 | 
						|
	   #:week-day->string
 | 
						|
	   #:month->string
 | 
						|
	   #:month-string->number
 | 
						|
	   #:add-months #:add-days
 | 
						|
	   #:read-whole-stream
 | 
						|
	   #:read-file #:write-file #:read-lines
 | 
						|
	   #:read-from-file #:write-to-file
 | 
						|
	   #:string-concat
 | 
						|
	   #:gcase
 | 
						|
	   #:string-truncate
 | 
						|
	   #:promise #:force #:forced-p #:lazy #:deflazy #:lazy-metaclass #:self #:reset-lazy-slots
 | 
						|
	   #:copy-stream #:copy-file
 | 
						|
	   #:symlink-file
 | 
						|
	   #:keywordify
 | 
						|
	   #:until
 | 
						|
	   #:year #:month #:day #:hour #:minute #:week-day #:week #:day-of-the-year
 | 
						|
	   #:beginning-of-week #:end-of-week
 | 
						|
	   #:next-week-day #:next-monday #:full-weeks-in-span
 | 
						|
	   #:beginning-of-first-week #:end-of-last-week
 | 
						|
	   #:beginning-of-month #:end-of-month
 | 
						|
	   #:locate-system-program
 | 
						|
	   #:*tmp-file-defaults*
 | 
						|
	   #:temp-file-name
 | 
						|
	   #:open-temp-file
 | 
						|
	   #:with-temp-file
 | 
						|
	   #:file-size
 | 
						|
	   #:getenv
 | 
						|
	   #:with-system-environment
 | 
						|
	   #:time-string #:iso-time-string #:parse-iso-time-string
 | 
						|
	   #:soundex
 | 
						|
	   #:string-soundex=
 | 
						|
	   #:lru-cache
 | 
						|
	   #:getcache #:cached
 | 
						|
	   #:print-time-span
 | 
						|
	   #:double-linked-list #:limited-list #:sorted-list
 | 
						|
	   #:insert #:size
 | 
						|
	   #:heap #:heap-add #:heap-pop #:heap-empty-p
 | 
						|
	   #:double-linked-element #:make-double-linked-element #:double-linked-element-p
 | 
						|
	   #:dle-previous #:dle-next #:dle-value
 | 
						|
	   #:cons-dle #:dle-remove #:dle-map #:do-dle :do-dle*
 | 
						|
	   #:sl-map #:do-dll #:do-dll*
 | 
						|
	   #:dll-find #:dll-find-cursor
 | 
						|
	   #:push-first #:push-last #:dll-remove
 | 
						|
	   #:pop-first #:pop-last
 | 
						|
	   #:leap-year-p #:last-day-of-month
 | 
						|
	   #:getuid #:setuid #:with-euid
 | 
						|
	   #:get-logname #:get-user-name #:get-user-home #:find-uid
 | 
						|
	   #:super-user-p
 | 
						|
	   #:pathname-as-directory #:pathname-as-file
 | 
						|
	   #:alist->plist #:plist->alist
 | 
						|
	   #:byte-vector->string
 | 
						|
	   #:string->byte-vector
 | 
						|
	   #:outdated-p
 | 
						|
	   #:with-hidden-temp-file
 | 
						|
	   #:let-places #:let-slots
 | 
						|
	   #:*decimal-point*
 | 
						|
	   #:*thousands-comma*
 | 
						|
	   #:format-amount #:parse-amount
 | 
						|
	   #:with-package
 | 
						|
	   #:make-directory #:ensure-directory
 | 
						|
	   #:make-temp-directory
 | 
						|
	   #:with-temp-directory
 | 
						|
	   #:delete-directory
 | 
						|
	   #:delete-directory-tree
 | 
						|
	   #:do-directory-tree
 | 
						|
	   #:traverse-directory-tree
 | 
						|
	   #:empty-directory-p
 | 
						|
	   #:remove-empty-directories
 | 
						|
	   #:map-directory-tree
 | 
						|
	   #:find-files
 | 
						|
	   #:directory-p
 | 
						|
	   #:regular-file-p
 | 
						|
	   #:file-readable-p
 | 
						|
	   #:file-writable-p
 | 
						|
	   #:file-executable-p
 | 
						|
	   #:current-directory
 | 
						|
	   #:ensure-home-translations
 | 
						|
	   #:list-directory
 | 
						|
	   #:string-escape
 | 
						|
	   #:string-substitute
 | 
						|
	   #:bytes-simple-string
 | 
						|
	   #:make-lock-files
 | 
						|
	   #:with-lock-files
 | 
						|
	   #:getpid
 | 
						|
	   #:on-error
 | 
						|
	   #:floor-to
 | 
						|
	   #:round-to
 | 
						|
	   #:ceiling-to
 | 
						|
	   #:insert-in-order
 | 
						|
	   #:forget-documentation
 | 
						|
	   #:load-compiled
 | 
						|
	   #:swap
 | 
						|
	   #:queue #:make-queue #:queue-append #:queue-pop #:queue-empty-p
 | 
						|
	   #:unix-stat #:unix-file-stat
 | 
						|
	   #:stat-device
 | 
						|
	   #:stat-inode
 | 
						|
	   #:stat-links
 | 
						|
	   #:stat-atime
 | 
						|
	   #:stat-mtime
 | 
						|
	   #:stat-ctime
 | 
						|
	   #:stat-birthtime
 | 
						|
	   #:stat-size
 | 
						|
	   #:stat-blksize
 | 
						|
	   #:stat-blocks
 | 
						|
	   #:stat-uid
 | 
						|
	   #:stat-gid
 | 
						|
	   #:stat-mode
 | 
						|
	   #:save-file-excursion
 | 
						|
	   #:stat-modification-time
 | 
						|
	   #:stat-creation-time
 | 
						|
	   #:file-modification-time
 | 
						|
	   #:file-creation-time
 | 
						|
	   #:show
 | 
						|
	   #:memoize-function
 | 
						|
	   #:memoized
 | 
						|
	   #:defun-memoized
 | 
						|
	   #:parse-native-namestring
 | 
						|
	   #:native-file-namestring
 | 
						|
	   #:native-namestring
 | 
						|
	   #:native-pathname
 | 
						|
	   #:read-symbolic-link
 | 
						|
	   #:symbolic-link-p
 | 
						|
	   #:broken-link-p
 | 
						|
	   #:circular-list
 | 
						|
	   #:last-member
 | 
						|
	   #:glob->regex
 | 
						|
	   #:universal->unix-time #:unix->universal-time
 | 
						|
	   #:get-unix-time
 | 
						|
	   #:move-file
 | 
						|
 | 
						|
	   ;; sysproc.lisp
 | 
						|
	   #:*run-verbose*
 | 
						|
	   #:run-pipe
 | 
						|
	   #:run-program
 | 
						|
	   #:run-shell-command
 | 
						|
	   #:run-async-shell-command
 | 
						|
	   #:exit-code
 | 
						|
	   #:with-open-pipe
 | 
						|
	   #:*bourne-shell*
 | 
						|
	   #:sysproc-kill
 | 
						|
	   #:sysproc-input
 | 
						|
	   #:sysproc-output
 | 
						|
	   #:sysproc-alive-p
 | 
						|
	   #:sysproc-pid
 | 
						|
	   #:sysproc-p
 | 
						|
	   #:sysproc-wait
 | 
						|
	   #:sysproc-exit-code
 | 
						|
	   #:sysproc-set-signal-callback
 | 
						|
 | 
						|
	   ;; MP
 | 
						|
	   #:make-process
 | 
						|
	   #:destroy-process
 | 
						|
	   #:current-process
 | 
						|
	   #:all-processes
 | 
						|
	   #:processp
 | 
						|
	   #:process-name
 | 
						|
	   #:process-state
 | 
						|
	   #:process-whostate
 | 
						|
	   #:process-wait
 | 
						|
	   #:process-wait-with-timeout
 | 
						|
	   #:process-yield
 | 
						|
	   #:process-interrupt
 | 
						|
	   #:disable-process
 | 
						|
	   #:enable-process
 | 
						|
	   #:restart-process
 | 
						|
	   #:without-scheduling
 | 
						|
	   #:atomic-incf
 | 
						|
	   #:atomic-decf
 | 
						|
	   #:process-property-list
 | 
						|
	   #:process-alive-p
 | 
						|
	   #:process-join
 | 
						|
	   ;;
 | 
						|
	   #:make-lock
 | 
						|
	   #:with-lock-held
 | 
						|
	   #:make-recursive-lock
 | 
						|
	   #:with-recursive-lock-held
 | 
						|
	   ;;
 | 
						|
	   #:make-condition-variable
 | 
						|
	   #:condition-wait
 | 
						|
	   #:condition-notify
 | 
						|
	   #:process-property-list
 | 
						|
	   #:process-execute
 | 
						|
	   ;; mop.lisp
 | 
						|
	   #:printable-object-mixin
 | 
						|
	   ))
 |