1. Euphoria's strengths

To me, Euphoria's strengths are as follows:

  • Clear and readable syntax
  • Generic lists
  • Typing that is as dynamic or as static or as strong or as weak as the developer wants

These are the strengths which Euphoria should continue to capitalize on. Most other "new" features are a distraction.

That's not to say that new concepts or ideas aren't welcome, but rather that they really have to prove their worth beyond a reasonable doubt before modifying the Euphoria spec to include them.

In my humble opinion.

new topic     » topic index » view message » categorize

2. Re: Euphoria's strengths

What attracted me to Euphoria is a bit different:

  1. Fast enough
  2. Interpreted
  3. Can easily be bound to create a single executable
  4. Simple to use dynamic data structure
  5. No need for prototype files (like .h in C)

However, it seemed that many users were quite hostile to new ideas. There was an attitude that people were guarding the one true language from corruption.

That hasn't really changed.

- David
Forked into: Evolution of Euphoria

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

3. Re: Euphoria's strengths

'New' doesn't mean 'Better'.

In most cases, from a very wide point of view, 'New' is the worst.

Some new gifts, such as the Penicillin, meant life for millions of people.

Other new inventions, such as many war machines and supercomputers - will soon or later fall into the hands of a world's dictatorship. means death for billions of people.

If my life had to depend on USB or RS-232 communication, I could only choose RS-232, because it's my life.

I like Euphoria because it's (still) simple.

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

4. Re: Euphoria's strengths

dcuny said...

However, it seemed that many users were quite hostile to new ideas. There was an attitude that people were guarding the one true language from corruption.

That hasn't really changed.

That ship has long since sailed.

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

5. Re: Euphoria's strengths

dcuny said...

However, it seemed that many users were quite hostile to new ideas. There was an attitude that people were guarding the one true language from corruption.

That hasn't really changed.

Evidence, please?

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

6. Re: Euphoria's strengths

dcuny said...

However, it seemed that many users were quite hostile to new ideas. There was an attitude that people were guarding the one true language from corruption.

That hasn't really changed.

I'd say it's changed quite a bit. At least, the resistance is a lot lower than Rob's. smile

That said, I'll agree that we try to keep the overall feel of the language relatively consistent. 4.0 was a *big* change from what we had before.

Matt

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

7. Re: Euphoria's strengths


