1. Euphoria v4.0; A couple of questions..

I'm looking forward to check out v4.0. I must admit I haven't been paying much attention to the discussion around it (I know there have been alot of them), and I have a few questions;

a) Will there be any backwards compability issues? (Will for instance win32lib, etc. work without problems?)
b) Is there, or will there be plans for "passing parameters by reference" in procedures/functions?
c) Is there a planned release date for Euphoria 4.0?
d) I'm not a programming wizz and I'm mostly pretty busy, but if there are any ways I can contribute, where do I sign up..?

I did notice that switch have been implemended, and for that I'm very grateful. That was the only thing I really wanted added to this wonderful programming tool.

Kenneth / ZNorQ

new topic     » topic index » view message » categorize

2. Re: Euphoria v4.0; A couple of questions..

ZNorQ said...

I'm looking forward to check out v4.0. I must admit I haven't been paying much attention to the discussion around it (I know there have been alot of them), and I have a few questions;

a) Will there be any backwards compability issues? (Will for instance win32lib, etc. work without problems?)

There is a wiki page about migrating to 4.0. When it is up, you'll get a clear picture.

The forthcoming new standard library will not interfere with current code, as the pre 4.0 stuff will be there as usual. But if you want any of the hundred routines added, then you'll have to change or add a few include statements, and make some of them export in unfrequen cases.

The main batch of changes to existing code is about new keywords that can no longer be variable/routine names. If you had a function switch(sequence whatever), you'll have to rename it.

win32lib was reported doing fine with rev 924 a couple days ago, as well as Judith's IDE (after some renaming as of above). This is a good indicator of how little code breakage is expected.

ZNorQ said...

b) Is there, or will there be plans for "passing parameters by reference" in procedures/functions?

No immediate plans. However, nested routines might be implemented in 4.0 beta, and they would make pass by reference less useful. There is no official roadmap about this, but there is no known strong objection or technical obstacle. It won't be in 4.0 alpha.

ZNorQ said...

c) Is there a planned release date for Euphoria 4.0?

Jeremy has answered this already. Without the hacking last month, it might be out already. Small things at the end of the assembly line always take more time than expected, but I wouldn't be surprised by a release within 10-15 days. We don't all do two 9-to-5 shifts (day+night) on Eu...

ZNorQ said...

d) I'm not a programming wizz and I'm mostly pretty busy, but if there are any ways I can contribute, where do I sign up..?

I did notice that switch have been implemended, and for that I'm very grateful. That was the only thing I really wanted added to this wonderful programming tool.

Kenneth / ZNorQ

I'd let Jeremy answer this. Proofreading the docs is something simple and requires man/hours. They are only 97% finalised, and the online version is not the most recent one. I think the more look at it closely and report all sorts of markup errors, typos and stuff, the better.

CChris

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

3. Re: Euphoria v4.0; A couple of questions..

CChris said...
ZNorQ said...

I'm looking forward to check out v4.0. I must admit I haven't been paying much attention to the discussion around it (I know there have been alot of them), and I have a few questions;

a) Will there be any backwards compability issues? (Will for instance win32lib, etc. work without problems?)

There is a wiki page about migrating to 4.0. When it is up, you'll get a clear picture.

The forthcoming new standard library will not interfere with current code, as the pre 4.0 stuff will be there as usual. But if you want any of the hundred routines added, then you'll have to change or add a few include statements, and make some of them export in unfrequen cases.

The main batch of changes to existing code is about new keywords that can no longer be variable/routine names. If you had a function switch(sequence whatever), you'll have to rename it.

win32lib was reported doing fine with rev 924 a couple days ago, as well as Judith's IDE (after some renaming as of above). This is a good indicator of how little code breakage is expected.

ZNorQ said...

b) Is there, or will there be plans for "passing parameters by reference" in procedures/functions?

No immediate plans. However, nested routines might be implemented in 4.0 beta, and they would make pass by reference less useful. There is no official roadmap about this, but there is no known strong objection or technical obstacle. It won't be in 4.0 alpha.

ZNorQ said...

c) Is there a planned release date for Euphoria 4.0?

Jeremy has answered this already. Without the hacking last month, it might be out already. Small things at the end of the assembly line always take more time than expected, but I wouldn't be surprised by a release within 10-15 days. We don't all do two 9-to-5 shifts (day+night) on Eu...

ZNorQ said...

