Re: crashing socket tests
Bruno Haible <[email protected]>
| Newsgroups | gmane.lisp.clisp.devel |
|---|---|
| Message-ID | <2994303.I6xxQrfC4l@omega> |
> 1) In build-porting64-gcc-portability
>
> This is a build with
>
> $ grep '\(SPVW_\|GENERA\)' lispbibl.h
> #define NO_GENERATIONAL_GC 1
> #define SPVW_MIXED
> #define SPVW_PAGES
>
> Here I get a crash in "make check-tests"
>
> (TEST-FLOAT-IO-CONSISTENCY :FROM 1.0s-30 :BY 10 :TO 1.0s30 :REPEAT 100)
> Makefile:25: recipe for target 'tests' failed
> make[1]: *** [tests] Segmentation fault (core dumped)
I've fixed this one now.
The recipe to reproduce it was:
- Use the build-porting64-gcc-debug_gcsafety build,
with modified CFLAGS: Originally
CFLAGS = ... -ggdb -O0 -DDEBUG_OS_ERROR -DDEBUG_SPVW -DDEBUG_BYTECODE -DSAFETY=3 -DDEBUG_GCSAFETY -DENABLE_UNICODE -DDYNAMIC_FFI
Add to CFLAGS for MIXED_BLOCKS or MIXED_PAGES memory model: -DNO_ADDRESS_SPACE_ASSUMPTIONS
- Run ./clisp and enter:
(defun test-float-io-consistency (&key from to by repeat)
(loop :for max = from :then (* by max) :while (< max to) :nconc
(loop :repeat repeat :for x = (random max)
:for y = (if (zerop (random 2)) x (- x))
:unless (= y (read-from-string (prin1-to-string y)))
:collect (cons y (multiple-value-list (integer-decode-float y))))))
(compile *)
(test-float-io-consistency :from 1s-30 :by 10 :to 1s30 :repeat 1000)
It crashes in the GC because make_machine_code is being invoked on a function
pointer that does not have the necessary alignment.
I've now
- added a check to make_machine_code (if SAFETY >= 2),
- eliminated the wrong invocations of make_machine_code.
Bruno
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
clisp-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/clisp-devel