Work at SourceForge, help us to make it a better place! We have an immediate need for a Support Technician in our San Francisco or Denver office.

Close

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

Download this file

index-page.lisp    79 lines (72 with data), 3.5 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
73
74
75
76
77
78
(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")
").")
(<p>
"In addition to the official SBCL, "
(<a href= "https://github.com/akovalenko/sbcl-win32-threads/wiki"> "a Windows fork")
" exists that adds support for threads on that platform as well. Though is has not
yet been incorporated into mainline, Windows users may want to consider
using it in the meanwhile.")
(<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.")))