./math/nickle, Desk calculator language

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]

Branch: CURRENT, Version: 2.79, Package name: nickle-2.79, Maintainer: pkgsrc-users

Nickle is a desk calculator language with powerful programming and
scripting capabilities. Nickle supports a variety of datatypes, espe-
cially arbitrary precision integers, rationals, and imprecise reals.
The input language vaguely resembles C. Some things in C which do not
translate easily are different, some design choices have been made dif-
ferently, and a very few features are simply missing.

Required to build:

Master sites:

SHA1: 86722b07df9eebf99789b91a0c576f14af8ea739
RMD160: a6a211cf1171960c0cab45c9d2206d5ae4abd374
Filesize: 567.93 KB

Version history: (Expand)

CVS history: (Expand)

   2017-04-23 16:49:27 by Takahiro Kambe | Files touched by this commit (3)
Log message:
Fix build problem on NetBSD 6.1_STABLE.

* Guard use of rl_catch_signals variable with "#if HAVE_RL_CATCH_SIGNALS".

Add comment in patch/patch-aa quote from last commit message.
   2017-03-20 14:13:51 by Thomas Klausner | Files touched by this commit (3) | Package updated
Log message:
Updated nickle to 2.79.

    Ensure data cache value array is aligned adequately

    Data caches are used to store pointers and other potentially long
    values. Make sure that the position of the values portion of the cache
    is aligned to a suitable address. Fixes a bus error on sparc64 machines.

    Building nickle on arm64 now, change package names
    built .deb and .rpm files are now amd64 instead of i386

    Update to version 2.78

    Also depend on bison and flex

    newer version of flex doesn't have yyunput

    This line was just removing a warning about yyunput unused; newer
    versions of flex don't even have that symbol anymore. Better to have a
    warning than fail to compile.

    Adapt tests to new automake requirements

    Automake now has a separate variable for the program to run the test
    scripts with, and breaks if you try to embed that in the
    TESTS_ENVIRONMENT variable, which used to be how this was done.

    Use 'G' format for elements when printing arrays in 'g' format

    This restricts array printing to just recurse one level.

    When using pointer as hash, first cast to intptr_t

    This avoids a compiler warning when pointers are not the same size as

    Initialize 'replace' in NewTypedBox

    When left uninitialized, undefined results will occur. This caused a
    test failure on MIPS when being built with PIE support.

    Debian bug 857840.

    Reported-by: James Cowgill <jcowgill@debian.org>

    Open quote character is a single char, not a string

    When checking to see if a string needs to be dequoted, check the first
    character of the string against the quote character, rather than
    checking the whole string.

    Probably using strings for the quote markers wasn't the best API
    choice as this would have been caught by typechecking had the quote
    characters been an int instead.

    Define release date in configure.ac and use that instead of build date

    This avoids encoding the current date into the resulting output so
    that it can be reproduced.

    Add JSON input/output code

    Reverse data written in linked FileChains

    FileChains are linked in newest-in order, so they need to be written

    Add is_hash primitive

    Checks whether a value is a hash

    Abort karatsuba multiply in more places

    removed gratuitous -O2 from Makefile.am to let CFLAGS handle it

    Added a lightly-optimized choose(n, k) function to math.5c.

    The lack of a choose operator has continually bugged me;
    I've constantly rewritten it "the bad way". This is a
    lightly optimized version of that function that seems to
    handle most edge cases reasonably. It has only been tested a
    little bit.

    added check mode to sudoku solver

    cleaned up a bunch of sudoku solver stuff

    added edge cache to sudoku example

    tutorial: Close a couple of SGML tags

    nsgmls found a couple of unclosed tags which may make some versions
    of docbook tools unhappy.

    Fix release docs to use git log instead of git-log

    git-log disappeared a long time ago

    actually added Sudoku example

    added Sudoku generator example

    added sudoku example
   2015-11-04 00:33:46 by Alistair G. Crooks | Files touched by this commit (262)
Log message:
Add SHA512 digests for distfiles for math category

