REBOL3 tracker
  0.9.12 beta
Ticket #0001672 User: anonymous

Project:



rss
TypeBug Statustested Date12-Oct-2010 18:31
Versionalpha 107 CategoryParse Submitted byhenrikmk
PlatformAll Severitycrash Prioritynormal

Summary R3 quits on recursive parse
Description a: [a]

parse [] a

R3 immediately quits.
Example code

			

Assigned ton/a Fixed inr3 master Last Update17-Apr-2015 11:32


Comments
(0002572)
meijeru
12-Oct-2010 20:41

My copy of alpha 107 for Windows gives a different result:

>> a: [a]
== [a]
>> parse [] a
** Internal error: stack overflow
(0002574)
BrianH
12-Oct-2010 22:14

Meijeru's result is the correct behavior. And I get the same result on the released a107, on Windows.
(0002575)
henrikmk
13-Oct-2010 00:30

I'm using the hostkit version available in private SVN in the hostkit/tests directory. The publicly released A107 produces the stack overflow.
(0002576)
Ladislav
13-Oct-2010 04:35

I am sure this is related to #1665
(0002606)
Carl
19-Oct-2010 19:38

The problem is that your host-kit build needs to setup a larger C runtime stack. If you set it to 5MB that will work, but the correct solution is to find a way for REBOL to detect the max stack size.
(0002652)
abolka
23-Oct-2010 22:52

Here's how to set up a larger C runtime stack:

- On Win32, the default stack size is a property of the PE binary. By default it is set to 1MB. To raise this limit using GCC/Binutils, use the `-Wl,--stack` flag when linking. So `-Wl,--stack,5242880` will set the stack size to 5MB. (For current hostkits, edit `make-gcc/makefile` and append this flag to the `LIBS` variable.)

- On Linux, the available stack for a process is not hard-coded into the binary but a per-process property (resource limit). By default it is set to 8MB which seems to be sufficient for R3. Resource limits are inherited from the parent process and can be get/set using getrlimit(2) and setrlimit(2). On a shell (which will be the parent process of R3 most of the time), you can check the resource limits with `ulimit -a`.
(0002711)
Ladislav
31-Oct-2010 01:04

in the core-tests suite
(0003275)
abolka
17-Dec-2012 01:37

Works ok on Win32 (and still works with Linux, OSX) with the fix described above.
(0004382)
abolka
23-Mar-2014 16:58

This is fixed in r3 master.

Date User Field Action Change
17-Apr-2015 11:32 abolka Status Modified waiting => tested
17-Apr-2015 11:32 abolka Fixedin Modified => r3 master
23-Mar-2014 16:58 abolka Comment : 0004382 Added -
23-Mar-2014 16:57 abolka Comment : 0003275 Modified -
23-Mar-2014 16:56 abolka Comment : 0003275 Modified -
17-Dec-2012 01:37 abolka Comment : 0003275 Added -
31-Oct-2010 01:04 Ladislav Comment : 0002711 Added -
23-Oct-2010 22:52 abolka Comment : 0002652 Added -
19-Oct-2010 19:38 carl Status Modified submitted => waiting
19-Oct-2010 19:38 carl Comment : 0002606 Added -
13-Oct-2010 04:35 Ladislav Comment : 0002576 Added -
13-Oct-2010 00:34 henrikmk Comment : 0002575 Modified -
13-Oct-2010 00:30 henrikmk Comment : 0002575 Added -
12-Oct-2010 22:15 BrianH Comment : 0002574 Modified -
12-Oct-2010 22:14 BrianH Category Modified Unspecified => Parse
12-Oct-2010 22:14 BrianH Comment : 0002574 Added -
12-Oct-2010 20:41 meijeru Comment : 0002572 Added -
12-Oct-2010 19:55 henrikmk Severity Modified major => crash
12-Oct-2010 19:55 henrikmk Description Modified -
12-Oct-2010 18:31 henrikmk Ticket Added -