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
 | |
| 	   ))
 |