Changeset 14656 in project for chicken


Ignore:
Timestamp:
05/15/09 23:02:26 (10 years ago)
Author:
felix winkelmann
Message:

bumped version to 4.0.4; fixed various bugs in chicken-install; fixed name-resolution bug in compiler handling of assignment

Location:
chicken/trunk
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • chicken/trunk/README

    r14607 r14656  
    44  (c) 2008-2009, The Chicken Team
    55
    6   version 4.0.3
     6  version 4.0.4
    77
    88
  • chicken/trunk/TODO

    r14292 r14656  
    5454** build
    5555*** somehow get SONAME to work
     56*** integrate and build/install chicken-base.scm
    5657
    5758** tests
  • chicken/trunk/buildversion

    r14607 r14656  
    1 4.0.3
     14.0.4
  • chicken/trunk/chicken-base.scm

    r14653 r14656  
    364364         tail?
    365365
     366         ;; srfi-69
     367         alist->hash-table
     368         eq?-hash
     369         equal?-hash
     370         eqv?-hash
     371         hash
     372         hash-by-identity
     373         hash-table->alist
     374         hash-table-clear!
     375         hash-table-copy
     376         hash-table-delete!
     377         hash-table-equivalence-function
     378         hash-table-exists?
     379         hash-table-fold
     380         hash-table-for-each
     381         hash-table-has-initial?
     382         hash-table-hash-function
     383         hash-table-initial
     384         hash-table-keys
     385         hash-table-map
     386         hash-table-max-load
     387         hash-table-merge
     388         hash-table-merge!
     389         hash-table-min-load
     390         hash-table-ref
     391         hash-table-ref/default
     392         hash-table-remove!
     393         hash-table-set!
     394         hash-table-size
     395         hash-table-update!
     396         hash-table-update!/default
     397         hash-table-values
     398         hash-table-walk
     399         hash-table-weak-keys
     400         hash-table-weak-values
     401         hash-table?
     402         keyword-hash
     403         make-hash-table
     404         number-hash
     405         object-uid-hash
     406         string-ci-hash
     407         string-hash
     408         symbol-hash
     409
    366410         ;; utils
    367411         for-each-argv-line
     
    371415         qs)
    372416
    373   (import scheme chicken data-structures utils ports files extras)
     417  (import scheme chicken data-structures utils ports files extras srfi-69)
    374418
    375419  )
  • chicken/trunk/chicken-install.scm

    r13548 r14656  
    129129               (if a
    130130                   (->string (cadr a))
    131                    "1.0.0"))))
     131                   "0.0.0"))))
    132132          (else #f)))
    133133
     
    152152                     (let ((v (ext-version (car dep))))
    153153                       (cond ((not v)
    154                               (warning
    155                                "installed extension has unknown version - assuming it is outdated"
    156                                (car dep))
    157                               (loop rest missing
    158                                     (alist-cons
    159                                      (->string (car dep))
    160                                      (->string (cadr dep))
    161                                      upgrade)))
    162                              ((version>=? (->string (cadr dep)) v)
     154                              (loop rest (cons (->string (car dep)) missing) upgrade))
     155                             ((not (version>=? v (->string (cadr dep))))
     156                              (when (string=? "chicken" (->string (car dep)))
     157                                (error
     158                                 (string-append
     159                                  "Your CHICKEN version is not recent enough to use this extension - version "
     160                                  (cadr dep)
     161                                  " or newer is required")))
    163162                              (loop rest missing
    164163                                    (alist-cons
  • chicken/trunk/compiler.scm

    r14590 r14656  
    510510                      t)
    511511                     e se dest))) ]
     512            ((##sys#get x '##core#primitive))
    512513            ((not (memq x e)) (##sys#alias-global-hook x #f)) ; only if global
    513             ((##sys#get x '##core#primitive))
    514514            (else x))))
    515515 
     
    639639                                    se2 dest) ) ) )
    640640
    641                          ((letrec ##core#letrec)
    642                           (##sys#check-syntax 'letrec x '(_ #((symbol _) 0) . #(_ 1)))
    643                           (let ((bindings (cadr x))
    644                                 (body (cddr x)) )
    645                             (walk
    646                              `(##core#let
    647                                ,(map (lambda (b)
    648                                        (list (car b) '(##core#undefined)))
     641                        ((letrec ##core#letrec)
     642                         (##sys#check-syntax 'letrec x '(_ #((symbol _) 0) . #(_ 1)))
     643                         (let ((bindings (cadr x))
     644                               (body (cddr x)) )
     645                           (walk
     646                            `(##core#let
     647                              ,(map (lambda (b)
     648                                      (list (car b) '(##core#undefined)))
     649                                    bindings)
     650                              ,@(map (lambda (b)
     651                                       `(##core#set! ,(car b) ,(cadr b)))
    649652                                     bindings)
    650                                ,@(map (lambda (b)
    651                                         `(##core#set! ,(car b) ,(cadr b)))
    652                                       bindings)
    653                                (##core#let () ,@body) )
    654                              e se dest)))
     653                              (##core#let () ,@body) )
     654                            e se dest)))
    655655
    656656                        ((lambda ##core#lambda)
     
    926926                                              ,(foreign-type-check tmp type) ) )
    927927                                          e se #f))))
    928                                  (else
    929                                   (when (eq? var var0) ; global?
    930                                     (set! var (##sys#alias-global-hook var #t))
     928                                 (else
     929                                  (unless (memq var e) ; global?
     930                                    (set! var (or (##sys#get var '##core#primitive)
     931                                                  (##sys#alias-global-hook var #t)))
    931932                                    (when safe-globals-flag
    932933                                      (mark-variable var '##compiler#always-bound-to-procedure)
    933                                       (mark-variable var '##compiler#always-bound))
    934                                     (when (##sys#macro? var)
    935                                       (compiler-warning
    936                                        'var "assigned global variable `~S' is a macro ~A"
    937                                        var
    938                                        (if ln (sprintf "in line ~S" ln) "") )
    939                                       (when undefine-shadowed-macros (##sys#undefine-macro! var) ) ) )
     934                                      (mark-variable var '##compiler#always-bound)))
     935                                  (when (##sys#macro? var)
     936                                    (compiler-warning
     937                                     'var "assigned global variable `~S' is a macro ~A"
     938                                     var
     939                                     (if ln (sprintf "in line ~S" ln) "") )
     940                                    (when undefine-shadowed-macros (##sys#undefine-macro! var) ) )
    940941                                  (when (keyword? var)
    941942                                    (compiler-warning 'syntax "assignment to keyword `~S'" var) )
  • chicken/trunk/manual/The User's Manual

    r14607 r14656  
    55== The CHICKEN User's Manual
    66
    7 This is the user's manual for the Chicken Scheme compiler, version 4.0.3
     7This is the user's manual for the Chicken Scheme compiler, version 4.0.4
    88
    99; [[Getting started]] : What is CHICKEN and how do I use it?
  • chicken/trunk/setup-api.scm

    r14599 r14656  
    240240                   (cdr (assoc prg *installed-executables*))))
    241241                 "-feature" "compiling-extension"
     242                 (if (keep-intermediates) "-k" "")
    242243                 (if (host-extension) "-host" "")
    243244                 *csc-options*)
  • chicken/trunk/tests/syntax-tests.scm

    r14341 r14656  
    325325
    326326  (display (foo))
    327 )
     327  (newline)
     328)
     329
     330
     331;;; incorrect expansion when assigning to something marked '##core#primitive (rev. 14613)
     332
     333(module primitive-assign ()
     334  (import scheme chicken)
     335  (set! setter 123))
     336
     337(assert (= 123 setter))
     338
  • chicken/trunk/version.scm

    r14607 r14656  
    1 (define-constant +build-version+ "4.0.3")
     1(define-constant +build-version+ "4.0.4")
Note: See TracChangeset for help on using the changeset viewer.