1. Euphoria 2.5

Rob:
  When am I going to be able to spend my money
  for version 2.5 ?
Bernie

new topic     » topic index » view message » categorize

2. Re: Euphoria 2.5

Bernard Ryan wrote:
> Rob:
>   When am I going to be able to spend my money
>   for version 2.5 ?

I'm slowly working away at it.
I took a big hit with the new "$" feature.
(s[$] = s[length(s)] etc.)
I thought it would be trivial to implement,
but it turned out I had to do a major overhaul
on all the subscripting code in the interpreter,
translator, and the new interpreter written in Euphoria.
I've spent a lot longer than I expected, and
I'm still not quite finished. I think the feature
is definitely worth it, but you shouldn't expect 
a release until September or October. The bigger this
project gets, the longer it takes to make enhancements 
to the code.

Regards,
   Rob Craig
   Rapid Deployment Software
   http://www.RapidEuphoria.com

new topic     » goto parent     » topic index » view message » categorize

3. Re: Euphoria 2.5

Robert Craig wrote:
> 
> Bernard Ryan wrote:
> > Rob:
> >   When am I going to be able to spend my money
> >   for version 2.5 ?
> 
> I'm slowly working away at it.
> I took a big hit with the new "$" feature.

Yippee!!

[snip]

> but you shouldn't expect a release until September or October.

So long as its not November; I'll be way too busy with Halo 2 that month.

> The bigger this project gets, the longer it takes to make enhancements 
> to the code.

Tell me about it!

-- 
Derek Parnell
Melbourne, Australia

new topic     » goto parent     » topic index » view message » categorize

4. Re: Euphoria 2.5

Robert Craig wrote:

----------
> From: Robert Craig <guest at RapidEuphoria.com>
> To: EUforum at topica.com
> Subject: Re: Euphoria 2.5
> Sent: 28 jul 2004 y. 7:53
>
> Bernard Ryan wrote:
> > Rob:
> >   When am I going to be able to spend my money
> >   for version 2.5 ?
> 
> I'm slowly working away at it.
> I took a big hit with the new "$" feature.
> (s[$] = s[length(s)] etc.)
> I thought it would be trivial to implement,
> but it turned out I had to do a major overhaul
> on all the subscripting code in the interpreter,
> translator, and the new interpreter written 
> in Euphoria.

What a problem, Rob?

Anyone can have that notorious feature just
now and forever - do you remember:

integer A_
type sequence_with_length_A(sequence a)
  A_= length(a)
  return sequence(a)
end type

sequence_with_length_A A_A

A_A = {}

? A_

A_A = {1,2}

? A_A[A_]


> I've spent a lot longer than I expected, and
> I'm still not quite finished. I think the feature
> is definitely worth it, but you shouldn't expect 
> a release until September or October.

This feature seems to be like same notorious
"conditional dynamic include" - I still can not
find the 3rd dynamic lover to drink that notorious
Russian bottle of vodka for solved problem ...
65 EU countries ... Where is that 3rd?

It seems to me, Derek will search & look for 
the 3rd $-lover too ...

> The bigger this project gets, the longer
> it takes to make enhancements to the code.

Toss away that $-feature - $ is devil of devils,
and don't worry be just happy!       smile

Good Luck!

Regards,
Igor Kachan
kinz at peterlink.ru

new topic     » goto parent     » topic index » view message » categorize

5. Re: Euphoria 2.5

On 28 Jul 2004, at 18:40, Igor Kachan wrote:

