Bill Allombert on Wed, 20 Jul 2005 11:43:50 +0200


[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

Re: New experimental GP parser release


On Tue, Jul 19, 2005 at 02:46:10PM +0200, Alain SMEJKAL wrote:
> Here is some bugs found in normal or stressed use.
> I also have noticed a nice improvement, it is possible to write all a small
> function in one line,

You can do that with standard GP, you just need to omit the braces.

test()=print(sin(a));kill(a);

> bug #1: crash in unexpected allowed use of reserved keywords as variables
> ? sin=1
> %1 = 1
> ? sin(1)
> 
>   *** sin: bug in GP (Segmentation Fault), please report

Need to be taken care of...

> bug #2 : global variable assignment trouble in scripts when used as function
> parameter
> ? a=3.14;
> ? testaux(b)=
> {print(a);print(b);}
> ? test()=
> {testaux(a);}
> ? test
> a
> 3.140000000000000000000000000

global variables are not implemented currently. All variables are
block-local. The only practical effect of local(A) is to set A to 0.
This is part of the experiment.  The normal behaviour can be easily
reinstated, but I do not really like it.

> bug #3 : unexpected killed variable behavior in scripts (okay in interactive
> mode)
> ? a=3.14;
> ? test()=
> {print(sin(a));kill(a);}
> ? test
> 0.0015926529164869525405
> ? test
> #<32> - 1/6*#<32>^3 + 1/120*#<32>^5 - 1/5040*#<32>^7 + 1/362880*#<32>^9 -
> 1/3991
> 6800*#<32>^11 + 1/6227020800*#<32>^13 - 1/1307674368000*#<32>^15 +
> O(#<32>^17)
> 
>   ***   can't kill that.
> 
> ? test
> 
>   ***   bug in GP (Segmentation Fault), please report

This breaks the entry caching performed by the interpretor.
The kill function is rather a bug by itself, so I do not consider this
bug important.

> bug #4 : error behavior changes (note: there is also a trouble in Pari with
> this vector print form, see wishlist #115)
> ? print(" " [1])
> 
>   ***   object has no components.
> ? print(" " [1,2])
> 
>   ***   object has no double components.
> ? print("" [1,2,3])
> 
>   ***   parse error, unexpected ',': print(""[1,2,3])
>                                                  ^----

This looks correct. I cannot generate the exact same error messages in all
cases. In fact the message generated by standard GP look wrong.

> bug #5 : unexpected display
> ? print("1)
> 1)
> 1

This was a bug in the lexer. Fixed.

Thanks a lot for experimenting with it.

Cheers,
Bill.