1
0
mirror of https://github.com/janet-lang/janet synced 2024-06-25 22:53:16 +00:00

Merge branch 'master' into ev

This commit is contained in:
Calvin Rose 2020-07-19 17:20:43 -05:00
commit df145f4bc9
8 changed files with 41 additions and 30 deletions

View File

@ -10,3 +10,5 @@ tasks:
cd build cd build
ninja ninja
ninja test ninja test
mkdir modpath
jpm --verbose --modpath=./modpath install https://github.com/bakpakin/x43bot.git

View File

@ -1,7 +1,8 @@
# Changelog # Changelog
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 - ??? ## 1.11.0 - 2020-07-18
- Add `forever` macro.
- Add `any?` predicate to core. - 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.
@ -20,6 +21,7 @@ All notable changes to this project will be documented in this file.
- Add `repeat` macro for iterating something n times. - Add `repeat` macro for iterating something n times.
- Add `eachy` (each yield) macro for iterating a fiber. - Add `eachy` (each yield) macro for iterating a fiber.
- Fix `:generate` verb in loop macro to accept non symbols as bindings. - Fix `:generate` verb in loop macro to accept non symbols as bindings.
- Add `:h`, `:h+`, and `:h*` in `default-peg-grammar` for hexidecimal digits.
- Fix `%j` formatter to print numbers precisely (using the `%.17g` format string to printf). - Fix `%j` formatter to print numbers precisely (using the `%.17g` format string to printf).
## 1.10.1 - 2020-06-18 ## 1.10.1 - 2020-06-18

View File

@ -33,8 +33,8 @@ JANET_TARGET=build/janet
JANET_LIBRARY=build/libjanet.so JANET_LIBRARY=build/libjanet.so
JANET_STATIC_LIBRARY=build/libjanet.a JANET_STATIC_LIBRARY=build/libjanet.a
JANET_PATH?=$(LIBDIR)/janet JANET_PATH?=$(LIBDIR)/janet
MANPATH?=$(PREFIX)/share/man/man1/ JANET_MANPATH?=$(PREFIX)/share/man/man1/
PKG_CONFIG_PATH?=$(LIBDIR)/pkgconfig JANET_PKG_CONFIG_PATH?=$(LIBDIR)/pkgconfig
DEBUGGER=gdb DEBUGGER=gdb
SONAME_SETTER=-Wl,-soname, SONAME_SETTER=-Wl,-soname,
@ -273,11 +273,11 @@ install: $(JANET_TARGET) build/janet.pc build/jpm
ln -sf $(SONAME) '$(DESTDIR)$(LIBDIR)/libjanet.so' ln -sf $(SONAME) '$(DESTDIR)$(LIBDIR)/libjanet.so'
ln -sf libjanet.so.$(shell $(JANET_TARGET) -e '(print janet/version)') $(DESTDIR)$(LIBDIR)/$(SONAME) ln -sf libjanet.so.$(shell $(JANET_TARGET) -e '(print janet/version)') $(DESTDIR)$(LIBDIR)/$(SONAME)
cp -rf build/jpm '$(DESTDIR)$(BINDIR)' cp -rf build/jpm '$(DESTDIR)$(BINDIR)'
mkdir -p '$(DESTDIR)$(MANPATH)' mkdir -p '$(DESTDIR)$(JANET_MANPATH)'
cp janet.1 '$(DESTDIR)$(MANPATH)' cp janet.1 '$(DESTDIR)$(JANET_MANPATH)'
cp jpm.1 '$(DESTDIR)$(MANPATH)' cp jpm.1 '$(DESTDIR)$(JANET_MANPATH)'
mkdir -p '$(DESTDIR)$(PKG_CONFIG_PATH)' mkdir -p '$(DESTDIR)$(JANET_PKG_CONFIG_PATH)'
cp build/janet.pc '$(DESTDIR)$(PKG_CONFIG_PATH)/janet.pc' cp build/janet.pc '$(DESTDIR)$(JANET_PKG_CONFIG_PATH)/janet.pc'
[ -z '$(DESTDIR)' ] && $(LDCONFIG) || true [ -z '$(DESTDIR)' ] && $(LDCONFIG) || true
uninstall: uninstall:
@ -285,9 +285,9 @@ uninstall:
-rm '$(DESTDIR)$(BINDIR)/jpm' -rm '$(DESTDIR)$(BINDIR)/jpm'
-rm -rf '$(DESTDIR)$(INCLUDEDIR)/janet' -rm -rf '$(DESTDIR)$(INCLUDEDIR)/janet'
-rm -rf '$(DESTDIR)$(LIBDIR)'/libjanet.* -rm -rf '$(DESTDIR)$(LIBDIR)'/libjanet.*
-rm '$(DESTDIR)$(PKG_CONFIG_PATH)/janet.pc' -rm '$(DESTDIR)$(JANET_PKG_CONFIG_PATH)/janet.pc'
-rm '$(DESTDIR)$(MANPATH)/janet.1' -rm '$(DESTDIR)$(JANET_MANPATH)/janet.1'
-rm '$(DESTDIR)$(MANPATH)/jpm.1' -rm '$(DESTDIR)$(JANET_MANPATH)/jpm.1'
# -rm -rf '$(DESTDIR)$(JANET_PATH)'/* - err on the side of correctness here # -rm -rf '$(DESTDIR)$(JANET_PATH)'/* - err on the side of correctness here
################# #################
@ -318,6 +318,7 @@ test-install:
cd test/install && jpm --verbose --test --modpath=./modpath install https://github.com/janet-lang/jhydro.git cd test/install && jpm --verbose --test --modpath=./modpath install https://github.com/janet-lang/jhydro.git
cd test/install && jpm --verbose --test --modpath=./modpath install https://github.com/janet-lang/path.git cd test/install && jpm --verbose --test --modpath=./modpath install https://github.com/janet-lang/path.git
cd test/install && jpm --verbose --test --modpath=./modpath install https://github.com/janet-lang/argparse.git cd test/install && jpm --verbose --test --modpath=./modpath install https://github.com/janet-lang/argparse.git
cd test/install && jpm --verbose --modpath=./modpath install https://github.com/bakpakin/x43bot.git
help: help:
@echo @echo

