Sun Dec 2 06:49:24 2018 UTC ()
nickle: update to 2.84.

    Bump to version 2.84

    Construct a separate case for lexing '0' from other octal numbers

    This avoids needing code to identify this case within the octal number
    token generation code.

    Ignore '_' within numbers so it can be used as a separator

    Adopted from languages like Rust where this can be used to group
    digits in thousands for base-10 or power of two for base 2,8,16 to
    make them easier to read.

            123_456_789 = 123456789
            0xafff_1212 = 0xafff1212

    The patch makes both the lexer and string conversions support this.

    Add array initalizer tests

    Ignore SIGTTOU/SIGTTIN. Adjust TSTP processing

    When run as other than the master of a process group, nickle may not
    get all of its work done before the controlling shell takes over the
    tty and resets that control group. This means that any processing of
    terminal parameters may generate SIGTTOU/SIGTTIN signals, which end up
    re-entering the stop function and causing general chaos. Only SIG_IGN
    appears to appease the kernel into dealing with this case correctly.

    Make assignments to stdin/stdout/stderr affect C code

    Use values of these variables in the C code.

    Allow repeat initializers in implicit sized arrays for small dimensions

    When initializing an implicitly sized multi-dimensional array, permit
    repeat initializers ("...") to be used to fill out smaller dimensions.
    This is done by requiring that the maximum number of elements in each
    dimension be taken from an initalizer without a repeat element.

    This also requires allowing repeat initializers to be useful for
    resizable arrays, which required a change to the execution machinery
    as well.

    Remove incorrect tree walking in CompileSizeDimensions

    CompileSizeDimensions was incorrectly interpreting the tree structure
    for bare value nodes -- it is either passed an ARRAY, or a single
    expression value, which can either be a comprehension, an empty
    initializer or a simple expression. The simple expression case was
    incorrectly looking for a '...' element to the left, which cannot
    happen. It further recursed if it hadn't reached the end of the
    dimensions, which is pointless as that case will generate an
    error when the initializers are compiled later.

    Debian-bug: #911926

    Bump to version 2.83

    debian: Run CI tests from installed location (/usr/share/nickle/test)

    Install tests so they can be run later

    debian: Bump standards-version to 4.2.1

    Sign tarfiles. Check signature in debian/watch file.

    debian: Add autopkgtest CI script

    debian: Depend on debhelper version 11

    debian: Add debian/watch file

    Check to make sure debian package is up-to-date with upstream version.

    debian: Add hardening flag to debian/rules

    debian: Make debian/copyright conform to standard copyright-format

    debian: Add Homepage entry in debian/control

    debian: Bump compat to 11

    debian: Remove trailing whitespace from debian/changelog

    test: Remove spurious printf in check_exp test

    Spelling fixes in nickle.1.in

    expresion → expression
    formating → formatting

    Add AC_SYS_LARGEFILE to configure.ac

    This ensures that the correct macros to get large file support enabled
    are included in the config.h file.

    Include debian/source/format in tarball

    The tarball is used to build the debian package and without this file
    the resulting bits have a lintian warning.

    Update to version 2.82

    Add .gitignore and .dir-locals.el files

    Add tests for exp/log which cover a range of precisions

    These check log and exp with mathematical identities to see if they
    produce reasonable results at a range of precisions.

    Add Math::e_value. Fix exp and log precision error.

    e_value computes e to any desired precision.

    exp was incorrectly truncating the value just before the last
    computation step, which caused it to lose significant precision.

    log was range-reducing to 0-1 instead of 2-3, which put it outside the
    range of rapid convergence. It also needed another newtons method
    iteration step.

    Use mktime instead of timelocal

    timelocal is a glibc alias for mktime and isn't provided by the musl C
    library.


(wiz)
diff -r1.17 -r1.18 pkgsrc/math/nickle/Makefile
diff -r1.5 -r1.6 pkgsrc/math/nickle/PLIST
diff -r1.13 -r1.14 pkgsrc/math/nickle/distinfo
diff -r1.1 -r1.2 pkgsrc/math/nickle/patches/patch-builtin-date.c

cvs diff -r1.17 -r1.18 pkgsrc/math/nickle/Makefile (expand / switch to unified diff)

