feat(3p/lisp/sclf): build using buildLisp
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>
This commit is contained in:
parent
a5dbd0f5d9
commit
2e08324484
7 changed files with 45 additions and 11 deletions
1
third_party/lisp/sclf/.skip-subtree
vendored
Normal file
1
third_party/lisp/sclf/.skip-subtree
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
prevent readTree from creating entries for subdirs that don't contain an .nix files
|
3
third_party/lisp/sclf/OWNERS
vendored
Normal file
3
third_party/lisp/sclf/OWNERS
vendored
Normal file
|
@ -0,0 +1,3 @@
|
|||
inherited: true
|
||||
owners:
|
||||
- sterni
|
8
third_party/lisp/sclf/README
vendored
8
third_party/lisp/sclf/README
vendored
|
@ -1,2 +1,6 @@
|
|||
SCLF is a collection of disparate Common Lisp functions that are
|
||||
common enough in my code but couldn't find a place anywhere else.
|
||||
SCLF has originally been written by Walter C. Pelissero and vendored
|
||||
into depot since it is a dependency of mime4cl. Upstream and depot version
|
||||
may diverge.
|
||||
|
||||
Upstream Website: http://wcp.sdf-eu.org/software/#sclf
|
||||
Vendored Tarball: http://wcp.sdf-eu.org/software/sclf-20150207T213551.tbz
|
||||
|
|
28
third_party/lisp/sclf/default.nix
vendored
Normal file
28
third_party/lisp/sclf/default.nix
vendored
Normal file
|
@ -0,0 +1,28 @@
|
|||
# Copyright (C) 2021 by the TVL Authors
|
||||
# SPDX-License-Identifier: LGPL-2.1-or-later
|
||||
{ depot, pkgs, ... }:
|
||||
|
||||
depot.nix.buildLisp.library {
|
||||
name = "sclf";
|
||||
|
||||
deps = [
|
||||
(depot.nix.buildLisp.bundled "sb-posix")
|
||||
];
|
||||
|
||||
srcs = [
|
||||
./package.lisp
|
||||
./sclf.lisp
|
||||
./sysproc.lisp
|
||||
./lazy.lisp
|
||||
./time.lisp
|
||||
./directory.lisp
|
||||
./serial.lisp
|
||||
./mp/sbcl.lisp
|
||||
];
|
||||
|
||||
# TODO(sterni): implement OS interaction for ECL and CCL
|
||||
brokenOn = [
|
||||
"ecl"
|
||||
"ccl"
|
||||
];
|
||||
}
|
11
third_party/lisp/sclf/directory.lisp
vendored
11
third_party/lisp/sclf/directory.lisp
vendored
|
@ -1,6 +1,7 @@
|
|||
;;; directory.lisp --- filesystem directory access
|
||||
|
||||
;;; 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
|
||||
|
@ -348,18 +349,12 @@ are defined."
|
|||
(defun stat-modification-time (stat)
|
||||
"Return the modification time of the STAT structure as Lisp
|
||||
Universal Time, which is not the same as the Unix time."
|
||||
#-(or cmu sbcl) (error "Don't know how to adjust Unix time to Lisp Universal Time.")
|
||||
(+ #+cmu lisp::unix-to-universal-time
|
||||
#+sbcl sb-impl::unix-to-universal-time
|
||||
(stat-mtime stat)))
|
||||
(unix->universal-time (stat-mtime stat)))
|
||||
|
||||
(defun stat-creation-time (stat)
|
||||
"Return the creation time of the STAT structure as Lisp
|
||||
Universal Time, which is not the same as the Unix time."
|
||||
#-(or cmu sbcl) (error "Don't know how to adjust Unix time to Lisp Universal Time.")
|
||||
(+ #+cmu lisp::unix-to-universal-time
|
||||
#+sbcl sb-impl::unix-to-universal-time
|
||||
(stat-ctime stat)))
|
||||
(unix->universal-time (stat-ctime stat)))
|
||||
|
||||
(defun file-modification-time (file)
|
||||
"Return the modification time of FILE as Lisp Universal Time, which
|
||||
|
|
2
third_party/lisp/sclf/package.lisp
vendored
2
third_party/lisp/sclf/package.lisp
vendored
|
@ -1,6 +1,7 @@
|
|||
;;; 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
|
||||
|
@ -179,6 +180,7 @@
|
|||
#:stat-mode
|
||||
#:save-file-excursion
|
||||
#:stat-modification-time
|
||||
#:stat-creation-time
|
||||
#:file-modification-time
|
||||
#:file-creation-time
|
||||
#:show
|
||||
|
|
3
third_party/lisp/sclf/sclf.asd
vendored
3
third_party/lisp/sclf/sclf.asd
vendored
|
@ -1,6 +1,7 @@
|
|||
;;; sclf.asd --- system definition
|
||||
|
||||
;;; Copyright (C) 2005, 2006, 2008, 2009 by Walter C. Pelissero
|
||||
;;; Copyright (C) 2021 by the TVL Authors
|
||||
|
||||
;;; Author: Walter C. Pelissero <walter@pelissero.de>
|
||||
;;; Project: SCLF
|
||||
|
@ -44,8 +45,8 @@ uses, too small to fit anywhere else."
|
|||
(:file "sclf" :depends-on ("package"))
|
||||
(:file "sysproc" :depends-on ("package" "sclf"))
|
||||
(:file "lazy" :depends-on ("package" "sclf"))
|
||||
(:file "directory" :depends-on ("package" "sclf"))
|
||||
(:file "time" :depends-on ("package" "sclf"))
|
||||
(:file "directory" :depends-on ("package" "sclf" "time"))
|
||||
(:file "serial" :depends-on ("package" "sclf"))
|
||||
(:module "mp"
|
||||
:depends-on ("package" "sclf")
|
||||
|
|
Loading…
Reference in a new issue