added missing signal/break in posix.import

Signed-off-by: Peter Bex <peter.bex@xs4all.nl>
Signed-off-by: Christian Kellermann <ckeen@pestilenz.org>
Accept flonums in numerator and denominator procedures (fixes #1016)

Signed-off-by: Christian Kellermann <ckeen@pestilenz.org>
Strip all trailing slashes from directory pathname parts

This causes decompose-pathname (and its derivatives pathname-directory,
pathname-replace-file, etc.) to strip all trailing slashes from the
directory parts of pathnames, rather than just the last one.

Signed-off-by: Peter Bex <peter.bex@xs4all.nl>
Signed-off-by: Christian Kellermann <ckeen@pestilenz.org>
Replace SRFI-1's PARTITION procedure with a faster implementation, provided by Joerg Wittenberger

Signed-off-by: Christian Kellermann <ckeen@pestilenz.org>
Add "require-extension-for-syntax"

A more intuitive form of the often occurring idiom

  (begin-for-syntax (require-library ...))
  (import-for-syntax ...)

For consistency and as a slightly shorter variant, "use-for-syntax"
is also provided as an alias.

Signed-off-by: Peter Bex <peter.bex@xs4all.nl>
Signed-off-by: Christian Kellermann <ckeen@pestilenz.org>
Make and-let* check its syntax strictly instead of silently discarding forms. Reported by Michele La Monaca

Signed-off-by: Mario Domenech Goulart <mario.goulart@gmail.com>
Deprecate implicit $VAR- and ~-expansion in pathnames

Signed-off-by: Peter Bex <peter.bex@xs4all.nl>
Fix meta-evaluation to actually take place in the meta environment and add tests

Signed-off-by: Christian Kellermann <ckeen@pestilenz.org>
Some shuffling about and fixing of the POSIX time handling stuff.

* All time<->string conversion routines used a static object, which resulted in inconsistent results across several calls using incomplete time specification strings.  Now they get fresh buffers allocated whenever they're called (fixes #1014).  Thanks to David Krentzlin for pointing out the bug.
* time->string was duplicated in posixunix from posix-common
* posixwin and posixunix both had C_tm_set(), C_tm_set_08, C_asctime() and C_a_mktime() macros, moved these to posix-common
* tm_get could be moved to posix-common, but it is only used in posixunix so it's kept there for now
Explicitly add trailing 0 when printing fractions on mingw32

On mingw32 gcvt(3) doesn't add a trailing zero to it's output when the
argument has a zero fractional part. This change adds '\0' explicitly
in that case. Reported by Michele La Monaca, who also tested the fix.

Signed-off-by: Christian Kellermann <ckeen@pestilenz.org>
zero is not nul
Only generate a versioned .so if USES_SONAME

Fixes a problem on OS X and Solaris, which do not currently
use SONAME, where a versioned dynamic library was generated
but there was no way for the linker to find it.

Bug was introduced in commit 53128c23; prior to that, both
worked but Solaris was generating an unused versioned .so.

Note that OS X does support SONAME (via -install_name) but
names should look like libchicken.7.dylib, whereas we only
currently support names like libchicken.dylib.7.  Also, some
code in csc assumes libchicken.dylib is unversioned.

Signed-off-by: Mario Domenech Goulart <mario.goulart@gmail.com>
Add checks for hitting the rest arg count limit on direct procedure application. Fixes some of the confusion from #910
Panic when maximum heap size exhausted, instead of crashing hard (fixes #892). It used to simply return from C_rereclaim2 and carry on as if the heap was resized(!)

Signed-off-by: Moritz Heidkamp <moritz@twoticketsplease.de>
mark C_display_flonum as obsolete, as it isn't used anymore.
removed comment about nonexistant declaration specifier.
removed remark about allowing to allocate on stack in "foreign-safe-lambda".
added note about multiple threads with respect to runtime-initialization to the manual.
typo fixes.
removed uses of unused units in posix and utils.