Ecru REPL bugs

Allen Short <washort-TyWPi3/[email protected]>
Newsgroups gmane.comp.lang.e.general
Message-ID <20080720204904.29191.2040791217.divmod.quotient.679@ohm>

On Sun, 20 Jul 2008 20:21:16 +0100 (BST), Mark Seaborn <mrs-ChQETwBkFSdCgCasaBwmdgC/[email protected]> wrote:
>Allen Short <washort-TyWPi3/[email protected]> wrote:
>
>> I plan to use Ecru alongside Python until it's complete enough to
>> write applications with on its own. I've written a Python bridge
>> module that can run code in the Ecru VM and exchange objects with
>> it. I've also written a parser for E and an expander to Kernel-E in
>> Python and a primitive REPL based on them.  (Eventually, I hope to
>> rewrite these in E as well, and reuse as much of the existing code
>> for 'rune' as possible.)
>
>Looks interesting.
>
>I tried it on Debian lenny i386.  Some simple expressions in the REPL
>sometimes work but other times produce warnings or segfaults:
<snip>

Thanks for the bug report -- I've put it in the bug tracker here: https://bugs.launchpad.net/ecru/+bug/250320

How embarrassing that "1+1" could fail like that :) I believe this is a problem with the Python bridge code; I have had several occasions where Python objects have held references to E objects that the GC has freed. I thought I had caught all the cases where that was happening, but evidently not. 

For a simple workaround, you can compile it with 'make CFLAGS="-DNO_GC"'. (My belief that this is a problem with interactions between Python memory management and Boehm GC is supported by the fact that valgrind doesn't reveal any memory errors when it's compiled without GC.)

I plan to switch to precise GC at some point which should make this problem a lot easier to deal with. In the meantime I'll take a look at reworking how these references are stored for access by Python.

>Here is a patch to add a GNOME-style autogen.sh script:
<snip>

Are these needed anymore? I thought 'autoreconf' filled that role now.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.