Changeset 6839 in project


Ignore:
Timestamp:
11/15/07 11:09:16 (13 years ago)
Author:
felix winkelmann
Message:

inline-recursions is handled [reported by elf]; removed some deprecated features (see NEWS)

Files:
15 edited

Legend:

Unmodified
Added
Removed
  • chicken/trunk/NEWS

    r6829 r6839  
    112.736
    22
     3- removed deprecated functions:
     4  extension-info
     5  print-backtrace
     6  test-feature?
     7  ___callback (chicken.h)
     8  foreign-callback-lambda[*]
     9  thread-deliver-signal!
     10  critical-section
     11  enable-interrupts
     12  disable-interrupts
     13  invalid-procedure-call-handler
    314- chicken-setup: can create repository catalog file from local
    415  SVN checkout of egg repository
  • chicken/trunk/chicken-ffi-macros.scm

    r6175 r6839  
    361361     (cons ',new args) ) )
    362362
    363 (define-deprecated-macro foreign-callback-lambda foreign-safe-lambda)
    364 (define-deprecated-macro foreign-callback-lambda* foreign-safe-lambda*)
    365 (define-deprecated-macro foreign-callback-wrapper foreign-safe-wrapper)
    366 
    367363
    368364;;; Not for general use, yet
  • chicken/trunk/chicken-more-macros.scm

    r6175 r6839  
    363363   (##sys#check-syntax 'define-constant form '(symbol _))
    364364   `(##core#define-constant ',(car form) ,(cadr form)) ) )
    365 
    366 (##sys#register-macro-2                 ; DEPRECATED
    367  'critical-section
    368  (lambda (form)
    369    `(##sys#dynamic-wind
    370         ##sys#disable-interrupts
    371         (lambda () ,@form)
    372         ##sys#enable-interrupts) ) )
    373365
    374366(##sys#register-macro-2
  • chicken/trunk/chicken.h

    r6688 r6839  
    280280#define ___byte_vector      unsigned char *
    281281#define ___symbol           char *
    282 #define ___callback
    283282#define ___safe
    284283#define ___declare(x, y)
  • chicken/trunk/compiler.scm

    r6827 r6839  
    430430(define compiler-macro-table #f)
    431431(define compiler-macros-enabled #t)
     432(define inline-use-chain '())
    432433
    433434
     
    480481           => (lambda (val) (walk (car val) ae me dest)) ]
    481482          [(and inline-table-used (##sys#hash-table-ref inline-table x))
    482            => (lambda (val) (walk val ae me dest)) ]
     483           => (lambda (val)
     484                (if (memq x inline-use-chain)
     485                    (quit "recursive invocation of inline function `~a', invocation chain: ~s" x inline-use-chain)
     486                    (fluid-let ((inline-use-chain (cons x inline-use-chain)))
     487                      (walk val ae me dest)) ) ) ]
    483488          [(assq x foreign-variables)
    484489           => (lambda (fv)
     
    527532                      (walk xexpanded ae me dest) ]
    528533                     [(and inline-table-used (##sys#hash-table-ref inline-table name))
    529                       => (lambda (val) (walk (cons val (cdr x)) ae me dest)) ]
     534                      => (lambda (val)
     535                           (if (memq name inline-use-chain)
     536                               (quit "recursive invocation of inline function `~a', invocation chain: ~s" name inline-use-chain)
     537                               (fluid-let ((inline-use-chain (cons name inline-use-chain)))
     538                                 (walk (cons val (cdr x)) ae me dest)) ) ) ]
    530539                     [else
    531540                      (case name
  • chicken/trunk/eval.scm

    r6827 r6839  
    13881388  (##sys#extension-information ext 'extension-information) )
    13891389
    1390 (define extension-info extension-information) ; DEPRECATED
    1391 
    13921390(define ##sys#lookup-runtime-requirements
    13931391  (let ([with-input-from-file with-input-from-file]
  • chicken/trunk/library.scm

    r6828 r6839  
    24852485                                 (else (##sys#user-read-hook dchar port)) ) ) ) ) ) )
    24862486                  ((#\() (r-list #\( #\)))
     2487                  ((#\{) (r-list #\{ #\}))
    24872488                  ((#\[)
    24882489                   (r-list #\[ #\]) )
    2489                   ((#\) #\])
     2490                  ((#\) #\] #\})
    24902491                   (##sys#read-char-0 port)
    24912492                   (container c) )
    2492                   ((#\{ #\})
    2493                    (##sys#read-char-0 port)
    2494                    (##sys#read-error port "illegal character" c))
    24952493                  ((#\") (r-string #\"))
    24962494                  ((#\.) (r-number #f))
     
    32153213
    32163214(define feature? ##sys#feature?)
    3217 (define test-feature? ##sys#feature?)   ; DEPRECATED
    32183215
    32193216
     
    32703267
    32713268(define get-call-chain ##sys#get-call-chain)
    3272 (define print-backtrace print-call-chain) ; DEPRECATED
    32733269
    32743270
    32753271;;; Interrupt handling:
    3276 
    3277 (let ([count 0])                        ; DEPRECATED
    3278   (set! ##sys#enable-interrupts
    3279     (lambda val
    3280       (set! count (fx+ count (if (pair? val) (car val) 1)))
    3281       (when (eq? count 0) (##core#inline "C_enable_interrupts")) ) )
    3282   (set! ##sys#disable-interrupts
    3283     (lambda ()
    3284       (when (eq? count 0) (##core#inline "C_disable_interrupts"))
    3285       (set! count (fx- count 1)) ) ) )
    3286 
    3287 (define enable-interrupts ##sys#enable-interrupts) ; DEPRECATED
    3288 (define disable-interrupts ##sys#disable-interrupts) ; DEPRECATED
    32893272
    32903273(define (##sys#user-interrupt-hook)
  • chicken/trunk/lolevel.scm

    r6257 r6839  
    687687      (ipc-hook-0 ##sys#last-invalid-procedure args) ) ) )
    688688
    689 (define invalid-procedure-call-handler set-invalid-procedure-call-handler!) ; DEPRECATED
    690 
    691689(define (unbound-variable-value . val)
    692690  (set! ##sys#unbound-variable-value-hook
  • chicken/trunk/srfi-18.scm

    r2926 r6839  
    480480        (##sys#thread-unblock! thread) ) ) )
    481481
    482 (define thread-deliver-signal! thread-signal!)
    483 
    484482
    485483;;; Don't block in the repl: (by Chris Double)
  • chicken/trunk/tests/runtests.sh

    r6492 r6839  
    2424
    2525echo "======================================== r4rstest ..."
    26 ../csi -i -s r4rstest.scm >/dev/null
     26../csi -i -s r4rstest.scm
    2727
    2828echo "======================================== locative stress test ..."
  • wiki/Deviations from the standard

    r5135 r6839  
    33== Deviations from the standard
    44
    5 * Identifiers are by default case-sensitive (see [[http://galinha.ucpel.tche.br:8080/Using%20the%20compiler#Compiler%20command%20line%20format|Compiler command line format]]).
     5Identifiers are by default case-sensitive (see
     6[[http://galinha.ucpel.tche.br:8080/Using%20the%20compiler#Compiler%20command%20line%20format|Compiler
     7command line format]]).
    68
    7 * [4.1.3] The maximal number of arguments that may be passed to a compiled procedure or macro is 120.  A macro-definition that has a single rest-parameter can have any number of arguments.  If the {{libffi}} library is available on this platform, and if it is installed, then CHICKEN can take advantage of this. See the [[http://chicken.wiki.br/chicken/README|README]] file for more details.
     9[4.1.3] The maximal number of arguments that may be passed to a
     10compiled procedure or macro is 120.  A macro-definition that has a
     11single rest-parameter can have any number of arguments.  If the
     12{{libffi}} library is available on this platform, and if it is
     13installed, then CHICKEN can take advantage of this. See the
     14[[http://chicken.wiki.br/chicken/README|README]] file for more
     15details.
    816
    9 * [4.2.2] {{letrec}} does evaluate the initial values for the bound variables sequentially and not in parallel, that is:
     17[4.2.2] {{letrec}} does evaluate the initial values for the bound
     18variables sequentially and not in parallel, that is:
    1019
    1120  (letrec ((x 1) (y 2)) (cons x y))
     
    2635      (cons x y) ) )
    2736
    28 * [4.3] {{syntax-rules}} macros are not provided but available separately.
     37[4.3] {{syntax-rules}} macros are not provided but available
     38separately.
    2939
    30 * [6.1] {{equal?}} compares all structured data recursively, while R5RS specifies that {{eqv?}} is used for data other than pairs, strings and vectors.
     40[6.1] {{equal?}} compares all structured data recursively, while R5RS
     41specifies that {{eqv?}} is used for data other than pairs, strings and
     42vectors.
    3143
    32 * [6.2.4]  The runtime system uses the numerical string-conversion routines of the underlying C library and so does only understand standard (C-library) syntax for floating-point constants.
     44[6.2.4] The runtime system uses the numerical string-conversion
     45routines of the underlying C library and so does only understand
     46standard (C-library) syntax for floating-point constants.
    3347
    34 * [6.2.5] There is no built-in support for rationals, complex numbers or extended-precision integers (bignums). The routines {{complex?}}, {{real?}} and {{rational?}} are identical to the standard procedure {{number?}}. The procedures {{numerator}}, {{denominator}}, {{rationalize}}, {{make-rectangular}} and {{make-polar}} are not implemented. Fixnums are limited to ±2<nowiki><sup>30</sup></nowiki> (or ±2<nowiki><sup>62</sup></nowiki> on 64-bit hardware).  Support for extended numbers is available as a separate package, provided the GNU multiprecision library is installed.
     48[6.2.5] There is no built-in support for rationals, complex numbers or
     49extended-precision integers (bignums). The routines {{complex?}},
     50{{real?}} and {{rational?}} are identical to the standard procedure
     51{{number?}}. The procedures {{numerator}}, {{denominator}},
     52{{rationalize}}, {{make-rectangular}} and {{make-polar}} are not
     53implemented. Fixnums are limited to ±2<nowiki><sup>30</sup></nowiki>
     54(or ±2<nowiki><sup>62</sup></nowiki> on 64-bit hardware).  Support for
     55extended numbers is available as a separate package, provided the GNU
     56multiprecision library is installed.
    3557
    36 * [6.2.6] The procedure {{string->number}} does not obey read/write invariance on inexact numbers.
     58[6.2.6] The procedure {{string->number}} does not obey read/write
     59invariance on inexact numbers.
    3760
    38 * [6.4] The maximum number of values that can be passed to continuations captured using {{call-with-current-continuation}} is 120.
     61[6.4] The maximum number of values that can be passed to continuations
     62captured using {{call-with-current-continuation}} is 120.
    3963
    40 * [6.5] Code evaluated in {{scheme-report-environment}} or {{null-environment}} still sees non-standard syntax.
     64[6.5] Code evaluated in {{scheme-report-environment}} or
     65{{null-environment}} still sees non-standard syntax.
    4166
    42 * [6.6.2] The procedure {{char-ready?}} always returns {{#t}} for terminal ports.  The procedure {{read}} does not obey read/write invariance on inexact numbers.
     67[6.6.2] The procedure {{char-ready?}} always returns {{#t}} for
     68terminal ports.  The procedure {{read}} does not obey read/write
     69invariance on inexact numbers.
    4370
    44 * [6.6.3] The procedures {{write}} and {{display}} do not obey read/write invariance to inexact numbers.
     71[6.6.3] The procedures {{write}} and {{display}} do not obey
     72read/write invariance to inexact numbers.
    4573
    46 * [6.6.4] The {{transcript-on}} and {{transcript-off}} procedures are not implemented.
     74[6.6.4] The {{transcript-on}} and {{transcript-off}} procedures are
     75not implemented.
    4776
    4877Previous: [[Supported language]]
  • wiki/Extensions to the standard

    r6583 r6839  
    66{{| ... |}}.
    77
    8 [2.3] The brackets {{[ ... ]}} are provided as an alternative syntax
    9 for {{( ... )}}.  A number of reader extensions is provided. See
    10 [[Non-standard read syntax]].
     8[2.3] The brackets {{[ ... ]}} and the braces {{ { ... } }} are
     9provided as an alternative syntax for {{( ... )}}.  A number of reader
     10extensions is provided. See [[Non-standard read syntax]].
    1111
    1212[4] Numerous non-standard macros are provided. See
  • wiki/Unit library

    r6582 r6839  
    801801
    802802
    803 ==== andmap
    804 
    805  [procedure] (andmap PROC LIST1 ...)
    806 
    807 Repeatedly calls {{PROC}} with arguments taken from {{LIST1 ...}}.
    808 If any invocation should return {{#f}}, the result of
    809 {{andmap}} is {{#f}}. If all invocations return a true result,
    810 then the result of {{andmap}} is {{#t}}.
    811 
    812 
    813 ==== ormap
    814 
    815  [procedure] (ormap PROC LIST1 ...)
    816 
    817 Repeatedly calls {{PROC}} with arguments taken from {{LIST1 ...}}.
    818 If any invocation should return a value different from
    819 {{#f}}, then this value is returned as the  result of
    820 {{ormap}}. If all invocations return '''#f''',
    821 then the result of {{ormap}} is {{#f}}.
    822 
    823 
    824803==== promise?
    825804
  • wiki/chicken-internal-structure

    r4845 r6839  
    2121; {{tweaks.scm}} : some performance hacks to speed up the compiler
    2222; {{banner.scm}} : the banner shown by {{-version}}
     23; {{private-namespace.scm}} : some support code that defines a macro ({{private}}) to hide toplevel identifiers (very ugly)
    2324; {{chicken-more-macros.scm}} : non-standard low-level macro definitions
    2425; {{chicken-ffi-macros.scm}} : low-level macros for interfacing to foreign code
     
    2728
    2829At the start of most compiler files you'll find a funny list of
    29 symbols of the form {{ #{compiler ...} }}. What this does is to tell
    30 the reader that any symbols matching the ones given in {{...}} are to
    31 be prefixed with {{##compiler#}} (these are called ''qualified''
    32 symbols). It is a crude way to separate the toplevel definitions of
    33 the compiler from user code and avoid one to stumble over the other.
     30symbols of the form {{ (private compiler ...) }}. This uses an
     31internal hook to rename the listed toplevel identifiers by prefixing
     32them with {{##compiler#}} (these are called ''qualified'' symbols). It
     33is a crude way to separate the toplevel definitions of the compiler
     34from user code and avoid one to stumble over the other.
    3435
    3536=== Command-line parsing (chicken.scm)
  • wiki/easyffi

    r6708 r6839  
    248248qualifier, which marks the function as (possibly) performing a callback into Scheme. If a wrapped function
    249249calls back into Scheme code, and {{___safe}} has not been given very strange and hard to debug
    250 problems will occur. For backward compatibilty, {{___callback}} is also allowed in place of {{___safe}}.
     250problems will occur.
    251251
    252252Functions and member functions prefixed with {{___discard}} and a result type that maps to
     
    579579             | "<" ... ">"
    580580 
    581  FUNCTION = {"___callback" | "___safe" | "___specialize" | "___discard"} [STORAGE] TYPE ID "(" ARGTYPE "," ... ")" [CODE]
    582           | {"___callback" | "___safe" | "___specialize" | "___discard"} [STORAGE] TYPE ID "(" "void" ")" [CODE]
     581 FUNCTION = {"___safe" | "___specialize" | "___discard"} [STORAGE] TYPE ID "(" ARGTYPE "," ... ")" [CODE]
     582          | {"___safe" | "___specialize" | "___discard"} [STORAGE] TYPE ID "(" "void" ")" [CODE]
    583583 
    584584 ARGTYPE = [IOQUALIFIER] TYPE [ID ["[" ... "]"]]
     
    651651 MEMBERVARIABLE = TYPE ID ["=" INITDATA]
    652652 
    653  MEMBERFUNCTION = {"___callback" | "static" | "___specialize" | "___discard"} TYPE ID "(" ARGTYPE "," ... ")" ["const"] ["=" "0"] [CODE]
    654                 | {"___callback" | "static" | "___specialize" | "___discard"} TYPE ID "(" "void" ")" ["const"] ["=" "0"] [CODE]
    655  
    656  CONSTRUCTOR = ["___callback" | "___safe"] ["explicit"] ID "(" ARGTYPE "," ... ")" [BASECONSTRUCTORS] [CODE]
    657  
    658  DESTRUCTOR = ["___callback" | "___safe"] "~" ID "(" ["void"] ")" [CODE]
     653 MEMBERFUNCTION = {"___safe" | "static" | "___specialize" | "___discard"} TYPE ID "(" ARGTYPE "," ... ")" ["const"] ["=" "0"] [CODE]
     654                | {"___safe" | "static" | "___specialize" | "___discard"} TYPE ID "(" "void" ")" ["const"] ["=" "0"] [CODE]
     655 
     656 CONSTRUCTOR = ["___safe"] ["explicit"] ID "(" ARGTYPE "," ... ")" [BASECONSTRUCTORS] [CODE]
     657 
     658 DESTRUCTOR = ["___safe"] "~" ID "(" ["void"] ")" [CODE]
    659659 
    660660 QUALIFIER = ("public" | "private" | "protected")
     
    814814== Version History
    815815
     816; 1.8 : removed deprecated {{___callback}}
    816817; 1.7 : added {{chicken-wrap}} tool
    817818; 1.6 : fixed error in handling of base constructors [Thanks to Carlos Pita]
Note: See TracChangeset for help on using the changeset viewer.