[Aldor-l] BUG

Christian Aistleitner tmgisi at gmx.at
Sat Jan 27 10:24:01 EST 2007


Hello,

apparently, my answer to your previous post came 15 Minutes too late ;)

> Extract the attached files and simply type "make".
>
> [...]
>
> woodpecker:~/scratch/BUG>make
> rm *.ao *.o *~
> rm: cannot remove `*.ao': No such file or directory
> rm: cannot remove `*.o': No such file or directory
> rm: cannot remove `*~': No such file or directory
> make: [clean] Error 1 (ignored)
> rm blah foo
> rm: cannot remove `blah': No such file or directory
> rm: cannot remove `foo': No such file or directory
> make: [clean] Error 1 (ignored)
> aldor -mno-mactext -mno-abbrev -fao -fo -fx -DDEBUG -laldord blah.as
> blah
> Call blah
> t=[]
> s=[]
> END blah
> aldor -mno-mactext -mno-abbrev -fx -laldor foo.as blah.o
>
> foo.as:
> "foo.as", line 13:         s: T := t/t;
>                     .................^
> [L13 C18] #1 (Error) There are no suitable meanings for the operator `/'.
>
> make: *** [foo] Error 1

Again, you can hint Aldor towards the fact that T has a / function. By  
converting the relevant part of the code into

         assert ( T has with { /: ( %, % ) -> % } );
         if ( T has with { /: ( %, % ) -> % } ) then  {
           s: T := t/t;
           stdout << "s=" << s << newline;
         } else {
           never;
         }

you'll get a working program. However at the price of an ugly workaround ;)
Here is the output I got after I applied the workaround:

____________________________________________
tmgisi at spencer
cwd: ~/ralf/BUG
LC_ALL=C make
rm *.ao *.o *~
rm: cannot remove `*~': No such file or directory
make: [clean] Error 1 (ignored)
rm blah foo
aldor -mno-mactext -mno-abbrev -C args=-Wopts=-m32 -fao -fo -fx -DDEBUG  
-laldord blah.as
cc1: note: -fwritable-strings is deprecated; see documentation for details
cc1: note: -fwritable-strings is deprecated; see documentation for details
./blah
Call blah
t=[]
s=[]
END blah
aldor -mno-mactext -mno-abbrev -C args=-Wopts=-m32 -fx -laldor foo.as  
blah.o

foo.as:
cc1: note: -fwritable-strings is deprecated; see documentation for details
cc1: note: -fwritable-strings is deprecated; see documentation for details
./foo
Call blah
t=[]
s=[]
END blah
t=[]
s=[]
t=[]
s=[]


Kind regards,
Christian




More information about the Aldor-l mailing list