Problems found locating distfiles:
	Package dfftpack: missing distfile dfftpack-20001209.tar.gz
	Package eispack: missing distfile eispack-20001130.tar.gz
	Package fftpack: missing distfile fftpack-20001130.tar.gz
	Package linpack: missing distfile linpack-20010510.tar.gz
	Package minpack: missing distfile minpack-20001130.tar.gz
	Package odepack: missing distfile odepack-20001130.tar.gz
	Package py-networkx: missing distfile networkx-1.10.tar.gz
	Package py-sympy: missing distfile sympy-
	Package quadpack: missing distfile quadpack-20001130.tar.gz

Otherwise, existing SHA1 digests verified and found to be the same on
the machine holding the existing distfiles (morden).  All existing
SHA1 digests retained for now as an audit trail.
   2013-08-12 04:17:43 by OBATA Akio | Files touched by this commit (1)
Log message:
suppress detection of DOCBOOK, PR pkg/48115
   2013-07-15 04:02:29 by Ryo ONODERA | Files touched by this commit (177)
Log message:
* .include "../../devel/readline/buildlink3.mk" with USE_GNU_READLINE=yes
  are replaced with .include "../../devel/readline/buildlink3.mk", and
  USE_GNU_READLINE are removed,

* .include "../../devel/readline/buildlink3.mk" without USE_GNU_READLINE
  are replaced with .include "../../mk/readline.buildlink3.mk".
   2013-05-30 18:58:01 by Thomas Klausner | Files touched by this commit (1)
Log message:
DragonFly needs GNU readline here as well. PR pkg/47870 by David Shao.
   2013-05-29 11:06:03 by Thomas Klausner | Files touched by this commit (1)
Log message:
Does not need GNU readline on 6.99.21+.
   2013-05-26 22:14:48 by Thomas Klausner | Files touched by this commit (3) | Package updated