> 
> 
> Robert Craig wrote:
> 
> ----------
> > From: Robert Craig <guest at RapidEuphoria.com>
> > To: EUforum at topica.com
> > Subject: Re: Euphoria 2.5
> > Sent: 28 jul 2004 y. 7:53
> >
> > Bernard Ryan wrote:
> > > Rob:
> > >   When am I going to be able to spend my money
> > >   for version 2.5 ?
> > 
> > I'm slowly working away at it.
> > I took a big hit with the new "$" feature.
> > (s[$] = s[length(s)] etc.)
> > I thought it would be trivial to implement,
> > but it turned out I had to do a major overhaul
> > on all the subscripting code in the interpreter,
> > translator, and the new interpreter written 
> > in Euphoria.
> 
> What a problem, Rob?
> 
> Anyone can have that notorious feature just
> now and forever - do you remember:
> 
> }}}
<eucode>
> integer A_
> type sequence_with_length_A(sequence a)
>   A_= length(a)
>   return sequence(a)
> end type
> 
> sequence_with_length_A A_A
> 
> A_A = {}
> 
> ? A_
> 
> A_A = {1,2}
> 
> ? A_A[A_]
> </eucode>
{{{

> 
> > I've spent a lot longer than I expected, and
> > I'm still not quite finished. I think the feature
> > is definitely worth it, but you shouldn't expect 
> > a release until September or October.
> 
> This feature seems to be like same notorious
> "conditional dynamic include" - I still can not
> find the 3rd dynamic lover to drink that notorious
> Russian bottle of vodka for solved problem ...
> 65 EU countries ... Where is that 3rd?
> 
> It seems to me, Derek will search & look for 
> the 3rd $-lover too ...

I tend to agree. That $ merely saves a little typing, "goto" would be serious 
improvement to program flow.

Kat

new topic     » goto parent     » topic index » view message » categorize

6. Re: Euphoria 2.5

Igor, your version of s[length(s)] doesn't quite work perfectly...

Run this:
-- start of code
include get.e

sequence junk

integer A_
type sequence_with_length_A(sequence a)
  A_= length(a)
  return sequence(a)
end type

sequence_with_length_A A_A, A_B, A_C

A_A = "Hello"
A_B = "World"
A_C = "Goodbye!"

?A_A[A_]
?A_B[A_]
?A_C[A_]

--end of code

Sure, you could define B_ and C_, but what happens when you have
a billion sequences? :)

-=ck
"Programming in a state of EUPHORIA."
http://www.cklester.com/euphoria/

new topic     » goto parent     » topic index » view message » categorize

7. Re: Euphoria 2.5

CK Lester wrote:

----------
> From: cklester <guest at RapidEuphoria.com>
> To: EUforum at topica.com
> Subject: Re: Euphoria 2.5
> Sent: 28 jul 2004 y. 22:22
> 
> Igor, your version of s[length(s)] doesn't
> quite work perfectly...
> 
> Run this:
> -- start of code
> include get.e
> 
> sequence junk
> 
> integer A_
> type sequence_with_length_A(sequence a)
>   A_= length(a)
>   return sequence(a)
> end type
> 
> sequence_with_length_A A_A, A_B, A_C
> 
> A_A = "Hello"
> A_B = "World"
> A_C = "Goodbye!"
> 
> ?A_A[A_]
> ?A_B[A_]
> ?A_C[A_]
> 
> --end of code

He - he, CK, this version above is yours one,
it doesn't quite work perfectly...

> Sure, you could define B_ and C_, 

Yes, good, this is my version ...

> but what happens when you 
> have a billion sequences? :)

I'll use the next EU weapon against
a billion sequences ... :|

Oh God, give today our bread of today!

This phrase above is my translation of
the famous Orthodox prayer - "Hleb nash 
nasushnyj dazshd' nam dnes'!"

If you need some feature in October,
not today, you do not need it at all,
I think.

Regards,
Igor Kachan
kinz at peterlink.ru

new topic     » goto parent     » topic index » view message » categorize

8. Re: Euphoria 2.5

Igor Kachan wrote:

> CK Lester wrote:
>>
>> Igor, your version of s[length(s)] doesn't
>> quite work perfectly...
>>
>> Run this:
>> -- start of code
>> include get.e
>>
>> sequence junk
>>
>> integer A_
>> type sequence_with_length_A(sequence a)
>>   A_= length(a)
>>   return sequence(a)
>> end type
>>
>> sequence_with_length_A A_A, A_B, A_C
>>
>> A_A = "Hello"
>> A_B = "World"
>> A_C = "Goodbye!"
>>
>> ?A_A[A_]
>> ?A_B[A_]
>> ?A_C[A_]
>>
>> --end of code
>
> He - he, CK, this version above is yours one,
> it doesn't quite work perfectly...
>
>> Sure, you could define B_ and C_,
>
> Yes, good, this is my version ...

How should B_ and C_ be defined, and how should the appropriate value
be assigned to B_ and C_?
Will you define a separate type for each sequence?

<snip>

Regards,
   Juergen

new topic     » goto parent     » topic index » view message » categorize

9. Re: Euphoria 2.5

Igor Kachan wrote:
> 
> CK Lester wrote:
> > Igor, your version of s[length(s)] doesn't
> > quite work perfectly...
> > 
> > Run this:
> > -- start of code
> > include get.e
> > 
> > sequence junk
> > 
> > integer A_
> > type sequence_with_length_A(sequence a)
> >   A_= length(a)
> >   return sequence(a)
> > end type
> > 
> > sequence_with_length_A A_A, A_B, A_C
> > 
> > A_A = "Hello"
> > A_B = "World"
> > A_C = "Goodbye!"
> > 
> > ?A_A[A_]
> > ?A_B[A_]
> > ?A_C[A_]
> > 
> > --end of code
> 
> He - he, CK, this version above is yours one,
> it doesn't quite work perfectly...

No, it was your version with an example of why yours wouldn't work. :P

> > Sure, you could define B_ and C_, 
> 
> Yes, good, this is my version ...
> 
> > but what happens when you 
> > have a billion sequences? :)
> 
> I'll use the next EU weapon against
> a billion sequences ... :|

You mean you'll use '$' when necessary?

-=ck
"Programming in a state of EUPHORIA."
http://www.cklester.com/euphoria/

new topic     » goto parent     » topic index » view message » categorize

10. Re: Euphoria 2.5

Hi Juergen,

----------
> From: Juergen Luethje <j.lue at gmx.de>
> To: EUforum at topica.com
> Subject: Re: Euphoria 2.5
> Sent: 28 jul 2004 y. 23:39
> 
> Igor Kachan wrote:
> 
> > CK Lester wrote:
> >>
> >> Igor, your version of s[length(s)] doesn't
> >> quite work perfectly...
> >>
> >> Run this:
> >> -- start of code
> >> include get.e
> >>
> >> sequence junk
> >>
> >> integer A_
> >> type sequence_with_length_A(sequence a)
> >>   A_= length(a)
> >>   return sequence(a)
> >> end type
> >>
> >> sequence_with_length_A A_A, A_B, A_C
> >>
> >> A_A = "Hello"
> >> A_B = "World"
> >> A_C = "Goodbye!"
> >>
> >> ?A_A[A_]
> >> ?A_B[A_]
> >> ?A_C[A_]
> >>
> >> --end of code
> >
> > He - he, CK, this version above is yours one,
> > it doesn't quite work perfectly...
> >
> >> Sure, you could define B_ and C_,
> >
> > Yes, good, this is my version ...
> 
> How should B_ and C_ be defined, and how 
>  should the appropriate value
> be assigned to B_ and C_?
> Will you define a separate type for each sequence?
> 
> <snip>

