ecl.git
9 years agoMerge branch 'develop' of gitlab.com:embeddable-common-lisp/ecl into heap-size origin/heap-size
Matthew Mondor [Fri, 11 Sep 2015 19:56:15 +0000 (15:56 -0400)]
Merge branch 'develop' of gitlab.com:embeddable-common-lisp/ecl into heap-size

Conflicts:
CHANGELOG

9 years agochangelog: update
Daniel Kochmański [Fri, 11 Sep 2015 15:44:58 +0000 (17:44 +0200)]
changelog: update

9 years agoannotation: turn annotation logic on
Daniel Kochmański [Fri, 11 Sep 2015 14:23:32 +0000 (16:23 +0200)]
annotation: turn annotation logic on

This was disabled from outside of ecl-min (not sure why). Achieved
with bounding ext::*register-with-pde-hook* to already defined

Works ok with swank for both macros and functions.

Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>
9 years agodoc: fix documnetation builds
Daniel Kochmański [Fri, 11 Sep 2015 12:23:16 +0000 (14:23 +0200)]
doc: fix documnetation builds

Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>
9 years agodoc: ansi-streams: correct encodings package
Daniel Kochmański [Fri, 11 Sep 2015 12:16:31 +0000 (14:16 +0200)]
doc: ansi-streams: correct encodings package

Fixes #139.

Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>
9 years agoasdf: fix problem with uiop:run-program until we upgrade to next ASDF
Daniel Kochmański [Fri, 11 Sep 2015 10:56:10 +0000 (12:56 +0200)]
asdf: fix problem with uiop:run-program until we upgrade to next ASDF

Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>
9 years agoexternal-process-wait: check code after status change
Daniel Kochmański [Fri, 11 Sep 2015 09:49:02 +0000 (11:49 +0200)]
external-process-wait: check code after status change

Related to #149

Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>
9 years agoMerge branch 'develop' into 'develop'
Daniel Kochmański [Mon, 7 Sep 2015 14:42:13 +0000 (14:42 +0000)]
Merge branch 'develop' into 'develop'

cosmetic: fix a minor typo

See merge request !10

9 years agofix a minor typo
Denis Martinez [Mon, 7 Sep 2015 13:27:06 +0000 (15:27 +0200)]
fix a minor typo

9 years agoUpdate CHANGELOG for various recent fixes
Matthew Mondor [Mon, 7 Sep 2015 10:06:36 +0000 (06:06 -0400)]
Update CHANGELOG for various recent fixes

9 years ago- si_get_limit() must deal with size_t for heap-size too
Matthew Mondor [Sun, 6 Sep 2015 11:47:12 +0000 (07:47 -0400)]
- si_get_limit() must deal with size_t for heap-size too
- add comments for the size_t exceptions

9 years agoUse %lu with (unsigned long) casting instead of relying on C99 %zd.
Matthew Mondor [Sat, 5 Sep 2015 22:16:37 +0000 (18:16 -0400)]
Use %lu with (unsigned long) casting instead of relying on C99 %zd.
Cleanup the output text, which was confusing when using a custom
heap size limit.

9 years agoUse size_t as well as (size_t)ecl_to_ulong() for the heap size
Matthew Mondor [Sat, 5 Sep 2015 21:50:03 +0000 (17:50 -0400)]
Use size_t as well as (size_t)ecl_to_ulong() for the heap size
parameter, since cl_index with ecl_to_size() could not handle
expected values for heap-size on 32-bit systems.

9 years agoMore text cleanup
Matthew Mondor [Sat, 5 Sep 2015 09:56:26 +0000 (05:56 -0400)]
More text cleanup

