Changeset 15262 in project for chicken


Ignore:
Timestamp:
07/26/09 01:49:53 (10 years ago)
Author:
felix
Message:

bumped version to 4.1.1; improvements and corrections for compile-file

Location:
chicken/trunk
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • chicken/trunk/README

    r15102 r15262  
    44  (c) 2008-2009, The Chicken Team
    55
    6   version 4.0.9
     6  version 4.1.1
    77
    88
  • chicken/trunk/TODO

    r14940 r15262  
    5050
    5151** tools
    52 *** chicken-bug: SMTP servers not accessible
    53 
    54 ** build
    55 *** somehow get SONAME to work
    56 *** integrate and build/install chicken-base.scm
    57 
    58 ** tests
    59 *** should run without installation
    60 
    61 ** setting nursery default size doesn't seem to work properly (reported by Zbigniew)
     52*** chicken-bug: SMTP servers not accessible (greylisting)
    6253
    6354
     
    8071*** check phase separation and module access
    8172**** see "expander" above
     73*** consider adding support for unnamed modules
    8274
    8375** compiler
    8476*** (csc) generate object-files in /tmp (or TMPDIR)?
     77*** try to improve inlining (single calls should be inlinable)
     78    Currently only "simple" procedures are inlined, possibly because accessed variables
     79    may not be lexically visible but access to globals should ok, or not?
     80*** option ("-M") to compile file as unnamed module (importing scheme + chicken)
    8581
    8682** setup/install
     
    116112*** add support for keyword arguments and check even length and available keywords
    117113
     114** libraries
     115*** analyse usage statistics ("-debug v") of all core libraries
     116
    118117
    119118* wiki
    120119
    121120** compatibility page
    122 
    123 
    124 * extensions
    125 
    126 ** check status of `s48-modules'
    127121
    128122
     
    141135*** needs declaration or option, >= -O2
    142136
    143 ** when inlining, consing arg-list with "list" may make get-keyword possible foldable
     137** when inlining, consing arg-list with "list" may make get-keyword possibly foldable
    144138
    145139** compiler-support for get-keyword ?
  • chicken/trunk/buildversion

    r15074 r15262  
    1 4.0.9
     14.1.1
  • chicken/trunk/manual/The User's Manual

    r15100 r15262  
    77</nowiki>
    88
    9 This is the manual for Chicken Scheme, version 4.0.9
     9This is the manual for Chicken Scheme, version 4.1.1
    1010
    1111; [[Getting started]] : What is CHICKEN and how do I use it?
  • chicken/trunk/manual/Unit utils

    r15246 r15262  
    8181==== compile-file
    8282
    83  [procedure] (compile-file FILENAME [OPTION ...])
     83 [procedure] (compile-file FILENAME #!key options output-file)
    8484
    8585Compiles the Scheme source file {{FILENAME}} into a dynamically
    86 loadable library by invoking the {{csc}} compiler driver, and if the
    87 library can be successfully created, loads the compiled code into the
    88 running process. {{OPTION ...}} may be one or more strings with are
    89 passed as additional command line options to {{csc}}. The compiled
    90 file is stored in a temporary location and will be deleted when
    91 the process exits successfully.
     86loadable library by invoking the {{csc}} compiler driver. If the
     87library can be successfully created, it is loaded into the current
     88Scheme process. {{options}} may be a list of strings which are passed
     89as additional command line options to {{csc}}. If {{output-file}} is
     90not given, then the compiled file is stored in a temporary location
     91and will be deleted when the process exits successfully.
     92When compilation and loading succeeds, the name of the compiled file
     93is returned.
    9294
    93 Note that this procedure is compatible to the {{scheme-compile-file}}
    94 command in {{emacs}}' {{scheme-mode}}.
     95Notes:
     96
     97* loading the same compiled file multiple times is only supported on Linux
     98  in the moment and should be considered unreliable. For this reason, a new temporary
     99  file is created for every invocation of {{compile-file}}, unless an explicit
     100  output file name is given.
     101
     102* this procedure is compatible to the {{scheme-compile-file}} command in {{emacs}}' {{scheme-mode}}.
     103
     104==== compile-file-options
    95105
    96106 [parameter] compile-file-options
     
    98108A parameter that holds a list of default options that should be given
    99109to {{csc}} after invocation of the {{compile-file}} procedure.
    100 The initial default options are {{-scrutinize -O2 -d1}}.
     110The initial default options are {{-scrutinize -O2 -d2}}.
    101111
    102112
  • chicken/trunk/types.db

    r15246 r15262  
    13701370(system* (procedure system* (string #!rest) undefined))
    13711371(qs (procedure qs (string) string))
    1372 (compile-file (procedure compile-file (string #!rest string) undefined))
     1372(compile-file (procedure compile-file (string #!rest) string))
    13731373(compile-file-options (procedure compile-file-options (#!optional list) list))
    13741374
  • chicken/trunk/utils.scm

    r15246 r15262  
    124124;;; Compile and load file
    125125
    126 (define compile-file-options (make-parameter '("-S" "-O2" "-d1")))
     126(define compile-file-options (make-parameter '("-S" "-O2" "-d2")))
    127127
    128128(define compile-file
    129129  (let ((csc (foreign-value "C_CSC_PROGRAM" c-string))
    130130        (path (foreign-value "C_INSTALL_BIN_HOME" c-string)) )
    131     (lambda (filename . options)
     131    (lambda (filename #!key (options '()) output-file)
    132132      (let ((cscpath (or (file-exists? (make-pathname path csc)) "csc"))
    133             (tmpfile (create-temporary-file "so")))
     133            (tmpfile (and (not output-file) (create-temporary-file "so"))))
    134134        (print "; compiling " filename " ...")
    135135        (system*
     
    138138         (string-intersperse (append (compile-file-options) options) " ")
    139139         (qs filename)
    140          (qs tmpfile))
    141         (on-exit (cut delete-file* tmpfile))
    142         (load tmpfile))) ) )
     140         (qs (or output-file tmpfile)))
     141        (unless output-file
     142          (on-exit (cut delete-file* tmpfile)))
     143        (let ((f (or output-file tmpfile)))
     144          (handle-exceptions ex
     145              (begin
     146                (delete-file* f)
     147                (abort ex))
     148            (load f)
     149            f))))))
  • chicken/trunk/version.scm

    r15074 r15262  
    1 (define-constant +build-version+ "4.0.9")
     1(define-constant +build-version+ "4.1.1")
Note: See TracChangeset for help on using the changeset viewer.