Yes,  a separate type for each sequence.

integer B_
type sequence_with_length_B()
...
end type

integer C_
type sequence_with_length_C()
...
end type

integer D_
type sequence_with_length_D()
...
end type


Regards,
Igor Kachan
kinz at peterlink.ru

new topic     » goto parent     » topic index » view message » categorize

11. Re: Euphoria 2.5

CK Lester wrote:

----------
> From: cklester <guest at RapidEuphoria.com>
> To: EUforum at topica.com
> Subject: Re: Euphoria 2.5
> Sent: 29 jul 2004 y. 0:39
> 
> Igor Kachan wrote:
> > 
> > CK Lester wrote:
> > > Igor, your version of s[length(s)] doesn't
> > > quite work perfectly...
> > > 
> > > Run this:
> > > -- start of code
> > > include get.e
> > > 
> > > sequence junk
> > > 
> > > integer A_
> > > type sequence_with_length_A(sequence a)
> > >   A_= length(a)
> > >   return sequence(a)
> > > end type
> > > 
> > > sequence_with_length_A A_A, A_B, A_C
> > > 
> > > A_A = "Hello"
> > > A_B = "World"
> > > A_C = "Goodbye!"
> > > 
> > > ?A_A[A_]
> > > ?A_B[A_]
> > > ?A_C[A_]
> > > 
> > > --end of code
> > 
> > He - he, CK, this version above is yours one,
> > it doesn't quite work perfectly...
> 
> No, it was your version with an example
> of why yours wouldn't work. :P

OK, yours example doesn't work, incorrect example. :b

> > > Sure, you could define B_ and C_, 
> > 
> > Yes, good, this is my version ...
> > 
> > > but what happens when you 
> > > have a billion sequences? :)
> > 
> > I'll use the next EU weapon against
> > a billion sequences ... :|
> 
> You mean you'll use '$' when necessary?

The next EU weapon is just old good EU ;)

I'd just copy/paste something billion times,
then correct code, maybe, I do not know,
I have no problem with length(s), I just use
that clear construct - s[length(s)].

These all examples show what a powerful and
flexible language EU is. 
Rob uses C to implement almost the same thing,
and it is not a trivial job, he says.

Regards,
Igor Kachan
kinz at peterlink.ru

new topic     » goto parent     » topic index » view message » categorize

12. Re: Euphoria 2.5

Igor Kachan wrote:
> 
> I'd just copy/paste something billion times,
> then correct code, maybe, I do not know,
> I have no problem with length(s), I just use
> that clear construct - s[length(s)].

I admit I've never really fretted over using s[length(s)]
EXCEPT in very rare cases, which cases I cannot fathom at the moment.

However, I'm sure a search of this list will provide some
decent examples... :)

-=ck
"Programming in a state of EUPHORIA."
http://www.cklester.com/euphoria/

new topic     » goto parent     » topic index » view message » categorize

13. Re: Euphoria 2.5

Igor Kachan wrote:

