Screenshot instructions:
Windows
Mac
Red Hat Linux
Ubuntu
Click URL instructions:
Right-click on ad, choose "Copy Link", then paste here →
(This may not be possible with some types of ads)
You can subscribe to this list here.
2000 |
Jan
(81) |
Feb
(55) |
Mar
(459) |
Apr
(159) |
May
(126) |
Jun
(69) |
Jul
(48) |
Aug
(29) |
Sep
(106) |
Oct
(76) |
Nov
(155) |
Dec
(161) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2001 |
Jan
(122) |
Feb
(150) |
Mar
(294) |
Apr
(124) |
May
(197) |
Jun
(266) |
Jul
(111) |
Aug
(259) |
Sep
(163) |
Oct
(142) |
Nov
(101) |
Dec
(86) |
2002 |
Jan
(187) |
Feb
(108) |
Mar
(274) |
Apr
(157) |
May
(346) |
Jun
(242) |
Jul
(345) |
Aug
(187) |
Sep
(263) |
Oct
(69) |
Nov
(30) |
Dec
(76) |
2003 |
Jan
(125) |
Feb
(191) |
Mar
(87) |
Apr
(69) |
May
(107) |
Jun
(66) |
Jul
(112) |
Aug
(161) |
Sep
(184) |
Oct
(137) |
Nov
(28) |
Dec
(61) |
2004 |
Jan
(148) |
Feb
(99) |
Mar
(365) |
Apr
(225) |
May
(311) |
Jun
(204) |
Jul
(95) |
Aug
(214) |
Sep
(256) |
Oct
(290) |
Nov
(239) |
Dec
(152) |
2005 |
Jan
(253) |
Feb
(183) |
Mar
(178) |
Apr
(88) |
May
(175) |
Jun
(195) |
Jul
(122) |
Aug
(81) |
Sep
(119) |
Oct
(200) |
Nov
(110) |
Dec
(179) |
2006 |
Jan
(154) |
Feb
(64) |
Mar
(55) |
Apr
(69) |
May
(66) |
Jun
(64) |
Jul
(80) |
Aug
(59) |
Sep
(62) |
Oct
(90) |
Nov
(132) |
Dec
(106) |
2007 |
Jan
(58) |
Feb
(51) |
Mar
(59) |
Apr
(19) |
May
(33) |
Jun
(52) |
Jul
(15) |
Aug
(50) |
Sep
(41) |
Oct
(259) |
Nov
(323) |
Dec
(136) |
2008 |
Jan
(205) |
Feb
(128) |
Mar
(203) |
Apr
(126) |
May
(307) |
Jun
(166) |
Jul
(259) |
Aug
(181) |
Sep
(217) |
Oct
(265) |
Nov
(256) |
Dec
(132) |
2009 |
Jan
(104) |
Feb
(81) |
Mar
(27) |
Apr
(21) |
May
(85) |
Jun
(237) |
Jul
(243) |
Aug
(199) |
Sep
(178) |
Oct
(151) |
Nov
(64) |
Dec
(39) |
2010 |
Jan
(33) |
Feb
(146) |
Mar
(125) |
Apr
(109) |
May
(52) |
Jun
(135) |
Jul
(103) |
Aug
(68) |
Sep
(99) |
Oct
(88) |
Nov
(45) |
Dec
(56) |
2011 |
Jan
(19) |
Feb
(32) |
Mar
(50) |
Apr
(105) |
May
(46) |
Jun
(22) |
Jul
(101) |
Aug
(80) |
Sep
(52) |
Oct
(16) |
Nov
(10) |
Dec
(29) |
2012 |
Jan
(8) |
Feb
(22) |
Mar
(17) |
Apr
(68) |
May
(19) |
Jun
(19) |
Jul
(12) |
Aug
(6) |
Sep
(13) |
Oct
(5) |
Nov
(5) |
Dec
(5) |
2013 |
Jan
(6) |
Feb
(4) |
Mar
(3) |
Apr
(5) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(6) |
Dec
|
2014 |
Jan
|
Feb
|
Mar
(16) |
Apr
(1) |
May
(8) |
Jun
|
Jul
(1) |
Aug
(1) |
Sep
|
Oct
|
Nov
|
Dec
|
2015 |
Jan
|
Feb
(8) |
Mar
(23) |
Apr
(5) |
May
|
Jun
|
Jul
|
Aug
(7) |
Sep
(1) |
Oct
|
Nov
|
Dec
(5) |
2016 |
Jan
|
Feb
|
Mar
(16) |
Apr
(6) |
May
(53) |
Jun
(19) |
Jul
(3) |
Aug
(39) |
Sep
(24) |
Oct
(2) |
Nov
(19) |
Dec
|
2017 |
Jan
(13) |
Feb
(44) |
Mar
(208) |
Apr
(12) |
May
(94) |
Jun
(54) |
Jul
(18) |
Aug
(52) |
Sep
(12) |
Oct
(22) |
Nov
(27) |
Dec
(93) |
2018 |
Jan
(85) |
Feb
(28) |
Mar
(16) |
Apr
(39) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
S | M | T | W | T | F | S |
---|---|---|---|---|---|---|
|
|
|
|
|
1
(3) |
2
(2) |
3
|
4
(3) |
5
(3) |
6
(2) |
7
(7) |
8
(3) |
9
(2) |
10
(5) |
11
(3) |
12
(2) |
13
(5) |
14
(1) |
15
(3) |
16
(2) |
17
(2) |
18
(8) |
19
(8) |
20
(3) |
21
(6) |
22
(4) |
23
(1) |
24
|
25
(3) |
26
(1) |
27
(3) |
28
(1) |
29
(1) |
30
(1) |
From: <clisp-cvs-request@li...> - 2005-04-13 22:20:19
|
Send clisp-cvs mailing list submissions to clisp-cvs@... To subscribe or unsubscribe via the World Wide Web, visit https://lists.sourceforge.net/lists/listinfo/clisp-cvs or, via email, send a message with subject or body 'help' to clisp-cvs-request@... You can reach the person managing the list at clisp-cvs-admin@... When replying, please edit your Subject line so it is more specific than "Re: Contents of clisp-cvs digest..." CLISP CVS commits for today Today's Topics: 1. clisp/src ChangeLog,1.4468,1.4469 (Sam Steingold) 2. clisp/modules/bindings/win32 Makefile,1.4,1.5 (Sam Steingold) 3. clisp/modules/bindings/win32 Makefile,1.5,1.6 (Sam Steingold) 4. clisp/src makemake.in,1.542,1.543 _README.de,1.19,1.20 (Sam Steingold) 5. clisp/modules/rawsock rawsock.c,1.26,1.27 (Sam Steingold) 6. clisp/doc impent.xml,1.210,1.211 (Sam Steingold) 7. clisp/modules/syscalls syscalls.xml,1.39,1.40 (Sam Steingold) 8. clisp/modules/rawsock rawsock.xml,1.11,1.12 (Sam Steingold) 9. clisp/doc mop-ent.xml,2.11,2.12 (Sam Steingold) 10. clisp/src ChangeLog,1.4469,1.4470 (Sam Steingold) 11. clisp/modules/syscalls configure.in,1.34,1.35 (Sam Steingold) 12. clisp/modules/syscalls calls.c,1.108,1.109 (Sam Steingold) --__--__-- Message: 1 From: Sam Steingold <sds@...> To: clisp-cvs@... Subject: clisp/src ChangeLog,1.4468,1.4469 Date: Wed, 13 Apr 2005 16:56:10 +0000 Reply-To: clisp-devel@... Update of /cvsroot/clisp/clisp/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22992/src Modified Files: ChangeLog Log Message: (STAT-VFS): added vol-name and fs-type slots Index: ChangeLog =================================================================== RCS file: /cvsroot/clisp/clisp/src/ChangeLog,v retrieving revision 1.4468 retrieving revision 1.4469 diff -u -d -r1.4468 -r1.4469 --- ChangeLog 13 Apr 2005 16:42:37 -0000 1.4468 +++ ChangeLog 13 Apr 2005 16:55:56 -0000 1.4469 @@ -3,6 +3,7 @@ * modules/syscalls/calls.c (STAT-VFS) [WIN32_NATIVE]: implemented using GetDiskFreeSpace, GetDiskFreeSpaceEx, GetVolumeInformation * modules/syscalls/posix.lisp (STAT-VFS): export always + added vol-name and fs-type slots 2005-04-12 Bruno Haible <bruno@...> --__--__-- Message: 2 From: Sam Steingold <sds@...> To: clisp-cvs@... Subject: clisp/modules/bindings/win32 Makefile,1.4,1.5 Date: Wed, 13 Apr 2005 18:35:27 +0000 Reply-To: clisp-devel@... Update of /cvsroot/clisp/clisp/modules/bindings/win32 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12094 Modified Files: Makefile Log Message: (DISTRIBFILES): removed win32.o Index: Makefile =================================================================== RCS file: /cvsroot/clisp/clisp/modules/bindings/win32/Makefile,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- Makefile 14 Mar 2005 15:41:46 -0000 1.4 +++ Makefile 13 Apr 2005 18:35:25 -0000 1.5 @@ -13,7 +13,7 @@ SHELL = /bin/sh -DISTRIBFILES = win32.o link.sh Makefile win32.lisp +DISTRIBFILES = link.sh Makefile win32.lisp distribdir = # add win32.o if a C file is generated --__--__-- Message: 3 From: Sam Steingold <sds@...> To: clisp-cvs@... Subject: clisp/modules/bindings/win32 Makefile,1.5,1.6 Date: Wed, 13 Apr 2005 18:36:05 +0000 Reply-To: clisp-devel@... Update of /cvsroot/clisp/clisp/modules/bindings/win32 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12317/modules/bindings/win32 Modified Files: Makefile Log Message: comment Index: Makefile =================================================================== RCS file: /cvsroot/clisp/clisp/modules/bindings/win32/Makefile,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- Makefile 13 Apr 2005 18:35:25 -0000 1.5 +++ Makefile 13 Apr 2005 18:36:03 -0000 1.6 @@ -13,7 +13,7 @@ SHELL = /bin/sh -DISTRIBFILES = link.sh Makefile win32.lisp +DISTRIBFILES = link.sh Makefile win32.lisp # win32.o distribdir = # add win32.o if a C file is generated --__--__-- Message: 4 From: Sam Steingold <sds@...> To: clisp-cvs@... Subject: clisp/src makemake.in,1.542,1.543 _README.de,1.19,1.20 Date: Wed, 13 Apr 2005 18:53:17 +0000 Reply-To: clisp-devel@... Update of /cvsroot/clisp/clisp/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21639/src Modified Files: makemake.in _README.de Log Message: [win32gcc]: distribute module sources (echo_dist_modules): new function Index: _README.de =================================================================== RCS file: /cvsroot/clisp/clisp/src/_README.de,v retrieving revision 1.19 retrieving revision 1.20 diff -u -d -r1.19 -r1.20 --- _README.de 20 Jan 2004 11:32:02 -0000 1.19 +++ _README.de 13 Apr 2005 18:53:15 -0000 1.20 @@ -5,298 +5,146 @@ ------------- LISP ist eine Programmiersprache, die 1959 von J. McCarthy erfunden wurde. -Früher gab's viele verschiedene Dialekte, heute ist LISP durch den Industrie- -Standard COMMON LISP standardisiert und weit verbreitet worden. Anwendungen -reichen von der symbolischen Wissensverarbeitung (KI) über die Numerik +Es gibt viele verschiedene LISP Dialekte. Heute ist LISP durch den Industrie- +Standard ANSI COMMON LISP standardisiert und weit verbreitet. Anwendungen +reichen von der symbolischen Wissensverarbeitung (KI) über die Numerik (MACLISP lieferte einen ebensoguten Numerik-Code wie FORTRAN) bis hin zu -verbreiteten Programmen wie Editoren (EMACS) oder CAD-Systemen (AUTOCAD). -Eine Einführung in die Sprache ist: +verbreiteten Programmen wie Editoren (EMACS) oder CAD-Systemen +(AUTOCAD). +Eine Einführung in die Sprache ist: Sheila Hughes: Lisp. Pitman Publishing Limited, London 1986. - 107 Seiten. ca. DM 15,80. + Paul Graham: "ANSI Common Lisp", Prentice Hall, 1995, ISBN 0133708756. + <http://paulgraham.com/acl.html> + and "On Lisp", Prentice Hall, 1993. ISBN 0130305529. + <http://paulgraham.com/onlisp.html> -Nach einiger Zeit unentbehrlich ist das Standardwerk mit der Sprachdefinition +Nach einiger Zeit unentbehrlich ist das Standardwerk mit der +Sprachdefinition Guy L. Steele Jr.: Common Lisp - The Language. Digital Press. - 1. Auflage 1984, 465 Seiten, ca. DM 73,60. - 2. Auflage 1990, 1032 Seiten. ca. DM 94,90. + 1st edition, 1984, 465 pages. + 2nd edition, 1990, 1032 pages. -Dieses Buch ist in HTML-Format per FTP erhältlich von - ftp.cs.cmu.edu:/user/ai/lang/lisp/doc/cltl/cltl_ht.tgz +Dieses Buch ist in HTML-Format per FTP erhältlich von: + ftp://ftp.cs.cmu.edu/user/ai/lang/lisp/doc/cltl/cltl_ht.tgz und per WWW einsehbar unter - http://www.cs.cmu.edu:8001/Web/Groups/AI/html/cltl/cltl2.html oder - http://www.cs.cmu.edu:8001/afs/cs/project/ai-repository/ai/html/cltl/cltl2.html . + http://www.cs.cmu.edu:8001/Web/Groups/AI/html/cltl/cltl2.html or -Für Experten: Dieses Standardwerk hat sich zu einem ANSI-Standard -weiterentwickelt, der ausnahmsweise kostenlos erhältlich ist von +http://www.cs.cmu.edu:8001/afs/cs/project/ai-repository/ai/html/cltl/cltl2.html +. + +Für Experten: Dieses Standardwerk hat sich zu einem ANSI-Standard +weiterentwickelt, der ausnahmsweise kostenlos erhältlich ist von: http://www.lisp.org/HyperSpec/FrontMatter/ -LISP liegt in einer interaktiven Umgebung vor, d.h. man gibt Formen ein, die -dann sofort ausgewertet werden. So kann man Variablen inspizieren, Funktionen -mit wechselnden Argumenten aufrufen oder auch eigene Funktionen definieren. +LISP liegt in einer interaktiven Umgebung vor, d.h. man gibt Formen ein, +die +dann sofort ausgewertet werden. So kann man Variablen inspizieren, +Funktionen +mit wechselnden Argumenten aufrufen oder auch eigene Funktionen +definieren. Inhalt: ------- -Zu CLISP gehören folgende Dateien: - -#ifdef UNIX -#ifndef UNIX_BINARY_DISTRIB - base/lisp.a Hauptprogramm, muß erst noch gelinkt werden -#endif -#ifdef UNIX_BINARY_DISTRIB - base/lisp.run Hauptprogramm -#endif - base/lispinit.mem beim Start benötigtes Speicherabbild - doc/clisp.1 Benutzungshinweise im man-Format von Unix - doc/clisp.man Benutzungshinweise - doc/clisp.html Benutzungshinweise im HTML-Format - doc/impnotes.html Dokumentation von Implementierungsdetails -#ifdef GNU_READLINE - doc/clreadline.3 Eingabezeilen-Benutzungshinweise im man-Format von Unix - doc/clreadline.man Eingabezeilen-Benutzungshinweise -#endif - doc/LISP-tutorial.txt Kurzkurs LISP für Anfänger - doc/CLOS-guide.txt Kurzkurs CLOS - README dies hier - SUMMARY Kurzbeschreibung von CLISP - ANNOUNCE Ankündingung - NEWS Liste der Veränderungen seit der letzten Version - COPYRIGHT Klarstellung des Urheberrechts - GNU-GPL Gebrauchslizenz für Offene Software -#ifdef GNU_READLINE - doc/readline.dvi Dokumentation zur GNU Readline-Bibliothek -#endif - doc/editors.txt Überblick über Editoren mit Lisp-Unterstützung - emacs/*.el Anpassung von Emacs, siehe doc/editors.txt -#ifndef UNIX_BINARY_DISTRIB - src/clisp.c Quellen des Wegweisers -#endif - src/config.lisp örtliche Konfiguration - -und - als Zugabe, für den Fall, daß Sie Quellen lesen möchten - - - src/*.lisp die Quellen zu lispinit.mem - src/*.fas dieselben Dateien in compilierter Form -#if !defined(UNIX_BINARY_DISTRIB) && defined(GNU_READLINE) - -Um das ausführbare Programm zu erstellen, brauchen Sie ferner: - - base/libreadline.a die GNU Readline-Bibliothek - -oder +Zu CLISP gehören folgende Dateien: - base/libnoreadline.a wertloser Ersatz für die GNU Readline-Bibliothek -#endif -#else /* !defined(UNIX) */ - lispinit.mem beim Start benötigtes Speicherabbild -#ifdef GNU_GETTEXT - locale/*/LC_MESSAGES/clisp.mo Datenbanken lokalisierter Meldungen -#endif - clisp.1 Benutzungshinweise im man-Format von Unix - clisp.man Benutzungshinweise - clisp.html Benutzungshinweise im HTML-Format - impnotes.html Dokumentation von Implementierungsdetails -#ifdef GNU_READLINE - clreadline.3 Eingabezeilen-Benutzungshinweise im man-Format von Unix - clreadline.man Eingabezeilen-Benutzungshinweise - clreadline.html Eingabezeilen-Benutzungshinweise im HTML-Format -#endif - LISP-tutorial.txt Kurzkurs LISP für Anfänger - CLOS-guide.txt Kurzkurs CLOS - editors.txt ein paar Worte über Texteditoren für Lisp - README dies hier - SUMMARY Kurzbeschreibung von CLISP - ANNOUNCE Ankündingung - NEWS Liste der Veränderungen seit der letzten Version - COPYRIGHT Klarstellung des Urheberrechts - GNU-GPL Gebrauchslizenz für Offene Software -#ifdef GNU_READLINE - readline.dvi Dokumentation zur GNU Readline-Bibliothek -#endif - config.lisp örtliche Konfiguration -#if !(defined(UNIX) || defined(WIN32)) - timezone.lisp örtliche Zeitzone -#endif + lisp.exe Hauptprogramm + lispinit.mem beim Start benötigtes Speicherabbild + doc/clisp.1 Benutzungshinweise im man-Format von Unix + doc/clisp.man Benutzungshinweise + doc/clisp.html Benutzungshinweise im HTML-Format + doc/impnotes.html Dokumentation von Implementierungsdetails + doc/impnotes.css Style Sheet Datei zu impnotes.html + doc/LISP-tutorial.txt Kurze Einführung für LISP Anfänger + doc/CLOS-guide.txt Kurze Anleitung zu CLOS + doc/editors.txt ein paar Worte über Texteditoren für Lisp + README.de dieser Text hier + SUMMARY Kurzbeschreibung von CLISP + ANNOUNCE Ankündingung + NEWS Liste der Veränderungen seit der letzten +Version + COPYRIGHT Klarstellung des Urheberrechts + GNU-GPL Gebrauchslizenz für Offene Software + emacs/*.el Emacs Konfiguration, siehe doc/editors.txt + src/config.lisp örtliche Konfiguration + src/install.lisp Win32 CLISP Installer (ggf. anpassen) + data/clhs.txt Suchwort Datei für HyperSpec +Dokumentation + data/UnicodeDataFull.txt Unicode Zeichensatz Datei + install.bat MSDOS, WIN32 Install Datei + src/install.lisp Win32 CLISP Installer (ggf. anpassen) -und - als Zugabe, für den Fall, daß Sie Quellen lesen möchten - + Für den Fall, daß Sie Quellcode lesen möchten - - *.lisp die Quellen zu lispinit.mem - *.fas dieselben Dateien in compilierter Form -#endif + src/*.lisp die Quellen zu lispinit.mem -#if defined(SINGLEMAP_MEMORY) && (defined(UNIX_LINUX) || !defined(HAVE_MMAP_ANON)) -Software-Voraussetzungen: -------------------------- - -#ifdef UNIX_LINUX -#ifdef GENERATIONAL_GC -#ifdef IMMUTABLE -Diese CLISP-Version setzt Linux 1.2.2 oder neuer voraus. -#else -Diese CLISP-Version setzt Linux 1.1.52 oder neuer voraus. -#endif -#else -Diese CLISP-Version setzt Linux 0.99.7 oder neuer voraus. -#endif -#endif -#if !defined(HAVE_MACH_VM) && !defined(HAVE_MMAP_ANON) /* impliziert HAVE_MMAP_DEVZERO */ -/dev/zero muß von jedermann lesbar sein. Um das sicherzustellen, können Sie -ein "chmod a+r /dev/zero" ausführen. -#endif - -#endif Installation: ------------- -#if defined(UNIX) || defined(WIN32) -#if defined(UNIX) && !defined(UNIX_BINARY_DISTRIB) -Um das ausführbare Programm zu erstellen, geben Sie ein: - - make - -#if 0 /* def GNU_READLINE - man muß Makefile verändern */ -Wenn Sie auf die Editiermöglichkeiten der GNU Readline-Bibliothek verzichten -möchten, ersetzen Sie vorher in der LIBS-Zeile der Datei base/makevars -"libreadline.a" durch "libnoreadline.a". - -#endif -#endif -Passen Sie die Strings innerhalb von src/config.lisp mit einem Texteditor an. -#else -Passen Sie den Inhalt von config.lisp, insbesondere die Definitionen von -short-site-name und long-site-name, an Ihre örtlichen Gegebenheiten an. -Vielleicht möchten Sie auch die Zeitzonendefinition am Ende von timezone.lisp -ändern. -#endif +Passen Sie die Strings innerhalb von src/config.lisp mit einem +Texteditor an. Starten Sie dann -#ifdef WIN32_NATIVE lisp.exe -M lispinit.mem -#endif -#ifdef UNIX - base/lisp.run -M base/lispinit.mem -#endif Auf den LISP-Prompt - > _ + [1]> _ hin eingeben: -#if defined(UNIX) || defined(WIN32) (without-package-lock () (compile-file "src/config.lisp") (load "src/config.fas")) -#else - (without-package-lock () - (compile-file "config.lisp") - (load "config.fas")) - -und - falls Sie timezone.lisp verändert haben - - (without-package-lock () - (compile-file "timezone.lisp") - (load "timezone.fas")) -#endif - -und dann +und dann: -#ifdef UNIX - (cd "base/") -#endif (saveinitmem) -Damit überschreiben Sie die Datei lispinit.mem mit Ihrer Konfiguration. Sodann +Damit überschreiben Sie die Datei lispinit.mem mit Ihrer Konfiguration. +Sodann: (exit) -#ifdef UNIX -Alles weitere erledigt ein - - make install - -Sie können dies stattdessen auch selber, schrittweise tun: - -#endif -Legen Sie ein Verzeichnis an und legen Sie das ausführbare Programm und das +Legen Sie ein Verzeichnis an und legen Sie das ausführbare Programm und +das Speicherabbild dort ab. -#ifdef UNIX -Ich schlage hierfür /usr/local/lib/lisp vor: - - mkdir /usr/local/lib/lisp - mv base/lisp.run /usr/local/lib/lisp - mv base/lispinit.mem /usr/local/lib/lisp -#endif -#ifdef WIN32_NATIVE -Angenommen, Sie wählen dafür D:\LIB\LISP : +Angenommen, Sie wählen dafür D:\LIB\LISP : (am DOS-Prompt eingeben) mkdir d:\lib\lisp copy lisp.exe d:\lib\lisp copy lispinit.mem d:\lib\lisp -#endif -#ifdef WIN32_NATIVE -Und erstellen Sie eine Kommando-Datei, die Lisp startet: +Nun erstellen Sie eine Kommando-Datei, die Lisp startet: copy con c:\bat\clisp.bat - d:\lib\lisp\lisp.exe -M d:\lib\lisp\lispinit.mem -B d:\lib\lisp\ %1 %2 %3 %4 %5 %6 %7 %8 %9 + d:\lib\lisp\lisp.exe -M d:\lib\lisp\lispinit.mem -B d:\lib\lisp\ %1 +%2 %3 %4 %5 %6 %7 %8 %9 [Ctrl-Z] -#endif -#ifdef UNIX -Und erstellen Sie den Wegweiser, der Lisp startet: - -#ifdef UNIX_BINARY_DISTRIB - cc -O -DLISPLIBDIR='"/usr/local/lib/lisp"' \ - -DLOCALEDIR='"/usr/local/share/locale"' \ - src/clisp.c -o /usr/local/bin/clisp -#else - ./hardcode -DLISPLIBDIR='/usr/local/lib/lisp' \ - -DLOCALEDIR='/usr/local/share/locale' \ - clisp /usr/local/bin/clisp -#endif -#ifdef WIN32_NATIVE -You can also use file install.bat which creates the driver file -on your desktop and sets up the registry. [FIXME] -#endif - -Installieren Sie nun die Benutzungshinweise - mv doc/clisp.1 /usr/local/man/man1/clisp.1 -#ifdef GNU_READLINE - mv doc/clreadline.3 /usr/local/man/man3/clreadline.3 -#endif - -and probieren Sie - - man clisp -#endif - -Wenn's Probleme gibt: +Wenn es Probleme gibt: --------------------- -Bei Errors befindet man sich im Debugger: - - 1. Break> _ +Bei Fehlern befinden Sie sich im Debugger-Modus: -Hier kann man wie üblich Formen auswerten. -Außerdem: + Break 1 [5]> _ - Help - ruft Hilfestellung an. - Abort oder - Unwind - steigt hoch in die nächsthöhere Hauptschleife. - Backtrace - zeigt den Stackinhalt an. Das hilft bei der Fehlersuche. +Hier kann man wie üblich Formen auswerten. +Außerdem: -Außerdem kann man sich die Werte der Variablen der Funktion anzeigen lassen, -in der der Fehler passierte. + Help ruft Hilfestellung auf (kurzform :h) + Abort Abbrechen (kurzform :a) + Unwind steigt hoch in die nächsthöhere Hauptschleife. + Backtrace zeigt den Stackinhalt an. Das hilft bei der Fehlersuche. + * zeigt den letzten ausgewerteten Wert an -Bei größeren Problemen, z.B. harten Abstürzen, bitte Fehlerbeschreibung +Bei größeren Problemen, z.B. harten Abstürzen, bitte +Fehlerbeschreibung und reproduzierbare Vorgehensweise zur Erzeugung dieses Fehlers an die Autoren senden. Bitte nennen Sie dabei auch die Version von CLISP; sie erhalten sie durch Aufrufen von (lisp-implementation-version). @@ -307,36 +155,23 @@ Die Quellen von CLISP gibt es von ftp://clisp.cons.org/pub/lisp/clisp/source/clispsrc* -#ifdef UNIX_LINUX -Die Quellen der jüngsten Distribution von CLISP für Linux findet man in - ftp://sunsite.unc.edu/pub/Linux/devel/lang/lisp/clisp-source.tar.gz -#endif Mailing-Liste: -------------- -Für die Benutzer von CLISP gibt es drei Mailing-Listen. Sie finden -Abonnier-Informationen und Archive auf der Homepage http://clisp.cons.org/. +Für die Benutzer von CLISP gibt es drei Mailing-Listen. Sie finden +Abonnier-Informationen und Archive auf der Homepage +http://clisp.cons.org/. Dank: ----- Wir schulden Dank - * Guy L. Steele und vielen anderen für die Spezifikation von Common Lisp. -#ifdef UNIX - * dem GNU-Projekt von Richard Stallman für GCC, Autoconf und die - Readline-Bibliothek. -#else -#ifdef GNU_READLINE - * dem GNU-Projekt von Richard Stallman für GCC und die Readline-Bibliothek. -#else -#ifdef GNU - * dem GNU-Projekt von Richard Stallman für GCC. -#endif -#endif -#endif + * Guy L. Steele und vielen anderen für die Spezifikation von Common +Lisp. + * dem GNU-Projekt von Richard Stallman für GCC. Autoren: Index: makemake.in =================================================================== RCS file: /cvsroot/clisp/clisp/src/makemake.in,v retrieving revision 1.542 retrieving revision 1.543 diff -u -d -r1.542 -r1.543 --- makemake.in 26 Mar 2005 17:34:50 -0000 1.542 +++ makemake.in 13 Apr 2005 18:53:14 -0000 1.543 @@ -3598,6 +3598,11 @@ fi fi +echo_dist_modules () { + echotab "for module in '' \$(BASE_MODULES) \$(MODULES); do if test -n \"\$\$module\"; then \\" + echotab " (dir=$1/ ; for subdir in "'`'"echo \$\$module/ | sed -e 's,/, ,g'"'`'" ; do dir=\$\${dir}\$\${subdir} ; test -d \$\${dir} || mkdir \$\${dir} ; dir=\$\${dir}/ ; done ; cd \$\$module ; dots="'`'"echo \$\$module/ | sed -e 's,[^/][^/]*//*,../,g'"'`'" ; \$(MAKE) clisp-module-distrib distribdir=\$\${dots}$1/\$\$module LN="`if test "$2" = ln; then echo 'ln'; else echo '$${dots}hln'; fi`") \\" + echotab "fi; done$3" +} if [ ${HSYSOS} = cygwin ]; then echol "full/lisp.exe : full" echol @@ -3748,9 +3753,7 @@ echotab "${HLN} clisp-link \$(TOPDIR)" echotab "mkdir \$(TOPDIR)/linkkit" echotab "${HLN} ${LINKKIT} \$(TOPDIR)/linkkit" -echotab "for module in '' \$(BASE_MODULES) \$(MODULES); do if test -n \"\$\$module\"; then \\" -echotab " (dir=\$(TOPDIR)/ ; for subdir in "'`'"echo \$\$module/ | sed -e 's,/, ,g'"'`'" ; do dir=\$\${dir}\$\${subdir} ; test -d \$\${dir} || mkdir \$\${dir} ; dir=\$\${dir}/ ; done ; cd \$\$module ; dots="'`'"echo \$\$module/ | sed -e 's,[^/][^/]*//*,../,g'"'`'" ; \$(MAKE) clisp-module-distrib distribdir=\$\${dots}\$(TOPDIR)/\$\$module LN="`if test "$HLN" = ln; then echo 'ln'; else echo '$${dots}hln'; fi`") \\" -echotab "fi; done" +echo_dist_modules "\$(TOPDIR)" ${HLN} "" # For building the `clisp' executable. if test -z "$BINARY_DISTRIB"; then echotab "${HLN} clisp.c \$(TOPDIR)/src" @@ -3793,6 +3796,7 @@ echotab " cp -p linkkit/\$\$f \$\$distdir/linkkit/\$\$f; \\" echotab "done ; \\" echotab "cp clisp-link clisp.exe \$\$distdir/; \\" + echo_dist_modules "\$\$distdir" ln "; \\" fi if [ -n "${USE_GETTEXT}" ]; then echotab "cp -r locale/ \$\$distdir/; \\" --__--__-- Message: 5 From: Sam Steingold <sds@...> To: clisp-cvs@... Subject: clisp/modules/rawsock rawsock.c,1.26,1.27 Date: Wed, 13 Apr 2005 19:12:24 +0000 Reply-To: clisp-devel@... Update of /cvsroot/clisp/clisp/modules/rawsock In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30539/modules/rawsock Modified Files: rawsock.c Log Message: removed POLL: we already have SOCKET-STATUS Index: rawsock.c =================================================================== RCS file: /cvsroot/clisp/clisp/modules/rawsock/rawsock.c,v retrieving revision 1.26 retrieving revision 1.27 diff -u -d -r1.26 -r1.27 --- rawsock.c 29 Mar 2005 21:24:13 -0000 1.26 +++ rawsock.c 13 Apr 2005 19:12:21 -0000 1.27 @@ -336,12 +336,6 @@ VALUES0; } -#if defined(HAVE_POLL) -DEFUN(RAWSOCK:POLL,sockets) { - NOTREACHED; -} -#endif - /* ================== RECEIVING ================== */ /* remove 3 objects from the STACK and return the RECV flag --__--__-- Message: 6 From: Sam Steingold <sds@...> To: clisp-cvs@... Subject: clisp/doc impent.xml,1.210,1.211 Date: Wed, 13 Apr 2005 19:23:40 +0000 Reply-To: clisp-devel@... Update of /cvsroot/clisp/clisp/doc In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2729/doc Modified Files: impent.xml Log Message: (resolve-host): added Index: impent.xml =================================================================== RCS file: /cvsroot/clisp/clisp/doc/impent.xml,v retrieving revision 1.210 retrieving revision 1.211 diff -u -d -r1.210 -r1.211 --- impent.xml 13 Apr 2005 11:35:25 -0000 1.210 +++ impent.xml 13 Apr 2005 19:23:37 -0000 1.211 @@ -402,6 +402,9 @@ <!-- *** pre-processors *** --> <!ENTITY modprep "<link linkend='modprep'><command>modprep.lisp</command></link>"> +<!-- *** syscalls *** --> +<!ENTITY resolve-host "<link linkend='resolve-host'><function>POSIX:RESOLVE-HOST-IPADDR</function></link>"> + <!-- *** netica *** --> <!ENTITY netica-link "<ulink url='http://norsys.com/netica_c_api.htm'>Netica C API</ulink>"> <!ENTITY netica-c-api "http://norsys.com/onLineAPIManual/functions/"> --__--__-- Message: 7 From: Sam Steingold <sds@...> To: clisp-cvs@... Subject: clisp/modules/syscalls syscalls.xml,1.39,1.40 Date: Wed, 13 Apr 2005 19:24:10 +0000 Reply-To: clisp-devel@... Update of /cvsroot/clisp/clisp/modules/syscalls In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3099/modules/syscalls Modified Files: syscalls.xml Log Message: use &resolve-host; Index: syscalls.xml =================================================================== RCS file: /cvsroot/clisp/clisp/modules/syscalls/syscalls.xml,v retrieving revision 1.39 retrieving revision 1.40 diff -u -d -r1.39 -r1.40 --- syscalls.xml 13 Apr 2005 16:56:08 -0000 1.39 +++ syscalls.xml 13 Apr 2005 19:24:07 -0000 1.40 @@ -10,9 +10,8 @@ contains the symbol <constant>:SYSCALLS</constant>.</simpara> <variablelist> - <varlistentry><term><literal - role="sexp">(<function>POSIX:RESOLVE-HOST-IPADDR</function> - &optional-amp; &host-r;)</literal></term> + <varlistentry id="resolve-host"><term><code>(&resolve-host; + &optional-amp; &host-r;)</code></term> <listitem><para>Returns the <type>HOSTENT</type> structure: <variablelist><varlistentry><term><structfield>name</structfield></term> <listitem><simpara>host name</simpara></listitem></varlistentry> --__--__-- Message: 8 From: Sam Steingold <sds@...> To: clisp-cvs@... Subject: clisp/modules/rawsock rawsock.xml,1.11,1.12 Date: Wed, 13 Apr 2005 19:24:59 +0000 Reply-To: clisp-devel@... Update of /cvsroot/clisp/clisp/modules/rawsock In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3596/modules/rawsock Modified Files: rawsock.xml Log Message: refer to &resolve-host; Index: rawsock.xml =================================================================== RCS file: /cvsroot/clisp/clisp/modules/rawsock/rawsock.xml,v retrieving revision 1.11 retrieving revision 1.12 diff -u -d -r1.11 -r1.12 --- rawsock.xml 29 Mar 2005 21:24:13 -0000 1.11 +++ rawsock.xml 13 Apr 2005 19:24:56 -0000 1.12 @@ -25,8 +25,8 @@ <simplelist columns="4"> <member>&accept;</member><member>&bind;</member><member>&connect;</member> <member>&getpeername;</member><member>&getsockname;</member> - <member>&listen-c;</member><member>&htonl;</member><member>&htons;</member> - <member>&ntohl;</member><member>&ntohs;</member> + <member>&htonl;</member><member>&htons;</member> + <member>&ntohl;</member><member>&ntohs;</member><member>&listen-c;</member> <member>&recv;</member><member>&recvfrom;</member><member>&recvmsg;</member> <member>&send;</member><member>&sendmsg;</member><member>&sendto;</member> <member>&socket;</member><member>&sockatmark;</member> @@ -47,6 +47,9 @@ <para>We do not interface to &select; or &poll;, they are available through &so-status;.</para> +<para>We do not interface to &gethostbyname; or &gethostbyaddr;, + they are available through &resolve-host;.</para> + <variablelist id="rawsock-add-on"><title>Additional Functions</title> <varlistentry><term><code>(RAWSOCK:CONVERT-ADDRESS <replaceable>family</replaceable> &addr-r;)</code></term> --__--__-- Message: 9 From: Sam Steingold <sds@...> To: clisp-cvs@... Subject: clisp/doc mop-ent.xml,2.11,2.12 Date: Wed, 13 Apr 2005 19:35:15 +0000 Reply-To: clisp-devel@... Update of /cvsroot/clisp/clisp/doc In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv8818/doc Modified Files: mop-ent.xml Log Message: <literal role="sexp"> ==> <code> Index: mop-ent.xml =================================================================== RCS file: /cvsroot/clisp/clisp/doc/mop-ent.xml,v retrieving revision 2.11 retrieving revision 2.12 diff -u -d -r2.11 -r2.12 --- mop-ent.xml 7 Dec 2004 15:35:54 -0000 2.11 +++ mop-ent.xml 13 Apr 2005 19:35:12 -0000 2.12 @@ -67,10 +67,10 @@ <!ENTITY remove-direct-method "<link linkend='remove-direct-method'><function>CLOS:REMOVE-DIRECT-METHOD</function></link>"> <!ENTITY remove-direct-subclass "<link linkend='remove-direct-subclass'><function>CLOS:REMOVE-DIRECT-SUBCLASS</function></link>"> <!ENTITY set-funcallable-instance-function "<link linkend='set-fif'><function>CLOS:SET-FUNCALLABLE-INSTANCE-FUNCTION</function></link>"> -<!ENTITY setf-class-name "<link linkend='setf-class-name'><literal role='sexp'>(SETF <function>CLASS-NAME</function>)</literal></link>"> -<!ENTITY setf-gf-name "<link linkend='setf-gf-name'><literal role='sexp'>(SETF <function>CLOS:GENERIC-FUNCTION-NAME</function>)</literal></link>"> -<!ENTITY setf-slot-value "<literal role='sexp'>(&setf; &slot-value;)</literal>"> -<!ENTITY setf-slot-value-UC "<link linkend='setf-slot-value-UC'><literal role='sexp'>(SETF <function>CLOS:SLOT-VALUE-USING-CLASS</function>)</literal></link>"> +<!ENTITY setf-class-name "<link linkend='setf-class-name'><code>(SETF CLASS-NAME)</code></link>"> +<!ENTITY setf-gf-name "<link linkend='setf-gf-name'><code>(SETF CLOS:GENERIC-FUNCTION-NAME)</code></link>"> +<!ENTITY setf-slot-value "<code>(&setf; &slot-value;)</code>"> +<!ENTITY setf-slot-value-UC "<link linkend='setf-slot-value-UC'><code>(SETF CLOS:SLOT-VALUE-USING-CLASS)</code></link>"> <!ENTITY slot-boundp-UC "<link linkend='slot-boundp-UC'><function>CLOS:SLOT-BOUNDP-USING-CLASS</function></link>"> <!ENTITY slot-definition-t "<link linkend='mop-sd'><classname>CLOS:SLOT-DEFINITION</classname></link>"> <!ENTITY slot-makunbound-UC "<link linkend='slot-makunbound-UC'><function>CLOS:SLOT-MAKUNBOUND-USING-CLASS</function></link>"> --__--__-- Message: 10 From: Sam Steingold <sds@...> To: clisp-cvs@... Subject: clisp/src ChangeLog,1.4469,1.4470 Date: Wed, 13 Apr 2005 22:14:27 +0000 Reply-To: clisp-devel@... Update of /cvsroot/clisp/clisp/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30129/src Modified Files: ChangeLog Log Message: (sys/statfs.h, sys/vfs.h): do not check unused headers (HAVE_SCALAR_FSID): do not check without <sys/statvfs.h> (fsblkcnt_t, fsfilcnt_t): check SIZEOF (struct stat): do not check whithout <sys/stat.h> Index: ChangeLog =================================================================== RCS file: /cvsroot/clisp/clisp/src/ChangeLog,v retrieving revision 1.4469 retrieving revision 1.4470 diff -u -d -r1.4469 -r1.4470 --- ChangeLog 13 Apr 2005 16:55:56 -0000 1.4469 +++ ChangeLog 13 Apr 2005 22:14:11 -0000 1.4470 @@ -1,5 +1,19 @@ 2005-04-13 Sam Steingold <sds@...> + * modules/syscalls/configure.in (sys/statfs.h, sys/vfs.h): + do not check unused headers + (HAVE_SCALAR_FSID): do not check without <sys/statvfs.h> + (fsblkcnt_t, fsfilcnt_t): check SIZEOF + (struct stat): do not check whithout <sys/stat.h> + +2005-04-13 Sam Steingold <sds@...> + + * makemake.in [win32gcc]: distribute module sources + (echo_dist_modules): new function + Reported by Yaroslav Kavenchuk <kavenchuk@...> + +2005-04-13 Sam Steingold <sds@...> + * modules/syscalls/calls.c (STAT-VFS) [WIN32_NATIVE]: implemented using GetDiskFreeSpace, GetDiskFreeSpaceEx, GetVolumeInformation * modules/syscalls/posix.lisp (STAT-VFS): export always --__--__-- Message: 11 From: Sam Steingold <sds@...> To: clisp-cvs@... Subject: clisp/modules/syscalls configure.in,1.34,1.35 Date: Wed, 13 Apr 2005 22:14:28 +0000 Reply-To: clisp-devel@... Update of /cvsroot/clisp/clisp/modules/syscalls In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30129/modules/syscalls Modified Files: configure.in Log Message: (sys/statfs.h, sys/vfs.h): do not check unused headers (HAVE_SCALAR_FSID): do not check without <sys/statvfs.h> (fsblkcnt_t, fsfilcnt_t): check SIZEOF (struct stat): do not check whithout <sys/stat.h> Index: configure.in =================================================================== RCS file: /cvsroot/clisp/clisp/modules/syscalls/configure.in,v retrieving revision 1.34 retrieving revision 1.35 diff -u -d -r1.34 -r1.35 --- configure.in 12 Apr 2005 22:34:05 -0000 1.34 +++ configure.in 13 Apr 2005 22:14:25 -0000 1.35 @@ -17,8 +17,7 @@ CL_UTSNAME AC_CHECK_HEADERS(errno.h fcntl.h netdb.h sys/resource.h utime.h wchar.h dnl pwd.h sys/stat.h sys/time.h sys/unistd.h time.h unistd.h syslog.h signal.h dnl -sys/statvfs.h sys/statfs.h sys/vfs.h sys/types.h crypt.h utmpx.h dnl -stdlib.h shlobj.h) +sys/statvfs.h sys/types.h crypt.h utmpx.h stdlib.h shlobj.h) if test "$ac_cv_header_shlobj_h" = yes ; then LIBS=${LIBS}' -luser32 -lole32 -loleaut32 -luuid'; fi @@ -26,14 +25,22 @@ #include <sys/time.h>]) AC_CHECK_MEMBERS([struct utmpx.ut_host],,,[#include <utmpx.h>]) AC_MSG_CHECKING([whether f_fsid is scalar]) -AC_TRY_COMPILE([#include <sys/statvfs.h>], [struct statvfs x; x.f_fsid = 0;], +if test "$ac_cv_header_sys_statvfs_h" = "yes"; then + AC_TRY_COMPILE([#include <sys/statvfs.h>], [struct statvfs x; x.f_fsid = 0;], ac_cv_struct_fsid_scalar=yes, ac_cv_struct_fsid_scalar=no) -AC_MSG_RESULT([$]ac_cv_struct_fsid_scalar) -if test "$ac_cv_struct_fsid_scalar" = yes; then + AC_MSG_RESULT([$]ac_cv_struct_fsid_scalar) + if test "$ac_cv_struct_fsid_scalar" = yes; then AC_DEFINE([HAVE_SCALAR_FSID], 1, [Define to 1 if the f_fsid member of 'struct statvfs' has a integral type.]) + fi + AC_CHECK_SIZEOF(fsblkcnt_t ,,[#include <stdio.h> +#include <sys/statvfs.h>]) + AC_CHECK_SIZEOF(fsfilcnt_t ,,[#include <stdio.h> +#include <sys/statvfs.h>]) +fi +if test "$ac_cv_header_sys_stat_h" = "yes"; then + AC_CHECK_MEMBERS([struct stat.st_rdev, struct stat.st_blksize, struct stat.st_blocks],,,[#include <sys/stat.h>]) fi -AC_CHECK_MEMBERS([struct stat.st_rdev, struct stat.st_blksize, struct stat.st_blocks],,,[#include <sys/stat.h>]) AC_MSG_NOTICE([ * System Calls (Functions)]) CL_RLIMIT --__--__-- Message: 12 From: Sam Steingold <sds@...> To: clisp-cvs@... Subject: clisp/modules/syscalls calls.c,1.108,1.109 Date: Wed, 13 Apr 2005 22:17:04 +0000 Reply-To: clisp-devel@... Update of /cvsroot/clisp/clisp/modules/syscalls In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv32557/modules/syscalls Modified Files: calls.c Log Message: (STAT-VFS): convert f_files/f_ffree/f_favail according to SIZEOF_FSBLKCNT_T and f_blocks/f_bfree/f_bavail according to SIZEOF_FSBLKCNT_T (vfs_flags): added FILE_SUPPORTS_ENCRYPTION Index: calls.c =================================================================== RCS file: /cvsroot/clisp/clisp/modules/syscalls/calls.c,v retrieving revision 1.108 retrieving revision 1.109 diff -u -d -r1.108 -r1.109 --- calls.c 13 Apr 2005 16:56:08 -0000 1.108 +++ calls.c 13 Apr 2005 22:17:01 -0000 1.109 @@ -1466,7 +1466,8 @@ ST_IMMUTABLE ST_NOATIME ST_NODIRATIME \ FILE_NAMED_STREAMS FILE_READ_ONLY_VOLUME FILE_SUPPORTS_OBJECT_IDS \ FILE_SUPPORTS_REPARSE_POINTS FILE_SUPPORTS_SPARSE_FILES \ - FILE_VOLUME_QUOTAS FS_CASE_IS_PRESERVED FS_CASE_SENSITIVE \ + FILE_VOLUME_QUOTAS FILE_SUPPORTS_ENCRYPTION \ + FS_CASE_IS_PRESERVED FS_CASE_SENSITIVE \ FS_FILE_COMPRESSION FS_FILE_ENCRYPTION FS_PERSISTENT_ACLS \ FS_UNICODE_STORED_ON_DISK FS_VOL_IS_COMPRESSED) /* there is also a legacy interface (f)statfs() @@ -1507,14 +1508,26 @@ #define pushSLOT(s) pushSTACK(s==(unsigned long)-1 ? NIL : ulong_to_I(s)) pushSLOT(buf.f_bsize); /* file system block size */ pushSLOT(buf.f_frsize); /* fundamental file system block size */ - pushSLOT(buf.f_blocks); /* total # of blocks on file system */ - pushSLOT(buf.f_bfree); /* total number of free blocks */ - pushSLOT(buf.f_bavail); /* # of free blocks available to - non-privileged processes */ - pushSLOT(buf.f_files); /* total # of file serial numbers */ - pushSLOT(buf.f_ffree); /* total # of free file serial numbers */ - pushSLOT(buf.f_favail); /* # of file serial numbers available to - non-privileged processes */ +#if defined(SIZEOF_FSBLKCNT_T) && SIZEOF_FSBLKCNT_T == 8 +# define pushBSLOT(s) pushSTACK(s==(fsblkcnt_t)-1 ? NIL : uint64_to_I(s)) +#else +# define pushBSLOT(s) pushSTACK(s==(fsblkcnt_t)-1 ? NIL : uint32_to_I(s)) +#endif + pushBSLOT(buf.f_blocks); /* total # of blocks on file system */ + pushBSLOT(buf.f_bfree); /* total number of free blocks */ + pushBSLOT(buf.f_bavail); /* # of free blocks available to + non-privileged processes */ +#undef pushBSLOT +#if defined(SIZEOF_FSBLKCNT_T) && SIZEOF_FSBLKCNT_T == 8 +# define pushFSLOT(s) pushSTACK(s==(fsfilcnt_t)-1 ? NIL : uint64_to_I(s)) +#else +# define pushFSLOT(s) pushSTACK(s==(fsfilcnt_t)-1 ? NIL : uint32_to_I(s)) +#endif + pushFSLOT(buf.f_files); /* total # of file serial numbers */ + pushFSLOT(buf.f_ffree); /* total # of free file serial numbers */ + pushFSLOT(buf.f_favail); /* # of file serial numbers available to + non-privileged processes */ +#undef pushFSLOT #if HAVE_SCALAR_FSID pushSLOT(buf.f_fsid); /* file system ID */ #else --__--__-- _______________________________________________ clisp-cvs mailing list clisp-cvs@... https://lists.sourceforge.net/lists/listinfo/clisp-cvs End of clisp-cvs Digest |
From: Sam Steingold <sds@gn...> - 2005-04-13 19:16:48
|
> * Alex Mizrahi <xvyyrefgbez@...> [2005-04-13 15:57:38 +0300]: > > as i understand, current approach to implement current_thread() to give > pointer to per-thread variables is to derrive it from stack pointer. > certainly, that's very fast, but i don't get why should it work stably. why > that specific address should be available to mmap, and what will happen, if > it's not in some situation, system will report that there will be no more > threads? > as far as i know, SP in new thread can be at any address, if it's not > adjusted, there can be a situation when thread_t structure lies just near > the beginning of the stack. so to guarantee some stack space, twice more > should be requested, that's definitely waste of memory.. > > i think there could be other approaches, that are not much slower, but more > stable/portable. > for example, high bits of SP could be used as index in some table (like > allthreads[]), where pointer to thread_t is keeped (or it can be thread_t > threadtable[MAXTHREADS];). although there might be some tricks there, it > looks much more nice, as for me.. i've checked how slower it is -- with some > code, compiled with Microsoft C++ .NET 7.1 compiler there's no difference > from approach with mmap (but maybe code is just too simple, or it's pentium4 > architecture, for which it sometimes doesn't matter what to execute..). > > i also OS's method to get thread-local-storage (Tls* on Win32), and it > appeared twice slower than methods above. This is all Greek to me. I hope Bruno will say clarify the matter. > by the way, i found that code in zthread.d doesn't call create_thread, > that actually mmap bytes under current_thread(), but it actively > copies bytes there.. unless i'm missing something, this could be a > reason for SEGFAULTs :) Well, zthread.d is full of errors, so -- hack away... -- Sam Steingold (http://www.podval.org/~sds) running w2k <http://www.openvotingconsortium.org/> <http://www.jihadwatch.org/> <http://pmw.org.il/> <http://www.iris.org.il> <http://www.palestinefacts.org/> Daddy, what does "format disk c: complete" mean? |
From: Alex Mizrahi <killerstorm@ne...> - 2005-04-13 18:54:49
|
Hello, All! as i understand, current approach to implement current_thread() to give pointer to per-thread variables is to derrive it from stack pointer. certainly, that's very fast, but i don't get why should it work stably. why that specific address should be available to mmap, and what will happen, if it's not in some situation, system will report that there will be no more threads? as far as i know, SP in new thread can be at any address, if it's not adjusted, there can be a situation when thread_t structure lies just near the beginning of the stack. so to guarantee some stack space, twice more should be requested, that's definitely waste of memory.. i think there could be other approaches, that are not much slower, but more stable/portable. for example, high bits of SP could be used as index in some table (like allthreads[]), where pointer to thread_t is keeped (or it can be thread_t threadtable[MAXTHREADS];). although there might be some tricks there, it looks much more nice, as for me.. i've checked how slower it is -- with some code, compiled with Microsoft C++ .NET 7.1 compiler there's no difference from approach with mmap (but maybe code is just too simple, or it's pentium4 architecture, for which it sometimes doesn't matter what to execute..). i also OS's method to get thread-local-storage (Tls* on Win32), and it appeared twice slower than methods above. by the way, i found that code in zthread.d doesn't call create_thread, that actually mmap bytes under current_thread(), but it actively copies bytes there.. unless i'm missing something, this could be a reason for SEGFAULTs :) With best regards, Alex Mizrahi. |
From: <clisp-cvs-request@li...> - 2005-04-13 16:59:05
|
Send clisp-cvs mailing list submissions to clisp-cvs@... To subscribe or unsubscribe via the World Wide Web, visit https://lists.sourceforge.net/lists/listinfo/clisp-cvs or, via email, send a message with subject or body 'help' to clisp-cvs-request@... You can reach the person managing the list at clisp-cvs-admin@... When replying, please edit your Subject line so it is more specific than "Re: Contents of clisp-cvs digest..." CLISP CVS commits for today Today's Topics: 1. clisp/tests ChangeLog,1.335,1.336 weakhash.tst,1.2,1.3 weak.tst,1.1,1.2 weakhash2.tst,1.1,1.2 (Bruno Haible) 2. clisp/src ChangeLog,1.4466,1.4467 NEWS,1.245,1.246 io.d,1.282,1.283 lispbibl.d,1.623,1.624 constobj.d,1.170,1.171 describe.lisp,1.73,1.74 weak.d,1.2,1.3 hashtabl.d,1.115,1.116 constsym.d,1.300,1.301 (Bruno Haible) 3. clisp/doc impent.xml,1.209,1.210 impbody.xml,1.374,1.375 impext.xml,1.330,1.331 (Bruno Haible) 4. clisp/modules/syscalls syscalls.xml,1.37,1.38 posix.lisp,1.31,1.32 calls.c,1.106,1.107 (Sam Steingold) 5. clisp/src ChangeLog,1.4467,1.4468 (Sam Steingold) 6. clisp/modules/syscalls test.tst,1.4,1.5 syscalls.xml,1.38,1.39 posix.lisp,1.32,1.33 calls.c,1.107,1.108 (Sam Steingold) --__--__-- Message: 1 From: Bruno Haible <haible@...> To: clisp-cvs@... Subject: clisp/tests ChangeLog,1.335,1.336 weakhash.tst,1.2,1.3 weak.tst,1.1,1.2 weakhash2.tst,1.1,1.2 Date: Wed, 13 Apr 2005 11:35:27 +0000 Reply-To: clisp-devel@... Update of /cvsroot/clisp/clisp/tests In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29754/tests Modified Files: ChangeLog weakhash.tst weak.tst weakhash2.tst Log Message: Rename :either -> :key-and-value, :both -> :key-or-value. Index: ChangeLog =================================================================== RCS file: /cvsroot/clisp/clisp/tests/ChangeLog,v retrieving revision 1.335 retrieving revision 1.336 diff -u -d -r1.335 -r1.336 --- ChangeLog 11 Apr 2005 11:56:14 -0000 1.335 +++ ChangeLog 13 Apr 2005 11:35:24 -0000 1.336 @@ -1,3 +1,10 @@ +2005-04-12 Bruno Haible <bruno@...> + + * weak.tst: Update for change :either -> :key-and-value, + :both -> :key-or-value. + * weakhash.tst: Likewise. + * weakhash2.tst: Likewise. + 2005-04-10 Bruno Haible <bruno@...> * weakhash.tst: Test long chains of weak hash tables. Index: weakhash.tst =================================================================== RCS file: /cvsroot/clisp/clisp/tests/weakhash.tst,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- weakhash.tst 11 Apr 2005 11:56:14 -0000 1.2 +++ weakhash.tst 13 Apr 2005 11:35:25 -0000 1.3 @@ -344,12 +344,12 @@ (1 T ((X))) -;; Test that weak hash-tables of kind :EITHER work. +;; Test that weak hash-tables of kind :KEY-AND-VALUE work. #+(or CLISP LISPWORKS) (let ((tab (make-hash-table :test #+OpenMCL 'eq #-OpenMCL 'equal #+LISPWORKS :weak-kind #+LISPWORKS :both - #-LISPWORKS :weak #-LISPWORKS :either))) + #-LISPWORKS :weak #-LISPWORKS :key-and-value))) (weak-ht-fill-initially tab) (gc) (list (gethash "foo" tab) (gethash 1 tab) (gethash "zoo" tab))) @@ -357,12 +357,12 @@ (NIL NIL NIL) -;; Test that weak hash-tables of kind :BOTH work. +;; Test that weak hash-tables of kind :KEY-OR-VALUE work. #+(or CLISP LISPWORKS) (let ((tab (make-hash-table :test #+OpenMCL 'eq #-OpenMCL 'equal #+LISPWORKS :weak-kind #+LISPWORKS :either - #-LISPWORKS :weak #-LISPWORKS :both))) + #-LISPWORKS :weak #-LISPWORKS :key-or-value))) #+LISPWORKS (set-hash-table-weak tab :either) (weak-ht-fill-initially tab) (gc) Index: weakhash2.tst =================================================================== RCS file: /cvsroot/clisp/clisp/tests/weakhash2.tst,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- weakhash2.tst 4 Apr 2005 16:32:07 -0000 1.1 +++ weakhash2.tst 13 Apr 2005 11:35:25 -0000 1.2 @@ -89,7 +89,7 @@ (gethash "zoo" tab) nil #+LISPWORKS (set-hash-table-weak tab :both) #+LISPWORKS :both -#-LISPWORKS (setf (hash-table-weak-p tab) :either) #-LISPWORKS :either +#-LISPWORKS (setf (hash-table-weak-p tab) :key-and-value) #-LISPWORKS :key-and-value (setf (gethash "foo" tab) 1) 1 (setf (gethash 1 tab) "bar") "bar" (setf (gethash "zoo" tab) "zot") "zot" @@ -99,7 +99,7 @@ (gethash "zoo" tab) nil #+LISPWORKS (set-hash-table-weak tab :either) #+LISPWORKS :either -#-LISPWORKS (setf (hash-table-weak-p tab) :both) #-LISPWORKS :both +#-LISPWORKS (setf (hash-table-weak-p tab) :key-or-value) #-LISPWORKS :key-or-value (setf (gethash "foo" tab) 1) 1 (setf (gethash 1 tab) "bar") "bar" (setf (gethash "zoo" tab) "zot") "zot" Index: weak.tst =================================================================== RCS file: /cvsroot/clisp/clisp/tests/weak.tst,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- weak.tst 19 May 2004 10:22:38 -0000 1.1 +++ weak.tst 13 Apr 2005 11:35:25 -0000 1.2 @@ -956,13 +956,13 @@ (let ((ka (list 'kx)) (va (list 'vx)) (kb (list 'ky)) (vb (list 'vy)) (kc (list 'kz)) (vc (list 'vz))) - (let ((w (make-weak-alist :type :either + (let ((w (make-weak-alist :type :key-and-value :initial-contents (list (cons ka va) (cons kb vb) (cons kc vc))))) (gc) (weak-alist-type w))) -:either +:key-and-value (let ((ka (list 'kx)) (va (list 'vx)) (kb (list 'ky)) (vb (list 'vy)) @@ -970,10 +970,10 @@ (let ((w (make-weak-alist :initial-contents (list (cons ka va) (cons kb vb) (cons kc vc)) - :type :both))) + :type :key-or-value))) (gc) (weak-alist-type w))) -:both +:key-or-value (let ((ka (list 'kx)) (va (list 'vx)) (kb (list 'ky)) (vb (list 'vy)) --__--__-- Message: 2 From: Bruno Haible <haible@...> To: clisp-cvs@... Subject: clisp/src ChangeLog,1.4466,1.4467 NEWS,1.245,1.246 io.d,1.282,1.283 lispbibl.d,1.623,1.624 constobj.d,1.170,1.171 describe.lisp,1.73,1.74 weak.d,1.2,1.3 hashtabl.d,1.115,1.116 constsym.d,1.300,1.301 Date: Wed, 13 Apr 2005 11:35:26 +0000 Reply-To: clisp-devel@... Update of /cvsroot/clisp/clisp/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29754/src Modified Files: ChangeLog NEWS io.d lispbibl.d constobj.d describe.lisp weak.d hashtabl.d constsym.d Log Message: Rename :either -> :key-and-value, :both -> :key-or-value. Index: weak.d =================================================================== RCS file: /cvsroot/clisp/clisp/src/weak.d,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- weak.d 11 Dec 2004 14:16:16 -0000 1.2 +++ weak.d 13 Apr 2005 11:35:24 -0000 1.3 @@ -1,6 +1,6 @@ /* * Functions for weak references in CLISP - * Bruno Haible 1999-2004 + * Bruno Haible 1999-2005 * Sam Steingold 2003 */ #include "lispbibl.c" @@ -672,14 +672,14 @@ rectype = Rectype_WeakAlist_Key; else if (eq(type,S(Kvalue))) # :VALUE rectype = Rectype_WeakAlist_Value; - else if (eq(type,S(Keither))) # :EITHER + else if (eq(type,S(Kkey_and_value))) # :KEY-AND-VALUE rectype = Rectype_WeakAlist_Either; - else if (eq(type,S(Kboth))) # :BOTH + else if (eq(type,S(Kkey_or_value))) # :KEY-OR-VALUE rectype = Rectype_WeakAlist_Both; else { pushSTACK(type); /* TYPE-ERROR slot DATUM */ pushSTACK(O(type_weak_alist)); /* TYPE-ERROR slot EXPECTED-TYPE */ - pushSTACK(S(Kboth)); pushSTACK(S(Keither)); pushSTACK(S(Kvalue)); pushSTACK(S(Kkey)); + pushSTACK(S(Kkey_or_value)); pushSTACK(S(Kkey_and_value)); pushSTACK(S(Kvalue)); pushSTACK(S(Kkey)); pushSTACK(type); pushSTACK(TheSubr(subr_self)->name); fehler(type_error,GETTEXT("~S: argument ~S should be ~S, ~S, ~S or ~S.")); } @@ -744,9 +744,9 @@ case Rectype_WeakAlist_Value: type = S(Kvalue); break; case Rectype_WeakAlist_Either: - type = S(Keither); break; + type = S(Kkey_and_value); break; case Rectype_WeakAlist_Both: - type = S(Kboth); break; + type = S(Kkey_or_value); break; default: NOTREACHED; } VALUES1(type); Index: describe.lisp =================================================================== RCS file: /cvsroot/clisp/clisp/src/describe.lisp,v retrieving revision 1.73 retrieving revision 1.74 diff -u -d -r1.73 -r1.74 --- describe.lisp 21 Feb 2005 11:57:28 -0000 1.73 +++ describe.lisp 13 Apr 2005 11:35:24 -0000 1.74 @@ -189,8 +189,8 @@ (ecase type (:KEY (format stream (TEXT "(i.e. a list of EXT:WEAK-MAPPING key/value pairs)"))) (:VALUE (format stream (TEXT "(i.e. a list of EXT:WEAK-MAPPING value/key pairs)"))) - (:EITHER (format stream (TEXT "(i.e. a list of (key . value) pairs each combined into a EXT:WEAK-AND-RELATION)"))) - (:BOTH (format stream (TEXT "(i.e. a list of (key . value) pairs each combined into a EXT:WEAK-OR-RELATION)")))) + (:KEY-AND-VALUE (format stream (TEXT "(i.e. a list of (key . value) pairs each combined into a EXT:WEAK-AND-RELATION)"))) + (:KEY-OR-VALUE (format stream (TEXT "(i.e. a list of (key . value) pairs each combined into a EXT:WEAK-OR-RELATION)")))) (if remaining (format stream (TEXT ", containing ~S.") remaining) (format stream (TEXT ", no longer referring to any pairs."))))) Index: io.d =================================================================== RCS file: /cvsroot/clisp/clisp/src/io.d,v retrieving revision 1.282 retrieving revision 1.283 diff -u -d -r1.282 -r1.283 --- io.d 29 Jan 2005 14:50:06 -0000 1.282 +++ io.d 13 Apr 2005 11:35:04 -0000 1.283 @@ -8689,7 +8689,7 @@ JUSTIFY_START(0); JUSTIFY_LAST(false); prin_object(stream_,S(Kweak)); # print :WEAK JUSTIFY_SPACE; JUSTIFY_LAST(true); - prin_object(stream_,hash_table_weak_type(*obj_)); /*:KEY/:VALUE/:BOTH/:EITHER*/ + prin_object(stream_,hash_table_weak_type(*obj_)); /*:KEY/:VALUE/:KEY-AND-VALUE/:KEY-OR-VALUE*/ JUSTIFY_END_FILL; } } Index: ChangeLog =================================================================== RCS file: /cvsroot/clisp/clisp/src/ChangeLog,v retrieving revision 1.4466 retrieving revision 1.4467 diff -u -d -r1.4466 -r1.4467 --- ChangeLog 12 Apr 2005 22:34:01 -0000 1.4466 +++ ChangeLog 13 Apr 2005 11:35:01 -0000 1.4467 @@ -1,3 +1,14 @@ +2005-04-12 Bruno Haible <bruno@...> + + * weak.d (MAKE-WEAK-ALIST, WEAK-ALIST-TYPE): Use :key-and-value instead + of :either, :key-or-value instead of :both. + * hashtabl.d (hash_table_weak_type): Return :key-and-value instead + of :either, :key-or-value instead of :both. + (allocate_kvt, prepare_resize, check_weak): Accept :key-and-value + instead of :either, :key-or-value instead of :both. + * describe.lisp (describe-object@...): Update for change :either -> + :key-and-value, :both -> :key-or-value. + 2005-04-12 Sam Steingold <sds@...> * modules/syscalls/calls.c (POSIX:SYNC): implemented Index: NEWS =================================================================== RCS file: /cvsroot/clisp/clisp/src/NEWS,v retrieving revision 1.245 retrieving revision 1.246 diff -u -d -r1.245 -r1.246 --- NEWS 1 Apr 2005 17:12:56 -0000 1.245 +++ NEWS 13 Apr 2005 11:35:04 -0000 1.246 @@ -293,6 +293,9 @@ * Methods on GRAY:STREAM-READ-BYTE-SEQUENCE and GRAY:STREAM-WRITE-BYTE-SEQUENCE now need to accept a second optional argument. +* The possible values of the :WEAK argument of MAKE-HASH-TABLE are changed: + Use :KEY-AND-VALUE instead of :EITHER, :KEY-OR-VALUE instead of :BOTH now. + * The :LIBRARY option argument to DEF-CALL-OUT and DEF-C-VAR is now evaluated (i.e., it can now be a variable) and may take a value of :DEFAULT and :NEXT in addition to being a string as before. Index: constsym.d =================================================================== RCS file: /cvsroot/clisp/clisp/src/constsym.d,v retrieving revision 1.300 retrieving revision 1.301 diff -u -d -r1.300 -r1.301 --- constsym.d 1 Apr 2005 17:12:55 -0000 1.300 +++ constsym.d 13 Apr 2005 11:35:24 -0000 1.301 @@ -1264,8 +1264,8 @@ LISPSYM(Kvalue_type,"VALUE-TYPE",keyword) LISPSYM(Kwarn_if_needs_rehash_after_gc,"WARN-IF-NEEDS-REHASH-AFTER-GC",keyword) LISPSYM(Kweak,"WEAK",keyword) -LISPSYM(Kboth,"BOTH",keyword) -LISPSYM(Keither,"EITHER",keyword) +LISPSYM(Kkey_and_value,"KEY-AND-VALUE",keyword) +LISPSYM(Kkey_or_value,"KEY-OR-VALUE",keyword) LISPSYM(Kvalue,"VALUE",keyword) LISPSYM(Kdefaults,"DEFAULTS",keyword) LISPSYM(Kdevice,"DEVICE",keyword) Index: hashtabl.d =================================================================== RCS file: /cvsroot/clisp/clisp/src/hashtabl.d,v retrieving revision 1.115 retrieving revision 1.116 diff -u -d -r1.115 -r1.116 --- hashtabl.d 25 Jan 2005 09:19:35 -0000 1.115 +++ hashtabl.d 13 Apr 2005 11:35:24 -0000 1.116 @@ -1787,7 +1787,7 @@ /* hash_table_weak_type(ht) > ht: hash-table - < result: symbol NIL/:KEY/:VALUE/:EITHER/:BOTH */ + < result: symbol NIL/:KEY/:VALUE/:KEY-AND-VALUE/:KEY-OR-VALUE */ global object hash_table_weak_type (object ht) { var object kvt = TheHashtable(ht)->ht_kvtable; if (simple_vector_p(kvt)) @@ -1799,9 +1799,9 @@ case Rectype_WeakHashedAlist_Value: return S(Kvalue); case Rectype_WeakHashedAlist_Either: - return S(Keither); + return S(Kkey_and_value); case Rectype_WeakHashedAlist_Both: - return S(Kboth); + return S(Kkey_or_value); default: NOTREACHED; } } @@ -1809,7 +1809,7 @@ /* UP: Allocates the key-value-table for a new hash-table. allocate_kvt(weak,maxcount) - > weak: NIL or :KEY or :VALUE or :EITHER or :BOTH + > weak: NIL or :KEY or :VALUE or :KEY-AND-VALUE or :KEY-OR-VALUE > maxcount: number of key/value pairs to make room for < result: a key-value-table can trigger GC */ @@ -1824,9 +1824,9 @@ rectype = Rectype_WeakHashedAlist_Key; else if (eq(weak,S(Kvalue))) # :VALUE rectype = Rectype_WeakHashedAlist_Value; - else if (eq(weak,S(Keither))) # :EITHER + else if (eq(weak,S(Kkey_and_value))) # :KEY-AND-VALUE rectype = Rectype_WeakHashedAlist_Either; - else if (eq(weak,S(Kboth))) # :BOTH + else if (eq(weak,S(Kkey_or_value))) # :KEY-OR-VALUE rectype = Rectype_WeakHashedAlist_Both; else NOTREACHED; @@ -1850,7 +1850,7 @@ prepare_resize(maxcount,mincount_threshold,weak) > maxcount: wished new size MAXCOUNT > mincount_threshold: short-float MINCOUNT-THRESHOLD - > weak: NIL or :KEY or :VALUE or :EITHER or :BOTH + > weak: NIL or :KEY or :VALUE or :KEY-AND-VALUE or :KEY-OR-VALUE < result: maxcount < stack-layout: MAXCOUNT, SIZE, MINCOUNT, index-vector, key-value-vector. decreases STACK by 5 @@ -2100,14 +2100,14 @@ check_weak_restart: if (missingp(weak)) return NIL; if (eq(weak,S(Kkey)) || eq(weak,S(Kvalue)) - || eq(weak,S(Keither)) || eq(weak,S(Kboth))) + || eq(weak,S(Kkey_and_value)) || eq(weak,S(Kkey_or_value))) return weak; /* invalid */ pushSTACK(NIL); /* no PLACE */ pushSTACK(weak); /* TYPE-ERROR slot DATUM */ pushSTACK(O(type_weak_ht)); /* TYPE-ERROR slot EXPECTED-TYPE */ pushSTACK(NIL); pushSTACK(S(Kkey)); pushSTACK(S(Kvalue)); - pushSTACK(S(Keither)); pushSTACK(S(Kboth)); + pushSTACK(S(Kkey_and_value)); pushSTACK(S(Kkey_or_value)); pushSTACK(weak); pushSTACK(TheSubr(subr_self)->name); check_value(type_error,GETTEXT("~S: argument ~S should be ~S, ~S, ~S, ~S or ~S.")); weak = value1; Index: constobj.d =================================================================== RCS file: /cvsroot/clisp/clisp/src/constobj.d,v retrieving revision 1.170 retrieving revision 1.171 diff -u -d -r1.170 -r1.171 --- constobj.d 28 Jan 2005 16:39:54 -0000 1.170 +++ constobj.d 13 Apr 2005 11:35:24 -0000 1.171 @@ -144,12 +144,12 @@ LISPOBJ(type_eq_hashfunction,"(MEMBER EXT::FASTHASH-EQ EXT::STABLEHASH-EQ)") LISPOBJ(type_eql_hashfunction,"(MEMBER EXT::FASTHASH-EQL EXT::STABLEHASH-EQL)") LISPOBJ(type_equal_hashfunction,"(MEMBER EXT::FASTHASH-EQUAL EXT::STABLEHASH-EQUAL)") - LISPOBJ(type_weak_ht,"(MEMBER :BOTH :EITHER :VALUE :KEY NIL)") + LISPOBJ(type_weak_ht,"(MEMBER :KEY :VALUE :KEY-AND-VALUE :KEY-OR-VALUE NIL)") # for RECORD.D: LISPOBJ(constant_initfunction_code,".") LISPOBJ(endless_loop_code,".") # for WEAK.D: - LISPOBJ(type_weak_alist,"(MEMBER :BOTH :EITHER :VALUE :KEY)") + LISPOBJ(type_weak_alist,"(MEMBER :KEY :VALUE :KEY-AND-VALUE :KEY-OR-VALUE)") # for SEQUENCE.D: # internal list of all defined sequence-types: LISPOBJ(seq_types,"NIL") Index: lispbibl.d =================================================================== RCS file: /cvsroot/clisp/clisp/src/lispbibl.d,v retrieving revision 1.623 retrieving revision 1.624 diff -u -d -r1.623 -r1.624 --- lispbibl.d 29 Mar 2005 16:58:10 -0000 1.623 +++ lispbibl.d 13 Apr 2005 11:35:06 -0000 1.624 @@ -12682,7 +12682,7 @@ /* hash_table_weak_type(ht) > ht: hash-table - < result: symbol NIL/:KEY/:VALUE/:EITHER/:BOTH */ + < result: symbol NIL/:KEY/:VALUE/:KEY-AND-VALUE/:KEY-OR-VALUE */ extern object hash_table_weak_type (object ht); /* used by PREDTYPE */ --__--__-- Message: 3 From: Bruno Haible <haible@...> To: clisp-cvs@... Subject: clisp/doc impent.xml,1.209,1.210 impbody.xml,1.374,1.375 impext.xml,1.330,1.331 Date: Wed, 13 Apr 2005 11:35:29 +0000 Reply-To: clisp-devel@... Update of /cvsroot/clisp/clisp/doc In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29754/doc Modified Files: impent.xml impbody.xml impext.xml Log Message: Rename :either -> :key-and-value, :both -> :key-or-value. Index: impbody.xml =================================================================== RCS file: /cvsroot/clisp/clisp/doc/impbody.xml,v retrieving revision 1.374 retrieving revision 1.375 diff -u -d -r1.374 -r1.375 --- impbody.xml 11 Apr 2005 22:00:45 -0000 1.374 +++ impbody.xml 13 Apr 2005 11:35:26 -0000 1.375 @@ -2710,8 +2710,8 @@ <member>&nil; (default)</member> <member>&key-k;</member> <member>&value-k;</member> - <member>&either-k;</member> - <member>&both-k;</member> + <member>&key-and-value-k;</member> + <member>&key-or-value-k;</member> </simplelist> and specifies whether the &hash-table-t; is <emphasis>weak</emphasis>: if the key, value, either or both are not accessible for the &gc;ion Index: impext.xml =================================================================== RCS file: /cvsroot/clisp/clisp/doc/impext.xml,v retrieving revision 1.330 retrieving revision 1.331 diff -u -d -r1.330 -r1.331 --- impext.xml 8 Apr 2005 16:16:28 -0000 1.330 +++ impext.xml 13 Apr 2005 11:35:26 -0000 1.331 @@ -1200,15 +1200,14 @@ <listitem><simpara>The pair exists as long as the &value-r; is not &gc;ed. As long as the &value-r; is alive, it prevents the &key-r; from being &gc;ed.</simpara></listitem></varlistentry> - <varlistentry><term>&either-k;</term> - <listitem><simpara>The pair exists as long as the &key-r; - <emphasis role="strong">and</emphasis> the &value-r; are alive. + <varlistentry><term>&key-and-value-k;</term> + <listitem><simpara>The pair exists as long as the &key-r; and the &value-r; + are alive. </simpara></listitem></varlistentry> - <varlistentry><term>&both-k;</term> - <listitem><simpara>The pair exists as long as the &key-r; - <emphasis role="strong">or</emphasis> the &value-r; are alive. As - long as the &key-r; is alive, it prevents the &value-r; from being - &gc;ed, and as long as the &value-r; is alive, it prevents the + <varlistentry><term>&key-or-value-k;</term> + <listitem><simpara>The pair exists as long as the &key-r; or the &value-r; + are alive. As long as the &key-r; is alive, it prevents the &value-r; + from being &gc;ed, and as long as the &value-r; is alive, it prevents the &key-r; from being &gc;ed.</simpara></listitem></varlistentry> </variablelist> In other words, each pair is: @@ -1219,10 +1218,10 @@ <varlistentry><term>&value-k;</term> <listitem><simpara>a &weak-mapping; from the &value-r; to the &key-r;, </simpara></listitem></varlistentry> - <varlistentry><term>&either-k;</term> + <varlistentry><term>&key-and-value-k;</term> <listitem><simpara>a &weak-and-relation; of the &key-r; and the &value-r;, </simpara></listitem></varlistentry> - <varlistentry><term>&both-k;</term> + <varlistentry><term>&key-or-value-k;</term> <listitem><simpara>a &weak-or-relation; of the &key-r; and the &value-r;. </simpara></listitem></varlistentry> </variablelist></para> @@ -1314,10 +1313,10 @@ <listitem><simpara>The pair exists as long as the &value-r; is not &gc;ed. As long as the &value-r; is alive, it prevents the &key-r; from being &gc;ed.</simpara></listitem></varlistentry> - <varlistentry><term>&either-k;</term> + <varlistentry><term>&key-and-value-k;</term> <listitem><simpara>The pair exists as long as the &key-r; and the &value-r; are alive.</simpara></listitem></varlistentry> - <varlistentry><term>&both-k;</term> + <varlistentry><term>&key-or-value-k;</term> <listitem><simpara>The pair exists as long as the &key-r; or the &value-r; are alive. As long as the &key-r; is alive, it prevents the &key-r; from being &gc;ed, and as long as the &value-r; is @@ -1332,10 +1331,10 @@ <varlistentry><term>&value-k;</term> <listitem><simpara>a &weak-mapping; from the &value-r; to the &key-r;, </simpara></listitem></varlistentry> - <varlistentry><term>&either-k;</term> + <varlistentry><term>&key-and-value-k;</term> <listitem><simpara>a &weak-and-relation; of the &key-r; and the &value-r;, </simpara></listitem></varlistentry> - <varlistentry><term>&both-k;</term> + <varlistentry><term>&key-or-value-k;</term> <listitem><simpara>a &weak-or-relation; of the &key-r; and the &value-r;. </simpara></listitem></varlistentry></variablelist></para> Index: impent.xml =================================================================== RCS file: /cvsroot/clisp/clisp/doc/impent.xml,v retrieving revision 1.209 retrieving revision 1.210 diff -u -d -r1.209 -r1.210 --- impent.xml 5 Apr 2005 21:32:39 -0000 1.209 +++ impent.xml 13 Apr 2005 11:35:25 -0000 1.210 @@ -28,7 +28,6 @@ <!ENTITY append-k "<constant>:APPEND</constant>"> <!ENTITY argument-precedence-order-k "<constant>:ARGUMENT-PRECEDENCE-ORDER</constant>"> <!ENTITY arguments-k "<constant>:ARGUMENTS</constant>"> -<!ENTITY both-k "<constant>:BOTH</constant>"> <!ENTITY c-k "<constant>:C</constant>"> <!ENTITY c-NULL "<constant>NULL</constant>"> <!ENTITY class-k "<constant>:CLASS</constant>"> @@ -46,7 +45,6 @@ <!ENTITY direction-k "<constant>:DIRECTION</constant>"> <!ENTITY documentation-k "<constant>:DOCUMENTATION</constant>"> <!ENTITY echo-k "<constant>:ECHO</constant>"> -<!ENTITY either-k "<constant>:EITHER</constant>"> <!ENTITY end-k "<constant>:END</constant>"> <!ENTITY eof-k "<constant>:EOF</constant>"> <!ENTITY error-k "<constant>:ERROR</constant>"> @@ -72,6 +70,8 @@ <!ENTITY instance-k "<constant>:INSTANCE</constant>"> <!ENTITY io-k "<constant>:IO</constant>"> <!ENTITY key-k "<constant>:KEY</constant>"> +<!ENTITY key-and-value-k "<constant>:KEY-AND-VALUE</constant>"> +<!ENTITY key-or-value-k "<constant>:KEY-OR-VALUE</constant>"> <!ENTITY lambda-list-k "<constant>:LAMBDA-LIST</constant>"> <!ENTITY lang-k "<link linkend='c-flavor'><constant>:LANGUAGE</constant></link>"> <!ENTITY library-k "<constant>:LIBRARY</constant>"> --__--__-- Message: 4 From: Sam Steingold <sds@...> To: clisp-cvs@... Subject: clisp/modules/syscalls syscalls.xml,1.37,1.38 posix.lisp,1.31,1.32 calls.c,1.106,1.107 Date: Wed, 13 Apr 2005 16:42:45 +0000 Reply-To: clisp-devel@... Update of /cvsroot/clisp/clisp/modules/syscalls In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv15832/modules/syscalls Modified Files: syscalls.xml posix.lisp calls.c Log Message: (STAT-VFS) [WIN32_NATIVE]: implemented using GetDiskFreeSpace, GetDiskFreeSpaceEx, GetVolumeInformation Index: calls.c =================================================================== RCS file: /cvsroot/clisp/clisp/modules/syscalls/calls.c,v retrieving revision 1.106 retrieving revision 1.107 diff -u -d -r1.106 -r1.107 --- calls.c 12 Apr 2005 22:50:06 -0000 1.106 +++ calls.c 13 Apr 2005 16:42:43 -0000 1.107 @@ -1392,10 +1392,81 @@ } #endif /* mknod */ -#if defined(HAVE_FSTATVFS) && defined(HAVE_STATVFS) +#if defined(WIN32_NATIVE) || defined(HAVE_STATVFS) +#if defined(WIN32_NATIVE) +/* winsup/src/winsup/cygwin/syscalls.cc */ +struct statvfs { + unsigned long f_bsize; /* file system block size */ + unsigned long f_frsize; /* fragment size */ + unsigned long f_blocks; /* size of fs in f_frsize units */ + unsigned long f_bfree; /* free blocks in fs */ + unsigned long f_bavail; /* free blocks avail to non-superuser */ + unsigned long f_files; /* total file nodes in file system */ + unsigned long f_ffree; /* free file nodes in fs */ + unsigned long f_favail; /* avail file nodes in fs */ + unsigned long f_fsid; /* file system id */ + unsigned long f_flag; /* mount flags */ + unsigned long f_namemax; /* maximum length of filenames */ +}; + +int statvfs (const char *fname, struct statvfs *sfs) +{ + /* GetDiskFreeSpaceEx must be called before GetDiskFreeSpace on + WinME, to avoid the MS KB 314417 bug */ + ULARGE_INTEGER availb, freeb, totalb; + DWORD spc, bps, availc, freec, totalc, vsn, maxlen, flags, bpc; + char root[MAX_PATH], *rootp = root; + if (fname[1] == ':') { /* c:\ */ + *rootp++ = *fname++; + *rootp++ = *fname++; + } else if (fname[0] == '\\' && fname[1] == '\\') { /* \\host\dir\ */ + const char *cp = strchr(fname + 2,'\\'); + unsigned int len; + if (cp) cp = strchr(cp+1,'\\'); /* just host, no dir => error later */ + memcpy(root,fname,(len = cp - fname)); + rootp = root + len; + } else { + SetLastError(ERROR_DIRECTORY); + return -1; + } + *rootp++ = '\\'; + *rootp = 0; + + if (!GetDiskFreeSpace(root,&spc,&bps,&freec,&totalc)) + return -1; /* bytes per sector */ + bpc = spc*bps; + if (GetDiskFreeSpaceEx(root,&availb,&totalb,&freeb)) { + availc = availb.QuadPart / bpc; + totalc = totalb.QuadPart / bpc; + freec = freeb.QuadPart / bpc; + } else + availc = freec; + if (!GetVolumeInformation(root,NULL,0,&vsn,&maxlen,&flags,NULL,0)) + return -1; + sfs->f_bsize = bpc; + sfs->f_frsize = bpc; + sfs->f_blocks = totalc; + sfs->f_bfree = freec; + sfs->f_bavail = availc; + sfs->f_files = (unsigned long)-1; + sfs->f_ffree = (unsigned long)-1; + sfs->f_favail = (unsigned long)-1; + sfs->f_fsid = vsn; + sfs->f_flag = flags; + sfs->f_namemax = maxlen; + return 0; +} +#endif +DEFCHECKER(vfs_flags,default=,bitmasks=both, ST_RDONLY ST_NOSUID ST_NOTRUNC \ + ST_NODEV ST_NOEXEC ST_SYNCHRONOUS ST_MANDLOCK ST_WRITE ST_APPEND \ + ST_IMMUTABLE ST_NOATIME ST_NODIRATIME \ + FILE_NAMED_STREAMS FILE_READ_ONLY_VOLUME FILE_SUPPORTS_OBJECT_IDS \ + FILE_SUPPORTS_REPARSE_POINTS FILE_SUPPORTS_SPARSE_FILES \ + FILE_VOLUME_QUOTAS FS_CASE_IS_PRESERVED FS_CASE_SENSITIVE \ + FS_FILE_COMPRESSION FS_FILE_ENCRYPTION FS_PERSISTENT_ACLS \ + FS_UNICODE_STORED_ON_DISK FS_VOL_IS_COMPRESSED) /* there is also a legacy interface (f)statfs() which is not POSIX and is not supported */ - DEFUN(POSIX::STAT-VFS, file) { /* Lisp interface to statvfs(2), fstatvfs(2) the first arg can be a pathname designator or a file descriptor designator @@ -1403,6 +1474,7 @@ object file = popSTACK(); struct statvfs buf; +#if defined(HAVE_FSTATVFS) if (builtin_stream_p(file)) { pushSTACK(file); /* save */ pushSTACK(file); funcall(L(built_in_stream_open_p),1); @@ -1418,54 +1490,40 @@ begin_system_call(); if (fstatvfs(I_to_L(file),&buf) < 0) OS_error(); end_system_call(); - } else { stat_pathname: - file = physical_namestring(file); - with_string_0(file,GLO(pathname_encoding),namez, { + } else stat_pathname: +#endif + with_string_0(file = physical_namestring(file),GLO(pathname_encoding), + namez, { begin_system_call(); if (statvfs(namez,&buf) < 0) OS_error(); end_system_call(); }); - } pushSTACK(file); /* the object statvfs'ed */ - /* FIXME: Should use ulong_to_I for most of these, and map -1 to NIL. */ - pushSTACK(UL_to_I(buf.f_bsize)); /* file system block size */ - pushSTACK(UL_to_I(buf.f_frsize)); /* fundamental file system block size */ - pushSTACK(UL_to_I(buf.f_blocks)); /* total # of blocks on file system */ - pushSTACK(UL_to_I(buf.f_bfree)); /* total number of free blocks */ - pushSTACK(UL_to_I(buf.f_bavail)); /* # of free blocks available to - non-privileged processes */ - pushSTACK(UL_to_I(buf.f_files)); /* total # of file serial numbers */ - pushSTACK(UL_to_I(buf.f_ffree)); /* total # of free file serial numbers */ - pushSTACK(UL_to_I(buf.f_favail)); /* # of file serial numbers available to - non-privileged processes */ +#define pushSLOT(s) pushSTACK(s==(unsigned long)-1 ? NIL : ulong_to_I(s)) + pushSLOT(buf.f_bsize); /* file system block size */ + pushSLOT(buf.f_frsize); /* fundamental file system block size */ + pushSLOT(buf.f_blocks); /* total # of blocks on file system */ + pushSLOT(buf.f_bfree); /* total number of free blocks */ + pushSLOT(buf.f_bavail); /* # of free blocks available to + non-privileged processes */ + pushSLOT(buf.f_files); /* total # of file serial numbers */ + pushSLOT(buf.f_ffree); /* total # of free file serial numbers */ + pushSLOT(buf.f_favail); /* # of file serial numbers available to + non-privileged processes */ #if HAVE_SCALAR_FSID - pushSTACK(UL_to_I(buf.f_fsid)); /* file system ID */ + pushSLOT(buf.f_fsid); /* file system ID */ #else /* On Linux, f_fsid of 'struct statfs' is a struct consisting of two ints. With glibc <= 2.1, f_fsid of 'struct statvfs' is the same. We are prepared to return one number only, so we just return the first int. This matches the behaviour of glibc >= 2.2 on 32-bit platforms. */ - pushSTACK(UL_to_I(*(uintL*)&buf.f_fsid)); /* file system ID */ + pushSLOT((*(uintL*)&buf.f_fsid)); /* file system ID */ #endif - { /* bit mask of f_flag values */ - unsigned long count = 0; -# ifdef ST_RDONLY - if (buf.f_flag & ST_RDONLY) { pushSTACK(S(Kread_only)); count++; } -# endif -# ifdef ST_NOSUID - if (buf.f_flag & ST_NOSUID) { pushSTACK(`:NO-SUID`); count++; } -# endif -# ifdef ST_NOTRUNC - if (buf.f_flag & ST_NOTRUNC) { pushSTACK(`:NO-TRUNCATE`); count++; } -# endif - if (count) { - object res = listof(count); - pushSTACK(res); - } else pushSTACK(NIL); - } - pushSTACK(UL_to_I(buf.f_namemax));/* maximum filename length */ + pushSTACK(vfs_flags_to_list(buf.f_flag)); /* Bit mask of f_flag values. */ + pushSLOT(buf.f_namemax); /* maximum filename length */ funcall(`POSIX::MAKE-STAT-VFS`,12); +#undef pushSLOT } #endif /* fstatvfs statvfs */ @@ -2250,7 +2308,7 @@ /* convert the 8 members of WIN32_FIND_DATA to the FILE-INFO struct can trigger GC */ static Values wfd_to_file_info (WIN32_FIND_DATA *wfd) { - pushSTACK(UL_to_I(wfd->dwFileAttributes)); + pushSTACK(check_file_attributes_to_list(wfd->dwFileAttributes)); pushSTACK(convert_time_to_universal_w32(&(wfd->ftCreationTime))); pushSTACK(convert_time_to_universal_w32(&(wfd->ftLastAccessTime))); pushSTACK(convert_time_to_universal_w32(&(wfd->ftLastWriteTime))); Index: posix.lisp =================================================================== RCS file: /cvsroot/clisp/clisp/modules/syscalls/posix.lisp,v retrieving revision 1.31 retrieving revision 1.32 diff -u -d -r1.31 -r1.32 --- posix.lisp 12 Apr 2005 22:34:05 -0000 1.31 +++ posix.lisp 13 Apr 2005 16:42:43 -0000 1.32 @@ -102,7 +102,6 @@ (ctime 0 :type (integer 0) :read-only t)) ;;; ============================================================ -#+unix (progn (export '(stat-vfs stat-vfs-p stat-vfs-file stat-vfs-bsize stat-vfs-stat-vfs-frsize stat-vfs-stat-vfs-blocks stat-vfs-stat-vfs-bfree stat-vfs-stat-vfs-bavail @@ -113,21 +112,18 @@ (:constructor make-stat-vfs (file bsize frsize blocks bfree bavail files ffree favail fsid flag namemax))) - (file nil :read-only t) - (bsize 0 :type (unsigned-byte 32) :read-only t) - (frsize 0 :type (unsigned-byte 32) :read-only t) - (blocks 0 :type (unsigned-byte 32) :read-only t) - (bfree 0 :type (unsigned-byte 32) :read-only t) - (bavail 0 :type (unsigned-byte 32) :read-only t) - (files 0 :type (unsigned-byte 32) :read-only t) - (ffree 0 :type (unsigned-byte 32) :read-only t) - (favail 0 :type (unsigned-byte 32) :read-only t) - (fsid 0 :type (unsigned-byte 32) :read-only t) - (flag 0 :type (unsigned-byte 32) :read-only t) - (namemax 0 :type (unsigned-byte 32) :read-only t)) - -) - + (file nil :read-only t) + (bsize nil :type (or null (unsigned-byte 32)) :read-only t) + (frsize nil :type (or null (unsigned-byte 32)) :read-only t) + (blocks nil :type (or null (unsigned-byte 32)) :read-only t) + (bfree nil :type (or null (unsigned-byte 32)) :read-only t) + (bavail nil :type (or null (unsigned-byte 32)) :read-only t) + (files nil :type (or null (unsigned-byte 32)) :read-only t) + (ffree nil :type (or null (unsigned-byte 32)) :read-only t) + (favail nil :type (or null (unsigned-byte 32)) :read-only t) + (fsid nil :type (or null (unsigned-byte 32)) :read-only t) + (flag nil :type list :read-only t) + (namemax nil :type (or null (unsigned-byte 32)) :read-only t)) ;;; ============================================================ #+unix (progn (export Index: syscalls.xml =================================================================== RCS file: /cvsroot/clisp/clisp/modules/syscalls/syscalls.xml,v retrieving revision 1.37 retrieving revision 1.38 diff -u -d -r1.37 -r1.38 --- syscalls.xml 12 Apr 2005 22:34:05 -0000 1.37 +++ syscalls.xml 13 Apr 2005 16:42:42 -0000 1.38 @@ -109,7 +109,7 @@ and &utime;.</simpara></listitem></varlistentry> <varlistentry id="stat-vfs"><term><code>(<function>POSIX:STAT-VFS</function> &path-r;)</code></term> - <listitem><para>Return the <type>STAT-VFS</type> structure. + <listitem><para>Return a <type>STAT-VFS</type> structure. &path-r; can be a &stream-t;, a &pathname-t;, a &string-t; or a &number-t; (on a &unix; system, meaning &file-des;). The first slot of the structure returned is the string @@ -149,8 +149,7 @@ <listitem><simpara>Maximum filename length. </simpara></listitem></varlistentry></variablelist> All slots are read-only. - </para><simpara>[&unix; systems only at this time, patches are welcome.] - </simpara></listitem></varlistentry> + </para></listitem></varlistentry> <varlistentry id="file-info"><term><code>(<function>OS:FILE-INFO</function> &path-r;)</code></term> <listitem><para>Return the <type>FILE-INFO</type> structure. --__--__-- Message: 5 From: Sam Steingold <sds@...> To: clisp-cvs@... Subject: clisp/src ChangeLog,1.4467,1.4468 Date: Wed, 13 Apr 2005 16:42:44 +0000 Reply-To: clisp-devel@... Update of /cvsroot/clisp/clisp/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv15832/src Modified Files: ChangeLog Log Message: (STAT-VFS) [WIN32_NATIVE]: implemented using GetDiskFreeSpace, GetDiskFreeSpaceEx, GetVolumeInformation Index: ChangeLog =================================================================== RCS file: /cvsroot/clisp/clisp/src/ChangeLog,v retrieving revision 1.4467 retrieving revision 1.4468 diff -u -d -r1.4467 -r1.4468 --- ChangeLog 13 Apr 2005 11:35:01 -0000 1.4467 +++ ChangeLog 13 Apr 2005 16:42:37 -0000 1.4468 @@ -1,3 +1,9 @@ +2005-04-13 Sam Steingold <sds@...> + + * modules/syscalls/calls.c (STAT-VFS) [WIN32_NATIVE]: implemented + using GetDiskFreeSpace, GetDiskFreeSpaceEx, GetVolumeInformation + * modules/syscalls/posix.lisp (STAT-VFS): export always + 2005-04-12 Bruno Haible <bruno@...> * weak.d (MAKE-WEAK-ALIST, WEAK-ALIST-TYPE): Use :key-and-value instead --__--__-- Message: 6 From: Sam Steingold <sds@...> To: clisp-cvs@... Subject: clisp/modules/syscalls test.tst,1.4,1.5 syscalls.xml,1.38,1.39 posix.lisp,1.32,1.33 calls.c,1.107,1.108 Date: Wed, 13 Apr 2005 16:56:11 +0000 Reply-To: clisp-devel@... Update of /cvsroot/clisp/clisp/modules/syscalls In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22992/modules/syscalls Modified Files: test.tst syscalls.xml posix.lisp calls.c Log Message: (STAT-VFS): added vol-name and fs-type slots Index: calls.c =================================================================== RCS file: /cvsroot/clisp/clisp/modules/syscalls/calls.c,v retrieving revision 1.107 retrieving revision 1.108 diff -u -d -r1.107 -r1.108 --- calls.c 13 Apr 2005 16:42:43 -0000 1.107 +++ calls.c 13 Apr 2005 16:56:08 -0000 1.108 @@ -1407,8 +1407,11 @@ unsigned long f_fsid; /* file system id */ unsigned long f_flag; /* mount flags */ unsigned long f_namemax; /* maximum length of filenames */ + char f_volname[MAX_PATH]; /* volume name */ + char f_fstype[MAX_PATH]; /* file system type */ }; - +#define HAVE_STATVFS_F_VOLNAME +#define HAVE_STATVFS_F_FSTYPE int statvfs (const char *fname, struct statvfs *sfs) { /* GetDiskFreeSpaceEx must be called before GetDiskFreeSpace on @@ -1441,7 +1444,8 @@ freec = freeb.QuadPart / bpc; } else availc = freec; - if (!GetVolumeInformation(root,NULL,0,&vsn,&maxlen,&flags,NULL,0)) + if (!GetVolumeInformation(root,sfs->f_volname,MAX_PATH,&vsn,&maxlen,&flags, + sfs->f_fstype,MAX_PATH)) return -1; sfs->f_bsize = bpc; sfs->f_frsize = bpc; @@ -1522,7 +1526,17 @@ #endif pushSTACK(vfs_flags_to_list(buf.f_flag)); /* Bit mask of f_flag values. */ pushSLOT(buf.f_namemax); /* maximum filename length */ - funcall(`POSIX::MAKE-STAT-VFS`,12); +#if defined(HAVE_STATVFS_F_VOLNAME) + pushSTACK(asciz_to_string(buf.f_volname,GLO(pathname_encoding))); +#else + pushSTACK(NIL); +#endif +#if defined(HAVE_STATVFS_F_FSTYPE) + pushSTACK(asciz_to_string(buf.f_fstype,GLO(pathname_encoding))); +#else + pushSTACK(NIL); +#endif + funcall(`POSIX::MAKE-STAT-VFS`,14); #undef pushSLOT } Index: posix.lisp =================================================================== RCS file: /cvsroot/clisp/clisp/modules/syscalls/posix.lisp,v retrieving revision 1.32 retrieving revision 1.33 diff -u -d -r1.32 -r1.33 --- posix.lisp 13 Apr 2005 16:42:43 -0000 1.32 +++ posix.lisp 13 Apr 2005 16:56:08 -0000 1.33 @@ -111,7 +111,7 @@ (defstruct (stat-vfs (:constructor make-stat-vfs (file bsize frsize blocks bfree bavail files - ffree favail fsid flag namemax))) + ffree favail fsid flag namemax vol-name fs-type))) (file nil :read-only t) (bsize nil :type (or null (unsigned-byte 32)) :read-only t) (frsize nil :type (or null (unsigned-byte 32)) :read-only t) @@ -123,7 +123,9 @@ (favail nil :type (or null (unsigned-byte 32)) :read-only t) (fsid nil :type (or null (unsigned-byte 32)) :read-only t) (flag nil :type list :read-only t) - (namemax nil :type (or null (unsigned-byte 32)) :read-only t)) + (namemax nil :type (or null (unsigned-byte 32)) :read-only t) + (vol-name nil :type (or null string) :read-only t) + (fs-type nil :type (or null string) :read-only t)) ;;; ============================================================ #+unix (progn (export Index: syscalls.xml =================================================================== RCS file: /cvsroot/clisp/clisp/modules/syscalls/syscalls.xml,v retrieving revision 1.38 retrieving revision 1.39 diff -u -d -r1.38 -r1.39 --- syscalls.xml 13 Apr 2005 16:42:42 -0000 1.38 +++ syscalls.xml 13 Apr 2005 16:56:08 -0000 1.39 @@ -147,6 +147,12 @@ </simpara></listitem></varlistentry> <varlistentry><term><structfield>namemax</structfield></term> <listitem><simpara>Maximum filename length. + </simpara></listitem></varlistentry> + <varlistentry><term><structfield>vol-name</structfield></term> + <listitem><simpara>Volume name (&win32; only). + </simpara></listitem></varlistentry> + <varlistentry><term><structfield>fs-type</structfield></term> + <listitem><simpara>File system type (&win32; only). </simpara></listitem></varlistentry></variablelist> All slots are read-only. </para></listitem></varlistentry> Index: test.tst =================================================================== RCS file: /cvsroot/clisp/clisp/modules/syscalls/test.tst,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- test.tst 7 Apr 2005 22:59:25 -0000 1.4 +++ test.tst 13 Apr 2005 16:56:08 -0000 1.5 @@ -36,12 +36,9 @@ T #+unix -(os:uname-p (princ (if (fboundp 'os:uname) (os:uname) '(no os:uname)))) T +(os:uname-p (princ (os:uname))) T #+unix -(os:user-data-p - (princ (if (fboundp 'os:user-data) - (os:user-data (ext:getenv "USER")) '(no os:user-data)))) -T +(os:user-data-p (princ (os:user-data (ext:getenv "USER")))) T (os:file-stat-p (princ (os:file-stat *tmp1*))) T (os:file-stat-p (princ (os:file-stat (pathname *tmp1*)))) T @@ -57,10 +54,7 @@ #+win32 #o0700 #-(or unix win32) ERROR -#+unix -(os:stat-vfs-p - (princ (if (fboundp 'os:stat-vfs) (os:stat-vfs *tmp2*) '(no os:stat-vfs)))) -#+unix T +(os:stat-vfs-p (princ (os:stat-vfs *tmp2*))) T (string= #+win32 (ext:string-concat (ext:getenv "USERDOMAIN") "\\" (ext:getenv "USERNAME")) --__--__-- _______________________________________________ clisp-cvs mailing list clisp-cvs@... https://lists.sourceforge.net/lists/listinfo/clisp-cvs End of clisp-cvs Digest |
From: <clisp-cvs-request@li...> - 2005-04-13 11:47:42
|
Send clisp-cvs mailing list submissions to clisp-cvs@... To subscribe or unsubscribe via the World Wide Web, visit https://lists.sourceforge.net/lists/listinfo/clisp-cvs or, via email, send a message with subject or body 'help' to clisp-cvs-request@... You can reach the person managing the list at clisp-cvs-admin@... When replying, please edit your Subject line so it is more specific than "Re: Contents of clisp-cvs digest..." CLISP CVS commits for today Today's Topics: 1. clisp/doc unix-ent.xml,1.69,1.70 (Sam Steingold) 2. clisp/src ChangeLog,1.4465,1.4466 (Sam Steingold) 3. clisp/modules/syscalls syscalls.xml,1.36,1.37 posix.lisp,1.30,1.31 configure.in,1.33,1.34 calls.c,1.104,1.105 (Sam Steingold) 4. clisp/modules/syscalls configure,1.31,1.32 config.h.in,1.30,1.31 (Sam Steingold) 5. clisp/modules/syscalls calls.c,1.105,1.106 (Sam Steingold) --__--__-- Message: 1 From: Sam Steingold <sds@...> To: clisp-cvs@... Subject: clisp/doc unix-ent.xml,1.69,1.70 Date: Tue, 12 Apr 2005 22:34:08 +0000 Reply-To: clisp-devel@... Update of /cvsroot/clisp/clisp/doc In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv8192/doc Modified Files: unix-ent.xml Log Message: (POSIX:SYNC): implemented Index: unix-ent.xml =================================================================== RCS file: /cvsroot/clisp/clisp/doc/unix-ent.xml,v retrieving revision 1.69 retrieving revision 1.70 diff -u -d -r1.69 -r1.70 --- unix-ent.xml 7 Apr 2005 21:14:42 -0000 1.69 +++ unix-ent.xml 12 Apr 2005 22:34:05 -0000 1.70 @@ -121,6 +121,9 @@ <!ENTITY setutxent "<ulink url='&unix-f;/setutxent.html'><function>setutxent</function></ulink>"> <!ENTITY mkstemp "<ulink url='&unix-f;/mkstemp.html'><function>mkstemp</function></ulink>"> <!ENTITY tempnam "<ulink url='&unix-f;/tempnam.html'><function>tempnam</function></ulink>"> +<!ENTITY fsync "<ulink url='&unix-f;/fsync.html'><function>fsync</function></ulink>"> +<!ENTITY sync "<ulink url='&unix-f;/sync.html'><function>sync</function></ulink>"> + <!-- header files --> <!ENTITY unix-b "&unix-top;/basedefs"> --__--__-- Message: 2 From: Sam Steingold <sds@...> To: clisp-cvs@... Subject: clisp/src ChangeLog,1.4465,1.4466 Date: Tue, 12 Apr 2005 22:34:07 +0000 Reply-To: clisp-devel@... Update of /cvsroot/clisp/clisp/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv8192/src Modified Files: ChangeLog Log Message: (POSIX:SYNC): implemented Index: ChangeLog =================================================================== RCS file: /cvsroot/clisp/clisp/src/ChangeLog,v retrieving revision 1.4465 retrieving revision 1.4466 diff -u -d -r1.4465 -r1.4466 --- ChangeLog 10 Apr 2005 21:02:48 -0000 1.4465 +++ ChangeLog 12 Apr 2005 22:34:01 -0000 1.4466 @@ -1,3 +1,9 @@ +2005-04-12 Sam Steingold <sds@...> + + * modules/syscalls/calls.c (POSIX:SYNC): implemented + * modules/syscalls/posix.lisp (SYNC): export + * modules/syscalls/configure.in (sync, fsync): check + 2005-04-10 Sam Steingold <sds@...> * modules/berkeley-db/dbi.lisp (db-stat): added slot TYPE --__--__-- Message: 3 From: Sam Steingold <sds@...> To: clisp-cvs@... Subject: clisp/modules/syscalls syscalls.xml,1.36,1.37 posix.lisp,1.30,1.31 configure.in,1.33,1.34 calls.c,1.104,1.105 Date: Tue, 12 Apr 2005 22:34:07 +0000 Reply-To: clisp-devel@... Update of /cvsroot/clisp/clisp/modules/syscalls In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv8192/modules/syscalls Modified Files: syscalls.xml posix.lisp configure.in calls.c Log Message: (POSIX:SYNC): implemented Index: calls.c =================================================================== RCS file: /cvsroot/clisp/clisp/modules/syscalls/calls.c,v retrieving revision 1.104 retrieving revision 1.105 diff -u -d -r1.104 -r1.105 --- calls.c 8 Apr 2005 20:02:29 -0000 1.104 +++ calls.c 12 Apr 2005 22:34:05 -0000 1.105 @@ -469,6 +469,26 @@ } #endif +/* ============================= file sync ============================= */ +#if defined(WIN32_NATIVE) || defined(HAVE_SYNC) || defined(HAVE_FSYNC) +DEFUN(POSIX:SYNC, &optional file) { + if (missingp(STACK_0)) { /* sync() */ +# if defined(HAVE_SYNC) + begin_system_call(); sync(); end_system_call(); +# endif + } else { /* fsync() */ + Handle fd = stream_lend_handle(STACK_0,false,NULL); + begin_system_call(); +# if defined(HAVE_FSYNC) + if (-1 == fsync(fd)) OS_file_error(STACK_0); +# elif defined(WIN32_NATIVE) + if (!FlushFileBuffers(fd)) OS_file_error(STACK_0); +# endif + end_system_call(); + } + VALUES0; skipSTACK(1); +} +#endif /* ========================== process priority ========================== */ #if defined(WIN32_NATIVE) DEFCHECKER(check_priority_value,suffix=PRIORITY_CLASS,default=0, \ Index: posix.lisp =================================================================== RCS file: /cvsroot/clisp/clisp/modules/syscalls/posix.lisp,v retrieving revision 1.30 retrieving revision 1.31 diff -u -d -r1.30 -r1.31 --- posix.lisp 8 Apr 2005 20:02:29 -0000 1.30 +++ posix.lisp 12 Apr 2005 22:34:05 -0000 1.31 @@ -12,7 +12,7 @@ #:hostent-addrtype #:file-owner #:physical-memory #+(or :win32 :cygwin) #:file-properties #:priority #:process-id #:openlog #:setlogmask #:syslog #:closelog - #:getpgid #:setpgrp #:getsid #:setsid #:setpgid #:kill + #:getpgid #:setpgrp #:getsid #:setsid #:setpgid #:kill #:sync #:erf #:erfc #:j0 #:j1 #:jn #:y0 #:y1 #:yn #:gamma #:lgamma)) (setf (package-lock "EXT") nil) Index: syscalls.xml =================================================================== RCS file: /cvsroot/clisp/clisp/modules/syscalls/syscalls.xml,v retrieving revision 1.36 retrieving revision 1.37 diff -u -d -r1.36 -r1.37 --- syscalls.xml 8 Apr 2005 20:02:28 -0000 1.36 +++ syscalls.xml 12 Apr 2005 22:34:05 -0000 1.37 @@ -497,6 +497,11 @@ <simpara>When &mkstemp; is missing, use &tempnam;. On &win32; use <function>GetTempFileName</function>. </simpara></listitem></varlistentry> + <varlistentry id="sync"><term><code>(POSIX:SYNC &optional-amp; + &stream-r;)</code></term> + <listitem><simpara>calls &fsync; (<function>FlushFileBuffers</function> + on &win32;) on the &file-des; associated with &stream-r;, or &sync; + when &stream-r; is not supplied</simpara></listitem></varlistentry> </variablelist> </section> Index: configure.in =================================================================== RCS file: /cvsroot/clisp/clisp/modules/syscalls/configure.in,v retrieving revision 1.33 retrieving revision 1.34 diff -u -d -r1.33 -r1.34 --- configure.in 7 Apr 2005 21:14:42 -0000 1.33 +++ configure.in 12 Apr 2005 22:34:05 -0000 1.34 @@ -42,7 +42,7 @@ openlog setlogmask syslog closelog dnl getpgid setpgrp getsid setpgid setsid kill dnl endutxent getutxent getutxid getutxline pututxline setutxent dnl -fchmod fchown fstat link stat symlink utime mknod chmod umask) +fchmod fchown fstat link stat symlink utime mknod chmod umask fsync sync) AC_FUNC_CHOWN AC_SEARCH_LIBS(erf, m) AC_CHECK_FUNCS(erf erfc lgamma fstatvfs statvfs getpriority setpriority) --__--__-- Message: 4 From: Sam Steingold <sds@...> To: clisp-cvs@... Subject: clisp/modules/syscalls configure,1.31,1.32 config.h.in,1.30,1.31 Date: Tue, 12 Apr 2005 22:46:57 +0000 Reply-To: clisp-devel@... Update of /cvsroot/clisp/clisp/modules/syscalls In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv13701/modules/syscalls Modified Files: configure config.h.in Log Message: regenerated Index: config.h.in =================================================================== RCS file: /cvsroot/clisp/clisp/modules/syscalls/config.h.in,v retrieving revision 1.30 retrieving revision 1.31 diff -u -d -r1.30 -r1.31 --- config.h.in 7 Apr 2005 21:18:31 -0000 1.30 +++ config.h.in 12 Apr 2005 22:46:54 -0000 1.31 @@ -62,6 +62,9 @@ /* Define to 1 if you have the `fstatvfs' function. */ #undef HAVE_FSTATVFS +/* Define to 1 if you have the `fsync' function. */ +#undef HAVE_FSYNC + /* Define to 1 if you have the `gethostent' function. */ #undef HAVE_GETHOSTENT @@ -214,6 +217,9 @@ /* Define to 1 if you have the `symlink' function. */ #undef HAVE_SYMLINK +/* Define to 1 if you have the `sync' function. */ +#undef HAVE_SYNC + /* Define to 1 if you have the `sysconf' function. */ #undef HAVE_SYSCONF Index: configure =================================================================== RCS file: /cvsroot/clisp/clisp/modules/syscalls/configure,v retrieving revision 1.31 retrieving revision 1.32 diff -u -d -r1.31 -r1.32 --- configure 7 Apr 2005 21:18:30 -0000 1.31 +++ configure 12 Apr 2005 22:46:54 -0000 1.32 @@ -4708,7 +4708,9 @@ -for ac_func in clock confstr fcntl gethostent sysconf uname mkstemp tempnam getlogin getpwent getpwnam getpwuid getuid openlog setlogmask syslog closelog getpgid setpgrp getsid setpgid setsid kill endutxent getutxent getutxid getutxline pututxline setutxent fchmod fchown fstat link stat symlink utime mknod chmod umask + + +for ac_func in clock confstr fcntl gethostent sysconf uname mkstemp tempnam getlogin getpwent getpwnam getpwuid getuid openlog setlogmask syslog closelog getpgid setpgrp getsid setpgid setsid kill endutxent getutxent getutxid getutxline pututxline setutxent fchmod fchown fstat link stat symlink utime mknod chmod umask fsync sync do as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` echo "$as_me:$LINENO: checking for $ac_func" >&5 --__--__-- Message: 5 From: Sam Steingold <sds@...> To: clisp-cvs@... Subject: clisp/modules/syscalls calls.c,1.105,1.106 Date: Tue, 12 Apr 2005 22:50:08 +0000 Reply-To: clisp-devel@... Update of /cvsroot/clisp/clisp/modules/syscalls In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv15631 Modified Files: calls.c Log Message: (SYNC): accept integer argument Index: calls.c =================================================================== RCS file: /cvsroot/clisp/clisp/modules/syscalls/calls.c,v retrieving revision 1.105 retrieving revision 1.106 diff -u -d -r1.105 -r1.106 --- calls.c 12 Apr 2005 22:34:05 -0000 1.105 +++ calls.c 12 Apr 2005 22:50:06 -0000 1.106 @@ -476,6 +476,12 @@ # if defined(HAVE_SYNC) begin_system_call(); sync(); end_system_call(); # endif +# if defined(HAVE_FSYNC) + } else if (integerp(STACK_0)) { /* fsync() */ + begin_system_call(); + if (-1 == fsync(I_to_UL(STACK_0))) OS_error(); + end_system_call(); +# endif } else { /* fsync() */ Handle fd = stream_lend_handle(STACK_0,false,NULL); begin_system_call(); @@ -1175,7 +1181,7 @@ } else goto stat_pathname; } else if (integerp(file)) { begin_system_call(); - if (fstat(I_to_L(file),&buf) < 0) OS_error(); + if (fstat(I_to_UL(file),&buf) < 0) OS_error(); end_system_call(); } else { stat_pathname: file = physical_namestring(file); --__--__-- _______________________________________________ clisp-cvs mailing list clisp-cvs@... https://lists.sourceforge.net/lists/listinfo/clisp-cvs End of clisp-cvs Digest |