9 years agoAdd size_t casting where needed (on 32-bit 0 would be printed in
Matthew Mondor [Sat, 5 Sep 2015 09:48:03 +0000 (05:48 -0400)]
Add size_t casting where needed (on 32-bit 0 would be printed in
some cases otherwise).

9 years agoHeap size related warnings now accumulate into a buffer which the
Matthew Mondor [Sat, 5 Sep 2015 07:34:00 +0000 (03:34 -0400)]
Heap size related warnings now accumulate into a buffer which the
toplevel prints if it's available.  The warning messages were also
cleaned-up.

9 years agoMerge branch 'develop' of gitlab.com:embeddable-common-lisp/ecl into heap-size
Matthew Mondor [Fri, 4 Sep 2015 19:49:53 +0000 (15:49 -0400)]
Merge branch 'develop' of gitlab.com:embeddable-common-lisp/ecl into heap-size

9 years agoMerge branch 'infinity-fix' into 'develop'
Matthew Mondor [Fri, 4 Sep 2015 19:42:38 +0000 (19:42 +0000)]
Merge branch 'infinity-fix' into 'develop'

Infinity fix

Produce valid C code for all kinds of infinity

I have also pending NaN changes, but this requires more work.

See merge request !9

9 years agochangelog: update changelog
Daniel Kochmański [Fri, 4 Sep 2015 19:20:51 +0000 (21:20 +0200)]
changelog: update changelog

Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>
9 years agoinfinity: add regression tests
Daniel Kochmański [Fri, 4 Sep 2015 19:05:24 +0000 (21:05 +0200)]
infinity: add regression tests

Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>
9 years agointernal.h: fake ISO C99 INFINITY and NAN if not defined
Daniel Kochmański [Fri, 4 Sep 2015 18:58:31 +0000 (20:58 +0200)]
internal.h: fake ISO C99 INFINITY and NAN if not defined

Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>
9 years agocmpc: when infinity is used, emit macro "INFINITY"
Daniel Kochmański [Fri, 4 Sep 2015 10:59:59 +0000 (12:59 +0200)]
cmpc: when infinity is used, emit macro "INFINITY"

and "-INFINITY" for negative infinity. These corner-cases lead to
compilation error, so no regression will be imposed even against
non-c99 compilers.

INFINITY and NAN macros are introduced by C99 standard, so such code
requires C-backend to support this math extension. Fixes #156.

Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>
9 years agochangelog: update
Daniel Kochmański [Fri, 4 Sep 2015 19:31:16 +0000 (21:31 +0200)]
changelog: update

Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>
9 years agoregression: add back removed interfaces
Daniel Kochmański [Fri, 4 Sep 2015 19:29:08 +0000 (21:29 +0200)]
regression: add back removed interfaces

Adds back ecl_import_current_thread and ecl_release_current_thread.
Closes #8.

Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>
9 years agochangelog: update changelog
Daniel Kochmański [Fri, 4 Sep 2015 06:59:58 +0000 (08:59 +0200)]
changelog: update changelog

Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>
9 years agoformat: float: use prin1 when passed NaN or infinity
Daniel Kochmański [Fri, 4 Sep 2015 06:58:27 +0000 (08:58 +0200)]
format: float: use prin1 when passed NaN or infinity

Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>
9 years agoMerge branch 'develop' of gitlab.com:embeddable-common-lisp/ecl into heap-size
Matthew Mondor [Fri, 4 Sep 2015 04:52:07 +0000 (00:52 -0400)]
Merge branch 'develop' of gitlab.com:embeddable-common-lisp/ecl into heap-size

9 years agostyle: fix broken modeline
Daniel Kochmański [Fri, 4 Sep 2015 04:45:50 +0000 (06:45 +0200)]
style: fix broken modeline

Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>
9 years agoMerge branch 'develop' of gitlab.com:embeddable-common-lisp/ecl into heap-size
Matthew Mondor [Thu, 3 Sep 2015 20:19:51 +0000 (16:19 -0400)]
Merge branch 'develop' of gitlab.com:embeddable-common-lisp/ecl into heap-size

9 years agoMerge branch 'develop' of gitlab.com:embeddable-common-lisp/ecl into develop
Matthew Mondor [Thu, 3 Sep 2015 20:18:01 +0000 (16:18 -0400)]
Merge branch 'develop' of gitlab.com:embeddable-common-lisp/ecl into develop

9 years agoFix some fallout from the script to correct/add Emacs and ViM syntax
Matthew Mondor [Thu, 3 Sep 2015 20:16:12 +0000 (16:16 -0400)]
Fix some fallout from the script to correct/add Emacs and ViM syntax
directives.  Some files had more than one existing Emacs directives,
breaking the script which didn't expect this.

9 years agocosmetic: bdwgc: remove autom4te.cache
Daniel Kochmański [Thu, 3 Sep 2015 19:47:47 +0000 (21:47 +0200)]
cosmetic: bdwgc: remove autom4te.cache

Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>
9 years agoMerge branch 'develop' of gitlab.com:embeddable-common-lisp/ecl into heap-size
Matthew Mondor [Thu, 3 Sep 2015 19:24:53 +0000 (15:24 -0400)]
Merge branch 'develop' of gitlab.com:embeddable-common-lisp/ecl into heap-size

9 years agoMerge branch 'style' into 'develop'
Daniel Kochmański [Thu, 3 Sep 2015 18:07:04 +0000 (18:07 +0000)]
Merge branch 'style' into 'develop'

"style" temporary branch

The ECL code no longer uses tabulator characters, they were replaced
by spaces.

A custom script was used to insert/replace Emacs and ViM per-file editor
settings according to their type and the new ECL coding style.

See merge request !8

9 years agoThe ECL code no longer uses tabulator characters, they were replaced
Matthew Mondor [Thu, 3 Sep 2015 11:35:47 +0000 (07:35 -0400)]
The ECL code no longer uses tabulator characters, they were replaced
by spaces.

A custom script was used to insert/replace Emacs and ViM per-file editor
settings according to their type and the new ECL coding style.

9 years agoprinter: coerce float infinity more roboustly
Daniel Kochmański [Thu, 3 Sep 2015 06:47:00 +0000 (08:47 +0200)]
printer: coerce float infinity more roboustly

Basically use C function instead of a generic Lisp one.

Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>
9 years agoprinter: float infinity/nan: coerce printed form to base-string
Daniel Kochmański [Thu, 3 Sep 2015 06:12:08 +0000 (08:12 +0200)]
printer: float infinity/nan: coerce printed form to base-string

CLOS printer uses normal strings while float_to_string.d calls
push_base_string to cache printable form of infinity (and nan). Coerce
clos strings to base-string. Fixes #153. Related to #114.

Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>
9 years agoMerge branch 'develop' of gitlab.com:embeddable-common-lisp/ecl into heap-size
Matthew Mondor [Wed, 2 Sep 2015 21:56:15 +0000 (17:56 -0400)]
Merge branch 'develop' of gitlab.com:embeddable-common-lisp/ecl into heap-size

9 years agotests: add stress tests submitted by James M. Lawrence
Daniel Kochmański [Wed, 2 Sep 2015 19:29:30 +0000 (21:29 +0200)]
tests: add stress tests submitted by James M. Lawrence

This suite needs integration and tweaking to avoid infinite loop.

Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>
9 years agoMerge branch 'develop' of gitlab.com:embeddable-common-lisp/ecl into develop
Daniel Kochmański [Wed, 2 Sep 2015 13:59:35 +0000 (15:59 +0200)]
Merge branch 'develop' of gitlab.com:embeddable-common-lisp/ecl into develop

9 years agogmp: issue autoreconf -ivf (fixes ppc64le builds)
Daniel Kochmański [Wed, 2 Sep 2015 13:59:18 +0000 (15:59 +0200)]
gmp: issue autoreconf -ivf (fixes ppc64le builds)

Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>
9 years agoMerge branch 'cleanup-testing' into 'develop'
Philipp Marek [Wed, 2 Sep 2015 10:22:45 +0000 (10:22 +0000)]
Merge branch 'cleanup-testing' into 'develop'

Cleanup testing

Separated tests from auxiliary tools, merged tests into files corresponding to interface (aspects are separated with ^L, navigable with C-x [ and C-x ]), renamed "bugs" to "regressions" - what these tests really are.

TODO (in indefinete future):
- some tests have auxiliary functions, these should be moved to auxiliary/ directory and loaded from there, so test files contain only tests

- add back ansi-tests suite as git subtree (to keep in sync with upstream on demand)

- add mop-features suite (subtree)

- modify deftest macro to "remember" file, from which test was load and report that back

- keep test suites / interfaces in separate packages

- make running tests possible without installing ECL (not tests thing though, rather buildsystem)

See merge request !7

9 years agoMerge branch 'develop' of gitlab.com:embeddable-common-lisp/ecl into develop
Daniel Kochmański [Wed, 2 Sep 2015 09:09:49 +0000 (11:09 +0200)]
Merge branch 'develop' of gitlab.com:embeddable-common-lisp/ecl into develop

9 years agocosmetic: rename Copyright to LICENSE
Daniel Kochmański [Wed, 2 Sep 2015 09:09:04 +0000 (11:09 +0200)]
cosmetic: rename Copyright to LICENSE

Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>
9 years agotests: rename 'bugs' to 'regressions'
Daniel Kochmański [Wed, 2 Sep 2015 08:51:51 +0000 (10:51 +0200)]
tests: rename 'bugs' to 'regressions'

Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>
9 years agochangelog: upate wrt testing
Daniel Kochmański [Wed, 2 Sep 2015 08:40:09 +0000 (10:40 +0200)]
changelog: upate wrt testing

Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>
9 years agoMerge branch 'develop' into cleanup-testing
Daniel Kochmański [Wed, 2 Sep 2015 08:38:54 +0000 (10:38 +0200)]
Merge branch 'develop' into cleanup-testing

9 years agotests: fix remaing things
Daniel Kochmański [Wed, 2 Sep 2015 08:36:27 +0000 (10:36 +0200)]
tests: fix remaing things

Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>
9 years agotests: adjust files
Daniel Kochmański [Wed, 2 Sep 2015 07:33:16 +0000 (09:33 +0200)]
tests: adjust files

Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>
9 years agotests: Move tests to separate directory
Daniel Kochmański [Wed, 2 Sep 2015 07:22:24 +0000 (09:22 +0200)]
tests: Move tests to separate directory

Don't keep them in same directory as aux tools

Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>
9 years agoMerge branch 'develop' into 'develop'
Daniel Kochmański [Wed, 2 Sep 2015 06:56:06 +0000 (06:56 +0000)]
Merge branch 'develop' into 'develop'

cosmetic: Untabify everything.

If anything has been messed up (which it seems there hasn't), let me know.

See merge request !6

9 years agoUntabify everything.
Zack Piper [Tue, 1 Sep 2015 20:10:10 +0000 (20:10 +0000)]
Untabify everything.

9 years agotests: rename ffi and emb tests
Daniel Kochmański [Tue, 1 Sep 2015 16:13:53 +0000 (18:13 +0200)]
tests: rename ffi and emb tests

Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>
9 years agotests: merge reported bugs and mixed regressions
Daniel Kochmański [Tue, 1 Sep 2015 16:11:55 +0000 (18:11 +0200)]
tests: merge reported bugs and mixed regressions

Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>
9 years agotests: merge compiler tests to compiler.lsp (missing files)
Daniel Kochmański [Tue, 1 Sep 2015 16:03:27 +0000 (18:03 +0200)]
tests: merge compiler tests to compiler.lsp (missing files)

Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>
9 years agotests: merge compiler tests to compiler.lsp
Daniel Kochmański [Tue, 1 Sep 2015 15:32:03 +0000 (17:32 +0200)]
tests: merge compiler tests to compiler.lsp

Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>
9 years agotests: merge sourceforge reports to reported-bugs
Daniel Kochmański [Tue, 1 Sep 2015 15:19:41 +0000 (17:19 +0200)]
tests: merge sourceforge reports to reported-bugs

Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>
9 years agotests: merge multiprocessing tests (a few left)
Daniel Kochmański [Tue, 1 Sep 2015 15:08:14 +0000 (17:08 +0200)]
tests: merge multiprocessing tests (a few left)

Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>
9 years agotests: merge multiprocessing tests
Daniel Kochmański [Tue, 1 Sep 2015 14:54:46 +0000 (16:54 +0200)]
tests: merge multiprocessing tests

Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>
9 years agotests: merge metaobject protocol tests
Daniel Kochmański [Tue, 1 Sep 2015 14:42:11 +0000 (16:42 +0200)]
tests: merge metaobject protocol tests

Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>
9 years agochangelog: add #s fix
Daniel Kochmański [Tue, 1 Sep 2015 14:35:55 +0000 (16:35 +0200)]
changelog: add #s fix

Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>
9 years agotests: add regression test for #s reader
Daniel Kochmański [Tue, 1 Sep 2015 14:34:25 +0000 (16:34 +0200)]
tests: add regression test for #s reader

Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>
9 years agosharp-s-reader: read should be invoked recursively
Daniel Kochmański [Tue, 1 Sep 2015 13:07:06 +0000 (15:07 +0200)]
sharp-s-reader: read should be invoked recursively

Patch provided by drmeister. Test case:

(defstruct foo a)
(read-from-string
 "(#1=\"Hello\" #S(FOO :A #1#))"))

Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>
9 years agotests: merge external-format tests
Daniel Kochmański [Tue, 1 Sep 2015 12:57:23 +0000 (14:57 +0200)]
tests: merge external-format tests

Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>
9 years agoupdate readme (typos)
Daniel Kochmański [Mon, 31 Aug 2015 08:22:52 +0000 (08:22 +0000)]
update readme (typos)

9 years agoMerge branch 'develop' of gitlab.com:embeddable-common-lisp/ecl into develop
Daniel Kochmański [Mon, 31 Aug 2015 06:58:15 +0000 (08:58 +0200)]
Merge branch 'develop' of gitlab.com:embeddable-common-lisp/ecl into develop

9 years agoIt appears that the larget the heap, the larger heap_gap must be.
Matthew Mondor [Mon, 31 Aug 2015 05:38:59 +0000 (01:38 -0400)]
It appears that the larget the heap, the larger heap_gap must be.
After some more testing, adapt to 50MB of additional heap gap per
1GB of heap size.

9 years agoMerge branch 'develop' of gitlab.com:embeddable-common-lisp/ecl into heap-size
Matthew Mondor [Mon, 31 Aug 2015 05:14:19 +0000 (01:14 -0400)]
Merge branch 'develop' of gitlab.com:embeddable-common-lisp/ecl into heap-size

Conflicts:
msvc/ecl/config.h.msvc6
src/c/big.d
src/c/main.d

Conflicts fixed.

9 years agoMerge branch 'fixnum-bits' into 'develop'
Matthew Mondor [Mon, 31 Aug 2015 05:06:47 +0000 (05:06 +0000)]
Merge branch 'fixnum-bits' into 'develop'

FIXNUM_BITS -> ECL_FIXNUM_BITS consistently, second try

Somehow the develop branch still used a mix of both

See merge request !5

9 years agoAvoid constant value 32-bit rollback for 64-bit/4GB heap
Matthew Mondor [Mon, 31 Aug 2015 02:59:43 +0000 (22:59 -0400)]
Avoid constant value 32-bit rollback for 64-bit/4GB heap

9 years agoFIXNUM_BITS -> ECL_FIXNUM_BITS consistently, second try
Matthew Mondor [Sun, 30 Aug 2015 20:35:14 +0000 (16:35 -0400)]
FIXNUM_BITS -> ECL_FIXNUM_BITS consistently, second try

9 years agocosmetic: remove spaces on blank lines
Daniel Kochmański [Sun, 30 Aug 2015 09:54:00 +0000 (11:54 +0200)]
cosmetic: remove spaces on blank lines

Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>
9 years agoMerge branch 'heap-size' of gitlab.com:embeddable-common-lisp/ecl into heap-size
Matthew Mondor [Sun, 30 Aug 2015 08:22:45 +0000 (04:22 -0400)]
Merge branch 'heap-size' of gitlab.com:embeddable-common-lisp/ecl into heap-size

9 years agoFIXNUM_BITS -> ECL_FIXNUM_BITS
Matthew Mondor [Sun, 30 Aug 2015 08:21:25 +0000 (04:21 -0400)]
FIXNUM_BITS -> ECL_FIXNUM_BITS

9 years agoMerge branch 'develop' of gitlab.com:embeddable-common-lisp/ecl into heap-size
Matthew Mondor [Sun, 30 Aug 2015 08:20:16 +0000 (04:20 -0400)]
Merge branch 'develop' of gitlab.com:embeddable-common-lisp/ecl into heap-size

9 years agoreadme: a few stylistic cleanups
Daniel Kochmański [Sun, 30 Aug 2015 08:16:31 +0000 (10:16 +0200)]
readme: a few stylistic cleanups

As suggested by Matthew Mondor capitalized "Lisp" and specified
additional information. Fixes #148.

Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>
9 years agoMerge branch 'fixnum-bits' into 'heap-size'
Daniel Kochmański [Sun, 30 Aug 2015 07:59:56 +0000 (07:59 +0000)]
Merge branch 'fixnum-bits' into 'heap-size'

FIXNUM_BITS -> ECL_FIXNUM_BITS

Assumes that ECL_FIXNUM_BITS was what was wanted (presumably prefixed
with ECL_ to make it a public C API).  The code used a mix of
ECL_FIXNUM_BITS and FIXNUM_BITS, with only FIXNUM_BITS being defined,
meaning that there also previously were bugs in main.d and ffi.d.

Addresses issue #147.

See merge request !4

9 years agoAssumes that ECL_FIXNUM_BITS was what was wanted (presumably prefixed
Matthew Mondor [Sun, 30 Aug 2015 06:44:05 +0000 (02:44 -0400)]
Assumes that ECL_FIXNUM_BITS was what was wanted (presumably prefixed
with ECL_ to make it a public C API).  The code used a mix of
ECL_FIXNUM_BITS and FIXNUM_BITS, with only FIXNUM_BITS being defined,
meaning that there also previously were bugs in main.d and ffi.d.

Addresses issue #147.

9 years ago- Use FIXNUM_BITS rather than ECL_FIXNUM_BITS which was undefined
Matthew Mondor [Sun, 30 Aug 2015 06:14:57 +0000 (02:14 -0400)]
- Use FIXNUM_BITS rather than ECL_FIXNUM_BITS which was undefined
  (the old code was bogus too on that respect)
- To prevent 32-bit rounding append L to the default heap size definitions
- Also print the fixnum bit size and default heap in the debug log

9 years agocosmetic: change label name from ERR to ERROR
Daniel Kochmański [Sat, 29 Aug 2015 18:37:25 +0000 (20:37 +0200)]
cosmetic: change label name from ERR to ERROR

First netbsd patch is partly applied (we have dragonfly platform), but
it drops solaris 10 support which we don't. Second is cosmetic and
applied right now. Fixes #144.

Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>
9 years agochangelog: update
Daniel Kochmański [Sat, 29 Aug 2015 18:28:00 +0000 (20:28 +0200)]
changelog: update

Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>
9 years agochangelog: check for GC_get_thr_restart_signal only on threaded build
Daniel Kochmański [Sat, 29 Aug 2015 18:25:31 +0000 (20:25 +0200)]
changelog: check for GC_get_thr_restart_signal only on threaded build

ECL checked for GC_get_thr_restart_signal even if was built without
threads. This function is present in boehm only when it's build with
threads, but we don't need this functionality for single-threaded
builds. Fixes #146.

Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>
9 years agochangelog: found 13.5.1 changes - added
Daniel Kochmański [Sat, 29 Aug 2015 17:49:04 +0000 (19:49 +0200)]
changelog: found 13.5.1 changes - added

Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>
9 years ago- Replace tabs by spaces (the other codebases I work on all use tabs :)
Matthew Mondor [Fri, 28 Aug 2015 22:44:05 +0000 (18:44 -0400)]
- Replace tabs by spaces (the other codebases I work on all use tabs :)
- After looking at grusage() it seems that we cannot use this to adapt heap_gap
- heap_gap demonstrated to be necessary, at least for now, now set at 50MB
- Minor cleanups

To test:

- Reduce the heap size limit by reducing the soft RLIMIT_DATA of
  your current shell.  On sh, this can be done using ulimit -d
  <kilobytes>.  Either reduce it smaller than the ECL default heap
  (1GB on 32-bit, 4GB on 64-bit), or specify a larger heap limit to
  ECL starting it with the --heap-size <bytes> option (but note that
  because of another bug it may be difficult to increase it very
  high).
- Start ECL, notice the HEAP-WARNING: messages which should show
  that the soft limit was increased to satisfy the heap.
- Run allocations until either ECL freezes or reports a heap error.
   the test is successful, it should report, not freeze, obviously :)
  Example test to run:

(defparameter *allocations* 16384)
(defparameter *alloc-size* 4096)
(defvar *queue* (make-array 1024
                            :adjustable t
                            :fill-pointer 0))

(defun test1 ()
  (loop
     repeat *allocations*
     do
       (vector-push-extend (make-array *alloc-size*
                                       :element-type '(unsigned-byte 8)
                                       :adjustable nil
                                       :initial-element #x00
                                       :fill-pointer *alloc-size*)
                           *queue*
                           0))) ; Grows automatically +1/2 size on ECL

Run (test1) as often as necessary (and observe heap grow in top(1) etc).

What remains to do before this branch can be merged:
- More testing, and confirmation that 50MB heap_gap is enough for others
- Removal of debug messages
- Perhaps issuing a single message about the size the heap was changed to
  and why, but only when in ECL-REPL interactive mode startup
- If possible, determining the value for heap_gap at runtime,
  instead of guessing it, but it seems tricky to do portably.

9 years ago- Use %zd rather than %d for the w() verbose debug function
Matthew Mondor [Fri, 28 Aug 2015 20:00:32 +0000 (16:00 -0400)]
- Use %zd rather than %d for the w() verbose debug function
- Cleanup code, first start with hard limit, then soft limit

9 years agochangelog: add new MP functions
Daniel Kochmański [Fri, 28 Aug 2015 11:21:14 +0000 (13:21 +0200)]
changelog: add new MP functions

Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>
9 years agoMerge branch 'master' into develop
Daniel Kochmański [Fri, 28 Aug 2015 11:17:07 +0000 (13:17 +0200)]
Merge branch 'master' into develop

9 years agochangelog: update master origin/master ECL-16.0.0
Daniel Kochmański [Fri, 28 Aug 2015 10:52:18 +0000 (12:52 +0200)]
changelog: update

Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>
9 years agoMerge branch 'ECL-16.0.0-rc1'
Daniel Kochmański [Fri, 28 Aug 2015 10:44:54 +0000 (12:44 +0200)]
Merge branch 'ECL-16.0.0-rc1'

9 years agoRevert autoconf changes, as stacks.d already could use rlimit using
Matthew Mondor [Fri, 28 Aug 2015 01:10:45 +0000 (21:10 -0400)]
Revert autoconf changes, as stacks.d already could use rlimit using
other conditionals; use similar ones in main.d.

Some bug fixes in main.d's fix_heap_size(), and verbose warnings
were currently added to help testing.

9 years agoAlso verify for HAVE_GETRLIMIT in fix_heap_size().
Matthew Mondor [Thu, 27 Aug 2015 18:57:23 +0000 (14:57 -0400)]
Also verify for HAVE_GETRLIMIT in fix_heap_size().

9 years agoMerge branch 'heap-size' of gitlab.com:embeddable-common-lisp/ecl into heap-size
Matthew Mondor [Thu, 27 Aug 2015 18:28:06 +0000 (14:28 -0400)]
Merge branch 'heap-size' of gitlab.com:embeddable-common-lisp/ecl into heap-size

9 years agoECL's default heap (1GB on 32-bit or 4GB on 64-bit) can sometimes
Matthew Mondor [Thu, 27 Aug 2015 18:08:06 +0000 (14:08 -0400)]
ECL's default heap (1GB on 32-bit or 4GB on 64-bit) can sometimes
be higher than the OS's process rlimit is, especially the soft limit.
Consider this default heap, as well as any user-specified heap size
as a target, and adapt as necessary the heap size according to the
soft and hard rlimits if any.
We attempt to grow the soft limit if possible to reach the target,
but as necessary lower the heap size.
Otherwise, when ECL experiences allocation errors and attempts to
report these, needing even more allocations to do so, it can end
up locked in a busy loop.  It's better to gracefully report that the
heap should be grown instead.

9 years agoECL's default heap (1GB on 32-bit or 4GB on 64-bit) can sometimes
Matthew Mondor [Thu, 27 Aug 2015 18:08:06 +0000 (14:08 -0400)]
ECL's default heap (1GB on 32-bit or 4GB on 64-bit) can sometimes
be higher than the OS's process rlimit is, especially the soft limit.
Consider this default heap, as well as any user-specified heap size
as a target, and adapt as necessary the heap size according to the
soft and hard rlimits if any.
We attempt to grow the soft limit if possible to reach the target,
but as necessary lower the heap size.
Otherwise, when ECL experiences allocation errors and attempts to
report these, needing even more allocations to do so, it can end
up locked in a busy loop.  It's better to gracefull report that the
heap should be growed instead.

9 years agoChange *FEATURES* name :NEW to :WAKLER (clos/walk.lsp) after
Matthew Mondor [Thu, 27 Aug 2015 08:40:18 +0000 (04:40 -0400)]
Change *FEATURES* name :NEW to :WAKLER (clos/walk.lsp) after
discussion

9 years agoMerge branch 'mmondor' into 'develop'
Matthew Mondor [Thu, 27 Aug 2015 07:39:10 +0000 (07:39 +0000)]
Merge branch 'mmondor' into 'develop'

mmondor -> develop (with-rwlock …)

See merge request !2

9 years ago Implement a few non-blocking MP functions:
Matthew Mondor [Wed, 26 Aug 2015 16:31:19 +0000 (12:31 -0400)]
 Implement a few non-blocking MP functions:

 MP:TRY-GET-SEMAPHORE
   returns NIL if the semaphore could not be obtained, or the count
   if it could be obtained

 MP:MAILBOX-TRY-READ
   returns a message if it's available, NIL if the queue is empty

 MP:MAILBOX-TRY-SEND
   returns the sent message if it could be queued, or NIL
   (mailbox is full)

9 years agoImplement MP:WITH-RWLOCK
Matthew Mondor [Wed, 26 Aug 2015 13:51:34 +0000 (09:51 -0400)]
Implement MP:WITH-RWLOCK

9 years ago - Dynamically bind the condition as well in the debugger, not only
Matthew Mondor [Wed, 26 Aug 2015 13:36:38 +0000 (09:36 -0400)]
 - Dynamically bind the condition as well in the debugger, not only
   the message (the condition object holds important data which can be
   used programmatically).
 - Raise some *PRINT-LENGTH* limits in the debugger.  Having a limit
   is wise, but when it is too short the debugger can be rather
   useless.  Use 16 instead of the previous 2 or 4.

9 years agoconfig.lsp: implement uname stub for ecl-min
Daniel Kochmański [Mon, 24 Aug 2015 06:41:27 +0000 (08:41 +0200)]
config.lsp: implement uname stub for ecl-min

Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>