>> From: Juergen Luethje
>> Sent: 28 jul 2004 y. 23:39
>>
>> Igor Kachan wrote:
>>
>>> CK Lester wrote:
>>>>
>>>> Igor, your version of s[length(s)] doesn't
>>>> quite work perfectly...
>>>>
>>>> Run this:
>>>> -- start of code
>>>> include get.e
>>>>
>>>> sequence junk
>>>>
>>>> integer A_
>>>> type sequence_with_length_A(sequence a)
>>>>   A_= length(a)
>>>>   return sequence(a)
>>>> end type
>>>>
>>>> sequence_with_length_A A_A, A_B, A_C
>>>>
>>>> A_A = "Hello"
>>>> A_B = "World"
>>>> A_C = "Goodbye!"
>>>>
>>>> ?A_A[A_]
>>>> ?A_B[A_]
>>>> ?A_C[A_]
>>>>
>>>> --end of code
>>>
>>> He - he, CK, this version above is yours one,
>>> it doesn't quite work perfectly...
>>>
>>>> Sure, you could define B_ and C_,
>>>
>>> Yes, good, this is my version ...
>>
>> How should B_ and C_ be defined, and how
>>  should the appropriate value
>> be assigned to B_ and C_?
>> Will you define a separate type for each sequence?
>>
>> <snip>
>
> Yes,  a separate type for each sequence.
>
> }}}
<eucode>
> integer B_
> type sequence_with_length_B()
> ...
> end type
>
> integer C_
> type sequence_with_length_C()
> ...
> end type
>
> integer D_
> type sequence_with_length_D()
> ...
> end type
> </eucode>
{{{


And what is the advantage compared to conventional Euphoria programming
style, i.e. not using all those types, but using 'length(A_A)',
'length(A_B)' etc. directly?

Regards,
   Juergen

new topic     » goto parent     » topic index » view message » categorize

14. Re: Euphoria 2.5

cklester wrote:
> I admit I've never really fretted over using s[length(s)]

And neither have I. Its the much more commonly used ...

   if A_Very_Long_But_Meaningful_Identifier_Name[
     length(A_Very_Long_But_Meaningful_Identifier_Name)] = '\n' then
       A_Very_Long_But_Meaningful_Identifier_Name = 
          A_Very_Long_But_Meaningful_Identifier_Name[ 1 ..
            length(A_Very_Long_But_Meaningful_Identifier_Name)- 1]
   end if

that I have high hopes for.

   if A_Very_Long_But_Meaningful_Identifier_Name[$] = '\n' then
       A_Very_Long_But_Meaningful_Identifier_Name = 
          A_Very_Long_But_Meaningful_Identifier_Name[ 1 .. $-1]
   end if

It saves not only typing, but more importantly, the reading!

I have over 100 uses of length() inside slice expressions in Win32lib,
so anything that helps me maintain this is welcome.

-- 
Derek Parnell
Melbourne, Australia

new topic     » goto parent     » topic index » view message » categorize

15. Re: Euphoria 2.5

Hi Juergen,

[snipped old info]
> Igor Kachan wrote:
> >> From: Juergen Luethje
> >> Sent: 28 jul 2004 y. 23:39
> >> Igor Kachan wrote:
> >>> CK Lester wrote:
> >> How should B_ and C_ be defined, and how
> >>  should the appropriate value
> >> be assigned to B_ and C_?
> >> Will you define a separate type for each sequence?
> >>
> >> <snip>
> >
> > Yes,  a separate type for each sequence.
> >
> > }}}
<eucode>
> > integer B_
> > type sequence_with_length_B()
> > ...
> > end type
> >
> > integer C_
> > type sequence_with_length_C()
> > ...
> > end type
> >
> > integer D_
> > type sequence_with_length_D()
> > ...
> > end type
> > </eucode>
{{{

> 
> And what is the advantage compared 
>  to conventional Euphoria programming
> style, i.e. not using all those types,
> but using 'length(A_A)',
> 'length(A_B)' etc. directly?

Really you have just 1 or 2 main sequences in your program.
For example, ed.ex editor.
So, you can enter these types and then 
use A_  or  B_  anywhere you want instead of, say,
length(First_Very_Long_But_Very_Clear_Name_of_Main_Sequence_1)
and
length(Second_Very_Long_But_Very_Clear_Name_of_Main_Sequence_2).

But you could not use $-feature in the same manner,
there is no the separate $-value at all.

Regards,
Igor Kachan
kinz at peterlink.ru

new topic     » goto parent     » topic index » view message » categorize

16. Re: Euphoria 2.5

Derek Parnell wrote:
> 
> cklester wrote:
> > I admit I've never really fretted over using s[length(s)]
> 
> And neither have I. Its the much more commonly used ...
> 
>    if A_Very_Long_But_Meaningful_Identifier_Name[
>      length(A_Very_Long_But_Meaningful_Identifier_Name)] = '\n' then
>        A_Very_Long_But_Meaningful_Identifier_Name = 
>           A_Very_Long_But_Meaningful_Identifier_Name[ 1 ..
>             length(A_Very_Long_But_Meaningful_Identifier_Name)- 1]
>    end if
> 
> that I have high hopes for.

Yes, those are the cases for which I see some benefit here.

>    if A_Very_Long_But_Meaningful_Identifier_Name[$] = '\n' then
>        A_Very_Long_But_Meaningful_Identifier_Name = 
>           A_Very_Long_But_Meaningful_Identifier_Name[ 1 .. $-1]
>    end if

Nice, huh? :)

-=ck
"Programming in a state of EUPHORIA."
http://www.cklester.com/euphoria/

new topic     » goto parent     » topic index » view message » categorize

17. Re: Euphoria 2.5

Hi Igor,

you wrote:

> Hi Juergen,
>
> [snipped old info]
>> Igor Kachan wrote:
>>>> From: Juergen Luethje
>>>> Sent: 28 jul 2004 y. 23:39
>>>> Igor Kachan wrote:
>>>>> CK Lester wrote:
>>>> How should B_ and C_ be defined, and how
>>>>  should the appropriate value
>>>> be assigned to B_ and C_?
>>>> Will you define a separate type for each sequence?
>>>>
>>>> <snip>
>>>
>>> Yes,  a separate type for each sequence.
>>>
>>> }}}
<eucode>
>>> integer B_
>>> type sequence_with_length_B()
>>> ...
>>> end type
>>>
>>> integer C_
>>> type sequence_with_length_C()
>>> ...
>>> end type
>>>
>>> integer D_
>>> type sequence_with_length_D()
>>> ...
>>> end type
>>> </eucode>
{{{

>>
>> And what is the advantage compared
>>  to conventional Euphoria programming
>> style, i.e. not using all those types,
>> but using 'length(A_A)',
>> 'length(A_B)' etc. directly?
>
> Really you have just 1 or 2 main sequences in your program.
> For example, ed.ex editor.
> So, you can enter these types and then
> use A_  or  B_  anywhere you want instead of, say,
> length(First_Very_Long_But_Very_Clear_Name_of_Main_Sequence_1)
> and
> length(Second_Very_Long_But_Very_Clear_Name_of_Main_Sequence_2).

Sorry, but this sounds somewhat theoretical to me. At least regarding to
my personal coding style, this will be rather unlikely. If a sequence in
my program is so important, that I feel necessary to give it a name
such as 'First_Very_Long_But_Very_Clear_Name_of_Main_Sequence_1', then I
probably will name the variable that holds its length
'Length_Of_First_Very_Long_But_Very_Clear_Name_of_Main_Sequence_1'
rather than just 'A_'.
Or, the other way round, if the variable 'A_' holds the length of the
sequence, then the sequence itself will prbably have a name such as 'A'
or 'sA'.

Anyway, I think your trick can be useful when there are only a few
sequences in the program, that often change their lengths, and the
lenths are often needed by the program. So it's not necessary always to
write
   A_ = length(First_Very_Long_But_Very_Clear_Name_of_Main_Sequence_1)

But if there are say 20 sequences, I think adding 20 types would add
considerable overhad to the program.

> But you could not use $-feature in the same manner,
> there is no the separate $-value at all.

Yes, it will only work for subscripting and slicing, but for these
purposes it will be more elegant than anything currently available in Eu
2.4, IMHO.

Regards,
   Juergen

new topic     » goto parent     » topic index » view message » categorize

18. Re: Euphoria 2.5

Hi Juergen,

----------
> From: Juergen Luethje <j.lue at gmx.de>
> To: EUforum at topica.com
> Subject: Re: Euphoria 2.5
> Sent: 29 jul 2004 y. 22:57

[big snip]

> Sorry, but this sounds somewhat theoretical to me.
> At least regarding to my personal coding style,
> this will be rather unlikely. If a sequence in
> my program is so important, that I feel necessary
> to give it a name such as
> 'First_Very_Long_But_Very_Clear_Name_of_Main_Sequence_1',
>  then I probably will name the variable that holds its length
> 'Length_Of_First_Very_Long_But_Very_Clear_Name_of_Main_Sequence_1'
> rather than just 'A_'.
> Or, the other way round, if the variable 'A_' holds the 
> length of the sequence, then the sequence itself will 
> prbably have a name such as 'A' or 'sA'.

Yes, agreed.

> Anyway, I think your trick can be useful when there are 
> only a few sequences in the program, that often change 
> their lengths, and the lenths are often needed by the 
> program. So it's not necessary always to write
> A_=length(First_Very_Long_But_Very_Clear_Name_of_Main_Sequence_1)

Thanks.

> But if there are say 20 sequences, I think adding 
> 20 types would add considerable overhad to the program.

Maybe.
I can not say something definite about $-overhead of the 
Euphoria interpreters and translators themselves, about 
the time and efforts on developing that feature etc etc,
and, maybe, I'm too conservative myself to be euthoric 
about any new thing in the EU language.
I think, we all do not know the existing EU well enough.

> > But you could not use $-feature in the same manner,
> > there is no the separate $-value at all.
> 
> Yes, it will only work for subscripting and slicing,
> but for these purposes it will be more elegant than 
> anything currently available in Eu 2.4, IMHO.

Maybe, yes, elegance requires a sacrifice ...

But old good EU [type ... end type], what a beautiful thing!

I just remembered yours:
"And what is the advantage compared to conventional Euphoria
programming style, i.e. not using all those types ... "

And I do remember Rob's:
"In Euphoria, types are for documentation 
and debugging. Period."

And I am afraid that some time Rob will eliminate
the existing non-documented side effect as it already
was once with the translator in "without type_check" mode.

Well, let us wait for 2.5.

Good Luck!

Regards,
Igor Kachan
kinz at peterlink.ru

new topic     » goto parent     » topic index » view message » categorize

19. Re: Euphoria 2.5

Hi Igor,

you wrote:

> Hi Juergen,
>
> ----------
>> From: Juergen Luethje
>> Sent: 29 jul 2004 y. 22:57

[snipped a lot in agreement]

> But old good EU [type ... end type], what a beautiful thing!
>
> I just remembered yours:
> "And what is the advantage compared to conventional Euphoria
> programming style, i.e. not using all those types ... "

Please don't get me wrong: I am not against the EU types.
But using a separate type for *each* sequence adds a lot of overhead, is
rather unusual, and also implies some risk for introducing bugs, when
another user tries to change the code, and isn't aware of this special
construction.

[snip]

Regards,
   Juergen

new topic     » goto parent     » topic index » view message » categorize

20. Re: Euphoria 2.5

Hi CK again,

You wrote:

----------
> From: cklester <guest at RapidEuphoria.com>
> To: EUforum at topica.com
> Subject: Re: Euphoria 2.5
> Sent: 28 jul 2004 y. 22:22
> 
> posted by: cklester <cklester at yahoo.com>
> 
> Igor, your version of s[length(s)] doesn't 
> quite work perfectly...
> 
> Run this:
> -- start of code
> include get.e
> 
> sequence junk
> 
> integer A_
> type sequence_with_length_A(sequence a)
>   A_= length(a)
>   return sequence(a)
> end type
> 
> sequence_with_length_A A_A, A_B, A_C
> 
> A_A = "Hello"
> A_B = "World"
> A_C = "Goodbye!"
> 
> ?A_A[A_]
> ?A_B[A_]
> ?A_C[A_]
> 
> --end of code
> 
> Sure, you could define B_ and C_, but 
> what happens when you have
> a billion sequences? :)

Try please new version of that
hard game:

integer A, B, C, D, E -- to billion
type sequences_with_lengths(sequence a)
  A=length(a[1])
  B=length(a[2])
  C=length(a[3])
  D=length(a[4])
  E=length(a[5])
   -- to billion
    return 1
end type

sequences_with_lengths  S

S={{1,2,3},
   {4,5,6,7},
   {7,8,9,8,9},
   {1,3,5,7,9,0},
   {0,2,4,6,8,1,1}}
-- to billion
? A
? B
? C
? D
? E
? S[1][A]
? S[2][B]
? S[3][C]
? S[4][D]
? S[5][E]

S[3] = {11,12}

? C
? S[3][C]
-- and so on


This is old good Euphoria 
programming language, isn't it?
Just now, works for me.

Regards,
Igor Kachan
kinz at peterlink.ru

new topic     » goto parent     » topic index » view message » categorize

21. Euphoria 2.5

I've been following this for some time and I wanted to share some thoughts...

What is RDS' customer base for 2.5?  I mean, who are the people paying
money for a license?

*Hobbyists with $80 to spend who want to make modifications run at full
speed and don't care if they can redistribute them.

*Hobbyists who want to bind or shroud their code.

*Business programmers who need to make modifications run at full speed and
can convince their customers to pay for the extra license.

*Business programmers who need to bind or shroud their code.

*Translator customers from the above categories who want to get rid of the
delay message.


Am I missing any?  I don't belong to any of these groups.

You can take this with a grain of salt because I have never registered
Euphoria.  Until Derek's contest I had never written more than 50 lines
or so of code with Euphoria.  My interest is mostly aesthetic.

I saw myself as more of a potential customer pre-2.5.  Now, except for my
features wishlist (which everyone seems to have), I get everything for
free with the PD version.  I could even write my own back-end or translate
Euphoria to yet another language or whatever.  I have no reason now to send
any money to RDS.

I think that RDS could make more money if they wrote a couple of books -- a
basic computer science text using Euphoria, and an intermediate/advanced
book on writing and implementing an interpreter using Euphoria as the case
study.

I would buy that book.

 j.

new topic     » goto parent     » topic index » view message » categorize

22. Re: Euphoria 2.5

I don't want to seem to be one of the RDS bashers.

A license that would make more sense to me is either the normal shareware
license (if you like Euphoria send RDS money) or a royalty license (use Euphoria
for as many free products as you want but if you sell something then pony up).


j.

new topic     » goto parent     » topic index » view message » categorize

23. Re: Euphoria 2.5

Hi, Ricardo.

You wrote:

----------
> From: Ricardo Forno <rforno at uyuyuy.com>
> To: EUforum at topica.com
> Subject: RE: Euphoria 2.5
> Sent: 31 jul 2004 y. 5:01
> 
> Hi, Igor.
> What are the non-documented side efects 
>  you are speaking of?
> Regards.

[snip]

> > And I am afraid that some time Rob will eliminate
> > the existing non-documented side effect as it already
> > was once with the translator  in "without type_check"
>  >  mode.

On Euphoria manual, [type ... end type] functions serve just 
for testing if the single parameter is of needed value.
But really you can use these functions for any an additional 
job as procedures on each assignment to typed variable too.
Maybe, this feature is not a 'side effect' in usual sense,
but it is not used in the official RDS programs, as far as I know,
is not described in the official RDS documentation and it seems
to be discovered by one of this list members. 
I myself know about this feature from the list and use it in
some my programs. This side effect is very useful, I think.

Really, why not use this thing if it does work well?

integer A
type sequense_with_length(sequence a)
  A=length(a)
    return 1
end type


There is no any user-defined tests of sequence a,
but this is the Euphoria [type...end type] construct,
which will prepare the new length(N) for you on any
new assignment to sequense_with_length N.

Is it a side effect or is it a very useful EU feature -
this is an issue of terms, I think.

Sure, It Is Not a Bug!       smile

Regards,
Igor Kachan
kinz at peterlink.ru

new topic     » goto parent     » topic index » view message » categorize

24. Re: Euphoria 2.5

> 
> Yes, those are the cases for which I see some benefit here.
> 
> 
>>>    if A_Very_Long_But_Meaningful_Identifier_Name[$] = '\n' then
>>>        A_Very_Long_But_Meaningful_Identifier_Name = 
>>>           A_Very_Long_But_Meaningful_Identifier_Name[ 1 .. $-1]
>>>    end if
> 
> 
> Nice, huh? 
> 

OE will support the following:

   if A_Very_Long_But_Meaningful_Identifier_Name[$] = '\n' then
         delete(A_Very_Long_But_Meaningful_Identifier_Name,$)
    end if

$ will be synonym for -1.
Any help welcome, read the OpenEU forum.

CChris

new topic     » goto parent     » topic index » view message » categorize

25. Euphoria 2.5

--=======AVGMAIL-401856C941B3=======

------=_NextPart_000_004F_01C3E65C.DF2DB440

Now that we know that the new Euphoria interpretor will consist of a front end
and a back end, and more importantly, it will be mainly C. Euphoria will already
be one step closer to thing like thread and multiuser support.

After the new Euphoria 2.5 is released. I think we are going to see some really
good changes and possibilities In the later versions to come.

Keep up the good work RDS. Thnxs for making easy programing possible.

 


---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.572 / Virus Database: 362 - Release Date: 27/01/04
------=_NextPart_000_004F_01C3E65C.DF2DB440
Content-Type: text/html; charset=iso-8859-1
Content-Transfer-Encoding: 8bit

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<META content="MSHTML 6.00.2800.1276" name=GENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=#ffffff>
<DIV><FONT face=Arial size=2>Now that we know that the new Euphoria interpretor 
will&nbsp;consist of&nbsp;a front end and a back end, and more importantly, it 
will be mainly C. Euphoria&nbsp;will already be one step closer to thing 
like&nbsp;thread&nbsp;and multiuser support.</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>After the new Euphoria&nbsp;2.5 is released. I 
think we are going to see some really good changes and possibilities In the 
later versions to come.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>Keep up the good work RDS. Thnxs for making easy 
programing possible.</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;<FONT face=Arial size=2></FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face=Arial size=2><BR>---<BR>Outgoing mail is certified Virus 
Free.<BR>Checked by AVG anti-virus system (<A 
href="http://www.grisoft.com">http://www.grisoft.com</A>).<BR>Version: 6.0.572 /

------=_NextPart_000_004F_01C3E65C.DF2DB440--
--=======AVGMAIL-401856C941B3=======
Content-Type: text/plain; x-avg=cert; charset=iso-8859-2
Content-Transfer-Encoding: 8bit
Content-Disposition: inline
Content-Description: "AVG certification"

Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.572 / Virus Database: 362 - Release Date: 28/01/04

--=======AVGMAIL-401856C941B3=======--

new topic     » goto parent     » topic index » view message » categorize

26. Euphoria 2.5

I was just wondering what new features you implementing in version 2.5?
And when you plan to release the alpha version of Euphoria 2.5?

Also I'm aware that you have written the initial interpreter in 70/30 hybrid
code. 70% being Ansi C, and 30% being Euphoria, my question is how will that
effect speed since the main interpreter is no longer 100% C coded like version
2.4
and below? And for the Eu to C v2.5 translator that I believe you said would be
written in 100% Euphoria code, how will that effect the compadability with
various
C/C++ compilers?

I do plan to purchase Euphoria v2.5 and possibly the Eu to C translator v2.5.
I'm just curious in general what changes and or enhancements will be made to
the language structure and librarys from the current version 2.4

new topic     » goto parent     » topic index » view message » categorize

27. Re: Euphoria 2.5

Vincent wrote:
> I was just wondering what new features you implementing in version 2.5?

- a complete open source Euphoria interpreter written in Euphoria
  and 100% compatible with the official RDS interpreter (but slower)
- $ feature
- crash handler
- namespace improvement
- "-con" option in translator and binder will give you
  a Windows console mode .exe
- totally new binder
  - quick start-up - parsing has already been completed
  - fairly small .exe - you bind with the back-end only,
    not the full interpreter
  - shared front-end - no possibility of glitches or 
    differences with interpreter
  - better shrouding since the shrouded intermediate language,
    not the (shrouded) source is stored in the .exe
  - option to have full ex.err debug information when your user
    causes a crash (but your source is still not in the .exe)
- the usual assortment of bug fixes, documentation fixes,
  small translator code-gen improvements, trivial enhancements etc.

> And when you plan to release the alpha version of Euphoria 2.5?

I'm getting closer. I don't have a specific date in mind.
This project keeps getting more and more complicated. It takes
time to fully test all components on all platforms. 
Hopefully in a month or so I'll be very close, but I think it's
better for me to test things well and handle a small number of
bug reports, than put out something quick and sloppy and get flooded
with reports.

> Also I'm aware that you have written the initial interpreter in 70/30 hybrid
> code. 70% being Ansi C, and 30% being Euphoria, my question is how will that
> effect speed since the main interpreter is no longer 100% C coded like version
> 2.4
> and below? 

The front-end (scanning/parsing) is now written in Euphoria. 
It's translated by EtoC to C, compiled, and linked with the 
hand-coded back-end. The back-end is in carefully hand-coded C as before 
for full speed. So theoretically the front-end (only) is a bit
slower. But you won't notice it unless you have a very old machine,
and a very large program, and you watch the start-up time carefully.

> And for the Eu to C v2.5 translator that I believe you said would be
> written in 100% Euphoria code, how will that effect the compadability with
> various
> C/C++ compilers?

The fact that it's now written in Euphoria has no effect on 
compatibility with C compilers. It outputs the same C code
as before (except for a few bug fixes and performance improvements).
It takes slightly longer to run (an extra few seconds), 
but the subsequent C compiles still take a lot longer than the 
translation step.

Regards,
   Rob Craig
   Rapid Deployment Software
   http://www.RapidEuphoria.com

new topic     » goto parent     » topic index » view message » categorize

28. Re: Euphoria 2.5

----- Original Message -----
From: "Robert Craig" <guest at RapidEuphoria.com>
To: <EUforum at topica.com>
Sent: Tuesday, September 07, 2004 11:05 AM
Subject: Re: Euphoria 2.5


>
>
> posted by: Robert Craig <rds at RapidEuphoria.com>
>
> Vincent wrote:
> > I was just wondering what new features you implementing in version 2.5?
>
> - a complete open source Euphoria interpreter written in Euphoria
>   and 100% compatible with the official RDS interpreter (but slower)
> - $ feature

Awesome! That one is (while not at all necessary) VERY useful. I get so sick
of typing out:

x=x[y..length(x)]
That really gets tiring!

> - crash handler

Very nice, esp since my new version of SySlaunch needs to be able to free
the tcp4u resources, but right now, if it crashes, it can't do that...

... and I despise memory leaks on my 64MB sdram machine...

> - namespace improvement

Meaning??

> - "-con" option in translator and binder will give you
>   a Windows console mode .exe

Neat.

> - totally new binder
>   - quick start-up - parsing has already been completed

Cool

>   - fairly small .exe - you bind with the back-end only,
>     not the full interpreter

Very cool

>   - shared front-end - no possibility of glitches or
>     differences with interpreter

Very very cool

>   - better shrouding since the shrouded intermediate language,
>     not the (shrouded) source is stored in the .exe

Very VERY VERY cool

>   - option to have full ex.err debug information when your user
>     causes a crash (but your source is still not in the .exe)

Couldn't get better than that, could it?

> - the usual assortment of bug fixes, documentation fixes,
>   small translator code-gen improvements, trivial enhancements etc.

I guess it could!

>
> > And when you plan to release the alpha version of Euphoria 2.5?
>
> I'm getting closer. I don't have a specific date in mind.
> This project keeps getting more and more complicated. It takes
> time to fully test all components on all platforms.
> Hopefully in a month or so I'll be very close, but I think it's
> better for me to test things well and handle a small number of
> bug reports, than put out something quick and sloppy and get flooded
> with reports.

Fine. Could you (at least) give an 'unofficial approximate to which you
cannot be held legally responsible' answer to what season? Winter '04?
Spring '05?

>
> > Also I'm aware that you have written the initial interpreter in 70/30
hybrid
> > code. 70% being Ansi C, and 30% being Euphoria, my question is how will
that
> > effect speed since the main interpreter is no longer 100% C coded like
version 2.4
> > and below?
>
> The front-end (scanning/parsing) is now written in Euphoria.
> It's translated by EtoC to C, compiled, and linked with the
> hand-coded back-end. The back-end is in carefully hand-coded C as before
> for full speed. So theoretically the front-end (only) is a bit
> slower. But you won't notice it unless you have a very old machine,
> and a very large program, and you watch the start-up time carefully.
>

If it means it risks slowing it down, why did you rewrite part of it? It
doesn't quite make sense. What is the AdVanTage of having it be 30%
translated euphoria?

<snip snip>
William Heimbigner - who is very happy as he has just started 9th grade
today!
icxcnika at hotpop.com
Visit the UBoard - Forceful Signups Removed! -
http://uboard.proboards32.com - Threaded discussion, improved searching,
human moderating, graphical smileys, better formatting abilities (now what
else was there...)
Visit my website: http://www.geocities.com/icxcnika123

new topic     » goto parent     » topic index » view message » categorize

29. Re: Euphoria 2.5

William Heimbigner wrote:
> > The front-end (scanning/parsing) is now written in Euphoria.
> > It's translated by EtoC to C, compiled, and linked with the
> > hand-coded back-end. The back-end is in carefully hand-coded C as before
> > for full speed. So theoretically the front-end (only) is a bit
> > slower. But you won't notice it unless you have a very old machine,
> > and a very large program, and you watch the start-up time carefully.
> >
> 
> If it means it risks slowing it down, why did you rewrite part of it? It
> doesn't quite make sense. What is the AdVanTage of having it be 30%
> translated euphoria?

* It's the same front-end as the open source Eu in Eu 
  interpreter uses (avoids dual maintenance).

* The old C-coded front-end had lots of very ugly, complicated
  code to do with allocating/reallocating numerous data structures.
  The new front eliminates all that by using append() etc.

* I can test changes to the new front-end in interpreted mode,
  (subscript checking, uninitialized variable checking etc.), 
  not to mention profiling, interactive tracing etc.

* I like programming in Euphoria a lot more 
  than I like programming in C.

* the speed difference is tiny and will get tinier as
  machines get faster
  
Regards,
   Rob Craig
   Rapid Deployment Software
   http://www.RapidEuphoria.com

new topic     » goto parent     » topic index » view message » categorize

30. Re: Euphoria 2.5

William Heimbigner wrote:

> <snip snip snip>

> William Heimbigner - who is very happy as he has just started 9th grade
> today!

You are envied by teenagers here, who have been in school since Aug. 6.
Note that Georgia students consistently rank 50th out of the 50 states 
in academics, so I guess the extra month isn't doing them very much good.

Irv

new topic     » goto parent     » topic index » view message » categorize

31. Re: Euphoria 2.5

On 7 Sep 2004, at 11:38, William Heimbigner wrote:

<snip>

> > The front-end (scanning/parsing) is now written in Euphoria.
> > It's translated by EtoC to C, compiled, and linked with the
> > hand-coded back-end. The back-end is in carefully hand-coded C as before
> > for full speed. So theoretically the front-end (only) is a bit
> > slower. But you won't notice it unless you have a very old machine,
> > and a very large program, and you watch the start-up time carefully.
> >
> 
> If it means it risks slowing it down, why did you rewrite part of it? It
> doesn't quite make sense. What is the AdVanTage of having it be 30%
> translated euphoria?

Because it MIGHT allow some of us to make improvements in the human-
written side, for adding things like case, goto, repeat-until, inline, string 
execution, namespacing, local includes (Bach's import), and threading (or 
maybe something else like Al Getz's windows server), associated lists (like 
Jiri's, or the hash() in Bach), or just whatever other function Eu lacks that
you
need! If a change i make is written in Eu, and a change you make is written 
in Eu, merging the changes is much easier. The output code is still 
compatable with the execution unit.

> <snip snip>
> William Heimbigner - who is very happy as he has just started 9th grade
> today!
> icxcnika at hotpop.com

Congrats.

Kat,
graduated 9th back in ancient history.

new topic     » goto parent     » topic index » view message » categorize

32. Re: Euphoria 2.5

On 7 Sep 2004, at 15:04, irv mullins wrote:

> 
> 
> posted by: irv mullins <irvm at ellijay.com>
> 
> William Heimbigner wrote:
> 
> > <snip snip snip>
> 
> > William Heimbigner - who is very happy as he has just started 9th grade
> > today!
> 
> You are envied by teenagers here, who have been in school since Aug. 6.
> Note that Georgia students consistently rank 50th out of the 50 states 
> in academics, so I guess the extra month isn't doing them very much good.

That hasto be wrong. No way Georgia is behind Alabama in anything. 

Kat,
today took out two arrest warrants for neighbor for releasing attack 
rottweilers on her property, and verbally abusing her and threatening bodily 
harm (twice) because she objects to becoming dogfood. <sigh> Been nice 
knowing you.

new topic     » goto parent     » topic index » view message » categorize

33. Re: Euphoria 2.5

Craig wrote:
* I like programming in Euphoria a lot more 
  than I like programming in C.

Of course. That is a prime reason I use Euphoria and likely 
why many users do. Keep on making out lives easier/better with Euphoria!
I assume the front-end will now be easier to maintain and improve,
which far out weighs the insignificant slower time.

Terry Constant

new topic     » goto parent     » topic index » view message » categorize

Search



Quick Links

User menu

Not signed in.

Misc Menu