d) I'm not a programming wizz and I'm mostly pretty busy, but if there are any ways I can contribute, where do I sign up..?

I did notice that switch have been implemended, and for that I'm very grateful. That was the only thing I really wanted added to this wonderful programming tool.

Kenneth / ZNorQ

I'd let Jeremy answer this. Proofreading the docs is something simple and requires man/hours. They are only 97% finalised, and the online version is not the most recent one. I think the more look at it closely and report all sorts of markup errors, typos and stuff, the better.

CChris

Thanks for the informative feedback, CChris, but I do have one follow-up question regarding question B; I might have used the incorrect term "pass by reference", so just to clarify what I did mean;

Often when I handle large amounts of information in a sequence using procedures and functions, I would like to do that directly instead of making a copy, processing the copy in the procedure/function, and then return that to the orignial sequence.. (intention:preserve memory) Ofcourse, I could do like this;

  sequence myBlob 
  -- 
  function process_data() 
    myBlob = {"something something"} -- Just an example.. 
  end function 

... but that wouldn't give me the flexibility I'm looking for..

That said, I'm not quite sure how "nested routines" can compensate for "pass by reference". Come to think of it, I might misunderstand the whole "nested routine" concept.

Could you please explain to me how this would replace the usfulness of "pass by reference"?

Kenneth / ZNorQ

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

4. Re: Euphoria v4.0; A couple of questions..

A routine is nested in another when it shares its private vars and operates within its context. That's how they work in Pascal anyway. You could write this:

procedure foo() 
integer n 
 
procedure bar() 
?n 
end procedure 
 
your_code_here() 
bar() 
end procedure 
end procedure 

Then you can share private vars of the main routine between various sub units. This is not pass by ref, obviously, but would work for some of its most frequent uses. You can do this with local vars just as well, leading to an inflation of variable names and accidental, improper reuse.

Note that tou don't always make a full copy of the sequence you pass and return, even though that's how the code looks. The backend is smarter. If there is only one reference on your sequence, ie it was not assigned anywhere else, then the backend does not copy and performs in place work, which is what you want to achieve. And if there are two references, in place processing would change some values behind the back of any variable that thought to know the value of your sequence. This is at best unsafe so better make a copy anyway.

Note that pass by ref means passing pointers. Sequence indexes are ids of fully managed pointers. If you can glob your data into a huge sequence and pass indexes into it to your processing routines, you have effectively got pass by ref, with most of the efficiency and more safety.

If you know C even superficially, you may want to look at Append() or similar in be_runtime.c, to see how copying sequences is avoided when it is safe to do so.

And if you want raw speed, you can store your data in RAM and call() machine code to process it. If you have a lot to do, he time overhead of call() will be more than offset.

Even though I would be very happy to help implementing pass by reference, have some old 2.5 code about it in my drawers and would use it a lot, there are some hairy technical issues. In particular, if using the multitasking primitives, how to handle private variables is currently quite straightforward - no one else will use them, so just save/restore them -, but having a reference to something into a sequence, and having it accessed by a different task between two runs of a task, would give some headaches.

CChris

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

5. Re: Euphoria v4.0; A couple of questions..

ZNorQ said...

d) I'm not a programming wizz and I'm mostly pretty busy, but if there are any ways I can contribute, where do I sign up..?

In which areas would you like to contribute? You can send me an email jeremy .. at cowgar spot com if you would like.

Jeremy

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

6. Re: Euphoria v4.0; A couple of questions..

Jeremy Cowgar said...
ZNorQ said...

d) I'm not a programming wizz and I'm mostly pretty busy, but if there are any ways I can contribute, where do I sign up..?

In which areas would you like to contribute? You can send me an email jeremy .. at cowgar spot com if you would like.

Jeremy

Hehe, well, contributions haven't been my strong areas up till now, so I'm pretty new at this. I've taken so much, so I guess its time to give somehow.

If you could supply me an overview of what kind of areas you would like help with, I'll see if I'm able to. It could basically be anything that you need help to - and where I'm able.

I'm going on a month vacation though, so I'd be pretty useless in august, and I guess by then 4.0 would already be released. Still, for future versions, I'd still be interested.

If you can/will, you can contact me on znorq -at- holhaug period c o m, or if you have an online list of todo's, show me that link...

Kenneth / ZNorQ

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

Search



Quick Links

User menu

Not signed in.

Misc Menu