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.
This commit is contained in:
wiz 2018-12-02 06:49:24 +00:00
parent ded60803d9
commit a2f94a859f
4 changed files with 32 additions and 21 deletions

View file

@ -1,6 +1,6 @@
# $NetBSD: Makefile,v 1.17 2017/11/23 16:15:23 wiz Exp $
# $NetBSD: Makefile,v 1.18 2018/12/02 06:49:24 wiz Exp $
DISTNAME= nickle-2.81
DISTNAME= nickle-2.84
CATEGORIES= math lang
MASTER_SITES= http://nickle.org/release/
@ -16,5 +16,7 @@ CONFIGURE_ENV+= ac_cv_path_DOCBOOK2PDF=
TEST_TARGET= check
.include "../../mk/readline.buildlink3.mk"
# rl_reset_after_signal, rl_echo_signal_char are missing in libedit as of 2018/12/02
#.include "../../mk/readline.buildlink3.mk"
.include "../../devel/readline/buildlink3.mk"
.include "../../mk/bsd.pkg.mk"

View file

@ -1,4 +1,4 @@
@comment $NetBSD: PLIST,v 1.5 2017/03/20 13:13:51 wiz Exp $
@comment $NetBSD: PLIST,v 1.6 2018/12/02 06:49:24 wiz Exp $
bin/nickle
include/nickle/builtin-namespaces.h
include/nickle/builtin.h
@ -68,3 +68,21 @@ share/nickle/socket.5c
share/nickle/sort.5c
share/nickle/string.5c
share/nickle/svg.5c
share/nickle/test/arraytest.5c
share/nickle/test/datetest.5c
share/nickle/test/factorial.5c
share/nickle/test/gcdtest.5c
share/nickle/test/hashtest.5c
share/nickle/test/inttest.5c
share/nickle/test/is_type.5c
share/nickle/test/jsontest.5c
share/nickle/test/math-tables.5c
share/nickle/test/math.5c
share/nickle/test/modtest.5c
share/nickle/test/optest.5c
share/nickle/test/orderofoptest.5c
share/nickle/test/rattest.5c
share/nickle/test/reftest.5c
share/nickle/test/round.5c
share/nickle/test/scanf.5c
share/nickle/test/signal.5c

View file

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

View file

@ -1,9 +1,9 @@
$NetBSD: patch-builtin-date.c,v 1.1 2018/01/03 12:12:07 jperkin Exp $
$NetBSD: patch-builtin-date.c,v 1.2 2018/12/02 06:49:24 wiz Exp $
Fix missing tm_zone on SunOS.
Pull in upstream fix for missing timelocal().
--- builtin-date.c.orig 2017-11-14 10:30:06.000000000 +0000
--- builtin-date.c.orig 2018-09-24 21:43:45.000000000 +0000
+++ builtin-date.c
@@ -76,7 +76,11 @@ to_date(struct tm *tm)
BoxValueSet (box, 6, int_value(tm->tm_wday));
@ -27,12 +27,3 @@ Pull in upstream fix for missing timelocal().
}
static Value
@@ -143,7 +149,7 @@ do_Date_timelocal(Value v)
time_t seconds;
from_date(v, &tm);
- seconds = timelocal(&tm);
+ seconds = mktime(&tm);
RETURN(Reduce(NewSignedDigitInteger((signed_digit) seconds)));
}