--- pkgsrc/math/nickle/Makefile 2017/11/23 16:15:23 1.17
+++ pkgsrc/math/nickle/Makefile 2018/12/02 06:49:24 1.18
@@ -1,20 +1,22 @@ @@ -1,20 +1,22 @@
1# $NetBSD: Makefile,v 1.17 2017/11/23 16:15:23 wiz Exp $ 1# $NetBSD: Makefile,v 1.18 2018/12/02 06:49:24 wiz Exp $
2 2
3DISTNAME= nickle-2.81 3DISTNAME= nickle-2.84
4CATEGORIES= math lang 4CATEGORIES= math lang
5MASTER_SITES= http://nickle.org/release/ 5MASTER_SITES= http://nickle.org/release/
6 6
7MAINTAINER= pkgsrc-users@NetBSD.org 7MAINTAINER= pkgsrc-users@NetBSD.org
8HOMEPAGE= http://nickle.org/ 8HOMEPAGE= http://nickle.org/
9COMMENT= Desk calculator language 9COMMENT= Desk calculator language
10LICENSE= mit 10LICENSE= mit
11 11
12GNU_CONFIGURE= yes 12GNU_CONFIGURE= yes
13 13
14# suppress detection of DOCBOOK 14# suppress detection of DOCBOOK
15CONFIGURE_ENV+= ac_cv_path_DOCBOOK2PDF= 15CONFIGURE_ENV+= ac_cv_path_DOCBOOK2PDF=
16 16
17TEST_TARGET= check 17TEST_TARGET= check
18 18
19.include "../../mk/readline.buildlink3.mk" 19# rl_reset_after_signal, rl_echo_signal_char are missing in libedit as of 2018/12/02
 20#.include "../../mk/readline.buildlink3.mk"
 21.include "../../devel/readline/buildlink3.mk"
20.include "../../mk/bsd.pkg.mk" 22.include "../../mk/bsd.pkg.mk"

cvs diff -r1.5 -r1.6 pkgsrc/math/nickle/PLIST (expand / switch to unified diff)

--- pkgsrc/math/nickle/PLIST 2017/03/20 13:13:51 1.5
+++ pkgsrc/math/nickle/PLIST 2018/12/02 06:49:24 1.6
@@ -1,14 +1,14 @@ @@ -1,14 +1,14 @@
1@comment $NetBSD: PLIST,v 1.5 2017/03/20 13:13:51 wiz Exp $ 1@comment $NetBSD: PLIST,v 1.6 2018/12/02 06:49:24 wiz Exp $
2bin/nickle 2bin/nickle
3include/nickle/builtin-namespaces.h 3include/nickle/builtin-namespaces.h
4include/nickle/builtin.h 4include/nickle/builtin.h
5include/nickle/config.h 5include/nickle/config.h
6include/nickle/gram.h 6include/nickle/gram.h
7include/nickle/mem.h 7include/nickle/mem.h
8include/nickle/memp.h 8include/nickle/memp.h
9include/nickle/nickle.h 9include/nickle/nickle.h
10include/nickle/opcode.h 10include/nickle/opcode.h
11include/nickle/ref.h 11include/nickle/ref.h
12include/nickle/stack.h 12include/nickle/stack.h
13include/nickle/value.h 13include/nickle/value.h
14man/man1/nickle.1 14man/man1/nickle.1
@@ -58,13 +58,31 @@ share/nickle/list.5c @@ -58,13 +58,31 @@ share/nickle/list.5c
58share/nickle/math.5c 58share/nickle/math.5c
59share/nickle/mutex.5c 59share/nickle/mutex.5c
60share/nickle/parse-args.5c 60share/nickle/parse-args.5c
61share/nickle/prime_sieve.5c 61share/nickle/prime_sieve.5c
62share/nickle/printf.5c 62share/nickle/printf.5c
63share/nickle/prng.5c 63share/nickle/prng.5c
64share/nickle/process.5c 64share/nickle/process.5c
65share/nickle/scanf.5c 65share/nickle/scanf.5c
66share/nickle/skiplist.5c 66share/nickle/skiplist.5c
67share/nickle/socket.5c 67share/nickle/socket.5c
68share/nickle/sort.5c 68share/nickle/sort.5c
69share/nickle/string.5c 69share/nickle/string.5c
70share/nickle/svg.5c 70share/nickle/svg.5c
 71share/nickle/test/arraytest.5c
 72share/nickle/test/datetest.5c
 73share/nickle/test/factorial.5c
 74share/nickle/test/gcdtest.5c
 75share/nickle/test/hashtest.5c
 76share/nickle/test/inttest.5c
 77share/nickle/test/is_type.5c
 78share/nickle/test/jsontest.5c
 79share/nickle/test/math-tables.5c
 80share/nickle/test/math.5c
 81share/nickle/test/modtest.5c
 82share/nickle/test/optest.5c
 83share/nickle/test/orderofoptest.5c
 84share/nickle/test/rattest.5c
 85share/nickle/test/reftest.5c
 86share/nickle/test/round.5c
 87share/nickle/test/scanf.5c
 88share/nickle/test/signal.5c

cvs diff -r1.13 -r1.14 pkgsrc/math/nickle/distinfo (expand / switch to unified diff)