View File

@ -168,6 +168,8 @@ call jpm --verbose --test --modpath=. install https://github.com/janet-lang/path
@if errorlevel 1 goto :TESTINSTALLFAIL @if errorlevel 1 goto :TESTINSTALLFAIL
call jpm --verbose --test --modpath=. install https://github.com/janet-lang/argparse.git call jpm --verbose --test --modpath=. install https://github.com/janet-lang/argparse.git
@if errorlevel 1 goto :TESTINSTALLFAIL @if errorlevel 1 goto :TESTINSTALLFAIL
call jpm --verbose --modpath=. install https://github.com/bakpakin/x43bot.git
@if errorlevel 1 goto :TESTINSTALLFAIL
popd popd
exit /b 0 exit /b 0

View File

@ -194,8 +194,8 @@ Source should be a path to the Janet module to compile, and output should be the
resulting image. Output should usually end with the .jimage extension. resulting image. Output should usually end with the .jimage extension.
.TP .TP
.BR \-l\ path .BR \-l\ lib
Load a Janet file before running a script or repl. Multiple files can be loaded Import a Janet module before running a script or repl. Multiple files can be loaded
in this manner, and exports from each file will be made available to the script in this manner, and exports from each file will be made available to the script
or repl. or repl.

View File

@ -20,7 +20,7 @@
project('janet', 'c', project('janet', 'c',
default_options : ['c_std=c99', 'b_lundef=false', 'default_library=both'], default_options : ['c_std=c99', 'b_lundef=false', 'default_library=both'],
version : '1.10.2') version : '1.11.0')
# Global settings # Global settings
janet_path = join_paths(get_option('prefix'), get_option('libdir'), 'janet') janet_path = join_paths(get_option('prefix'), get_option('libdir'), 'janet')
@ -259,6 +259,6 @@ if get_option('peg') and not get_option('reduced_os') and get_option('processes'
output : ['jpm'], output : ['jpm'],
command : [janet_nativeclient, '@INPUT@', '@OUTPUT@', command : [janet_nativeclient, '@INPUT@', '@OUTPUT@',
'--binpath=' + join_paths(get_option('prefix'), get_option('bindir')), '--binpath=' + join_paths(get_option('prefix'), get_option('bindir')),
'--libpath=' + join_paths(get_option('prefix'), get_option('libdir'), 'janet'), '--libpath=' + join_paths(get_option('prefix'), get_option('libdir')),
'--headerpath=' + join_paths(get_option('prefix'), get_option('includedir'))]) '--headerpath=' + join_paths(get_option('prefix'), get_option('includedir'))])
endif endif

View File

