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 $
|
2007-02-22 21:35:38 +01:00
|
|
|
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
|
2007-02-22 21:35:38 +01:00
|
|
|
share/nickle/examples/turtle/COPYING
|
|
|
|
share/nickle/examples/turtle/snowflake.5c
|
|
|
|
share/nickle/examples/turtle/snowflake.tex
|
|
|
|
share/nickle/examples/turtle/turtle.5c
|
2011-01-11 12:53:13 +01:00
|
|
|
share/nickle/factorial.5c
|
2007-02-22 21:35:38 +01:00
|
|
|
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
|
2007-02-22 21:35:38 +01:00
|
|
|
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
|
2007-02-22 21:35:38 +01:00
|
|
|
share/nickle/math.5c
|
|
|
|
share/nickle/mutex.5c
|
|
|
|
share/nickle/parse-args.5c
|
2011-01-11 12:53:13 +01:00
|
|
|
share/nickle/prime_sieve.5c
|
2007-02-22 21:35:38 +01:00
|
|
|
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
|
2007-02-22 21:35:38 +01:00
|
|
|
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
|
2007-02-22 21:35:38 +01:00
|
|
|
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
|