about summary refs log tree commit diff
path: root/third_party/lisp/sclf/package.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
           ))