[189755]: index-page.lisp Maximize Restore History

Download this file

index-page.lisp    73 lines (66 with data), 3.2 kB

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
(in-package :sbcl-page)
(define-page :index "About" "index" index-page :index-order :top)
(defparameter *month-names* ;; Isn't there some better way to do this?
'("January" "February" "March" "April" "May" "June" "July" "August" "September" "October" "November" "December"))
(defun split-at (separator string &key (start 0))
(let ((found (position separator string :start start)))
(if found
(cons (subseq string start found)
(split-at separator string :start (1+ found)))
(list (subseq string start)))))
(defun parse-current-release-data ()
(with-open-file (stream (merge-pathnames "current-release"
(if #.*compile-file-truename*
(make-pathname :directory (pathname-directory #.*compile-file-truename*))
*default-pathname-defaults*))
:direction :input)
(list
(read-line stream)
(let ((date (split-at #\- (read-line stream))))
(if (eql (length date) 3)
(let ((month (parse-integer (second date))))
(format nil "~A ~A, ~A" (elt *month-names* (1- month))
(third date)
(first date)))
"An unrecognized date")))))
(defparameter *most-recent-release* (parse-current-release-data))
(defun index-page ()
(list
(<p> "Steel Bank Common Lisp (SBCL) is a high performance Common Lisp
compiler. It is open source / free software, with a permissive license. In
addition to the compiler and runtime system for ANSI Common Lisp, it provides
an interactive environment including a debugger, a statistical profiler, a
code coverage tool, and many other extensions.")
(<p>
"SBCL runs on a number of POSIX platforms, and experimentally on Windows. See the "
(<a href= ,(page-link :ports)> "download")
" page for supported platforms, and "
(<a href= ,(page-link :getting-sbcl)> "getting started")
" guide for additional help.")
(<p>
"The most recent version is "
;; FIXME: -r2 KLUDGE
(<a href= ,(format nil "http://downloads.sourceforge.net/project/sbcl/sbcl/~A/sbcl-~:*~A-source.tar.bz2" (car *most-recent-release*))>
"SBCL " (car *most-recent-release*))
", released "
(second *most-recent-release*)
" ("
(<a href= ,(concatenate 'string (page-link :news) "#" (car *most-recent-release*))>
"release notes")
").")
(<h2> "Documentation")
(<p> "SBCL's manual is available on the web in "
(<a href= "manual/index.html"> "html")
" and "
(<a href= "manual/sbcl.pdf"> "pdf")
" formats. See the "
(<code> "doc/manual")
" directory in the source code for the current version in TeXInfo source.")
(<h2> "Reporting Bugs")
(<p> "Bugs can either be reported directly to "
(<a href= "https://bugs.launchpad.net/sbcl">
"SBCL's bug database on Launchpad")
", or by sending email to the "
(<a href= "https://lists.sourceforge.net/lists/listinfo/sbcl-bugs">
"sbcl-bugs")
" mailing list -- no subscription required.")))