Log message:
Update to 2.77:

    Update to version 2.77

    Fix RPM spec file to not install tutorial twice

    By default, the tutorial gets stuck in /usr/share/doc/nickle, while
    rpm wants it in /usr/shar/doc/nickle-<version>. Ignore the one in \ 

    doc: Expand tabs to spaces in .sgml files
    Makes code examples readable.

    Build tutorial when docbook2pdf is available
    And build it on debian

    tutorial: Use sgml entities instead of < and >

    Tutorial: twixt doesn't have an optional 'else' block
    This was a proposed feature that was removed

    Rename nickle tutorial to nickle-tutorial
    Makes any built files include 'nickle' by default

    corrected some Nickle Tour nits

    Handle OpFarJump in CompileReachable
    A FarJump within a catch block references instructions one or more
    frames outside of the instruction context. When checking for reachable
    code, look down inside the catch blocks to see if any of the FarJumps
    within them touch the target instruction.
    Fixes this example:
    void foo() {
    	for (;;)
    		try {
    		} catch uninitialized_value(string x) {
    Without this fix, the 'break' will not get noticed and no ReturnVoid
    will be appended to the object code for 'foo', leaving the break
    dangling in space.

    New instructions IsType and HasMember need entries in OpNames
    Otherwise, the array no longer matches the enum

    Fix VALIDATE_EXECUTION test code
    Needed ObjType defined.

    Update to 2.76

    Don't erase twixt pointer during JumpContinue until after stack copy
    Otherwise, if MemCollect occurs during the stack copy, the twixt's
    stack copy can get collected.

    Check for lost stack chunks
    If a stack chunk gets collected, the 'type' field will get
    cleared. Check to see if this has happened and abort.

    Add debug code to check thread validity during execution
    If something gets corrupted, it's useful to have this code to help
    track it down.

    Handle initializers with undefined types.
    Emit an error instead of crashing.

    Handle systems which don't define PATH_MAX (Hurd)
    This is a hack; a correct fix would involve actually allocating the
    correct length object.

    Version 2.75

    Delete ancient .cvsignore files
    Not exactly useful anymore

    Examples shouldn't be executable

    Fix Source URL in nickle.spec file
    Point at nickle.org, as appropriate.

    Make 'G' format limit array and struct recursion
    This makes stack traces tractable.

    Switch to dh for debian builds
    Vastly simplifies debian/rules...

    Stop printing recursive structs with 'g' format.
    This gets annoying really quickly, so just terminate the recursive
    struct printing right away.

    Handle ref types in &foo->bar operations
    For some reason, this case was left out of the usual ref type hacks

    Version 2.74

    Switch from debuild to pdebuild
    Catch more package building problems by using pbuilder.

    Fix Semaphore::wait logic (again) - partial means we've woken up
    The only way to run do_Semaphore::wait with 'partial' set to true is
    if the thread is waking up; in this case, the semaphore count may well
    be negative if other threads are also waiting. Ignore the count in
    this case and just complete the operation.

    Add explicit debian source format 3.0 (native)
    Keep lintian happy

    Clean up some debian lintian warnings

    Fix new FileVPrintf 'G' format comparison
    Was comparing the pointer to the representation enum. oops.

    Update debian/changelog for eventual 2.73 release

    git-log has become git log
    Needed to build ChangeLog

    Back autoconf requirement to 2.64 so debian stable can run it

    Shorten backtrace display
    Don't display composite values in backtraces so that the
    backtrace doesn't get flooded with giant values.

    Typecheck switch expressions
    Make sure switch expression and case expresssions are all type compatible.

    Add is_type and has_member built-ins
    These provide the ability to do run-time type comparisons without
    needing full introspection in the language.

    Add list.5c
    A useful data type

    add 'millis' function to return a clock in milliseconds.
    Useful when doing things with sleep

    Add Semaphore::count
    Useful for checking current semaphore value without
    modifying it.

    Clean up do_Semaphore_wait
    Make it clear that the semaphore count gets bumped down the first time
    into this function.

    Check for thread switch even if current thread is last
    Threads can switch due to semaphores or other signals; that can leave
    the current thread last in the run queue. Check for any case where
    running changes instead of only when the current thread isn't last.

    Make scanf not report valid conversion on blank input.
    scanf was incorrectly accepting " " as a valid number, returning a
    conversion of 0. Fix this by checking for empty strings in any numeric

    Add tests for scanf function
    Scanf incorrectly accepts blank strings for numbers; here's a pile
    of tests to validate various numeric input.

    Add sort and skiplist to standard nickle library
    These are too useful to just be examples

    Add gamma function

    Printing rational 0 in 'e' format doesn't need an exponent
    Computing a negative exponent requires a non-zero value, so just skip
    that if the value is zero

    NaturalGcd must return a Natural* when aborting
    It was returning One (an Integer) instead of one_natural;

    floor() and ceil() should work on imprecise floats
    They should return an approximate integer value instead of raising an exception.

    Set version to 2.73 in prepartion for eventually release

    Only call readline tty cleanup on signal readline is active
    If readline isn't active, the cleanup functions tend to make a mess of
    the tty state, so don't call them. This really only matters when
    handling SIGTSTP.

    Update to version 2.72

    Keep readline from catching signals
    This stops readline from catching signals, letting nickle handle them
    all by itself.

    Block in select instead of sigsuspend when waiting for I/O
    The kernel doesn't appear to reliably deliver SIGIO while the
    application is blocked, so sit in select instead of sigsuspend to make
    sure we hear about pending I/O.

    rename configure.in to configure.ac

    Switch version to 2.72 in preparation for an eventual release

    wait3 returns 0 when there's nothing left to do
    Don't keep looping when wait3 is done

    Update to version 2.71

    Clean up a pile of build warnings
    Signal return types, unused return values and stepping off the end of
    the typePrim array (the value of which was unused anyways).

    Catch attempts to use uninitialized pointer contents
    Dereferencing a pointer to uninitialized storage is an error, instead
    of passing this value along to callers, catch it immediately and raise
    an exception. Check for this case in the ++ and -- operators to
    generate a better error message (otherwise, we'll pass Void along and
    generate an error much later).

    Exit after two consecutive interrupts
    If the first interrupt isn't received by the nickle code,
    when the second one comes in, just exit

    Cleanup struct type changes

    Replace most parameterized macros with static inline functions
    Typechecking, decent compiler warnings and smaller code.

    Replace macros with static inline functions in value.h
    Actual type checking, and smaller compiler output to boot.

    Get rid of old-school variable length struct allocations
    This confuses the new _FORTIFY_SOURCE bits in GCC, so use the
    'sanctioned' form of placing a zero-length array at the end of the