mirror of
https://github.com/ashinn/chibi-scheme.git
synced 2025-07-08 13:37:35 +02:00
Merge branch 'string-ref-cache' into string-ref-cache-backwards
This commit is contained in:
commit
9dcda90e2e
5 changed files with 32 additions and 20 deletions
|
@ -1,4 +1,7 @@
|
|||
(define-library (srfi 124)
|
||||
(export make-ephemeron ephemeron? ephemeron-broken?
|
||||
ephemeron-key ephemeron-datum)
|
||||
(import (rename (chibi weak) (ephemeron-value ephemeron-datum))))
|
||||
ephemeron-key ephemeron-datum reference-barrier)
|
||||
(import (rename (chibi weak) (ephemeron-value ephemeron-datum))
|
||||
(only (scheme base) define if))
|
||||
(begin
|
||||
(define (reference-barrier k) (if #f #f))))
|
||||
|
|
|
@ -279,6 +279,9 @@
|
|||
(test "12.3µm" (show #f (numeric/si 1.23e-5 1000) "m")) ;?
|
||||
(test "1.2µm" (show #f (numeric/si 1.23e-6 1000) "m"))
|
||||
(test "1.2 µm" (show #f (numeric/si 1.23e-6 1000 " ") "m"))
|
||||
(test "0" (show #f (numeric/si 0)))
|
||||
(test "-608" (show #f (numeric/si -608)))
|
||||
(test "-4k" (show #f (numeric/si -3986)))
|
||||
|
||||
(test "1,234,567" (show #f (numeric/comma 1234567)))
|
||||
(test "1,234,567" (show #f (numeric/comma 1234567 3)))
|
||||
|
|
|
@ -365,21 +365,25 @@
|
|||
(lambda (n . o)
|
||||
(let-optionals* o ((base 1000)
|
||||
(separator ""))
|
||||
(let* ((log-n (log n))
|
||||
(if (zero? n)
|
||||
"0"
|
||||
(let* ((log-n (log (abs n)))
|
||||
(names (if (negative? log-n)
|
||||
(if (= base 1024) names-2 names-10)
|
||||
(if (= base 1024) names2 names10)))
|
||||
(k (min (exact ((if (negative? log-n) ceiling floor)
|
||||
(/ (abs log-n) (log base))))
|
||||
(- (vector-length names) 1)))
|
||||
(n2 (round-to (/ n (expt base (if (negative? log-n) (- k) k)))
|
||||
(n2 (round-to (/ (abs n)
|
||||
(expt base (if (negative? log-n) (- k) k)))
|
||||
10)))
|
||||
(each (if (integer? n2)
|
||||
(each (if (negative? n) "-" "")
|
||||
(if (integer? n2)
|
||||
(number->string (exact n2))
|
||||
(inexact n2))
|
||||
;; (if (zero? k) "" separator)
|
||||
separator
|
||||
(vector-ref names k)))))))
|
||||
(vector-ref names k))))))))
|
||||
|
||||
;; Force a number into a fixed width, print as #'s if doesn't fit.
|
||||
;; Needs to be wrapped in PADDED if you want to expand to the width.
|
||||
|
|
|
@ -2,7 +2,5 @@
|
|||
(export opt-lambda
|
||||
(rename opt-lambda* opt*-lambda)
|
||||
let-optionals
|
||||
let-optionals*
|
||||
(rename define-opt define-optionals)
|
||||
(rename define-opt* define-optionals*))
|
||||
let-optionals*)
|
||||
(import (chibi optional)))
|
||||
|
|
4
lib/srfi/227/definition.sld
Normal file
4
lib/srfi/227/definition.sld
Normal file
|
@ -0,0 +1,4 @@
|
|||
(define-library (srfi 227 definition)
|
||||
(export (rename define-opt define-optionals)
|
||||
(rename define-opt* define-optionals*))
|
||||
(import (chibi optional)))
|
Loading…
Add table
Reference in a new issue