--- pkgsrc/math/nickle/distinfo 2018/01/03 12:12:07 1.13
+++ pkgsrc/math/nickle/distinfo 2018/12/02 06:49:24 1.14
@@ -1,9 +1,9 @@ @@ -1,9 +1,9 @@
1$NetBSD: distinfo,v 1.13 2018/01/03 12:12:07 jperkin Exp $ 1$NetBSD: distinfo,v 1.14 2018/12/02 06:49:24 wiz Exp $
2 2
3SHA1 (nickle-2.81.tar.gz) = ef9c6de7ad2a544a3245657fbfd46dbfa9675476 3SHA1 (nickle-2.84.tar.gz) = ce346b5ba0cd0085dfd1a1351d03ffa8faeb3368
4RMD160 (nickle-2.81.tar.gz) = 03c8ffbebfd0104b3cd54f748f702de7e6f999f5 4RMD160 (nickle-2.84.tar.gz) = 4c34eaa038dbae546467c652a02953dccaa128de
5SHA512 (nickle-2.81.tar.gz) = b11755f824b3abf74f104db7bfaf58f52fef0b76e194ffd8c562693d5497f9de69121f9ce98777fb0366a7e02be7b32e7d800a31be03f5a5921b9d8bc3502aca 5SHA512 (nickle-2.84.tar.gz) = ded33c3b2e6f8234e48148b2590db4a48653f3e85ec8ae7d94f63a6d0a7e03b2990af2ccdbd0982b92a980cecf68f016775f6d6f583918add3ca34d9fa0e7d62
6Size (nickle-2.81.tar.gz) = 579140 bytes 6Size (nickle-2.84.tar.gz) = 810473 bytes
7SHA1 (patch-aa) = 4cbb563244883f6c9f7a3594875052f8d9a9e9b3 7SHA1 (patch-aa) = 4cbb563244883f6c9f7a3594875052f8d9a9e9b3
8SHA1 (patch-builtin-date.c) = ca55181a501cfbe3437d38728398852e96b0111a 8SHA1 (patch-builtin-date.c) = 1aa792b5a91f4b808208e73ee38bd539ab0c12fb
9SHA1 (patch-lex.c) = f9d5f3f282f97a94195730062525e9f6310bb316 9SHA1 (patch-lex.c) = f9d5f3f282f97a94195730062525e9f6310bb316

cvs diff -r1.1 -r1.2 pkgsrc/math/nickle/patches/Attic/patch-builtin-date.c (expand / switch to unified diff)

--- pkgsrc/math/nickle/patches/Attic/patch-builtin-date.c 2018/01/03 12:12:07 1.1
+++ pkgsrc/math/nickle/patches/Attic/patch-builtin-date.c 2018/12/02 06:49:24 1.2
@@ -1,38 +1,29 @@ @@ -1,38 +1,29 @@
1$NetBSD: patch-builtin-date.c,v 1.1 2018/01/03 12:12:07 jperkin Exp $ 1$NetBSD: patch-builtin-date.c,v 1.2 2018/12/02 06:49:24 wiz Exp $
2 2
3Fix missing tm_zone on SunOS. 3Fix missing tm_zone on SunOS.
4Pull in upstream fix for missing timelocal(). 4Pull in upstream fix for missing timelocal().
5 5
6--- builtin-date.c.orig 2017-11-14 10:30:06.000000000 +0000 6--- builtin-date.c.orig 2018-09-24 21:43:45.000000000 +0000
7+++ builtin-date.c 7+++ builtin-date.c
8@@ -76,7 +76,11 @@ to_date(struct tm *tm) 8@@ -76,7 +76,11 @@ to_date(struct tm *tm)
9 BoxValueSet (box, 6, int_value(tm->tm_wday)); 9 BoxValueSet (box, 6, int_value(tm->tm_wday));
10 BoxValueSet (box, 7, int_value(tm->tm_yday)); 10 BoxValueSet (box, 7, int_value(tm->tm_yday));
11 BoxValueSet (box, 8, tm->tm_isdst ? TrueVal : FalseVal); 11 BoxValueSet (box, 8, tm->tm_isdst ? TrueVal : FalseVal);
12+#ifdef __sun 12+#ifdef __sun
13+ BoxValueSet (box, 9, NewStrString("GMT")); 13+ BoxValueSet (box, 9, NewStrString("GMT"));
14+#else 14+#else
15 BoxValueSet (box, 9, NewStrString(tm->tm_zone)); 15 BoxValueSet (box, 9, NewStrString(tm->tm_zone));
16+#endif 16+#endif
17 return ret; 17 return ret;
18 } 18 }
19  19
20@@ -92,7 +96,9 @@ from_date(Value date, struct tm *tm) 20@@ -92,7 +96,9 @@ from_date(Value date, struct tm *tm)
21 tm->tm_wday = value_int(date, "wday", "invalid wday", 0); 21 tm->tm_wday = value_int(date, "wday", "invalid wday", 0);
22 tm->tm_yday = value_int(date, "yday", "invalid yday", 0); 22 tm->tm_yday = value_int(date, "yday", "invalid yday", 0);
23 tm->tm_isdst = value_bool(date, "isdst", "invalid isdst", 0); 23 tm->tm_isdst = value_bool(date, "isdst", "invalid isdst", 0);
24+#ifndef __sun 24+#ifndef __sun
25 tm->tm_zone = NULL; 25 tm->tm_zone = NULL;
26+#endif 26+#endif
27 } 27 }
28  28
29 static Value 29 static Value
30@@ -143,7 +149,7 @@ do_Date_timelocal(Value v) 
31 time_t seconds; 
32  
33 from_date(v, &tm); 
34- seconds = timelocal(&tm); 
35+ seconds = mktime(&tm); 
36 RETURN(Reduce(NewSignedDigitInteger((signed_digit) seconds))); 
37 } 
38