Merge branch 'string-ref-cache' into string-ref-cache-backwards

This commit is contained in:
Daphne Preston-Kendal 2021-12-27 19:24:20 +01:00
commit 9dcda90e2e
5 changed files with 32 additions and 20 deletions

View file

@ -1,4 +1,7 @@
(define-library (srfi 124) (define-library (srfi 124)
(export make-ephemeron ephemeron? ephemeron-broken? (export make-ephemeron ephemeron? ephemeron-broken?
ephemeron-key ephemeron-datum) ephemeron-key ephemeron-datum reference-barrier)
(import (rename (chibi weak) (ephemeron-value ephemeron-datum)))) (import (rename (chibi weak) (ephemeron-value ephemeron-datum))
(only (scheme base) define if))
(begin
(define (reference-barrier k) (if #f #f))))

View file

@ -279,6 +279,9 @@
(test "12.3µm" (show #f (numeric/si 1.23e-5 1000) "m")) ;? (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 "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)))
(test "1,234,567" (show #f (numeric/comma 1234567 3))) (test "1,234,567" (show #f (numeric/comma 1234567 3)))

View file

@ -365,21 +365,25 @@
(lambda (n . o) (lambda (n . o)
(let-optionals* o ((base 1000) (let-optionals* o ((base 1000)
(separator "")) (separator ""))
(let* ((log-n (log n)) (if (zero? n)
(names (if (negative? log-n) "0"
(if (= base 1024) names-2 names-10) (let* ((log-n (log (abs n)))
(if (= base 1024) names2 names10))) (names (if (negative? log-n)
(k (min (exact ((if (negative? log-n) ceiling floor) (if (= base 1024) names-2 names-10)
(/ (abs log-n) (log base)))) (if (= base 1024) names2 names10)))
(- (vector-length names) 1))) (k (min (exact ((if (negative? log-n) ceiling floor)
(n2 (round-to (/ n (expt base (if (negative? log-n) (- k) k))) (/ (abs log-n) (log base))))
10))) (- (vector-length names) 1)))
(each (if (integer? n2) (n2 (round-to (/ (abs n)
(number->string (exact n2)) (expt base (if (negative? log-n) (- k) k)))
(inexact n2)) 10)))
;; (if (zero? k) "" separator) (each (if (negative? n) "-" "")
separator (if (integer? n2)
(vector-ref names k))))))) (number->string (exact n2))
(inexact n2))
;; (if (zero? k) "" separator)
separator
(vector-ref names k))))))))
;; Force a number into a fixed width, print as #'s if doesn't fit. ;; 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. ;; Needs to be wrapped in PADDED if you want to expand to the width.

View file

@ -2,7 +2,5 @@
(export opt-lambda (export opt-lambda
(rename opt-lambda* opt*-lambda) (rename opt-lambda* opt*-lambda)
let-optionals let-optionals
let-optionals* let-optionals*)
(rename define-opt define-optionals)
(rename define-opt* define-optionals*))
(import (chibi optional))) (import (chibi optional)))

View file

@ -0,0 +1,4 @@
(define-library (srfi 227 definition)
(export (rename define-opt define-optionals)
(rename define-opt* define-optionals*))
(import (chibi optional)))