mirror of
https://github.com/janet-lang/janet
synced 2024-11-29 03:19:54 +00:00
Merge branch 'master' into ev
This commit is contained in:
commit
51cf6465ff
@ -2,6 +2,7 @@
|
|||||||
All notable changes to this project will be documented in this file.
|
All notable changes to this project will be documented in this file.
|
||||||
|
|
||||||
## Unreleased - ???
|
## Unreleased - ???
|
||||||
|
- Add `any?` predicate to core.
|
||||||
- Add `jpm list-pkgs` subcommand to see which package aliases are in the listing.
|
- Add `jpm list-pkgs` subcommand to see which package aliases are in the listing.
|
||||||
- Add `jpm list-installed` subcommand to see which packages are installed.
|
- Add `jpm list-installed` subcommand to see which packages are installed.
|
||||||
- Add `math/int-min`, `math/int-max`, `math/int32-min`, and `math/int32-max` for getting integer limits.
|
- Add `math/int-min`, `math/int-max`, `math/int32-min`, and `math/int32-max` for getting integer limits.
|
||||||
|
@ -1202,6 +1202,15 @@
|
|||||||
(if x nil (set res x)))
|
(if x nil (set res x)))
|
||||||
res)
|
res)
|
||||||
|
|
||||||
|
(defn any?
|
||||||
|
"Returns the first truthy valye in ind, otherwise nil.
|
||||||
|
falsey value."
|
||||||
|
[ind]
|
||||||
|
(var res nil)
|
||||||
|
(loop [x :in ind :until res]
|
||||||
|
(if x (set res x)))
|
||||||
|
res)
|
||||||
|
|
||||||
(defn reverse!
|
(defn reverse!
|
||||||
"Reverses the order of the elements in a given array or buffer and returns it
|
"Reverses the order of the elements in a given array or buffer and returns it
|
||||||
mutated."
|
mutated."
|
||||||
@ -2825,11 +2834,11 @@
|
|||||||
|
|
||||||
(when (and (not *compile-only*) (or *should-repl* *no-file*))
|
(when (and (not *compile-only*) (or *should-repl* *no-file*))
|
||||||
(if-not *quiet*
|
(if-not *quiet*
|
||||||
(print "Janet " janet/version "-" janet/build " Copyright (C) 2017-2020 Calvin Rose"))
|
(print "Janet " janet/version "-" janet/build " " (os/which) "/" (os/arch)))
|
||||||
(flush)
|
(flush)
|
||||||
(defn getprompt [p]
|
(defn getprompt [p]
|
||||||
(def [line] (parser/where p))
|
(def [line] (parser/where p))
|
||||||
(string "janet:" line ":" (parser/state p :delimiters) "> "))
|
(string "repl:" line ":" (parser/state p :delimiters) "> "))
|
||||||
(defn getstdin [prompt buf _]
|
(defn getstdin [prompt buf _]
|
||||||
(file/write stdout prompt)
|
(file/write stdout prompt)
|
||||||
(file/flush stdout)
|
(file/flush stdout)
|
||||||
|
@ -386,17 +386,14 @@
|
|||||||
(assert (compare= 3 n3 (table/setproto @{:v 3} mynum)) "compare= poly")
|
(assert (compare= 3 n3 (table/setproto @{:v 3} mynum)) "compare= poly")
|
||||||
(assert (deep= (sorted @[4 5 n3 2] compare<) @[2 n3 4 5]) "polymorphic sort"))
|
(assert (deep= (sorted @[4 5 n3 2] compare<) @[2 n3 4 5]) "polymorphic sort"))
|
||||||
|
|
||||||
(let [
|
(let [MAX_INT_64_STRING "9223372036854775807"
|
||||||
MAX_INT_64_STRING "9223372036854775807"
|
|
||||||
MAX_UINT_64_STRING "18446744073709551615"
|
MAX_UINT_64_STRING "18446744073709551615"
|
||||||
MAX_INT_IN_DBL_STRING "9007199254740991"
|
MAX_INT_IN_DBL_STRING "9007199254740991"
|
||||||
NAN (math/log -1)
|
NAN (math/log -1)
|
||||||
INF (/ 1 0)
|
INF (/ 1 0)
|
||||||
MINUS_INF (/ -1 0)
|
MINUS_INF (/ -1 0)
|
||||||
|
|
||||||
compare-poly-tests
|
compare-poly-tests
|
||||||
[
|
[[(int/s64 3) (int/u64 3) 0]
|
||||||
[(int/s64 3) (int/u64 3) 0]
|
|
||||||
[(int/s64 -3) (int/u64 3) -1]
|
[(int/s64 -3) (int/u64 3) -1]
|
||||||
[(int/s64 3) (int/u64 2) 1]
|
[(int/s64 3) (int/u64 2) 1]
|
||||||
[(int/s64 3) 3 0] [(int/s64 3) 4 -1] [(int/s64 3) -9 1]
|
[(int/s64 3) 3 0] [(int/s64 3) 4 -1] [(int/s64 3) -9 1]
|
||||||
@ -409,11 +406,16 @@
|
|||||||
[(+ 1 (int/u64 MAX_INT_IN_DBL_STRING)) (scan-number MAX_INT_IN_DBL_STRING) 1]
|
[(+ 1 (int/u64 MAX_INT_IN_DBL_STRING)) (scan-number MAX_INT_IN_DBL_STRING) 1]
|
||||||
[(int/s64 0) INF -1] [(int/u64 0) INF -1]
|
[(int/s64 0) INF -1] [(int/u64 0) INF -1]
|
||||||
[MINUS_INF (int/u64 0) -1] [MINUS_INF (int/s64 0) -1]
|
[MINUS_INF (int/u64 0) -1] [MINUS_INF (int/s64 0) -1]
|
||||||
[(int/s64 1) NAN 0] [NAN (int/u64 1) 0]
|
[(int/s64 1) NAN 0] [NAN (int/u64 1) 0]]]
|
||||||
]]
|
|
||||||
(each [x y c] compare-poly-tests
|
(each [x y c] compare-poly-tests
|
||||||
(assert (= c (compare x y)) (string/format "compare polymorphic %q %q %d" x y c)))
|
(assert (= c (compare x y)) (string/format "compare polymorphic %q %q %d" x y c))))
|
||||||
)
|
|
||||||
|
(assert (= nil (any? [])) "any? 1")
|
||||||
|
(assert (= nil (any? [false nil])) "any? 2")
|
||||||
|
(assert (= nil (any? [nil false])) "any? 3")
|
||||||
|
(assert (= 1 (any? [1])) "any? 4")
|
||||||
|
(assert (nan? (any? [nil math/nan nil])) "any? 5")
|
||||||
|
(assert (= true (any? [nil nil false nil nil true nil nil nil nil false :a nil])) "any? 6")
|
||||||
|
|
||||||
(end-suite)
|
(end-suite)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user