@ -383,13 +383,17 @@
[i start stop step comparison delta body] [i start stop step comparison delta body]
(with-syms [s] (with-syms [s]
(def st (if (idempotent? step) step (gensym))) (def st (if (idempotent? step) step (gensym)))
(def loop-body
~(while (,comparison ,i ,s)
,;body
(set ,i (,delta ,i ,st))))
~(do ~(do
(var ,i ,start) (var ,i ,start)
(def ,s ,stop) (def ,s ,stop)
,;(if (= st step) [] [~(def ,st ,step)]) ,;(if (= st step) [] [~(def ,st ,step)])
(while (,comparison ,i ,s) ,(if (and (number? st) (> st 0))
,;body loop-body
(set ,i (,delta ,i ,st)))))) ~(if (,> ,st 0) ,loop-body)))))
(defn- for-template (defn- for-template
[binding start stop step comparison delta body] [binding start stop step comparison delta body]
@ -517,7 +521,7 @@
~(do (var ,iter ,n) (while (> ,iter 0) ,;body (-- ,iter))))) ~(do (var ,iter ,n) (while (> ,iter 0) ,;body (-- ,iter)))))
(defmacro forever (defmacro forever
"Evaluate body repeatedly forever, or until a break statement at the top level." "Evaluate body forever in a loop, or until a break statement."
[& body] [& body]
~(while true ,;body)) ~(while true ,;body))
@ -2178,12 +2182,12 @@
(buffer/push-string buf "\n"))) (buffer/push-string buf "\n")))
(var returnval nil) (var returnval nil)
(run-context {:chunks chunks (run-context {:chunks chunks
:on-compile-error (fn [msg errf &] :on-compile-error (fn compile-error [msg errf &]
(error (string "compile error: " msg))) (error (string "compile error: " msg)))
:on-parse-error (fn [p x] :on-parse-error (fn parse-error [p x]
(error (string "parse error: " (parser/error p)))) (error (string "parse error: " (parser/error p))))
:fiber-flags :i :fiber-flags :i
:on-status (fn [f val] :on-status (fn on-status [f val]
(if-not (= (fiber/status f) :dead) (if-not (= (fiber/status f) :dead)
(error val)) (error val))
(set returnval val)) (set returnval val))
@ -2763,7 +2767,7 @@
-m syspath : Set system path for loading global modules -m syspath : Set system path for loading global modules
-c source output : Compile janet source code into an image -c source output : Compile janet source code into an image
-n : Disable ANSI color output in the repl -n : Disable ANSI color output in the repl
-l path : Execute code in a file before running the main script -l lib : Import a module before processing more arguments
-- : Stop handling options`) -- : Stop handling options`)
(os/exit 0) (os/exit 0)
1) 1)
@ -2775,17 +2779,17 @@
"k" (fn [&] (set *compile-only* true) (set *exit-on-error* false) 1) "k" (fn [&] (set *compile-only* true) (set *exit-on-error* false) 1)
"n" (fn [&] (set *colorize* false) 1) "n" (fn [&] (set *colorize* false) 1)
"m" (fn [i &] (setdyn :syspath (in args (+ i 1))) 2) "m" (fn [i &] (setdyn :syspath (in args (+ i 1))) 2)
"c" (fn [i &] "c" (fn c-switch [i &]
(def e (dofile (in args (+ i 1)))) (def e (dofile (in args (+ i 1))))
(spit (in args (+ i 2)) (make-image e)) (spit (in args (+ i 2)) (make-image e))
(set *no-file* false) (set *no-file* false)
3) 3)
"-" (fn [&] (set *handleopts* false) 1) "-" (fn [&] (set *handleopts* false) 1)
"l" (fn [i &] "l" (fn l-switch [i &]
(import* (in args (+ i 1)) (import* (in args (+ i 1))
:prefix "" :exit *exit-on-error*) :prefix "" :exit *exit-on-error*)
2) 2)
"e" (fn [i &] "e" (fn e-switch [i &]
(set *no-file* false) (set *no-file* false)
(eval-string (in args (+ i 1))) (eval-string (in args (+ i 1)))
2) 2)

View File

@ -27,10 +27,10 @@
#define JANETCONF_H #define JANETCONF_H
#define JANET_VERSION_MAJOR 1 #define JANET_VERSION_MAJOR 1
#define JANET_VERSION_MINOR 10 #define JANET_VERSION_MINOR 11
#define JANET_VERSION_PATCH 2 #define JANET_VERSION_PATCH 0
#define JANET_VERSION_EXTRA "-dev" #define JANET_VERSION_EXTRA ""
#define JANET_VERSION "1.10.2-dev" #define JANET_VERSION "1.11.0"
/* #define JANET_BUILD "local" */ /* #define JANET_BUILD "local" */