pkgsrc/math/nickle/PLIST

89 lines
2.5 KiB
Text
Raw Normal View History

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.
2018-12-02 07:49:24 +01:00
@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
include/nickle/config.h
include/nickle/gram.h
include/nickle/mem.h
include/nickle/memp.h
include/nickle/nickle.h
include/nickle/opcode.h
include/nickle/ref.h
include/nickle/stack.h
include/nickle/value.h
man/man1/nickle.1
share/nickle/COPYING
share/nickle/abort.5c
share/nickle/arc4.5c
share/nickle/builtin.5c
share/nickle/command.5c
share/nickle/ctype.5c
share/nickle/examples/COPYING
share/nickle/examples/comb.5c
share/nickle/examples/cribbage.5c
share/nickle/examples/erat.5c
share/nickle/examples/fourfours.5c
share/nickle/examples/initializer.5c
share/nickle/examples/is-prime.5c
share/nickle/examples/kaiser.5c
share/nickle/examples/menace2.5c
share/nickle/examples/miller-rabin.5c
share/nickle/examples/mutextest.5c
share/nickle/examples/numbers.5c
share/nickle/examples/polynomial.5c
share/nickle/examples/prime.5c
share/nickle/examples/qbrating.5c
share/nickle/examples/randtest.5c
share/nickle/examples/restart.5c
share/nickle/examples/roman.5c
share/nickle/examples/rsa-demo.5c
share/nickle/examples/rsa.5c
share/nickle/examples/skiplisttest.5c
share/nickle/examples/smlng/COPYING
share/nickle/examples/smlng/context.5c
share/nickle/examples/smlng/generate.5c
share/nickle/examples/smlng/parse.5c
share/nickle/examples/smlng/test.5c
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 HashValues. 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 last-first. 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
2017-03-20 14:13:51 +01:00
share/nickle/examples/sudoku.5c
share/nickle/examples/turtle/COPYING
share/nickle/examples/turtle/snowflake.5c
share/nickle/examples/turtle/snowflake.tex
share/nickle/examples/turtle/turtle.5c
share/nickle/factorial.5c
share/nickle/file.5c
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 /usr/share/doc/nickle. 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) { break; } } 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 conversion. 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 struct.
2013-05-26 22:14:48 +02:00
share/nickle/gamma.5c
share/nickle/history.5c
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 HashValues. 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 last-first. 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
2017-03-20 14:13:51 +01:00
share/nickle/json.5c
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 /usr/share/doc/nickle. 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) { break; } } 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 conversion. 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 struct.
2013-05-26 22:14:48 +02:00
share/nickle/list.5c
share/nickle/math.5c
share/nickle/mutex.5c
share/nickle/parse-args.5c
share/nickle/prime_sieve.5c
share/nickle/printf.5c
share/nickle/prng.5c
share/nickle/process.5c
share/nickle/scanf.5c
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 /usr/share/doc/nickle. 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) { break; } } 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 conversion. 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 struct.
2013-05-26 22:14:48 +02:00
share/nickle/skiplist.5c
share/nickle/socket.5c
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 /usr/share/doc/nickle. 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) { break; } } 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 conversion. 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 struct.
2013-05-26 22:14:48 +02:00
share/nickle/sort.5c
share/nickle/string.5c
share/nickle/svg.5c
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.
2018-12-02 07:49:24 +01:00
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