Changeset 11646 in project
- Timestamp:
- 08/14/08 11:50:52 (12 years ago)
- Location:
- chicken/branches/hygienic
- Files:
-
- 1 added
- 37 edited
Legend:
- Unmodified
- Added
- Removed
-
chicken/branches/hygienic/Makefile
r10952 r11646 25 25 # POSSIBILITY OF SUCH DAMAGE. 26 26 27 STANDARD_TARGETS \ 28 = all clean distclean spotless install uninstall confclean check \ 29 fullcheck dist libs install-libs bootstrap 30 SRCDIR = . 27 31 28 .PHONY: all clean distclean spotless install uninstall confclean check dist \ 29 libs install-libs fullcheck bootstrap 32 .PHONY: $(STANDARD_TARGETS) 30 33 31 34 ifndef PLATFORM 32 all clean spotless distclean install uninstall:35 $(STANDARD_TARGETS): 33 36 @echo "no PLATFORM given." 34 37 @echo "" … … 49 52 else 50 53 all: 51 $(MAKE) -f Makefile.$(PLATFORM) all54 $(MAKE) -f $(SRCDIR)/Makefile.$(PLATFORM) all 52 55 clean: 53 $(MAKE) -f Makefile.$(PLATFORM) clean56 $(MAKE) -f $(SRCDIR)/Makefile.$(PLATFORM) clean 54 57 distclean: 55 $(MAKE) -f Makefile.$(PLATFORM) distclean58 $(MAKE) -f $(SRCDIR)/Makefile.$(PLATFORM) distclean 56 59 spotless: 57 $(MAKE) -f Makefile.$(PLATFORM) spotless60 $(MAKE) -f $(SRCDIR)/Makefile.$(PLATFORM) spotless 58 61 install: 59 $(MAKE) -f Makefile.$(PLATFORM) install62 $(MAKE) -f $(SRCDIR)/Makefile.$(PLATFORM) install 60 63 uninstall: 61 $(MAKE) -f Makefile.$(PLATFORM) uninstall64 $(MAKE) -f $(SRCDIR)/Makefile.$(PLATFORM) uninstall 62 65 confclean: 63 $(MAKE) -f Makefile.$(PLATFORM) confclean66 $(MAKE) -f $(SRCDIR)/Makefile.$(PLATFORM) confclean 64 67 check: 65 $(MAKE) -f Makefile.$(PLATFORM) check68 $(MAKE) -f $(SRCDIR)/Makefile.$(PLATFORM) check 66 69 fullcheck: 67 $(MAKE) -f Makefile.$(PLATFORM) fullcheck70 $(MAKE) -f $(SRCDIR)/Makefile.$(PLATFORM) fullcheck 68 71 dist: 69 $(MAKE) -f Makefile.$(PLATFORM) distfiles72 $(MAKE) -f $(SRCDIR)/Makefile.$(PLATFORM) distfiles 70 73 csi -s scripts/makedist.scm 71 74 libs: 72 $(MAKE) -f Makefile.$(PLATFORM) libs75 $(MAKE) -f $(SRCDIR)/Makefile.$(PLATFORM) libs 73 76 install-libs: 74 $(MAKE) -f Makefile.$(PLATFORM) install-libs77 $(MAKE) -f $(SRCDIR)/Makefile.$(PLATFORM) install-libs 75 78 bootstrap: 76 $(MAKE) -f Makefile.$(PLATFORM) bootstrap79 $(MAKE) -f $(SRCDIR)/Makefile.$(PLATFORM) bootstrap 77 80 endif -
chicken/branches/hygienic/Makefile.bsd
r11219 r11646 26 26 27 27 28 SRCDIR = . 29 VPATH = $(SRCDIR) 30 28 31 # platform configuration 29 32 30 ARCH = $(shell sh config-arch.sh)33 ARCH = $(shell sh $(SRCDIR)/config-arch.sh) 31 34 32 35 # options … … 50 53 # select default and internal settings 51 54 52 include defaults.make55 include $(SRCDIR)/defaults.make 53 56 54 57 chicken-config.h: chicken-defaults.h … … 92 95 cat chicken-defaults.h >>$@ 93 96 94 include rules.make97 include $(SRCDIR)/rules.make -
chicken/branches/hygienic/Makefile.cross-linux-mingw
r11573 r11646 25 25 # POSSIBILITY OF SUCH DAMAGE. 26 26 27 28 SRCDIR = . 29 VPATH = $(SRCDIR) 27 30 28 31 # platform configuration … … 73 76 # select default and internal settings 74 77 75 include defaults.make78 include $(SRCDIR)/defaults.make 76 79 77 80 # main target … … 131 134 cat chicken-defaults.h >>$@ 132 135 133 include rules.make136 include $(SRCDIR)/rules.make -
chicken/branches/hygienic/Makefile.cygwin
r11573 r11646 26 26 27 27 28 SRCDIR = . 29 VPATH = $(SRCDIR) 30 28 31 # platform configuration 29 32 30 33 ARCH = x86 31 34 HACKED_APPLY=1 35 DLLSINPATH = 1 32 36 33 37 # options … … 66 70 67 71 LIBRARIES = -lm 68 LIBCHICKEN_SO_LIBRARIES = -lm69 LIBUCHICKEN_SO_LIBRARIES = -lm70 72 LIBCHICKEN_IMPORT_LIBRARY = libchicken.dll.a 71 73 LIBUCHICKEN_IMPORT_LIBRARY = libuchicken.dll.a … … 80 82 81 83 CUSTOM_CHICKEN_DEFAULTS=1 82 include defaults.make 84 include $(SRCDIR)/defaults.make 85 86 LIBCHICKEN_SO_LIBRARIES = $(LIBRARIES) 87 LIBUCHICKEN_SO_LIBRARIES = $(LIBRARIES) 83 88 84 89 chicken-config.h: chicken-defaults.h buildsvnrevision … … 218 223 echo "#endif" >>$@ 219 224 220 include rules.make225 include $(SRCDIR)/rules.make -
chicken/branches/hygienic/Makefile.linux
r11219 r11646 26 26 27 27 28 SRCDIR = . 29 VPATH = $(SRCDIR) 30 28 31 # platform configuration 29 32 30 ARCH = $(shell sh config-arch.sh)33 ARCH = $(shell sh $(SRCDIR)/config-arch.sh) 31 34 32 35 # options … … 53 56 # select default and internal settings 54 57 55 include defaults.make58 include $(SRCDIR)/defaults.make 56 59 57 60 chicken-config.h: chicken-defaults.h … … 100 103 cat chicken-defaults.h >>$@ 101 104 102 include rules.make105 include $(SRCDIR)/rules.make -
chicken/branches/hygienic/Makefile.macosx
r11031 r11646 26 26 27 27 28 SRCDIR = . 29 VPATH = $(SRCDIR) 30 28 31 # platform configuration 29 32 30 ARCH = $(shell sh config-arch.sh)33 ARCH = $(shell sh $(SRCDIR)/config-arch.sh) 31 34 32 35 # commands … … 58 61 # select default and internal settings 59 62 60 include defaults.make63 include $(SRCDIR)/defaults.make 61 64 62 65 chicken-config.h: chicken-defaults.h … … 126 129 endif 127 130 128 include rules.make131 include $(SRCDIR)/rules.make -
chicken/branches/hygienic/Makefile.mingw
r8361 r11646 25 25 # POSSIBILITY OF SUCH DAMAGE. 26 26 27 28 SRCDIR = . 29 VPATH = $(SRCDIR) 27 30 28 31 # platform configuration … … 72 75 CUSTOM_CHICKEN_DEFAULTS=1 73 76 74 include defaults.make77 include $(SRCDIR)/defaults.make 75 78 76 79 # main target … … 207 210 echo #endif >>$@ 208 211 209 include rules.make212 include $(SRCDIR)/rules.make -
chicken/branches/hygienic/Makefile.mingw-msys
r8361 r11646 25 25 # POSSIBILITY OF SUCH DAMAGE. 26 26 27 28 SRCDIR = . 29 VPATH = $(SRCDIR) 27 30 28 31 # platform configuration … … 68 71 # select default and internal settings 69 72 70 include defaults.make73 include $(SRCDIR)/defaults.make 71 74 72 75 # main target … … 118 121 cat chicken-defaults.h >>$@ 119 122 120 include rules.make123 include $(SRCDIR)/rules.make -
chicken/branches/hygienic/Makefile.solaris
r10209 r11646 26 26 27 27 28 SRCDIR = . 29 VPATH = $(SRCDIR) 30 28 31 # platform configuration 29 32 30 ARCH = $(shell sh config-arch.sh)33 ARCH = $(shell sh $SRCDIR/config-arch.sh) 31 34 32 35 # options … … 48 51 # select default and internal settings 49 52 50 include defaults.make53 include $(SRCDIR)/defaults.make 51 54 52 55 chicken-config.h: chicken-defaults.h … … 90 93 cat chicken-defaults.h >>$@ 91 94 92 include rules.make95 include $(SRCDIR)/rules.make -
chicken/branches/hygienic/NEWS
r11528 r11646 35 35 define-extension 36 36 37 3.2.7 38 39 - a different approach to creating a versioned shared library 40 41 3.2.6 42 37 3.3.8 38 39 - Bug fix in thread-terminate! [thanks to Joerg Wittenberger] 40 41 3.3.6 42 43 - Cygwin build patched to put the runtime libraries in the right place. 44 [thanks to Nathan Thern] 45 46 3.3.5 47 48 - added support for out-of-tree compilation (via the SRCDIR variable) 49 [thanks to Ivan Shmakov] 50 - bug fix for (string->number "/") 51 52 53 3.3.2 54 55 - support for selective procedure profiling in the compiler 56 - unit utils: moved file- and pathname-related procedures to unit files 57 - new unit files 58 59 3.3.0 60 61 - bug fix for bitwise-or use [Joerg Wittenberger] 43 62 - bug fixes for tickets 393, 430, 436 44 63 - bug fix pointer->address 45 46 3.2.547 48 - bug fix in versioned symlink for shared library in rules.make49 50 3.2.451 52 64 - the build system now sets the SONAME field of libchicken.so under Linux 53 65 - fixed an allocation bug in decode_literal 54 55 3.2.356 57 66 - some fixes to the build system when USE_HOST_PCRE is set 58 59 3.2.260 61 67 - added use of unit ports to unit extras and chicken-setup 62 63 3.2.164 65 68 - unit utils and extras: moved port extensions to unit ports 66 69 - new unit ports -
chicken/branches/hygienic/README
r10629 r11646 169 169 know what you are doing. 170 170 171 SRCDIR= 172 Specifies that CHICKEN should be built outside of its source 173 tree. The SRCDIR variable indicates the location of the 174 CHICKEN source tree. The executables and object files will 175 be generated in the current directory. 176 177 171 178 To remove CHICKEN from your file-system, enter (probably as 172 179 root): -
chicken/branches/hygienic/TODO
r11640 r11646 4 4 5 5 * trunk merge 6 11 148was last6 11635 was last 7 7 8 8 * macros -
chicken/branches/hygienic/batch-driver.scm
r11160 r11646 38 38 standard-bindings-that-never-return-false side-effect-free-standard-bindings-that-never-return-false 39 39 compiler-cleanup-hook disabled-warnings 40 file-io-only undefine-shadowed-macros 40 file-io-only undefine-shadowed-macros profiled-procedures 41 41 unit-name insert-timer-checks used-units inline-max-size 42 42 debugging perform-lambda-lifting! disable-stack-overflow-checking … … 359 359 (let ([acc (eq? 'accumulate-profile (car profile))]) 360 360 (set! emit-profile #t) 361 (set! profiled-procedures #f) 361 362 (set! initforms 362 363 (append … … 367 368 '() ) ) ) 368 369 (when verbose 369 (printf "Generating ~aprofile~%~!" (if acc "accumulated " "") emit-profile) ) ) )370 (printf "Generating ~aprofile~%~!" (if acc "accumulated " "")) ) ) ) 370 371 371 372 (cond ((memq 'version options) -
chicken/branches/hygienic/chicken-setup.scm
r11149 r11646 28 28 (declare 29 29 (run-time-macros) ;*** later: compile-syntax 30 (uses srfi-1 regex utils posix tcp srfi-18 srfi-13 ports)30 (uses srfi-1 regex utils files posix tcp srfi-18 srfi-13 ports) 31 31 (export move-file run:execute make/proc uninstall-extension 32 32 install-extension install-program install-script setup-verbose-flag … … 199 199 (define *gzip-program* 'gzip) 200 200 (define *tar-program* 'tar) 201 201 202 (define *fetch-only* #f) 202 203 (define *builddir-created* #f) … … 1089 1090 (and (or *dont-ask* 1090 1091 (yes-or-no? 1091 (sprintf " The extension ~A does not exist.~%Do you want to download it ?"ext)1092 (sprintf "File ~A.egg or ~A.setup not found in the download directory. ~%Do you want to download .egg archive ?" ext ext) 1092 1093 "yes") ) 1093 1094 (cond ((pathname-directory ext) -
chicken/branches/hygienic/chicken.scm
r10657 r11646 27 27 28 28 (declare 29 (uses srfi-1 srfi-4 utils support compiler optimizer driver platform backend srfi-69) 29 (uses srfi-1 srfi-4 utils files support compiler optimizer driver 30 platform backend srfi-69) 30 31 (run-time-macros) ) ;*** later: compile-syntax 31 32 -
chicken/branches/hygienic/compiler.scm
r11577 r11646 68 68 ; (import <symbol-or-string> ...) 69 69 ; (unused <symbol> ...) 70 ; (profile <symbol> ...) 70 71 ; 71 72 ; <type> = fixnum | generic … … 258 259 foreign-declarations emit-trace-info block-compilation line-number-database-size 259 260 always-bound-to-procedure block-globals make-block-variable-literal block-variable-literal? block-variable-literal-name 260 target-heap-size target-stack-size valid-c-identifier? standalone-executable261 target-heap-size target-stack-size valid-c-identifier? profiled-procedures standalone-executable 261 262 target-initial-heap-size internal-bindings source-filename dump-nodes source-info->string 262 263 default-default-target-heap-size default-default-target-stack-size verbose-mode original-program-size … … 365 366 (define undefine-shadowed-macros #t) 366 367 (define constant-declarations '()) 368 (define profiled-procedures #f) 367 369 (define import-libraries '()) 368 370 (define standalone-executable #t) … … 644 646 (not (assq dest se))) ; global? 645 647 l) 646 ((and emit-profile (eq? 'lambda name)) 648 ((and (eq? 'lambda name) 649 emit-profile 650 (or (not profiled-procedures) 651 (memq dest profiled-procedures))) 647 652 (expand-profile-lambda dest llist2 body) ) 648 653 (else … … 703 708 (let* ((var (if (pair? (cadr x)) (caadr x) (cadr x))) 704 709 (body (if (pair? (cadr x)) 705 `(,( rename'lambda se) ,(cdadr x) ,@(cddr x))710 `(,(macro-alias 'lambda se) ,(cdadr x) ,@(cddr x)) 706 711 (caddr x))) 707 712 (name (lookup var se))) … … 729 734 (let* ((var (if (pair? (cadr x)) (caadr x) (cadr x))) 730 735 (body (if (pair? (cadr x)) 731 `(,( rename'lambda se) ,(cdadr x) ,@(cddr x))736 `(,(macro-alias 'lambda se) ,(cdadr x) ,@(cddr x)) 732 737 (caddr x))) 733 738 (name (lookup var se))) … … 1371 1376 "invalid import-library specification: ~s" il)))) 1372 1377 (cdr spec))))) 1378 ((profile) 1379 (set! profiled-procedures 1380 (append (cdr spec) 1381 (or profiled-procedures '())))) 1373 1382 (else (compiler-warning 'syntax "illegal declaration specifier `~s'" spec)) ) 1374 1383 '(##core#undefined) ) ) ) -
chicken/branches/hygienic/csc.scm
r11034 r11646 28 28 (declare 29 29 (block) 30 (uses data-structures ports srfi-1 srfi-13 utils extras ))30 (uses data-structures ports srfi-1 srfi-13 utils files extras )) 31 31 32 32 #> -
chicken/branches/hygienic/debian/control
r11150 r11646 4 4 Priority: optional 5 5 Maintainer: Davide Puricelli (evo) <evo@debian.org> 6 Build-Depends: debhelper (>> 4.0.0), libpcre3-dev 6 Build-Depends: debhelper (>> 4.0.0), libpcre3-dev, texinfo 7 7 Standards-Version: 3.7.3 8 8 -
chicken/branches/hygienic/defaults.make
r11573 r11646 40 40 # directories 41 41 42 SRCDIR = . 43 VPATH = $(SRCDIR) 44 42 45 DESTDIR = 43 46 ifeq ($(PLATFORM),mingw-msys) … … 157 160 PCRE_OBJECTS_1 = 158 161 else 162 PCRE_DIR ?= $(VPATH)/pcre 159 163 C_COMPILER_PCRE_OPTIONS = -DPCRE_STATIC 160 PCRE_INCLUDES = $(INCLUDES) -I pcre164 PCRE_INCLUDES = $(INCLUDES) -I$(PCRE_DIR) 161 165 endif 162 166 ifndef NOPTABLES 163 167 C_COMPILER_PTABLES_OPTIONS ?= -DC_ENABLE_PTABLES 164 168 endif 165 INCLUDES ?= -I. 169 INCLUDES ?= -I. -I$(SRCDIR) 166 170 C_COMPILER_COMPILE_OPTION ?= -c 167 171 C_COMPILER_OUTPUT_OPTION ?= -o … … 297 301 # Scheme compiler flags 298 302 299 CHICKEN_OPTIONS = -quiet -no-trace -optimize-level 2 -include-path . 303 CHICKEN_OPTIONS = \ 304 -quiet -no-trace -optimize-level 2 \ 305 -include-path . -include-path $(SRCDIR) 300 306 CHICKEN_LIBRARY_OPTIONS = $(CHICKEN_OPTIONS) -explicit-use 301 307 CHICKEN_PROGRAM_OPTIONS = $(CHICKEN_OPTIONS) -no-lambda-info … … 308 314 CHICKEN_PCRE_LIBRARY_OPTIONS = 309 315 else 310 CHICKEN_PCRE_LIBRARY_OPTIONS = -include-path pcre316 CHICKEN_PCRE_LIBRARY_OPTIONS = -include-path $(SRCDIR)/pcre 311 317 endif 312 318 … … 325 331 endif 326 332 CHICKEN_BUG_PROGRAM = $(PROGRAM_PREFIX)chicken-bug$(PROGRAM_SUFFIX) 327 IMPORT_LIBRARIES = chicken lolevel srfi-1 srfi-4 data-structures ports posix srfi-13 srfi-69 extras \333 IMPORT_LIBRARIES = chicken lolevel srfi-1 srfi-4 data-structures ports files posix srfi-13 srfi-69 extras \ 328 334 regex srfi-14 tcp foreign scheme srfi-18 utils csi 329 335 ifdef BUILD_SETUP_TOOLS … … 375 381 376 382 buildsvnrevision: 377 sh svnrevision.sh 383 sh $(SRCDIR)/svnrevision.sh 384 ifeq ($(USE_HOST_PCRE),) 385 $(MAKEDIR_COMMAND) $(MAKEDIR_COMMAND_OPTIONS) pcre 386 endif 378 387 379 388 # generic part of chicken-config.h -
chicken/branches/hygienic/distribution/manifest
r11573 r11646 78 78 udata-structures.c 79 79 uports.c 80 ufiles.c 80 81 ulibrary.c 81 82 ulolevel.c … … 120 121 data-structures.scm 121 122 ports.scm 123 files.scm 122 124 chicken-bug.1 123 125 chicken-bug.scm … … 152 154 html/unit-data-structures.html 153 155 html/unit-ports.html 156 html/unit-files.html 154 157 html/unit-eval.html 155 158 html/unit-extras.html -
chicken/branches/hygienic/files.scm
r11643 r11646 60 60 (no-bound-checks))] ) 61 61 62 (cond-expand 63 [unsafe 64 (eval-when (compile) 65 (define-macro (##sys#check-structure . _) '(##core#undefined)) 66 (define-macro (##sys#check-range . _) '(##core#undefined)) 67 (define-macro (##sys#check-pair . _) '(##core#undefined)) 68 (define-macro (##sys#check-list . _) '(##core#undefined)) 69 (define-macro (##sys#check-symbol . _) '(##core#undefined)) 70 (define-macro (##sys#check-string . _) '(##core#undefined)) 71 (define-macro (##sys#check-char . _) '(##core#undefined)) 72 (define-macro (##sys#check-exact . _) '(##core#undefined)) 73 (define-macro (##sys#check-port . _) '(##core#undefined)) 74 (define-macro (##sys#check-number . _) '(##core#undefined)))] 75 [else 76 (declare (emit-exports "files.exports"))] ) 62 (include "unsafe-declarations.scm") 77 63 78 64 (register-feature! 'files) -
chicken/branches/hygienic/manual/Acknowledgements
r10932 r11646 3 3 == Acknowledgements 4 4 5 Many thanks to Nico Amtsberg, William Annis, Marc Baily, Peter6 Ba rabas, Jonah Beckford, Arto Bendiken, Peter Bex, Jean-Francois7 Bignolles, Alaric Blagrave-Snellpym, Dave Bodenstab, Fabian Boehlke,8 T. Kurt Bond, Ashley Bone, Dominique Boucher, Terence Brannon, Roy 9 Br yant, Adam Buchbinder, Hans Bulfone, Category 5, Taylor Campbell,10 Naruto Canada, Esteban U. Caamano Castro, Franklin Chen, Thomas Chust,11 Gian Paolo Ciceri, John Cowan, Grzegorz Chrupała, James Crippen,12 Tollef Fog Heen, Alejandro Forero Cuervo, Linh Dang, Brian Denheyer,13 dgym, Don, Chris Double, Jarod Eells, Petter Egesund, Steve Elkins,14 Daniel B. Faken, Will Farr, Graham Fawcett, Marc Feeley, Fizzie,15 Kimura Fuyuki, Tony Garnock-Jones, Martin Gasbichler, Joey Gibson, 16 Stephen C. Gilardi, Joshua Griffith, Johannes Groedem, Damian Gryski, 17 Mario Domenech Goulart, Andreas Gustafsson, Sven Hartrumpf, Jun-ichiro 18 itojun Hagino, Ahdi Hargo, Matthias Heiler, Karl M. Hegbloom, William 19 P. Heinemann, Bill Hoffman, Bruce Hoult, Hans Huebner, Markus20 Hue lsmann, Goetz Isenmann, Paulo Jabardo, David Janssens, Christian21 Ja eger, Dale Jordan, Valentin Kamyshenko, Daishi Kato, Peter Keller,22 Brad Kind, Ron Kneusel, Matthias Koeppe, Krysztof Kowałczyk, 23 Andre Kuehne, Todd R. Kueny Sr, Goran Krampe, David Krentzlin, Ben 24 K urtz, Micky Latowicki, John Lenz, Kirill Lisovsky, Juergen25 Lorenz, Kon Lovett, Dennis Marti, Charles Martin, Bob McIsaac, Alain 26 Mellan, Eric Merrit, Perry Metzger, Scott G. Miller, Mikael, Bruce 27 Mitchener, Chris Moline, Eric E. Moore, Julian Morrison, Dan Muresan, 28 Lars Nilsson, Ian Oversby, o.t., Gene Pavlovsky, Levi Pearson, Nicolas 29 Pe lletier, Carlos Pita, Robin Lee Powell, Pupeno, Davide Puricelli,30 D oug Quale, Eric Raible, Ivan Raikov, Joel Reymont, Eric Rochester,31 Andreas Rottman, David Rush, Lars Rustemeier, Daniel Sadilek, Oskar 32 S chirmer, Burton Samograd, Reed Sheridan, Ronald Schroeder, Spencer33 Sch umann, Alex Shinn, Ivan Shmakov, Shmul, Tony Sidaway, Jeffrey34 B. Siegal, Andrey Sidorenko, Michele Simionato, Volker Stolz, Jon 35 Strait, Dorai Sitaram, Robert Skeels, Jason Songhurst, Clifford Stein, 36 S unnan, Zbigniew Szadkowski, Rick Taube, Mike Thomas, Minh Thu,37 Christian Tismer, Andre van Tonder, John Tobey, Henrik Tramberend, 38 Vladimir Tsichevsky, Neil van Dyke, Sander Vesik, Jaques Vidrine, 39 Panagiotis Vossos, Shawn Wagner, Peter Wang, Ed Watkeys, Brad Watson,40 Thomas Weidner, Goeran Weinholt, Matthew Welland, Joerg Wittenberger,41 Peter Wright, Mark Wutka, Richard Zidlicky and Houman Zolfaghari for 42 bug-fixes, tips and suggestions.5 Many thanks to Nico Amtsberg, Alonso Andres, William Annis, Marc 6 Baily, Peter Barabas, Jonah Beckford, Arto Bendiken, Peter Bex, 7 Jean-Francois Bignolles, Alaric Blagrave-Snellpym, Dave Bodenstab, 8 Fabian Boehlke, T. Kurt Bond, Ashley Bone, Dominique Boucher, Terence 9 Brannon, Roy Bryant, Adam Buchbinder, Hans Bulfone, Category 5, Taylor 10 Campbell, Naruto Canada, Esteban U. Caamano Castro, Franklin Chen, 11 Thomas Chust, Gian Paolo Ciceri, John Cowan, Grzegorz Chrupała, 12 James Crippen, Tollef Fog Heen, Alejandro Forero Cuervo, Linh Dang, 13 Brian Denheyer, dgym, Don, Chris Double, Jarod Eells, Petter Egesund, 14 Steve Elkins, Daniel B. Faken, Will Farr, Graham Fawcett, Marc Feeley, 15 Fizzie, Kimura Fuyuki, Tony Garnock-Jones, Martin Gasbichler, Joey 16 Gibson, Stephen C. Gilardi, Joshua Griffith, Johannes Groedem, Damian 17 Gryski, Mario Domenech Goulart, Andreas Gustafsson, Sven Hartrumpf, 18 Jun-ichiro itojun Hagino, Ahdi Hargo, Matthias Heiler, Karl 19 M. Hegbloom, William P. Heinemann, Bill Hoffman, Bruce Hoult, Hans 20 Huebner, Markus Huelsmann, Goetz Isenmann, Paulo Jabardo, David 21 Janssens, Christian Jaeger, Dale Jordan, Valentin Kamyshenko, Daishi 22 Kato, Peter Keller, Brad Kind, Ron Kneusel, Matthias Koeppe, Krysztof 23 Kowałczyk, Andre Kuehne, Todd R. Kueny Sr, Goran Krampe, David 24 Krentzlin, Ben Kurtz, Micky Latowicki, John Lenz, Kirill Lisovsky, 25 Juergen Lorenz, Kon Lovett, Dennis Marti, Charles Martin, Bob McIsaac, 26 Alain Mellan, Eric Merrit, Perry Metzger, Scott G. Miller, Mikael, 27 Bruce Mitchener, Chris Moline, Eric E. Moore, Julian Morrison, Dan 28 Muresan, Lars Nilsson, Ian Oversby, o.t., Gene Pavlovsky, Levi 29 Pearson, Nicolas Pelletier, Carlos Pita, Robin Lee Powell, Pupeno, 30 Davide Puricelli, Doug Quale, Eric Raible, Ivan Raikov, Joel Reymont, 31 Eric Rochester, Andreas Rottman, David Rush, Lars Rustemeier, Daniel 32 Sadilek, Oskar Schirmer, Burton Samograd, Reed Sheridan, Ronald 33 Schroeder, Spencer Schumann, Alex Shinn, Ivan Shmakov, Shmul, Tony 34 Sidaway, Jeffrey B. Siegal, Andrey Sidorenko, Michele Simionato, 35 Volker Stolz, Jon Strait, Dorai Sitaram, Robert Skeels, Jason 36 Songhurst, Clifford Stein, Sunnan, Zbigniew Szadkowski, Rick Taube, 37 Nathan Thern, Mike Thomas, Minh Thu, Christian Tismer, Andre van 38 Tonder, John Tobey, Henrik Tramberend, Vladimir Tsichevsky, Neil van 39 Dyke, Sander Vesik, Jaques Vidrine, Panagiotis Vossos, Shawn Wagner, 40 Peter Wang, Ed Watkeys, Brad Watson, Thomas Weidner, Goeran Weinholt, 41 Matthew Welland, Joerg Wittenberger, Peter Wright, Mark Wutka, Richard 42 Zidlicky and Houman Zolfaghari for bug-fixes, tips and suggestions. 43 43 44 44 CHICKEN uses the PCRE regular expression package ([[http://www.pcre.org]]), -
chicken/branches/hygienic/manual/Declarations
r11013 r11646 214 214 215 215 216 === profile 217 218 [declaration specifier] (profile IDENTIFIER ...) 219 220 Enable profiling exclusively for given identifiers. Normally the compiler 221 enables profiling decorations for all globally defined procedures. With 222 this declaration, profiling can be enabled for selected procedures. 223 224 216 225 === number-type 217 226 === fixnum-arithmetic -
chicken/branches/hygienic/manual/Locations
r11149 r11646 71 71 </enscript> 72 72 73 See [[http://chicken.wiki.br/location-and-c-string-star|location and 74 c-string*]]for a tip on returning a {{c-string*}} type.73 See [[http://chicken.wiki.br/location-and-c-string-star|location and c-string*]] 74 for a tip on returning a {{c-string*}} type. 75 75 76 76 {{location}} returns a value of type {{c-pointer}}, when given -
chicken/branches/hygienic/manual/Supported language
r10952 r11646 16 16 * [[Unit data-structures]] data structures 17 17 * [[Unit ports]] I/O ports 18 * [[Unit files]] File and pathname operations 18 19 * [[Unit extras]] useful utility definitions 19 20 * [[Unit srfi-1]] List Library -
chicken/branches/hygienic/manual/Unit extras
r10954 r11646 805 805 Returns the index of the found value or {{#f}} otherwise. 806 806 807 Previous: [[Unit ports]]807 Previous: [[Unit files]] 808 808 809 809 Next: [[Unit srfi-1]] -
chicken/branches/hygienic/manual/Unit library
r10872 r11646 783 783 This procedure returns {{X}}. 784 784 785 Finalizers are invoked asynchronously, in the thread that happens 786 to be currently running. 787 785 788 786 789 ==== set-gc-report! -
chicken/branches/hygienic/manual/Unit ports
r10952 r11646 143 143 Previous: [[Unit data-structures]] 144 144 145 Next: [[Unit extras]]145 Next: [[Unit files]] -
chicken/branches/hygienic/manual/Unit utils
r10952 r11646 5 5 == Unit utils 6 6 7 This unit contains file/pathname oriented procedures, apropos, plus acts as a "grab bag" for procedures without a good home, 8 and which don't have to be available by default (as compared to the [[Unit extras|extras]] unit). 7 This unit contains apropos and functions as a "grab bag" of procedures 8 without a good home, and which don't have to be available by default 9 (as compared to the [[Unit extras|extras]] unit). 9 10 10 11 This unit uses the {{extras}} and {{regex}} units. -
chicken/branches/hygienic/posixunix.scm
r10788 r11646 28 28 (declare 29 29 (unit posix) 30 (uses scheduler regex extras utils )30 (uses scheduler regex extras utils files) 31 31 (disable-interrupts) 32 32 (usual-integrations) -
chicken/branches/hygienic/posixwin.scm
r11536 r11646 66 66 (declare 67 67 (unit posix) 68 (uses scheduler regex extras utils )68 (uses scheduler regex extras utils files) 69 69 (disable-interrupts) 70 70 (usual-integrations) -
chicken/branches/hygienic/rules.make
r11573 r11646 29 29 30 30 LIBCHICKEN_OBJECTS_1 = \ 31 library eval data-structures ports extras lolevel utils tcp srfi-1 srfi-4 srfi-13 \31 library eval data-structures ports files extras lolevel utils tcp srfi-1 srfi-4 srfi-13 \ 32 32 srfi-14 srfi-18 srfi-69 $(POSIXFILE) regex scheduler \ 33 33 profiler stub expand runtime … … 36 36 37 37 LIBUCHICKEN_OBJECTS_1 = \ 38 ulibrary ueval udata-structures uports u extras ulolevel uutils utcp usrfi-1 usrfi-4 \38 ulibrary ueval udata-structures uports ufiles uextras ulolevel uutils utcp usrfi-1 usrfi-4 \ 39 39 usrfi-13 usrfi-14 usrfi-18 usrfi-69 u$(POSIXFILE) uregex scheduler \ 40 40 profiler stub expand uruntime … … 43 43 44 44 LIBCHICKENGUI_OBJECTS_1 = \ 45 library eval data-structures ports extras lolevel utils tcp srfi-1 srfi-4 srfi-13 \45 library eval data-structures ports files extras lolevel utils tcp srfi-1 srfi-4 srfi-13 \ 46 46 srfi-14 srfi-18 srfi-69 $(POSIXFILE) regex scheduler \ 47 47 profiler stub expand gui-runtime … … 109 109 $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) $(C_COMPILER_SHARED_OPTIONS) \ 110 110 $(C_COMPILER_BUILD_RUNTIME_OPTIONS) $< $(C_COMPILER_OUTPUT) 111 files$(O): files.c chicken.h $(CHICKEN_CONFIG_H) 112 $(C_COMPILER) $(C_COMPILER_OPTIONS) $(C_COMPILER_PTABLES_OPTIONS) $(INCLUDES) \ 113 $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) $(C_COMPILER_SHARED_OPTIONS) \ 114 $(C_COMPILER_BUILD_RUNTIME_OPTIONS) $< $(C_COMPILER_OUTPUT) 111 115 extras$(O): extras.c chicken.h $(CHICKEN_CONFIG_H) 112 116 $(C_COMPILER) $(C_COMPILER_OPTIONS) $(C_COMPILER_PTABLES_OPTIONS) $(INCLUDES) \ … … 133 137 $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) $(C_COMPILER_SHARED_OPTIONS) \ 134 138 $(C_COMPILER_BUILD_RUNTIME_OPTIONS) $< $(C_COMPILER_OUTPUT) 135 regex$(O): regex.c chicken.h $(CHICKEN_CONFIG_H) pcre/pcre.h139 regex$(O): regex.c chicken.h $(CHICKEN_CONFIG_H) 136 140 $(C_COMPILER) $(C_COMPILER_OPTIONS) $(C_COMPILER_PTABLES_OPTIONS) $(PCRE_INCLUDES) \ 137 141 $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) $(C_COMPILER_SHARED_OPTIONS) \ … … 194 198 $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) $(C_COMPILER_SHARED_OPTIONS) \ 195 199 $(C_COMPILER_BUILD_UNSAFE_RUNTIME_OPTIONS) $< $(C_COMPILER_OUTPUT) 200 ufiles$(O): ufiles.c chicken.h $(CHICKEN_CONFIG_H) 201 $(C_COMPILER) $(C_COMPILER_OPTIONS) $(C_COMPILER_PTABLES_OPTIONS) $(INCLUDES) \ 202 $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) $(C_COMPILER_SHARED_OPTIONS) \ 203 $(C_COMPILER_BUILD_UNSAFE_RUNTIME_OPTIONS) $< $(C_COMPILER_OUTPUT) 196 204 uextras$(O): uextras.c chicken.h $(CHICKEN_CONFIG_H) 197 205 $(C_COMPILER) $(C_COMPILER_OPTIONS) $(C_COMPILER_PTABLES_OPTIONS) $(INCLUDES) \ … … 214 222 $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) $(C_COMPILER_SHARED_OPTIONS) \ 215 223 $(C_COMPILER_BUILD_UNSAFE_RUNTIME_OPTIONS) $< $(C_COMPILER_OUTPUT) 216 uregex$(O): uregex.c chicken.h $(CHICKEN_CONFIG_H) pcre/pcre.h224 uregex$(O): uregex.c chicken.h $(CHICKEN_CONFIG_H) 217 225 $(C_COMPILER) $(C_COMPILER_OPTIONS) $(C_COMPILER_PTABLES_OPTIONS) $(PCRE_INCLUDES) \ 218 226 $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) $(C_COMPILER_SHARED_OPTIONS) \ … … 276 284 $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) \ 277 285 $(C_COMPILER_BUILD_RUNTIME_OPTIONS) $< $(C_COMPILER_OUTPUT) 286 files-static$(O): files.c chicken.h $(CHICKEN_CONFIG_H) 287 $(C_COMPILER) $(C_COMPILER_OPTIONS) $(C_COMPILER_PTABLES_OPTIONS) $(INCLUDES) \ 288 $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) \ 289 $(C_COMPILER_BUILD_RUNTIME_OPTIONS) $< $(C_COMPILER_OUTPUT) 278 290 extras-static$(O): extras.c chicken.h $(CHICKEN_CONFIG_H) 279 291 $(C_COMPILER) $(C_COMPILER_OPTIONS) $(C_COMPILER_PTABLES_OPTIONS) $(INCLUDES) \ … … 300 312 $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) \ 301 313 $(C_COMPILER_BUILD_RUNTIME_OPTIONS) $< $(C_COMPILER_OUTPUT) 302 regex-static$(O): regex.c chicken.h $(CHICKEN_CONFIG_H) pcre/pcre.h314 regex-static$(O): regex.c chicken.h $(CHICKEN_CONFIG_H) 303 315 $(C_COMPILER) $(C_COMPILER_OPTIONS) $(C_COMPILER_PTABLES_OPTIONS) $(PCRE_INCLUDES) \ 304 316 $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) \ … … 361 373 $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) \ 362 374 $(C_COMPILER_BUILD_UNSAFE_RUNTIME_OPTIONS) $< $(C_COMPILER_OUTPUT) 375 ufiles-static$(O): ufiles.c chicken.h $(CHICKEN_CONFIG_H) 376 $(C_COMPILER) $(C_COMPILER_OPTIONS) $(C_COMPILER_PTABLES_OPTIONS) $(INCLUDES) \ 377 $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) \ 378 $(C_COMPILER_BUILD_UNSAFE_RUNTIME_OPTIONS) $< $(C_COMPILER_OUTPUT) 363 379 uextras-static$(O): uextras.c chicken.h $(CHICKEN_CONFIG_H) 364 380 $(C_COMPILER) $(C_COMPILER_OPTIONS) $(C_COMPILER_PTABLES_OPTIONS) $(INCLUDES) \ … … 381 397 $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) \ 382 398 $(C_COMPILER_BUILD_UNSAFE_RUNTIME_OPTIONS) $< $(C_COMPILER_OUTPUT) 383 uregex-static$(O): uregex.c chicken.h $(CHICKEN_CONFIG_H) pcre/pcre.h399 uregex-static$(O): uregex.c chicken.h $(CHICKEN_CONFIG_H) 384 400 $(C_COMPILER) $(C_COMPILER_OPTIONS) $(C_COMPILER_PTABLES_OPTIONS) $(INCLUDES) \ 385 401 $(C_COMPILER_COMPILE_OPTION) $(C_COMPILER_OPTIMIZATION_OPTIONS) $(PCRE_INCLUDES) \ … … 452 468 $(HOST_C_COMPILER_COMPILE_OPTION) $(HOST_C_COMPILER_OPTIMIZATION_OPTIONS) $(HOST_C_COMPILER_SHARED_OPTIONS) \ 453 469 $(HOST_C_COMPILER_BUILD_RUNTIME_OPTIONS) $< $(HOST_C_COMPILER_OUTPUT) 470 files.import$(O): files.import.c chicken.h $(CHICKEN_CONFIG_H) 471 $(HOST_C_COMPILER) $(HOST_C_COMPILER_OPTIONS) $(HOST_C_COMPILER_PTABLES_OPTIONS) $(INCLUDES) -DC_SHARED \ 472 $(HOST_C_COMPILER_COMPILE_OPTION) $(HOST_C_COMPILER_OPTIMIZATION_OPTIONS) $(HOST_C_COMPILER_SHARED_OPTIONS) \ 473 $(HOST_C_COMPILER_BUILD_RUNTIME_OPTIONS) $< $(HOST_C_COMPILER_OUTPUT) 454 474 posix.import$(O): posix.import.c chicken.h $(CHICKEN_CONFIG_H) 455 475 $(HOST_C_COMPILER) $(HOST_C_COMPILER_OPTIONS) $(HOST_C_COMPILER_PTABLES_OPTIONS) $(INCLUDES) -DC_SHARED \ … … 580 600 # pcre objects 581 601 582 pcre/pcre_compile$(O): pcre/pcre_compile.c pcre/pcre_internal.h pcre/config.h $(CHICKEN_CONFIG_H) pcre/pcre.h pcre/ucp.h583 $(C_COMPILER) $(C_COMPILER_OPTIONS) $(PCRE_INCLUDES) $(C_COMPILER_COMPILE_OPTION) \ 584 $(C_COMPILER_OPTIMIZATION_OPTIONS) $(C_COMPILER_SHARED_OPTIONS) $< $(C_COMPILER_OUTPUT) \ 585 $(C_COMPILER_PCRE_OPTIONS) 586 pcre/pcre_config$(O): pcre/pcre_config.c pcre/pcre_internal.h pcre/config.h $(CHICKEN_CONFIG_H) pcre/pcre.h pcre/ucp.h587 $(C_COMPILER) $(C_COMPILER_OPTIONS) $(PCRE_INCLUDES) $(C_COMPILER_COMPILE_OPTION) \ 588 $(C_COMPILER_OPTIMIZATION_OPTIONS) $(C_COMPILER_SHARED_OPTIONS) $< $(C_COMPILER_OUTPUT) \ 589 $(C_COMPILER_PCRE_OPTIONS) 590 pcre/pcre_dfa_exec$(O): pcre/pcre_dfa_exec.c pcre/pcre_internal.h pcre/config.h $(CHICKEN_CONFIG_H) pcre/pcre.h pcre/ucp.h591 $(C_COMPILER) $(C_COMPILER_OPTIONS) $(PCRE_INCLUDES) $(C_COMPILER_COMPILE_OPTION) \ 592 $(C_COMPILER_OPTIMIZATION_OPTIONS) $(C_COMPILER_SHARED_OPTIONS) $< $(C_COMPILER_OUTPUT) \ 593 $(C_COMPILER_PCRE_OPTIONS) 594 pcre/pcre_exec$(O): pcre/pcre_exec.c pcre/pcre_internal.h pcre/config.h $(CHICKEN_CONFIG_H) pcre/pcre.h pcre/ucp.h595 $(C_COMPILER) $(C_COMPILER_OPTIONS) $(PCRE_INCLUDES) $(C_COMPILER_COMPILE_OPTION) \ 596 $(C_COMPILER_OPTIMIZATION_OPTIONS) $(C_COMPILER_SHARED_OPTIONS) $< $(C_COMPILER_OUTPUT) \ 597 $(C_COMPILER_PCRE_OPTIONS) 598 pcre/pcre_fullinfo$(O): pcre/pcre_fullinfo.c pcre/pcre_internal.h pcre/config.h $(CHICKEN_CONFIG_H) pcre/pcre.h pcre/ucp.h599 $(C_COMPILER) $(C_COMPILER_OPTIONS) $(PCRE_INCLUDES) $(C_COMPILER_COMPILE_OPTION) \ 600 $(C_COMPILER_OPTIMIZATION_OPTIONS) $(C_COMPILER_SHARED_OPTIONS) $< $(C_COMPILER_OUTPUT) \ 601 $(C_COMPILER_PCRE_OPTIONS) 602 pcre/pcre_get$(O): pcre/pcre_get.c pcre/pcre_internal.h pcre/config.h $(CHICKEN_CONFIG_H) pcre/pcre.h pcre/ucp.h603 $(C_COMPILER) $(C_COMPILER_OPTIONS) $(PCRE_INCLUDES) $(C_COMPILER_COMPILE_OPTION) \ 604 $(C_COMPILER_OPTIMIZATION_OPTIONS) $(C_COMPILER_SHARED_OPTIONS) $< $(C_COMPILER_OUTPUT) \ 605 $(C_COMPILER_PCRE_OPTIONS) 606 pcre/pcre_globals$(O): pcre/pcre_globals.c pcre/pcre_internal.h pcre/config.h $(CHICKEN_CONFIG_H) pcre/pcre.h pcre/ucp.h607 $(C_COMPILER) $(C_COMPILER_OPTIONS) $(PCRE_INCLUDES) $(C_COMPILER_COMPILE_OPTION) \ 608 $(C_COMPILER_OPTIMIZATION_OPTIONS) $(C_COMPILER_SHARED_OPTIONS) $< $(C_COMPILER_OUTPUT) \ 609 $(C_COMPILER_PCRE_OPTIONS) 610 pcre/pcre_info$(O): pcre/pcre_info.c pcre/pcre_internal.h pcre/config.h $(CHICKEN_CONFIG_H) pcre/pcre.h pcre/ucp.h611 $(C_COMPILER) $(C_COMPILER_OPTIONS) $(PCRE_INCLUDES) $(C_COMPILER_COMPILE_OPTION) \ 612 $(C_COMPILER_OPTIMIZATION_OPTIONS) $(C_COMPILER_SHARED_OPTIONS) $< $(C_COMPILER_OUTPUT) \ 613 $(C_COMPILER_PCRE_OPTIONS) 614 pcre/pcre_maketables$(O): pcre/pcre_maketables.c pcre/pcre_internal.h pcre/config.h $(CHICKEN_CONFIG_H) pcre/pcre.h pcre/ucp.h615 $(C_COMPILER) $(C_COMPILER_OPTIONS) $(PCRE_INCLUDES) $(C_COMPILER_COMPILE_OPTION) \ 616 $(C_COMPILER_OPTIMIZATION_OPTIONS) $(C_COMPILER_SHARED_OPTIONS) $< $(C_COMPILER_OUTPUT) \ 617 $(C_COMPILER_PCRE_OPTIONS) 618 pcre/pcre_newline$(O): pcre/pcre_newline.c pcre/pcre_internal.h pcre/config.h $(CHICKEN_CONFIG_H) pcre/pcre.h pcre/ucp.h602 $(PCRE_DIR)/pcre_compile$(O): $(PCRE_DIR)/pcre_compile.c $(PCRE_DIR)/pcre_internal.h $(PCRE_DIR)/config.h $(CHICKEN_CONFIG_H) $(PCRE_DIR)/pcre.h $(PCRE_DIR)/ucp.h 603 $(C_COMPILER) $(C_COMPILER_OPTIONS) $(PCRE_INCLUDES) $(C_COMPILER_COMPILE_OPTION) \ 604 $(C_COMPILER_OPTIMIZATION_OPTIONS) $(C_COMPILER_SHARED_OPTIONS) $< $(C_COMPILER_OUTPUT) \ 605 $(C_COMPILER_PCRE_OPTIONS) 606 $(PCRE_DIR)/pcre_config$(O): $(PCRE_DIR)/pcre_config.c $(PCRE_DIR)/pcre_internal.h $(PCRE_DIR)/config.h $(CHICKEN_CONFIG_H) $(PCRE_DIR)/pcre.h $(PCRE_DIR)/ucp.h 607 $(C_COMPILER) $(C_COMPILER_OPTIONS) $(PCRE_INCLUDES) $(C_COMPILER_COMPILE_OPTION) \ 608 $(C_COMPILER_OPTIMIZATION_OPTIONS) $(C_COMPILER_SHARED_OPTIONS) $< $(C_COMPILER_OUTPUT) \ 609 $(C_COMPILER_PCRE_OPTIONS) 610 $(PCRE_DIR)/pcre_dfa_exec$(O): $(PCRE_DIR)/pcre_dfa_exec.c $(PCRE_DIR)/pcre_internal.h $(PCRE_DIR)/config.h $(CHICKEN_CONFIG_H) $(PCRE_DIR)/pcre.h $(PCRE_DIR)/ucp.h 611 $(C_COMPILER) $(C_COMPILER_OPTIONS) $(PCRE_INCLUDES) $(C_COMPILER_COMPILE_OPTION) \ 612 $(C_COMPILER_OPTIMIZATION_OPTIONS) $(C_COMPILER_SHARED_OPTIONS) $< $(C_COMPILER_OUTPUT) \ 613 $(C_COMPILER_PCRE_OPTIONS) 614 $(PCRE_DIR)/pcre_exec$(O): $(PCRE_DIR)/pcre_exec.c $(PCRE_DIR)/pcre_internal.h $(PCRE_DIR)/config.h $(CHICKEN_CONFIG_H) $(PCRE_DIR)/pcre.h $(PCRE_DIR)/ucp.h 615 $(C_COMPILER) $(C_COMPILER_OPTIONS) $(PCRE_INCLUDES) $(C_COMPILER_COMPILE_OPTION) \ 616 $(C_COMPILER_OPTIMIZATION_OPTIONS) $(C_COMPILER_SHARED_OPTIONS) $< $(C_COMPILER_OUTPUT) \ 617 $(C_COMPILER_PCRE_OPTIONS) 618 $(PCRE_DIR)/pcre_fullinfo$(O): $(PCRE_DIR)/pcre_fullinfo.c $(PCRE_DIR)/pcre_internal.h $(PCRE_DIR)/config.h $(CHICKEN_CONFIG_H) $(PCRE_DIR)/pcre.h $(PCRE_DIR)/ucp.h 619 $(C_COMPILER) $(C_COMPILER_OPTIONS) $(PCRE_INCLUDES) $(C_COMPILER_COMPILE_OPTION) \ 620 $(C_COMPILER_OPTIMIZATION_OPTIONS) $(C_COMPILER_SHARED_OPTIONS) $< $(C_COMPILER_OUTPUT) \ 621 $(C_COMPILER_PCRE_OPTIONS) 622 $(PCRE_DIR)/pcre_get$(O): $(PCRE_DIR)/pcre_get.c $(PCRE_DIR)/pcre_internal.h $(PCRE_DIR)/config.h $(CHICKEN_CONFIG_H) $(PCRE_DIR)/pcre.h $(PCRE_DIR)/ucp.h 623 $(C_COMPILER) $(C_COMPILER_OPTIONS) $(PCRE_INCLUDES) $(C_COMPILER_COMPILE_OPTION) \ 624 $(C_COMPILER_OPTIMIZATION_OPTIONS) $(C_COMPILER_SHARED_OPTIONS) $< $(C_COMPILER_OUTPUT) \ 625 $(C_COMPILER_PCRE_OPTIONS) 626 $(PCRE_DIR)/pcre_globals$(O): $(PCRE_DIR)/pcre_globals.c $(PCRE_DIR)/pcre_internal.h $(PCRE_DIR)/config.h $(CHICKEN_CONFIG_H) $(PCRE_DIR)/pcre.h $(PCRE_DIR)/ucp.h 627 $(C_COMPILER) $(C_COMPILER_OPTIONS) $(PCRE_INCLUDES) $(C_COMPILER_COMPILE_OPTION) \ 628 $(C_COMPILER_OPTIMIZATION_OPTIONS) $(C_COMPILER_SHARED_OPTIONS) $< $(C_COMPILER_OUTPUT) \ 629 $(C_COMPILER_PCRE_OPTIONS) 630 $(PCRE_DIR)/pcre_info$(O): $(PCRE_DIR)/pcre_info.c $(PCRE_DIR)/pcre_internal.h $(PCRE_DIR)/config.h $(CHICKEN_CONFIG_H) $(PCRE_DIR)/pcre.h $(PCRE_DIR)/ucp.h 631 $(C_COMPILER) $(C_COMPILER_OPTIONS) $(PCRE_INCLUDES) $(C_COMPILER_COMPILE_OPTION) \ 632 $(C_COMPILER_OPTIMIZATION_OPTIONS) $(C_COMPILER_SHARED_OPTIONS) $< $(C_COMPILER_OUTPUT) \ 633 $(C_COMPILER_PCRE_OPTIONS) 634 $(PCRE_DIR)/pcre_maketables$(O): $(PCRE_DIR)/pcre_maketables.c $(PCRE_DIR)/pcre_internal.h $(PCRE_DIR)/config.h $(CHICKEN_CONFIG_H) $(PCRE_DIR)/pcre.h $(PCRE_DIR)/ucp.h 635 $(C_COMPILER) $(C_COMPILER_OPTIONS) $(PCRE_INCLUDES) $(C_COMPILER_COMPILE_OPTION) \ 636 $(C_COMPILER_OPTIMIZATION_OPTIONS) $(C_COMPILER_SHARED_OPTIONS) $< $(C_COMPILER_OUTPUT) \ 637 $(C_COMPILER_PCRE_OPTIONS) 638 $(PCRE_DIR)/pcre_newline$(O): $(PCRE_DIR)/pcre_newline.c $(PCRE_DIR)/pcre_internal.h $(PCRE_DIR)/config.h $(CHICKEN_CONFIG_H) $(PCRE_DIR)/pcre.h $(PCRE_DIR)/ucp.h 619 639 $(C_COMPILER) $(C_COMPILER_OPTIONS) $(PCRE_INCLUDES) $(C_COMPILER_COMPILE_OPTION) \ 620 640 $(C_COMPILER_OPTIMIZATION_OPTIONS) $(C_COMPILER_SHARED_OPTIONS) $< $(C_COMPILER_OUTPUT) \ … … 931 951 $(ILIBDIR)/libuchicken$(A) 932 952 endif 933 $(INSTALL_PROGRAM) $(INSTALL_PROGRAM_FILE_OPTIONS) chicken.h $(DESTDIR)$(IINCDIR)953 $(INSTALL_PROGRAM) $(INSTALL_PROGRAM_FILE_OPTIONS) $(SRCDIR)/chicken.h $(DESTDIR)$(IINCDIR) 934 954 $(INSTALL_PROGRAM) $(INSTALL_PROGRAM_FILE_OPTIONS) $(CHICKEN_CONFIG_H) $(DESTDIR)$(IINCDIR) 935 955 ifndef STATICBUILD … … 982 1002 $(CHICKEN_STATUS_PROGRAM)$(EXE) 983 1003 endif 984 $(MAKE) NEEDS_RELINKING=no RUNTIME_LINKER_PATH=$(LIBDIR) install1004 $(MAKE) -f $(SRCDIR)/Makefile.$(PLATFORM) NEEDS_RELINKING=no RUNTIME_LINKER_PATH=$(LIBDIR) install 985 1005 $(MAKE_WRITABLE_COMMAND) $(CHICKEN_PROGRAM)$(EXE) $(CSI_PROGRAM)$(EXE) \ 986 1006 $(CSC_PROGRAM)$(EXE) $(CHICKEN_PROFILE_PROGRAM)$(EXE) … … 1033 1053 $(POSTINSTALL_PROGRAM) $(POSTINSTALL_PROGRAM_FLAGS) $(DESTDIR)$(IEGGDIR)/data-structures.import.so 1034 1054 $(POSTINSTALL_PROGRAM) $(POSTINSTALL_PROGRAM_FLAGS) $(DESTDIR)$(IEGGDIR)/ports.import.so 1055 $(POSTINSTALL_PROGRAM) $(POSTINSTALL_PROGRAM_FLAGS) $(DESTDIR)$(IEGGDIR)/files.import.so 1035 1056 $(POSTINSTALL_PROGRAM) $(POSTINSTALL_PROGRAM_FLAGS) $(DESTDIR)$(IEGGDIR)/posix.import.so 1036 1057 $(POSTINSTALL_PROGRAM) $(POSTINSTALL_PROGRAM_FLAGS) $(DESTDIR)$(IEGGDIR)/srfi-13.import.so … … 1065 1086 endif 1066 1087 endif 1067 $(INSTALL_PROGRAM) $(INSTALL_PROGRAM_FILE_OPTIONS) chicken.1 $(DESTDIR)$(IMANDIR) 1068 $(INSTALL_PROGRAM) $(INSTALL_PROGRAM_FILE_OPTIONS) csi.1 $(DESTDIR)$(IMANDIR) 1069 $(INSTALL_PROGRAM) $(INSTALL_PROGRAM_FILE_OPTIONS) csc.1 $(DESTDIR)$(IMANDIR) 1070 $(INSTALL_PROGRAM) $(INSTALL_PROGRAM_FILE_OPTIONS) chicken-setup.1 $(DESTDIR)$(IMANDIR) 1071 $(INSTALL_PROGRAM) $(INSTALL_PROGRAM_FILE_OPTIONS) chicken-profile.1 $(DESTDIR)$(IMANDIR) 1072 $(INSTALL_PROGRAM) $(INSTALL_PROGRAM_FILE_OPTIONS) chicken-bug.1 $(DESTDIR)$(IMANDIR) 1088 $(INSTALL_PROGRAM) $(INSTALL_PROGRAM_FILE_OPTIONS) $(SRCDIR)/chicken.1 $(DESTDIR)$(IMANDIR) 1089 $(INSTALL_PROGRAM) $(INSTALL_PROGRAM_FILE_OPTIONS) $(SRCDIR)/csi.1 $(DESTDIR)$(IMANDIR) 1090 $(INSTALL_PROGRAM) $(INSTALL_PROGRAM_FILE_OPTIONS) $(SRCDIR)/csc.1 $(DESTDIR)$(IMANDIR) 1091 ifndef BUILD_SETUP_TOOLS 1092 $(INSTALL_PROGRAM) $(INSTALL_PROGRAM_FILE_OPTIONS) $(SRCDIR)/chicken-setup.1 $(DESTDIR)$(IMANDIR) 1093 else 1094 $(INSTALL_PROGRAM) $(INSTALL_PROGRAM_FILE_OPTIONS) $(SRCDIR)/chicken-install.1 $(DESTDIR)$(IMANDIR) 1095 $(INSTALL_PROGRAM) $(INSTALL_PROGRAM_FILE_OPTIONS) $(SRCDIR)/chicken-uninstall.1 $(DESTDIR)$(IMANDIR) 1096 $(INSTALL_PROGRAM) $(INSTALL_PROGRAM_FILE_OPTIONS) $(SRCDIR)/chicken-status.1 $(DESTDIR)$(IMANDIR) 1097 endif 1098 $(INSTALL_PROGRAM) $(INSTALL_PROGRAM_FILE_OPTIONS) $(SRCDIR)/chicken-profile.1 $(DESTDIR)$(IMANDIR) 1099 $(INSTALL_PROGRAM) $(INSTALL_PROGRAM_FILE_OPTIONS) $(SRCDIR)/chicken-bug.1 $(DESTDIR)$(IMANDIR) 1073 1100 $(MAKEDIR_COMMAND) $(MAKEDIR_COMMAND_OPTIONS) $(DESTDIR)$(IDOCDIR)/html 1074 -$(INSTALL_PROGRAM) $(INSTALL_PROGRAM_FILE_OPTIONS) html/* $(DESTDIR)$(IDOCDIR)/html1075 -$(INSTALL_PROGRAM) $(INSTALL_PROGRAM_FILE_OPTIONS) chicken.pdf $(DESTDIR)$(IDOCDIR)1076 $(INSTALL_PROGRAM) $(INSTALL_PROGRAM_FILE_OPTIONS) README $(DESTDIR)$(IDOCDIR)1077 $(INSTALL_PROGRAM) $(INSTALL_PROGRAM_FILE_OPTIONS) LICENSE $(DESTDIR)$(IDOCDIR)1078 $(INSTALL_PROGRAM) $(INSTALL_PROGRAM_FILE_OPTIONS) chicken-more-macros.scm $(DESTDIR)$(IDATADIR)1101 -$(INSTALL_PROGRAM) $(INSTALL_PROGRAM_FILE_OPTIONS) $(SRCDIR)/html/* $(DESTDIR)$(IDOCDIR)/html 1102 -$(INSTALL_PROGRAM) $(INSTALL_PROGRAM_FILE_OPTIONS) $(SRCDIR)/chicken.pdf $(DESTDIR)$(IDOCDIR) 1103 $(INSTALL_PROGRAM) $(INSTALL_PROGRAM_FILE_OPTIONS) $(SRCDIR)/README $(DESTDIR)$(IDOCDIR) 1104 $(INSTALL_PROGRAM) $(INSTALL_PROGRAM_FILE_OPTIONS) $(SRCDIR)/LICENSE $(DESTDIR)$(IDOCDIR) 1105 $(INSTALL_PROGRAM) $(INSTALL_PROGRAM_FILE_OPTIONS) $(SRCDIR)/chicken-more-macros.scm $(DESTDIR)$(IDATADIR) 1079 1106 -$(INSTALL_PROGRAM) $(INSTALL_PROGRAM_FILE_OPTIONS) chicken.info $(DESTDIR)$(IINFODIR) 1080 1107 $(INSTALLINFO_PROGRAM) $(INSTALLINFO_PROGRAM_OPTIONS) --infodir=$(DESTDIR)$(IINFODIR) chicken.info 1081 1108 ifdef WINDOWS 1082 $(INSTALL_PROGRAM) $(INSTALL_PROGRAM_EXECUTABLE_OPTIONS) csibatch.bat $(DESTDIR)$(IBINDIR)1109 $(INSTALL_PROGRAM) $(INSTALL_PROGRAM_EXECUTABLE_OPTIONS) $(SRCDIR)/csibatch.bat $(DESTDIR)$(IBINDIR) 1083 1110 endif 1084 1111 endif … … 1161 1188 $(CHICKEN) $< $(CHICKEN_LIBRARY_OPTIONS) -output-file $@ -extend private-namespace.scm 1162 1189 ports.c: ports.scm private-namespace.scm 1190 $(CHICKEN) $< $(CHICKEN_LIBRARY_OPTIONS) -output-file $@ -extend private-namespace.scm 1191 files.c: files.scm private-namespace.scm 1163 1192 $(CHICKEN) $< $(CHICKEN_LIBRARY_OPTIONS) -output-file $@ -extend private-namespace.scm 1164 1193 extras.c: extras.scm private-namespace.scm … … 1203 1232 uports.c: ports.scm private-namespace.scm unsafe-declarations.scm 1204 1233 $(CHICKEN) $< $(CHICKEN_LIBRARY_OPTIONS) $(CHICKEN_UNSAFE_OPTIONS) -output-file $@ 1234 ufiles.c: files.scm private-namespace.scm unsafe-declarations.scm 1235 $(CHICKEN) $< $(CHICKEN_LIBRARY_OPTIONS) $(CHICKEN_UNSAFE_OPTIONS) -output-file $@ 1205 1236 uextras.c: extras.scm private-namespace.scm unsafe-declarations.scm 1206 1237 $(CHICKEN) $< $(CHICKEN_LIBRARY_OPTIONS) $(CHICKEN_UNSAFE_OPTIONS) -output-file $@ -extend private-namespace.scm … … 1242 1273 ports.import.c: ports.import.scm 1243 1274 $(CHICKEN) $< $(CHICKEN_IMPORT_LIBRARY_OPTIONS) -output-file $@ 1275 files.import.c: files.import.scm 1276 $(CHICKEN) $< $(CHICKEN_IMPORT_LIBRARY_OPTIONS) -output-file $@ 1244 1277 posix.import.c: posix.import.scm 1245 1278 $(CHICKEN) $< $(CHICKEN_IMPORT_LIBRARY_OPTIONS) -output-file $@ … … 1323 1356 .PHONY: distfiles dist 1324 1357 1325 distfiles: buildsvnrevision library.c eval.c expand.c data-structures.c ports.c extras.c lolevel.c utils.c \1358 distfiles: buildsvnrevision library.c eval.c expand.c data-structures.c ports.c files.c extras.c lolevel.c utils.c \ 1326 1359 tcp.c srfi-1.c srfi-4.c srfi-13.c srfi-14.c srfi-18.c srfi-69.c \ 1327 1360 posixunix.c posixwin.c regex.c scheduler.c profiler.c stub.c \ 1328 ulibrary.c ueval.c udata-structures.c uports.c u extras.c ulolevel.c \1361 ulibrary.c ueval.c udata-structures.c uports.c ufiles.c uextras.c ulolevel.c \ 1329 1362 uutils.c utcp.c usrfi-1.c usrfi-4.c usrfi-13.c usrfi-14.c \ 1330 1363 usrfi-18.c usrfi-69.c uposixunix.c uposixwin.c uregex.c \ … … 1351 1384 -$(REMOVE_COMMAND) $(REMOVE_COMMAND_OPTIONS) chicken$(EXE) csi$(EXE) csc$(EXE) \ 1352 1385 chicken-setup$(EXE) chicken-profile$(EXE) csi-static$(EXE) \ 1386 chicken-install$(EXE) chicken-uninstall$(EXE) chicken-status$(EXE) \ 1353 1387 csc-static$(EXE) chicken-static$(EXE) chicken-bug$(EXE) chicken.info *$(O) \ 1354 1388 $(LIBCHICKEN_SO_FILE) $(LIBUCHICKEN_SO_FILE) $(LIBCHICKENGUI_SO_FILE) \ 1355 libchicken$(A) libuchicken$(A) libchickengui$(A) $(PROGRAM_IMPORT_LIBRARIES) \1389 libchicken$(A) libuchicken$(A) libchickengui$(A) libchicken$(SO) $(PROGRAM_IMPORT_LIBRARIES) \ 1356 1390 $(LIBCHICKEN_IMPORT_LIBRARY) $(LIBUCHICKEN_IMPORT_LIBRARY) $(LIBCHICKENGUI_IMPORT_LIBRARY) \ 1357 1391 $(MSVC_CHICKEN_EXPORT_FILES) chicken.info $(CLEAN_PCRE) $(CLEAN_MINGW_LIBS) \ … … 1361 1395 1362 1396 spotless: distclean 1363 -$(REMOVE_COMMAND) $(REMOVE_COMMAND_OPTIONS) library.c eval.c data-structures.c ports.c extras.c lolevel.c utils.c \1397 -$(REMOVE_COMMAND) $(REMOVE_COMMAND_OPTIONS) library.c eval.c data-structures.c ports.c files.c extras.c lolevel.c utils.c \ 1364 1398 tcp.c srfi-1.c srfi-4.c srfi-13.c srfi-14.c srfi-18.c srfi-69.c expand.c \ 1365 1399 posixunix.c posixwin.c regex.c scheduler.c profiler.c stub.c \ 1366 ulibrary.c ueval.c udata-structures.c uports.c u extras.c ulolevel.c \1400 ulibrary.c ueval.c udata-structures.c uports.c ufiles.c uextras.c ulolevel.c \ 1367 1401 uutils.c utcp.c usrfi-1.c usrfi-4.c usrfi-13.c usrfi-14.c \ 1368 1402 usrfi-18.c usrfi-69.c uposixunix.c uposixwin.c uregex.c chicken-profile.c chicken-setup.c chicken-bug.c \ … … 1387 1421 compiler-check: 1388 1422 @echo "======================================== packing ..." 1389 $(MAKE) dist1423 $(MAKE) -f $(SRCDIR)/Makefile.$(PLATFORM) dist 1390 1424 $(REMOVE_COMMAND $(REMOVE_COMMAND_RECURSIVE_OPTIONS) tests/chicken-* 1391 1425 tar -C tests -xzf `ls -t chicken-*.tar.gz | head -1` 1392 1426 @echo "======================================== building stage 1 ..." 1393 $(MAKE) STATICBUILD=1 -C tests/chicken-* confclean all1427 $(MAKE) -f $(SRCDIR)/Makefile.$(PLATFORM) STATICBUILD=1 -C tests/chicken-* confclean all 1394 1428 touch tests/chicken-*/*.scm 1395 1429 @echo "======================================== building stage 2 ..." 1396 $(MAKE) STATICBUILD=1 -C tests/chicken-* confclean all1430 $(MAKE) -f $(SRCDIR)/Makefile.$(PLATFORM) STATICBUILD=1 -C tests/chicken-* confclean all 1397 1431 cat tests/chicken-*/*.c >tests/stage2.out 1398 1432 @echo "======================================== building stage 3 ..." 1399 $(MAKE) STATICBUILD=1 -C tests/chicken-* confclean all1433 $(MAKE) -f $(SRCDIR)/Makefile.$(PLATFORM) STATICBUILD=1 -C tests/chicken-* confclean all 1400 1434 cat tests/chicken-*/*.c >tests/stage3.out 1401 1435 diff tests/stage2.out tests/stage3.out >tests/stages.diff … … 1408 1442 1409 1443 bootstrap: bootstrap.tar.gz 1410 gzip -d -c bootstrap.tar.gz | tar xvf -1444 gzip -d -c $(SRCDIR)/bootstrap.tar.gz | tar xvf - 1411 1445 touch *.c 1412 $(MAKE) -f Makefile.$(PLATFORM) STATICBUILD=1 chicken$(EXE)1446 $(MAKE) -f $(SRCDIR)/Makefile.$(PLATFORM) STATICBUILD=1 chicken$(EXE) 1413 1447 cp chicken$(EXE) chicken-boot$(EXE) 1414 1448 touch *.scm 1415 1449 1416 1450 bootstrap.tar.gz: posixunix.c posixwin.c $(IMPORT_LIBRARIES:=.import.c) 1417 tar cfz bootstrap.tar.gz library.c eval.c data-structures.c ports.c extras.c lolevel.c utils.c tcp.c \1451 tar cfz bootstrap.tar.gz library.c eval.c data-structures.c ports.c files.c extras.c lolevel.c utils.c tcp.c \ 1418 1452 srfi-1.c srfi-4.c srfi-13.c srfi-14.c srfi-18.c srfi-69.c posixunix.c posixwin.c regex.c \ 1419 1453 scheduler.c profiler.c stub.c expand.c $(COMPILER_OBJECTS_1:=.c) -
chicken/branches/hygienic/runtime.c
r11149 r11646 7596 7596 /* check for rational representation: */ 7597 7597 if((eptr = C_strchr(sptr, '/')) != NULL) { 7598 if (eptr == sptr) { 7599 n = C_SCHEME_FALSE; 7600 goto fini; 7601 } 7598 7602 *eptr = '\0'; 7599 7603 ratp = 1; -
chicken/branches/hygienic/srfi-18.scm
r10712 r11646 251 251 (when (eq? thread ##sys#primordial-thread) 252 252 ((##sys#exit-handler)) ) 253 (##sys#set islot thread 2 (list (##core#undefined)))253 (##sys#setslot thread 2 (list (##core#undefined))) 254 254 (##sys#setslot thread 7 (##sys#make-structure 'condition '(terminated-thread-exception) '())) 255 255 (##sys#thread-kill! thread 'terminated) -
chicken/branches/hygienic/svnrevision.sh
r9498 r11646 27 27 28 28 29 LANG="C" 30 29 31 if test -d ".svn" ; 30 32 then -
chicken/branches/hygienic/utils.import.scm
r10788 r11646 27 27 (##sys#register-primitive-module 28 28 'utils 29 '(absolute-pathname? 30 apropos 29 '(apropos 31 30 apropos-list 32 create-temporary-file33 decompose-pathname34 delete-file*35 directory-null?36 31 for-each-argv-line 37 32 for-each-line 38 make-absolute-pathname39 make-broadcast-port40 make-concatenated-port41 make-pathname42 pathname-directory43 pathname-extension44 pathname-file45 pathname-replace-directory46 pathname-replace-extension47 pathname-replace-file48 pathname-strip-directory49 pathname-strip-extension50 port-fold51 port-for-each52 port-map53 33 read-all 54 34 system*)) -
chicken/branches/hygienic/utils.scm
r11524 r11646 28 28 (declare 29 29 (unit utils) 30 (uses regex data-structures extras )30 (uses regex data-structures extras files) 31 31 (usual-integrations) 32 32 (fixnum) … … 174 174 175 175 176 ;;; Like `delete-file', but does nothing if the file doesn't exist:177 178 (define delete-file*179 (let ([file-exists? file-exists?]180 [delete-file delete-file] )181 (lambda (file)182 (and (file-exists? file) (delete-file file) #t) ) ) )183 184 ;;; file-copy and file-move : they do what you'd think.185 (define (file-copy origfile newfile #!optional (clobber #f) (blocksize 1024))186 (##sys#check-string origfile 'file-copy)187 (##sys#check-string newfile 'file-copy)188 (##sys#check-number blocksize 'file-copy)189 (or (and (integer? blocksize) (> blocksize 0))190 (##sys#error (string-append191 "invalid blocksize given: not a positive integer - "192 (number->string blocksize))))193 (or (file-exists? origfile)194 (##sys#error (string-append "origfile does not exist - " origfile)))195 (and (file-exists? newfile)196 (or clobber197 (##sys#error (string-append198 "newfile exists but clobber is false - "199 newfile))))200 (let* ((i (condition-case (open-input-file origfile)201 (val ()202 (##sys#error (string-append203 "could not open origfile for read - "204 origfile)))))205 (o (condition-case (open-output-file newfile)206 (val ()207 (##sys#error (string-append208 "could not open newfile for write - "209 newfile)))))210 (s (make-string blocksize)))211 (let loop ((d (read-string! blocksize s i))212 (l 0))213 (if (= 0 d)214 (begin215 (close-input-port i)216 (close-output-port o)217 l)218 (begin219 (condition-case (write-string s d o)220 (val ()221 (close-input-port i)222 (close-output-port o)223 (##sys#error (string-append224 "error writing file starting at "225 (number->string l)))))226 (loop (read-string! blocksize s i) (+ d l)))))))227 228 (define (file-move origfile newfile #!optional (clobber #f) (blocksize 1024))229 (##sys#check-string origfile 'file-move)230 (##sys#check-string newfile 'file-move)231 (##sys#check-number blocksize 'file-move)232 (or (and (integer? blocksize) (> blocksize 0))233 (##sys#error (string-append234 "invalid blocksize given: not a positive integer - "235 (number->string blocksize))))236 (or (file-exists? origfile)237 (##sys#error (string-append "origfile does not exist - " origfile)))238 (and (file-exists? newfile)239 (or clobber240 (##sys#error (string-append241 "newfile exists but clobber is false - "242 newfile))))243 (let* ((i (condition-case (open-input-file origfile)244 (val ()245 (##sys#error (string-append246 "could not open origfile for read - "247 origfile)))))248 (o (condition-case (open-output-file newfile)249 (val ()250 (##sys#error (string-append251 "could not open newfile for write - "252 newfile)))))253 (s (make-string blocksize)))254 (let loop ((d (read-string! blocksize s i))255 (l 0))256 (if (= 0 d)257 (begin258 (close-input-port i)259 (close-output-port o)260 (condition-case (delete-file origfile)261 (val ()262 (##sys#error (string-append263 "could not remove origfile - "264 origfile))))265 l)266 (begin267 (condition-case (write-string s d o)268 (val ()269 (close-input-port i)270 (close-output-port o)271 (##sys#error (string-append272 "error writing file starting at "273 (number->string l)))))274 (loop (read-string! blocksize s i) (+ d l)))))))275 276 ;;; Pathname operations:277 278 (define absolute-pathname?279 (let ([string-match string-match]280 [regexp regexp]281 [string-append string-append])282 (let* ([drv (if ##sys#windows-platform "([A-Za-z]:)?" "")]283 [patt (make-anchored-pattern (string-append drv "[\\/\\\\].*"))]284 [rx (regexp patt)] )285 (lambda (pn)286 (##sys#check-string pn 'absolute-pathname?)287 (pair? (string-match rx pn)) ) ) ) )288 289 (define (chop-pds str pds)290 (and str291 (let ((len (##sys#size str))292 (pdslen (if pds (##sys#size pds) 1)))293 (if (and (fx>= len 1)294 (if pds295 (##core#inline "C_substring_compare" str pds (fx- len pdslen) 0 pdslen)296 (memq (##core#inline "C_subchar" str (fx- len pdslen))297 '(#\/ #\\) ) ) )298 (##sys#substring str 0 (fx- len pdslen))299 str) ) ) )300 301 (define make-pathname)302 (define make-absolute-pathname)303 (let ([string-append string-append]304 [absolute-pathname? absolute-pathname?]305 [def-pds "/"] )306 307 (define (conc-dirs dirs pds)308 (##sys#check-list dirs 'make-pathname)309 (let loop ([strs dirs])310 (if (null? strs)311 ""312 (let ((s1 (car strs)))313 (if (zero? (string-length s1))314 (loop (cdr strs))315 (string-append316 (chop-pds (car strs) pds)317 (or pds def-pds)318 (loop (cdr strs))) ) ) ) ) )319 320 (define (canonicalize-dirs dirs pds)321 (cond [(or (not dirs) (null? dirs)) ""]322 [(string? dirs) (conc-dirs (list dirs) pds)]323 [else (conc-dirs dirs pds)] ) )324 325 (define (_make-pathname loc dir file ext pds)326 (let ([ext (or ext "")]327 [file (or file "")]328 [pdslen (if pds (##sys#size pds) 1)] )329 (##sys#check-string dir loc)330 (##sys#check-string file loc)331 (##sys#check-string ext loc)332 (when pds (##sys#check-string pds loc))333 (string-append334 dir335 (if (and (fx>= (##sys#size file) pdslen)336 (if pds337 (##core#inline "C_substring_compare" pds file 0 0 pdslen)338 (memq (##core#inline "C_subchar" file 0) '(#\\ #\/))))339 (##sys#substring file pdslen (##sys#size file))340 file)341 (if (and (fx> (##sys#size ext) 0)342 (not (char=? (##core#inline "C_subchar" ext 0) #\.)) )343 "."344 "")345 ext) ) )346 347 (set! make-pathname348 (lambda (dirs file #!optional ext pds)349 (_make-pathname 'make-pathname (canonicalize-dirs dirs pds) file ext pds)))350 351 (set! make-absolute-pathname352 (lambda (dirs file #!optional ext pds)353 (_make-pathname354 'make-absolute-pathname355 (let ([dir (canonicalize-dirs dirs pds)])356 (if (absolute-pathname? dir)357 dir358 (##sys#string-append (or pds def-pds) dir)) )359 file ext pds) ) ) )360 361 (define decompose-pathname362 (let ([string-match string-match]363 [regexp regexp]364 [string-append string-append])365 (let* ([patt1 "^(.*[\\/\\\\])?([^\\/\\\\]+)(\\.([^\\/\\\\.]+))$"]366 [patt2 "^(.*[\\/\\\\])?((\\.)?[^\\/\\\\]+)$"]367 [rx1 (regexp patt1)]368 [rx2 (regexp patt2)]369 [strip-pds370 (lambda (dir)371 (and dir372 (if (member dir '("/" "\\"))373 dir374 (chop-pds dir #f) ) ) )] )375 (lambda (pn)376 (##sys#check-string pn 'decompose-pathname)377 (if (fx= 0 (##sys#size pn))378 (values #f #f #f)379 (let ([ms (string-match rx1 pn)])380 (if ms381 (values (strip-pds (cadr ms)) (caddr ms) (car (cddddr ms)))382 (let ([ms (string-match rx2 pn)])383 (if ms384 (values (strip-pds (cadr ms)) (caddr ms) #f)385 (values (strip-pds pn) #f #f) ) ) ) ) ) ) ) ) )386 387 (define pathname-directory)388 (define pathname-file)389 (define pathname-extension)390 (define pathname-strip-directory)391 (define pathname-strip-extension)392 (define pathname-replace-directory)393 (define pathname-replace-file)394 (define pathname-replace-extension)395 (let ([decompose-pathname decompose-pathname])396 397 (set! pathname-directory398 (lambda (pn)399 (let-values ([(dir file ext) (decompose-pathname pn)])400 dir) ) )401 402 (set! pathname-file403 (lambda (pn)404 (let-values ([(dir file ext) (decompose-pathname pn)])405 file) ) )406 407 (set! pathname-extension408 (lambda (pn)409 (let-values ([(dir file ext) (decompose-pathname pn)])410 ext) ) )411 412 (set! pathname-strip-directory413 (lambda (pn)414 (let-values ([(dir file ext) (decompose-pathname pn)])415 (make-pathname #f file ext) ) ) )416 417 (set! pathname-strip-extension418 (lambda (pn)419 (let-values ([(dir file ext) (decompose-pathname pn)])420 (make-pathname dir file) ) ) )421 422 (set! pathname-replace-directory423 (lambda (pn dir)424 (let-values ([(_ file ext) (decompose-pathname pn)])425 (make-pathname dir file ext) ) ) )426 427 (set! pathname-replace-file428 (lambda (pn file)429 (let-values ([(dir _ ext) (decompose-pathname pn)])430 (make-pathname dir file ext) ) ) )431 432 (set! pathname-replace-extension433 (lambda (pn ext)434 (let-values ([(dir file _) (decompose-pathname pn)])435 (make-pathname dir file ext) ) ) ) )436 437 (define create-temporary-file438 (let ([getenv getenv]439 [make-pathname make-pathname]440 [file-exists? file-exists?]441 [call-with-output-file call-with-output-file] )442 (lambda (#!optional (ext "tmp"))443 (let ([dir (or (getenv "TMPDIR") (getenv "TEMP") (getenv "TMP") "/tmp")])444 (##sys#check-string ext 'create-temporary-file)445 (let loop ()446 (let* ([n (##sys#fudge 16)]447 [pn (make-pathname dir (##sys#string-append "t" (number->string n 16)) ext)] )448 (cond ((file-exists? pn) (loop))449 (else (call-with-output-file pn (lambda (p) pn)) ) ) ) ) ) ) ) )450 451 ;; Directory string or list only contains path-separators452 ;; and/or current-directory names.453 454 (define (directory-null? dir)455 (let loop ([lst456 (if (list? dir)457 dir ; Don't bother to check for strings here458 (begin459 (##sys#check-string dir 'directory-null?)460 (string-split dir "/\\" #t)))])461 (or (null? lst)462 (and (member (car lst) '("" "."))463 (loop (cdr lst)) ) ) ) )464 465 176 ;;; Handy I/O procedures: 466 177
Note: See TracChangeset
for help on using the changeset viewer.