Very little of what i believe makes a good programming language has been added to Euphoria. And while i support what DCuny has said (and he's been in this forum longer than i have), i'll point out that for the most part if i support it, it's not going to be part of Euphoria.

I am currently writing new code which i'd much prefer to write in Eu, but cannot. The language i chose has access to the variable table so i can see if a var is there before i use it. And i can search the var table with wildcards, during runtime. I can tell if a procedure is available, and which "include" file has it. I can tell if an "include" file is loaded, and i can load or unload it during runtime, with or without init code running at load or unload time. I can also build a string of code during runtime and execute it. Or i can load and execute a file of code during runtime. While the language has windows gui support for the coder, i have not used it in depth, but only for interaction with the application in text-only. The windows have programmable popups, programmable during runtime. And all this runs interpreted, and loads much faster than Eu. It's not Lua.

Those things i have lost all hope of ever seeing in Euphoria. Most of them i have asked for for years. I miss Eu's sequences and speed, but at least i have functionality in the other language.

useless

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

8. Re: Euphoria's strengths

@useless: why do you want to keep us guessing? why don't you tell us the name of the language?

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

9. Re: Euphoria's strengths

@GreenEuphorian:
I second your request but I fear the language 'useless' is using
will be useless to us as it might well be:
very hard to learn
very obscure to decypher
almost unreadable
very demanding on type-controlling variables etc
in one word USELESS and
far less USER-FRIENDLY than Euphoria.

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

10. Re: Euphoria's strengths

Euphoria strives for many qualities which other programming languages already can't reach.

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

11. Re: Euphoria's strengths

DerekParnell said...

Evidence, please?

Look at the conversation on try/catch.

said...

It makes me madder than hell to think of such a horrible backward construct being added to Eu, if two simple calls would do.

to use badly written unstable garbage, and get away with it.

I worry that (most) people will think they are getting something which is actually really hard to do right, for free.

Excuse me of being rude, but I wonder where your experience comes from.

Let's stop this nonsense.

It did seem contrived. If it happened to you, then the one to blame for the fault is the developer, not the language.

Ok, so don't use Euphoria.

While I appreciate the forward direction this conversation has taken, these sorts of responses had me ready quit Euphoria entirely.

- David

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

12. Re: Euphoria's strengths

dcuny said...

While I appreciate the forward direction this conversation has taken, these sorts of responses had me ready quit Euphoria entirely.

I can hardly blame you.

That said, I'd be very sorry to see you go. You have been an inspiration to me, and have contributed more to Euphoria than most devs. I believe that your return has restored some of the old vitality back into the community.

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

13. Re: Euphoria's strengths

Ekhnat0n said...

@GreenEuphorian:
I second your request but I fear the language 'useless' is using
will be useless to us as it might well be:
very hard to learn
very obscure to decypher
almost unreadable
very demanding on type-controlling variables etc
in one word USELESS and
far less USER-FRIENDLY than Euphoria.

Ekhnaton, you are attacking the language without even knowing what it is. In fact, regarding types, you can assign a string or an integer to any variable, or you can assign $null. I agree this isn't necessarily a good thing. The reserved words are very BASIC-like, as is Euphoria, but unlike Euphoria, you can override them and stop the built-in from executing if you like, because user code executes before the built-ins.

GreenEuphorian, i won't say the language's name because people get banned on this forum for advertising.

useless, but not because i want to be.

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

14. Re: Euphoria's strengths

jimcbrown said...
dcuny said...

While I appreciate the forward direction this conversation has taken, these sorts of responses had me ready quit Euphoria entirely.

I can hardly blame you.

That said, I'd be very sorry to see you go. You have been an inspiration to me, and have contributed more to Euphoria than most devs. I believe that your return has restored some of the old vitality back into the community.

Then please, i beg you, implement some of his ideas! Otherwise, he really is uselessly wasting his time here. And i don't mean like adding code that users could contribute, but instead adding features to the core that users can take off on, like access to the var table, other variable passing formats, etc etc. If you want to see vitality, for dog's sake, listen to him and make things happen! Don't just encourage arguement on this forum against him!

useless

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

15. Re: Euphoria's strengths

eukat said...

Then please, i beg you, implement some of his ideas!

I feel that dcuny himself is best positioned to implement his own ideas the manner most confirming to his original vision.

That said, we've already implemented quite a few of his ideas, such as dot4 and desequencing.

I'd argue that we've implemented even more of his ideas in spirit (such emulated PBR through eumem), though it's clear that he doesn't always agree.

eukat said...

And i don't mean like adding code that users could contribute, but instead adding features to the core that users can take off on,

We have ... however, some of his ideas are harder to implement than others.

eukat said...

Don't just encourage arguement on this forum against him!

Agreed, talking about a topic is good but nothing beats coming up with a prototype implementation or a preprocessor to demo an idea out.

eukat said...

like access to the var table

dcuny, correct me if I'm wrong, but I don't recall this being one of yours.

That said, it's not a bad thing to have. I certainly wouldn't complain if someone came up with a patch to implement this in Euphoria.

It's just plain hard to do.

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

16. Re: Euphoria's strengths

eukat said...

GreenEuphorian, i won't say the language's name because people get banned on this forum for advertising.

Well, only if they're selling something. Typically it's even a product largely unrelated to computing (like "those gray dresses" or something).

But, yes, this is a forum about Euphoria, not INSERT FAVORITE LANGUAGE HERE. Comparisions and other valid on-topic posts about other languages are permitted, but we do ask that everyone does their best to keep things on topic.

That said, our unwritten policy about off-topic posts is generally pretty lax. E.g., http://openeuphoria.org/forum/123324.wc

That said, it's time to get this thread back on topic. Instead of just talking about how Euphoria lacks things like access to the variable table, let's start seeing how we can make Euphoria even stronger.

(Edit: Of course, getting a discussion started and sharing ideas and talking things through is also an important and necessary part of the process. We should continue doing this. But having working examples to play with can make some things easier to understand and sometimes even get others to start moving faster.)

A good first step might be sharing ideas and maybe even code on how we can modify eu.ex and execute.e to do things like implement access to the variable table. Thoughts?

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

17. Re: Euphoria's strengths

@useless:

Don mention any properties of any language whatsoever
comparing it with Euphoria
without mentioning that language.

you ought to be banned

for NOT telling the language
as it's cheap stating things without offering opportunity
to verify your claims.

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

18. Re: Euphoria's strengths

Ekhnat0n said...

<snipped command from Ekhnat0n>

you ought to be banned

for NOT telling the language
as it's cheap stating things without offering opportunity
to verify your claims.

It doesn't matter which other language has whatever features. And so it doesn't matter if you believe whatever language does or doesn't have what feature. What matters is what Euphoria has. And to some people it matters that we asked for the same things back in the days when RobC ran the show as we ask for now.

Ragging on me like you have done only proves i am...

useless

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

19. Re: Euphoria's strengths

useless_ said...

Then please, i beg you, implement some of his ideas!

Let me clarify: I'm certainly not threatening to leave because my ideas haven't been implemented.

There have been many changes made to Euphoriasuch as:

{a, b, c} = foo() 

This is a huge.

It's easy to suggest things. It's quite another thing to make it happen, and happen well. And people have been doing it - I don't mean to imply otherwise.

Heck, simply maintaining Euphoria is worthy of respect.

And while I disagree with people, that doesn't mean that I don't respect their ideas.

My ideas may be completely wrong, and there may be better ways of doing things. The only way to get to that point is through discussion, and forums aren't always the ideal place for these things to happen.

My complaint is with the tone of some of the conversation. We can be passionate Euphoria and still maintain that respect.

- David

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

20. Re: Euphoria's strengths

jaygade said...

That's not to say that new concepts or ideas aren't welcome, but rather that they really have to prove their worth beyond a reasonable doubt

Well said

dcuny said...

However, it seemed that many users were quite hostile to new ideas. There was an attitude that people were guarding the one true language from corruption.

To me that is saying pretty much the same thing. Reminds me of...

Howard Aiken said...

If your ideas are any good, you'll have to ram them down people's throats.

dcuny said...
DerekParnell said...

Evidence, please?

Look at the conversation on try/catch.

said...

It makes me madder than hell to think of such a horrible backward construct being added to Eu, if two simple calls would do.

Just to clarify, that was about "finally", not "try/catch", and of course is really just my personal opinion anyway

said...

to use badly written unstable garbage, and get away with it.

Likewise, that was not necessarily about code you might write, but code you want to run, and as such was not meant to be a direct insult. It was an insult, but with no specific target, and intended to stress not a panacea.

Anyway, must get on with composing my thoughts on var_id(), brb.

Pete

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

21. Re: Euphoria's strengths

jimcbrown said...
eukat said...

like access to the var table

I certainly wouldn't complain if someone came up with a patch to implement this in Euphoria.

It's just plain hard to do.

Really? Of course I'm looking at this from a purely Phix perspective, and apart from nested block scopes, I'd say this was reasonably trivial.
Unless you were expecting it to magic previously-undeclared variables out of thin air or suchlike.
If one of those pesky fatal errors can print "i = 5" to an ex.err then the runtime can clearly map values/storage addresses and variables/names. smile

jimcbrown said...

A good first step might be sharing ideas and maybe even code on how we can modify eu.ex and execute.e to do things like implement access to the variable table. Thoughts?

This is how it might go in Phix, not that I'm convinced it would necessarily prove to be particularly useful:

A var_id(), like routine_id(), is a simple integer index to the symbol table.

Only two fairly simple routines can actually use a variable id, set_var(id, x) and x = get_var(id).

NB The following two restrictions may cause arguments, but I'd rather limit things, even drastically, than have mildly incorrect code potentially cause any and all manner of weirdness...

Since it is not permitted to access a block scoped variable outside that scope, but the scope of a variable and a corresponding variable id may differ, variable ids may not be obtained for variables with a limited (block level) scope. In the example below var_id("i") and var_id("j") are fine but var_id("k") and var_id("l") are not, because of where i, j, k, and l are defined. Obviously, you are free to store a variable_id, when you can get one, in a block scoped variable.

While global and file-level variables have precisely one location, and variable ids for them can be used anywhere, parameters and locals can have zero or more locations, and variable ids for them can only be used in the same routine where they are declared. Oh, and obviously because of standard scope rules, that is also the only place you can obtain a variable id for a local in the first place. Both set_var and get_var check the currently active frame is correct, and hence a viable storage location exists, before proceeding (when dealing with a local variable). In the example code below there is absolutely no possible valid storage location to store the 7, as there is no active frame for f, which is where j lives.

The following code illustrates some permitted and invalid uses:

procedure p(integer id) 
  set_var(id,4) 
end procedure 
 
integer i 
function f() 
integer j 
integer idi = var_id("i") 
integer idj = var_id("j") 
  set_var(idi,5)    -- fine 
  p(idi)            -- fine 
  set_var(idj,6)    -- fine 
  p(idj)            -- runtime error 
  if c then 
    integer k 
    integer idk = var_id("k") -- error (k not top-level) 
  end if 
  return idj        -- dubious 
end function 
set_var(f(),7)      -- runtime error 
if c then 
  integer l 
  integer idl = var_id("l") -- error (l not top-level) 
end if 

Technically it would be quite possible to make p(idj) find and trash the callee's j, but potentially risky, would have to would have to fail if g() called it anyway, unless f() called g(), and even then it could be an unrelated call we're clobbering...

Lastly, set_var() must also invoke the appropriate typecheck, if any.

I would be quite happy to make set_var() yield true/false rather than crash on invalid var_id. I'd want valid_id() over get_var() returning {SUCCESS,x} but I won't argue.

Did I miss anything?

Pete
PS Of course that was the theory, practice may be a different matter altogether.

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

22. Re: Euphoria's strengths

petelomax said...
jimcbrown said...
eukat said...

like access to the var table

I certainly wouldn't complain if someone came up with a patch to implement this in Euphoria.

It's just plain hard to do.

Really? Of course I'm looking at this from a purely Phix perspective, and apart from nested block scopes, I'd say this was reasonably trivial.

If one of those pesky fatal errors can print "i = 5" to an ex.err then the runtime can clearly map values/storage addresses and variables/names. smile

That's true if all you need is something like variable_id()/set_variable()/get_variable(), however ...

petelomax said...

Unless you were expecting it to magic previously-undeclared variables out of thin air or suchlike.

I believe this is the level of access that eukat is asking for (in addition to being able to explicitly de-declare previously declared variables).

petelomax said...

This is how it might go in Phix

Did I miss anything?

Not that I can see. Looks nice.

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

23. Re: Euphoria's strengths

jimcbrown said...

That's true if all you need is something like variable_id()/set_variable()/get_variable(), however ...

petelomax said...

Unless you were expecting it to magic previously-undeclared variables out of thin air or suchlike.

I believe this is the level of access that eukat is asking for (in addition to being able to explicitly de-declare previously declared variables).

One of the hoops i jump thru in Euphoria, for variables, is to use an associated list, vars.name and vars.value, and setvar("name",value) and getvar("name"). Then find() and match() etc work normally on the lists, i can search for a value or a name, and use wildcards. If the varname isn't there, i can make it, this helps a lot with inheritance. This is actually an old workaround, from October 2003. It can get cumbersome, and the first run of a program tells me where i used the transparent normal syntax of Euphoria and not the special vars list syntax. And i know i am taking a speed hit, which shouldn't happen with native support in the core. Same problem with memory use: once used it isn't ever returned to the OS. But this is an example of a feature users could load in an include file if they don't mind the syntax being different than normal Eu code.

I tried to write a interface using new reserved keywords as a scripting language running on Euphoria, it didn't work. I couldn't recieve parameters and pass them to Euphoria properly. This would have been a workaround for not having string execution in the core. Spawning new processes doesn't work either, because you cannot use the existing environment, you cannot make an include file to instanciate the variables if you don't know the varnames to write into the include file for the new instance. Having access to the varlist in Euphoria might fix the lack of string execution, if you can accept the long time to launch a new Eu app, just to run one string. But if it's run repeatedly, the startup time is a hit only once. Keeping the two environments sync'd may be an issue.

Tasks was a great workaround for event driven code. I wrote an event driven ircd and httpd in the other language, but tasks seem to work equally well for that sorta thing, if differently, in Euphoria. Tasks may be a good workaround for timers in the other language, i have not tried, i have been away from Eu for some time, partly because my code for task message passing was rejected. I quit working on that in Oct 2013, because someone else was developing it.

useless

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

24. Re: Euphoria's strengths

useless_ said...

access to the var table

We've started with this. It's low level, but euphoria/debug/debug.e (4.1) has opened up some reflection capabilities to euphoria programs.

Matt

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

25. Re: Euphoria's strengths

petelomax said...
jimcbrown said...
eukat said...

like access to the var table

I certainly wouldn't complain if someone came up with a patch to implement this in Euphoria.

It's just plain hard to do.

Really? Of course I'm looking at this from a purely Phix perspective, and apart from nested block scopes, I'd say this was reasonably trivial.
Unless you were expecting it to magic previously-undeclared variables out of thin air or suchlike.
If one of those pesky fatal errors can print "i = 5" to an ex.err then the runtime can clearly map values/storage addresses and variables/names. smile

In the interpreter, it's pretty trivial. Basically a few hooks and some understanding of the data structure (which gets a lot easier with memstructs blink). This has been done already for 4.1.

I also remember writing that into a version of the...umm....pre-open source version of the source I bought off of Rob (that used a similar var_id scheme to what you proposed, IIRC). So, 2.5, maybe? And some access is there already in 4.1, at least to interpreted programs.

It's more difficult to do that with translated programs. And hasn't been implemented yet. We'd need to create a symbol table similar to what we have for routine ids. Possibly multiple, in order to allow access to non-file-level vars.

Matt

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

26. Re: Euphoria's strengths

mattlewis said...

It's more difficult to do that with translated programs. And hasn't been implemented yet. We'd need to create a symbol table similar to what we have for routine ids. Possibly multiple, in order to allow access to non-file-level vars.

Which is why I said it's hard to do. It can be done, but it'd be hard. In addition to the variable_id() stuff, adding wildcard searching is probably not a lot of work.

But adding the ability to dynamically add and remove variables from the variable table on the fly? In a translated program? It can be done, it's just a lot more work.

eukat said...

And i know i am taking a speed hit, which shouldn't happen with native support in the core.

Actually, from the translator side, the solution would probably take the same speed hit (since instead of using native C variables whenever we can, we'd have to store everything in the variable table and do lookups all the time, same as what you did back in 2003).

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

27. Re: Euphoria's strengths

mattlewis said...

We've started with this. It's low level, but euphoria/debug/debug.e (4.1) has opened up some reflection capabilities to euphoria programs.

I feel we should point out that a lot of what debug.e does doesn't work on translated (at least not yet).

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

28. Re: Euphoria's strengths

I suspect we might want to prohibit var_id on for loop control vars.

Pete

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

29. Re: Euphoria's strengths

petelomax said...

I suspect we might want to prohibit var_id on for loop control vars.

Pete

Why? (Just curious.)

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

30. Re: Euphoria's strengths

jimcbrown said...

But adding the ability to dynamically add and remove variables from the variable table on the fly? In a translated program? It can be done, it's just a lot more work.

Sounds like we'd have to go to JIT for this to work.

Matt

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

31. Re: Euphoria's strengths

jimcbrown said...
mattlewis said...

We've started with this. It's low level, but euphoria/debug/debug.e (4.1) has opened up some reflection capabilities to euphoria programs.

I feel we should point out that a lot of what debug.e does doesn't work on translated (at least not yet).

i would be very happy to see code appear as interpreted-only, just to get it. I have not bound or compiled Eu in over a decade. Of course, i may want to again some day, and i understand why the interpreted and compiled (and bound?) should act the same. Ummm, am i correct that if a feature runs only interpreted, it runs when bound too?

I seem to recall my patch to news.e to speed it up also didn't work if compiled. That was a tasks.e issue.

useless

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

32. Re: Euphoria's strengths

mattlewis said...
jimcbrown said...

But adding the ability to dynamically add and remove variables from the variable table on the fly? In a translated program? It can be done, it's just a lot more work.

Sounds like we'd have to go to JIT for this to work.

Matt

Just to be clear, if the var is accessable for changing thru the normal existing syntax, the var table is then just for searching to gather var names, and see if they are init'd, etc, not to alter them or instanciate/remove new/old ones. At least that's my desire.

If this is instead of having string execution, i'd rather have the string execution first. But they'd work hand in hand, checking the var table would let one know if the string has been built at all, and (i hope) it's size. Without dynamic includes, the strings for execution may get rather large.

useless

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

33. Re: Euphoria's strengths

eukat said...
mattlewis said...
jimcbrown said...

But adding the ability to dynamically add and remove variables from the variable table on the fly? In a translated program? It can be done, it's just a lot more work.

Sounds like we'd have to go to JIT for this to work.

Matt

Just to be clear, if the var is accessable for changing thru the normal existing syntax, the var table is then just for searching to gather var names, and see if they are init'd, etc, not to alter them or instanciate/remove new/old ones. At least that's my desire.

Ok, then that's much easier.

Today, debug.e already supports simple lookup of variable names via the symbol_lookup() function and friends. Wildcards and such aren't supported, however.

debug.e also already supports checking if a variable is init'd or not, via the is_novalue() function.

eukat said...

If this is instead of having string execution, i'd rather have the string execution first.

I don't see them being linked. This is a desired feature, but adding it is just plain hard. If someone handed us a patch with this already implemented (even interpreter only), we'd almost certainly take it and add it. However, the only person who has done this successfully that I know of is mattlewis, and his version is out of date (being based on a 2.x version of Euphoria) and hard to upgrade to the latest (due to it being based on a complete rewrite of the interpreter originally by dcuny).

eukat said...

i would be very happy to see code appear as interpreted-only, just to get it.

Then it's possible that what you want is already available today, in debug.e ...

eukat said...

I have not bound or compiled Eu in over a decade. Of course, i may want to again some day, and i understand why the interpreted and compiled (and bound?) should act the same. Ummm, am i correct that if a feature runs only interpreted, it runs when bound too?

No... binding does lose some information that an unbound program would have. Most features will work regardless, but getting all the metadata in a bound program is more work.

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

34. Re: Euphoria's strengths

jimcbrown said...
eukat said...

If this is instead of having string execution, i'd rather have the string execution first.

I don't see them being linked. This is a desired feature, but adding it is just plain hard. If someone handed us a patch with this already implemented (even interpreter only), we'd almost certainly take it and add it. However, the only person who has done this successfully that I know of is mattlewis, and his version is out of date (being based on a 2.x version of Euphoria) and hard to upgrade to the latest (due to it being based on a complete rewrite of the interpreter originally by dcuny).

I also did this in ooeu, which was based on 3.1 stuff, but it was the euphoria backend (eu.e) *only*. I never got it working with the native backend.

Matt

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

35. Re: Euphoria's strengths

jimcbrown said...
petelomax said...

I suspect we might want to prohibit var_id on for loop control vars.

Pete

Why? (Just curious.)

Erm, gut feeling, mainly, I suppose. If the compiler is prohibiting "i:=5" then letting the programmer defeat the compiler using var_id() sounds like an accident waiting to happen.
Certainly, in Phix, the end for is optimised to use the register version (if not reused) and clobber the memory copy without even checking it, because right now, it can.
Maybe/Probably the presence of a get_id()/set_var() in the loop body would be enough to ensure the register has been recycled before it gets to the end for.

There is also another matter/warning that I completely missed: type inference.
If the compiler deduces that an atom (eg loop control var, but others too) is, say, an integer, but set_var() sets it to a float, it'll go belly up for sure.
There is some constant/range propagation that I nicked from Eu, which might break, and Phix also has string/sequence and inferred udts to worry about.

Pete

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

36. Re: Euphoria's strengths

Why don't we ask Robert Craig who "invented" Euphoria what HIS ideal would be if he were to develop the language?

I assume he will have a valid view and can tell us exactly what would be needed
to further the development of Eu into a full-blown programming language.

If necessary I myself (with the aid of some of you like e.g dcluny, pete lomax, derek parnell and c.bensler and unkmar (lucius lamarr III)(all old hands)) will try and convince him to think the subject over seriously
together with his wife who had a major part in the ideas as well.
This is where East and West met in a harmonious way, in him end her.

Antoine aka ekhnaton aka ridnar

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

Search



Quick Links

User menu

Not signed in.

Misc Menu