1. Tasks - communication

Started playing around with tasks, which seem to offer a lot of possibilities for programming round parallel activities like long lasting i/o.

Are there any posts/ thoughts on inter-task communications, or messaging, that anyone can point me to?

new topic     » topic index » view message » categorize

2. Re: Tasks - communication

boater said...

Started playing around with tasks, which seem to offer a lot of possibilities for programming round parallel activities like long lasting i/o.

Are there any posts/ thoughts on inter-task communications, or messaging, that anyone can point me to?


I was working on this a few years ago, on Eu v4.0b2. I had task-to-task and global broadcasts working, in March 2010. There was a lot of opposition to communication between tasks, so i quit working on it.

which is why i am
useless

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

3. Re: Tasks - communication

"Opposition"? Because it would lead to problems, or just on some principle?

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

4. Re: Tasks - communication

boater said...

"Opposition"? Because it would lead to problems, or just on some principle?


I don't remember, and don't want to remember any more.

useless

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

5. Re: Tasks - communication

useless_ said...
boater said...

Started playing around with tasks, which seem to offer a lot of possibilities for programming round parallel activities like long lasting i/o.

Are there any posts/ thoughts on inter-task communications, or messaging, that anyone can point me to?


I was working on this a few years ago, on Eu v4.0b2. I had task-to-task and global broadcasts working, in March 2010. There was a lot of opposition to communication between tasks, so i quit working on it.

Kat, I don't think you are correct with that assertion. Can you tell me exactly what was the opposition you are referring to? And how do you define "a lot of opposition" in this context?

I think that having inter-task communication is imperative, especially for safe access to shared data between tasks.

I like the D Programming Language's approach to this, namely that all data is assumed to be shared between tasks unless explicitly said otherwise.

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

6. Re: Tasks - communication

DerekParnell said...
useless_ said...
boater said...

Started playing around with tasks, which seem to offer a lot of possibilities for programming round parallel activities like long lasting i/o.

Are there any posts/ thoughts on inter-task communications, or messaging, that anyone can point me to?


I was working on this a few years ago, on Eu v4.0b2. I had task-to-task and global broadcasts working, in March 2010. There was a lot of opposition to communication between tasks, so i quit working on it.

Kat, I don't think you are correct with that assertion. Can you tell me exactly what was the opposition you are referring to? And how do you define "a lot of opposition" in this context?

I think that having inter-task communication is imperative, especially for safe access to shared data between tasks.

I like the D Programming Language's approach to this, namely that all data is assumed to be shared between tasks unless explicitly said otherwise.


Ok, force me to think of the depressing events. I think it went something like this: code i contributed for strtok was un-needed, code i contributed for http.e was overwritten, code i was writing for irc.e was recieved with "who needs irc?" and derisions of a mirc clone, and when tasks.e was finalised i was told someone in the dev team would now do taskmsgs.e and my code wasn't worth looking at. My taskmsgs.e worked two years ago. Over two yrs ago i had http.e task-aware, and that contribution was rejected till just last month!

The msgs are tagged with from_who and to_who (and anything else, like origin and expiry times), a task can be polite and query only for it's own id, or it can query for other task id if it knows them (this is unlikely). A global broadcast of a task_msg is simply a msg with all known (known to taskmsgs.e, not necessarily known to each task) task_ids in the to_who field. After a msg is recieved by a task, the msg is deleted from the handler (or for globals, that task's id is deleted from that to_who). Tasks can ask for msgs only from certain id, or get them in order of time sent, or private msgs before globals.

It was a cute piece of code, pretty small too. I was proud of it. I was so stupid to think humans wanted it. Last save was March 13, 2010. I have not looked at it or used it since.

useless
Forked into: Re: Tasks - communication

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

7. Re: Tasks - communication

DerekParnell said...

Kat, I don't think you are correct with that assertion. Can you tell me exactly what was the opposition you are referring to? And how do you define "a lot of opposition" in this context?

I think that having inter-task communication is imperative, especially for safe access to shared data between tasks.

I think it sounds like a nice thing to have, too. My recollection was that other issues (mainly how to deal with translated dlls) sidetracked the whole multi-tasking thing. And the messaging was just collateral damage.

Matt

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

8. Re: Tasks - communication

DerekParnell said...

I like the D Programming Language's approach to this, namely that all data is assumed to be shared between tasks unless explicitly said otherwise.

Seconded.

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

9. Re: Tasks - communication

Any chance I could see the code - or is it private?

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

10. Re: Tasks - communication

mattlewis said...
DerekParnell said...

Kat, I don't think you are correct with that assertion. Can you tell me exactly what was the opposition you are referring to? And how do you define "a lot of opposition" in this context?

I think that having inter-task communication is imperative, especially for safe access to shared data between tasks.

I think it sounds like a nice thing to have, too. My recollection was that other issues (mainly how to deal with translated dlls) sidetracked the whole multi-tasking thing. And the messaging was just collateral damage.

Matt


Since all my working code right now is running interpreted and not compiled, that wasn't an issue. I wrongly assumed a notice about using tasks.e in compiled code wasn't a problem. I'd have voted, and i think i did, provide the functionality of tasks for interpreted apps and then fix the compiler asap. Instead, tasks were relegated to the back seat and there's still issues regarding dlls even without tasks.

I seem to remember too that since i used simple (barely) linked lists instead of maps.e, anything i wrote was going to be gutted merely to use maps. Including maps was going to eat more computer resourses than any gain to be had, but using the newfangled maps was more important consideration than my existing work, than my decision to go with a couple of simple linked lists. I felt lower than dirt, i gave up. It was one of those straws on the proverbial camel.

useless

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

11. Re: Tasks - communication

jimcbrown said...
DerekParnell said...

I like the D Programming Language's approach to this, namely that all data is assumed to be shared between tasks unless explicitly said otherwise.

Seconded.


Global broadcasts between tasks ate more cpu clocks than narrowcasting. It increased the msg queue for each task, and the overhead in tracking which msgs got delivered and could be deleted to free memory. Memory use sounds trivial until you consider the size of msgs that could have been sent from http.e, for instance.

So i provided for broad- and narrow- casting. You choose your best option for the app you are currently coding. Sue me.

useless

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

12. Re: Tasks - communication

jimcbrown said...
DerekParnell said...

I like the D Programming Language's approach to this, namely that all data is assumed to be shared between tasks unless explicitly said otherwise.

Seconded.

1. I am presuming you all are thinking of ditching Watcom, perhaps to be replace by MinGw/GCC.
This statement regarding "D Programming Language's approach" makes it most desirable to make D the main compiler for Euphoria.

2. Windows XP can only use 3GB. There are good instructions available from Microsoft on how to use memory above 3GB, which may be conveniently used by Euphoria as a shared resource. I don't know if this facility is there in Windows 7 or Windows 8. I doubt it very much.

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

13. Re: Tasks - communication

eukat said...
jimcbrown said...
DerekParnell said...

I like the D Programming Language's approach to this, namely that all data is assumed to be shared between tasks unless explicitly said otherwise.

Seconded.


Global broadcasts between tasks ate more cpu clocks than narrowcasting. It increased the msg queue for each task, and the overhead in tracking which msgs got delivered and could be deleted to free memory. Memory use sounds trivial until you consider the size of msgs that could have been sent from http.e, for instance.

Agreed. The shared data should be global, rather than duplicated via messaging. It's faster for two threads to use the same block of memory than to have two processes communicate via IPC to notify each other of updates everytime one of the processes touches the object.

Perhaps I'm simply not thinking far enough ahead though - one day we may very well attempt to run multiple threads across different computers (and perhaps different architectures) on a cloud, for example.

eukat said...



So i provided for broad- and narrow- casting. You choose your best option for the app you are currently coding. Sue me.

I suspect that I'd normally choose narrowcasting most of the time, if I had to choose between those two options.

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

14. Re: Tasks - communication

EUWX said...

1. I am presuming you all are thinking of ditching Watcom, perhaps to be replace by MinGw/GCC.

Not sure what that has to do with this thread.

EUWX said...

This statement regarding "D Programming Language's approach" makes it most desirable to make D the main compiler for Euphoria.

D is not C but a different language altogther. I'd be skeptical of this approach unless someone actually takes the time to present a working system using D instead of C as the translator output. A working system that can be tested vigouriously and independantly, I should add.

EUWX said...

2. Windows XP can only use 3GB. There are good instructions available from Microsoft on how to use memory above 3MB,

Typo for 3GB?

EUWX said...

which may be conveniently used by Euphoria as a shared resource. I don't know if this facility is there in Windows 7 or Windows 8. I doubt it very much.

Perhaps you can save us the trouble by posting a link to these instructions from M$? It's unlikely that it'd be adopted if it doesn't work on later versions of Windoze (let alone a portable approach among different arches, or something that doesn't work on systems with less than 3GB of RAM), but that's up to the dev team.

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

15. Re: Tasks - communication

jimcbrown said...
eukat said...
jimcbrown said...
DerekParnell said...

I like the D Programming Language's approach to this, namely that all data is assumed to be shared between tasks unless explicitly said otherwise.

Seconded.


Global broadcasts between tasks ate more cpu clocks than narrowcasting. It increased the msg queue for each task, and the overhead in tracking which msgs got delivered and could be deleted to free memory. Memory use sounds trivial until you consider the size of msgs that could have been sent from http.e, for instance.

Agreed. The shared data should be global, rather than duplicated via messaging. It's faster for two threads to use the same block of memory than to have two processes communicate via IPC to notify each other of updates everytime one of the processes touches the object.


While IPC is all fine and all, it makes life difficult for the task msg system to know if all the tasks read it, and to keep them in FIFO order. Ditto sorting them. My global system didn't duplicate the global msg, it merely kept it and updated the to_who based on who did read it. When all the to_who of a msg (one task, or 2 of 5 tasks, or all tasks) got deleted, the msg got deleted. It used no more memory than calling a procedure with the data or assigning it a variable.

jimcbrown said...

Perhaps I'm simply not thinking far enough ahead though - one day we may very well attempt to run multiple threads across different computers (and perhaps different architectures) on a cloud, for example.


I doubt it. I run a cluster, altho it's a lot less useful after the winxp SP that throttled down lan speeds. Decades ago i tried to discuss a Euphoria based RPC for irc bots and Ai, and i think the opinion from everyone was that was illegal. Or it's possibilities were illegal. Or it had the same pitfalls a Microsoft's RPC interface. Or "you're just trying to break into my computer!". The suggestion went nowhere in a hurry. I did link code (written in php on a nix box) on a webserver to Tiggr (written in Euphoria on winxp) for a browser and general http (uploading and downloading and interacting) interface to her, that worked nicely, handshaking and data passing back and forth real neatly and quickly, but also went nowhere.

jimcbrown said...
eukat said...



So i provided for broad- and narrow- casting. You choose your best option for the app you are currently coding. Sue me.

I suspect that I'd normally choose narrowcasting most of the time, if I had to choose between those two options.


If you had to choose? Is this a undue excessive burden? You are not required to choose, you could flip a coin or ignore one option. I didn't want the burden of choosing for you, so i wrote in both options, i thought they'd be useful. Sorry.

useless

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

16. Re: Tasks - communication

jimcbrown said...

Agreed. The shared data should be global, rather than duplicated via messaging. It's faster for two threads to use the same block of memory than to have two processes communicate via IPC to notify each other of updates everytime one of the processes touches the object.

eukat said...

While IPC is all fine and all, it makes life difficult for the task msg system to know if all the tasks read it, and to keep them in FIFO order. Ditto sorting them.

Agreed. Hence why I said I didn't want to go this way.

eukat said...

My global system didn't duplicate the global msg, it merely kept it and updated the to_who based on who did read it. When all the to_who of a msg (one task, or 2 of 5 tasks, or all tasks) got deleted, the msg got deleted. It used no more memory than calling a procedure with the data or assigning it a variable.

Sounds like a sound implementation of task messaging to me. One made possible because it's possible to share variables (and implicitly the address space) between tasks.

Going on a tangent:

I misread Derek's original post, however. I think that sharing variables between threads BY DEFAULT is a bad idea. It should be possible to mark a variable as shared between threads, but I feel that having this the default is a bad idea. I feel that this is the source of bugs in many notive multithreaded progrrams.

This is less important for cooperative nonconcurrent tasks, but I don't have a problem with the above principle being applied to tasks as well.

jimcbrown said...

Perhaps I'm simply not thinking far enough ahead though - one day we may very well attempt to run multiple threads across different computers (and perhaps different architectures) on a cloud, for example.

eukat said...

I doubt it. I run a cluster, altho it's a lot less useful after the winxp SP that throttled down lan speeds.

Understood. I'll note your agreement with me then.

eukat said...

Decades ago i tried to discuss a Euphoria based RPC for irc bots and Ai, and i think the opinion from everyone was that was illegal. Or it's possibilities were illegal. Or it had the same pitfalls a Microsoft's RPC interface. Or "you're just trying to break into my computer!". The suggestion went nowhere in a hurry. I did link code (written in php on a nix box) on a webserver to Tiggr (written in Euphoria on winxp) for a browser and general http (uploading and downloading and interacting) interface to her, that worked nicely, handshaking and data passing back and forth real neatly and quickly, but also went nowhere.

All before my time, I guess.

eukat said...

So i provided for broad- and narrow- casting. You choose your best option for the app you are currently coding. Sue me.

jimcbrown said...

I suspect that I'd normally choose narrowcasting most of the time, if I had to choose between those two options.

eukat said...

If you had to choose? Is this a undue excessive burden? You are not required to choose, you could flip a coin or ignore one option. I didn't want the burden of choosing for you, so i wrote in both options, i thought they'd be useful. Sorry.

Although having both choices is useful, having only these two choices to the exclusion of all other possibilities is an undue excessive burden. Having to ignore an option would be an even greater undue excessive burden.

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

17. Re: Tasks - communication

jimcbrown said...
eukat said...

So i provided for broad- and narrow- casting. You choose your best option for the app you are currently coding. Sue me.

jimcbrown said...

I suspect that I'd normally choose narrowcasting most of the time, if I had to choose between those two options.

eukat said...

If you had to choose? Is this a undue excessive burden? You are not required to choose, you could flip a coin or ignore one option. I didn't want the burden of choosing for you, so i wrote in both options, i thought they'd be useful. Sorry.

Although having both choices is useful, having only these two choices to the exclusion of all other possibilities is an undue excessive burden. Having to ignore an option would be an even greater undue excessive burden.


I provided for two choices, a global broadcast or a list of tasks to narrowcast to. What other choice could there be? This is what i wrote in early 2010:

-- fromid is always from only one source, the one doing the sending 
-- toid can be: 
-- -- atom -- one task 
-- -- {atom,atom,etc} -- a selection of tasks 
-- -- "*" -- all tasks except fromid 
export procedure task_send_var(object toid, atom fromid, object what)  


Putting sequences in toid would cause a lan transaction, but i didn't get that far in the code i didn't delete. What code i have remaining is what wasn't deleted.

useless

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

18. Re: Tasks - communication

boater said...

Any chance I could see the code - or is it private?


I did a word search on the system to see if i had any taskmsg code remaining. What i found i don't know the status of, i do not know if it works with Eu versions since late 2009, i don't know if it works with the existing tasks.e. It has no cluster code in it, which is what was in front of me when i began deleting code, and is most certainly gone. Since the current tasks.e doesn't talk across a lan, the taskmsgs.e for the lan wouldn't have helped you anyhow.

I don't know that i want to support it. Just working on it got me kicked in the ribs and my breath knocked out of me, and i have not recovered.

useless

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

19. Re: Tasks - communication

jimcbrown said...
EUWX said...

1. I am presuming you all are thinking of ditching Watcom, perhaps to be replace by MinGw/GCC.

Not sure what that has to do with this thread.

I am presuming that you and I are reading the same Euphoria forum, where there is a thread for ditching Watcom.
I am presuming that you understand that it is axiomatic to replace Watcom with another C compiler
I am also aware of your statement regarding your liking the "D Programming Language's approach" towards "Tasks - communication" which I am sure is the title of this thread.

desirable_compiler = (need_for_Tasks_communication & using_D) - watcom_compiler

Hence I am sure that statement has everything to do with this thread.

jimcbrown said...
EUWX said...

This statement regarding "D Programming Language's approach" makes it most desirable to make D the main compiler for Euphoria.

D is not C but a different language altogether. I'd be skeptical of this approach unless someone actually takes the time to present a working system using D instead of C as the translator output. A working system that can be tested vigorously and independently, I should add.

D is NOT vastly different from C, and has many desirable features. If you are going to change compilers, there IS GOING TO BE SOME WORK involved.

jimcbrown said...
EUWX said...

2. Windows XP can only use 3GB. There are good instructions available from Microsoft on how to use memory above 3GB,

Typo for 3GB?

No Typo.
A regular 32bit os such as windows 7, vista or xp can only ADDRESS 4GB of memory.
Out of that 4GB you have to have room for video memory and some other devices etc.
So if you have 3GB memory installed its fine, but when you have 4GB installed memory some of the memory addresses are used instead for video memory etc. which is why even with 4gb you can only usually use about 3.15-3.25GB in windows 32bit.

jimcbrown said...
EUWX said...

which may be conveniently used by Euphoria as a shared resource. I don't know if this facility is there in Windows 7 or Windows 8. I doubt it very much.

Perhaps you can save us the trouble by posting a link to these instructions from M$? It's unlikely that it'd be adopted if it doesn't work on later versions of Windoze (let alone a portable approach among different arches, or something that doesn't work on systems with less than 3GB of RAM), but that's up to the dev team.

http://msdn.microsoft.com/en-us/library/windows/desktop/aa366796%28v=vs.85%29.aspx

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

20. Re: Tasks - communication

Well, that's a shame - it would have been both helpful and interesting to see how you went about this. The little bit of thinking I have achieved for myself so far seems to be not unlike what you described.

But the whole thing was clearly very painful, and I have no desire to put you through that again. I'll carry on with my own (doubtless much cruder) ideas.

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

21. Re: Tasks - communication

EUWX said...
jimcbrown said...
EUWX said...

2. Windows XP can only use 3GB. There are good instructions available from Microsoft on how to use memory above 3MB,

Typo for 3GB?

No Typo.
A regular 32bit os such as windows 7, vista or xp can only ADDRESS 4GB of memory.
Out of that 4GB you have to have room for video memory and some other devices etc.
So if you have 3GB memory installed its fine, but when you have 4GB installed memory some of the memory addresses are used instead for video memory etc. which is why even with 4gb you can only usually use about 3.15-3.25GB in windows 32bit.


That's great, but why

EUWX said...

There are good instructions available from Microsoft on how to use memory above 3MB,


useless

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

22. Re: Tasks - communication

EUWX said...
jimcbrown said...
EUWX said...

1. I am presuming you all are thinking of ditching Watcom, perhaps to be replace by MinGw/GCC.

Not sure what that has to do with this thread.

I am presuming that you and I are reading the same Euphoria forum, where there is a thread for ditching Watcom.

Yes. Obviously, that's a different thread.

EUWX said...

I am presuming that you understand that it is axiomatic to replace Watcom with another C compiler

No. Why is this the case?

EUWX said...

I am also aware of your statement regarding your liking the "D Programming Language's approach" towards "Tasks - communication" which I am sure is the title of this thread.

You presume incorrectly. I am not a fan of the D programming language, nor do I particularly like it. If my personal preference was the only factor involved, D would never be part of Eu.

I never made that statement.

EUWX said...

desirable_compiler = (need_for_Tasks_communication & using_D) - watcom_compiler

Hence I am sure that statement has everything to do with this thread.

D is NOT vastly different from C, and has many desirable features. If you are going to change compilers, there IS GOING TO BE SOME WORK involved.

I see you are wrong on all three counts.

If you want to continue discussing this, then I'm going to ask you to make a new thread about adding D support to the Euphoria backend.

EUWX said...
jimcbrown said...
EUWX said...

2. Windows XP can only use 3GB. There are good instructions available from Microsoft on how to use memory above 3MB,

Typo for 3GB?

No Typo.

In that case, where are these instructions on how to use memory above 3 megabytes?

EUWX said...

A regular 32bit os such as windows 7, vista or xp can only ADDRESS 4GB of memory.
Out of that 4GB you have to have room for video memory and some other devices etc.
So if you have 3GB memory installed its fine, but when you have 4GB installed memory some of the memory addresses are used instead for video memory etc. which is why even with 4gb you can only usually use about 3.15-3.25GB in windows 32bit.

I already know this. What does this have to do with special instructions for using memory above 3 megabytes (not 3 gigabytes, which would have made more sense).

EUWX said...
jimcbrown said...
EUWX said...

which may be conveniently used by Euphoria as a shared resource. I don't know if this facility is there in Windows 7 or Windows 8. I doubt it very much.

Perhaps you can save us the trouble by posting a link to these instructions from M$? It's unlikely that it'd be adopted if it doesn't work on later versions of Windoze (let alone a portable approach among different arches, or something that doesn't work on systems with less than 3GB of RAM), but that's up to the dev team.

http://msdn.microsoft.com/en-us/library/windows/desktop/aa366796%28v=vs.85%29.aspx

Ah. PAE is available on all OSes that Eu supports: http://blog.superuser.com/2011/04/23/want-lots-of-ram-stop-using-32-bits/

You don't really need this if you merely want to use memory about 3 megabytes, however.

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

23. Re: Tasks - communication

eukat said...

I don't know that i want to support it. Just working on it got me kicked in the ribs and my breath knocked out of me, and i have not recovered.

By who? I'd like to see that person kicked out.

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

24. Re: Tasks - communication

eukat said...

I provided for two choices, a global broadcast or a list of tasks to narrowcast to. What other choice could there be? This is what i wrote in early 2010:

-- fromid is always from only one source, the one doing the sending 
-- toid can be: 
-- -- atom -- one task 
-- -- {atom,atom,etc} -- a selection of tasks 
-- -- "*" -- all tasks except fromid 
export procedure task_send_var(object toid, atom fromid, object what)  

Why not simply:

shared object o 
eukat said...

Putting sequences in toid would cause a lan transaction, but i didn't get that far in the code i didn't delete. What code i have remaining is what wasn't deleted.

It sounds like what you have left isn't usable enough to be extended into the official Euphoria task messaging system anyways. Too bad, but life goes on. Someone will (eventually) write one.

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

25. Re: Tasks - communication

Right -- the point wasn't whether to use the D compiler, but rather to take the D approach to tasking. That is, the methodology and/or API used by the D programming languages standard libraries with regards to tasking, not using the D compiler itself.

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

26. Re: Tasks - communication

Oh, and I have zero idea what this has to do with lan management.

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

27. Re: Tasks - communication

jimcbrown said...
eukat said...

I provided for two choices, a global broadcast or a list of tasks to narrowcast to. What other choice could there be? This is what i wrote in early 2010:

-- fromid is always from only one source, the one doing the sending 
-- toid can be: 
-- -- atom -- one task 
-- -- {atom,atom,etc} -- a selection of tasks 
-- -- "*" -- all tasks except fromid 
export procedure task_send_var(object toid, atom fromid, object what)  

Why not simply:

shared object o 


In place of, or in addition to, what, exactly? If you mean to simply share an object that's available to all tasks, there is no point in having a task msg manager.

jimcbrown said...
eukat said...

Putting sequences in toid would cause a lan transaction, but i didn't get that far in the code i didn't delete. What code i have remaining is what wasn't deleted.

It sounds like what you have left isn't usable enough to be extended into the official Euphoria task messaging system anyways. Too bad, but life goes on. Someone will (eventually) write one.


Funny, i read that as "ok, your code sucks, it's not good enough for anyone to use, tsk tsk, we can write a new one from scratch without you". But collectively, you said that 2 years ago.

Great reason for me to not share the code with boater. Which i was considering doing.

useless

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

28. Re: Tasks - communication

jaygade said...

Oh, and I have zero idea what this has to do with lan management.


Yes, who is managing a lan in this thread??

useless

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

29. Re: Tasks - communication

eukat said...

I provided for two choices, a global broadcast or a list of tasks to narrowcast to. What other choice could there be? This is what i wrote in early 2010:

-- fromid is always from only one source, the one doing the sending 
-- toid can be: 
-- -- atom -- one task 
-- -- {atom,atom,etc} -- a selection of tasks 
-- -- "*" -- all tasks except fromid 
export procedure task_send_var(object toid, atom fromid, object what)  
jimcbrown said...

Why not simply:

shared object o 
eukat said...

In place of, or in addition to, what, exactly? If you mean to simply share an object that's available to all tasks,

This is exactly what I meant. I wasn't commenting on the task msg manager, just responding to Derek's comment about making variables shared by default.

eukat said...

there is no point in having a task msg manager.

I think that having one is useful, but there are times when simply sharing a variable is enough. Of course, there are times when you want a full fledged manager as well.

If your routine is about messaging, instead of sharing variables, perhaps task_send_msg() is a better name than task_send_var().

eukat said...

Putting sequences in toid would cause a lan transaction, but i didn't get that far in the code i didn't delete. What code i have remaining is what wasn't deleted.

jimcbrown said...

It sounds like what you have left isn't usable enough to be extended into the official Euphoria task messaging system anyways. Too bad, but life goes on. Someone will (eventually) write one.

eukat said...

Funny, i read that as "ok, your code sucks, it's not good enough for anyone to use, tsk tsk, we can write a new one from scratch without you".

I read it the same as the first paragraph that you wrote here: http://openeuphoria.org/forum/119342.wc#119342

eukat said...

I did a word search on the system to see if i had any taskmsg code remaining. What i found i don't know the status of, i do not know if it works with Eu versions since late 2009, i don't know if it works with the existing tasks.e. It has no cluster code in it, which is what was in front of me when i began deleting code, and is most certainly gone. Since the current tasks.e doesn't talk across a lan, the taskmsgs.e for the lan wouldn't have helped you anyhow.

In fact, I based it from your opinion that the code wasn't in a condition to help boater, since, you know, the code that is left isn't available for me to look at.

eukat said...

But collectively, you said that 2 years ago.

Matt agrees with me, that this is not the case. http://openeuphoria.org/forum/m/119312.wc

eukat said...

Great reason for me to not share the code with boater. Which i was considering doing.

boater appears to be able to accept that. http://openeuphoria.org/forum/m/119334.wc

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

30. Re: Tasks - communication

jimcbrown said...
EUWX said...

1. I am presuming you all are thinking of ditching Watcom, perhaps to be replace by MinGw/GCC.

Not sure what that has to do with this thread.

I am sure Euphoria is able to do 1 + 1 = 2 OR
desirable_compiler = (need_for_Tasks_communication & using_D) - watcom_compiler

jimcbrown said...
EUWX said...

I am presuming that you understand that it is axiomatic to replace Watcom with another C compiler

No. Why is this the case?

Considering that the subject of ditching Watcom has been bandied about for a year, and already some effort has been put, into MinGW as compiler;
considering that a whole thread has been started to vote for ditching Watcom;
considering that you yourself seconded the idea of "D Programming Language's approach" being very good
One cannot escape the logical conclusion that "D Programming Language" would be the correct direction to take.
Sometimes it pays to apply computer logic to day-to-day decision making.

So the only unsolved questions about which we remain in disagreement
1. Voting for ditching Watcom is not ended;
2. You think "D Programming Language" is vastly different from C, and I don't.

jimcbrown said...
EUWX said...

I am also aware of your statement regarding your liking the "D Programming Language's approach" towards "Tasks - communication" which I am sure is the title of this thread.

You presume incorrectly. I am not a fan of the D programming language, nor do I particularly like it. If my personal preference was the only factor involved, D would never be part of Eu.

I never made that statement.

You are technically right in saying "I never made that statement."
However, you seconded DerekParnell's statment which reads - see 8. Re: Tasks - communication
"I like the D Programming Language's approach to this, namely that all data is assumed to be shared between tasks unless explicitly said otherwise." You seconded this statement. My understanding of the action of a seconder is that he does not repaet the words of a motion, but his seconding of the motion implies that he FULLY AGREES with the motion.
Much as you would like to confuse between "D Programming Language's approach" and "D Programming Language", I am quite comfortable that "approach" has become tantamount to adopting the language IF the difference (as I believe) is not big, and IF YOU ARE ditching Watcom for another compiler.

So as I see it, you are wrong in believing that
1. this thread is not pointing to my conclusion;
2. A separate thread is required.
Once a decision has been made to ditch Watcom, YOU could start a thread to decide which of the several compilers are suitable, and at that time I hope you will remember the motion you seconded in this thread.

You are an admin or mod here, I am simple programmer with only 30 years experience.


Forked into: D and euphoria

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

31. Re: Tasks - communication

jimcbrown said...

<stuff>


Fine, i'll not release it, you can go fornicate.

useless

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

32. Re: Tasks - communication

useless_ said...
jimcbrown said...

<stuff>


Fine, i'll not release it, you can go fornicate.

useless

Wow. Talk about going from passive aggressive to outright aggressive.

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

33. Re: Tasks - communication

jaygade said...
useless_ said...
jimcbrown said...

<stuff>


Fine, i'll not release it, you can go fornicate.

useless

Wow. Talk about going from passive aggressive to outright aggressive.


You may have noticed it always happens this way when i say something and jimcbrown wants to beat me over the head with it, throwing urls, repeating thngs, allowing no leeway, allowing no change of mind or exceptions.

I was looking for a way to contact boater to send him/her the code. I didn't particularly want to share it with jimcbrown, and i certainly do not now. In fact, after jimcbrown's most recent posts, i don't particularly want to share it at all, so he sealed that deal up tightly. We are back to the devs coding up something and releasing it without me. Maybe in another 2 years?

useless

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

34. Re: Tasks - communication

EUWX said...

I am sure Euphoria is able to do 1 + 1 = 2 OR
desirable_compiler = (need_for_Tasks_communication & using_D) - watcom_compiler

Not sure what you're getting at here.

EUWX said...

considering that you yourself seconded the idea of "D Programming Language's approach" being very good

You are technically right in saying "I never made that statement."
However, you seconded DerekParnell's statment which reads - see 8. Re: Tasks - communication
"I like the D Programming Language's approach to this, namely that all data is assumed to be shared between tasks unless explicitly said otherwise." You seconded this statement. My understanding of the action of a seconder is that he does not repaet the words of a motion, but his seconding of the motion implies that he FULLY AGREES with the motion.

Here is what I meant to second:

jimcbrown said...
DerekParnell said...

all data is assumed to be shared between tasks unless explicitly said otherwise.

Seconded.

I misread what Derek wrote, however. If D's approach is that all data is assumed to be shared between tasks unless explicitly said otherwise, then I am against it.

I like the approach where all data is assumed to not be shared between tasks unless explicitly stated to be the case, and don't care at all for D's.

This being the case, I withdraw my rhetorical motion to second.

EUWX said...

Considering that the subject of ditching Watcom has been bandied about for a year, and already some effort has been put, into MinGW as compiler;
considering that a whole thread has been started to vote for ditching Watcom;
One cannot escape the logical conclusion that "D Programming Language" would be the correct direction to take.
Sometimes it pays to apply computer logic to day-to-day decision making.

Without my agreement to D (which I have never given), the conclusion doesn't follow logically.

EUWX said...

So the only unsolved questions about which we remain in disagreement
1. Voting for ditching Watcom is not ended;
2. You think "D Programming Language" is vastly different from C, and I don't.

I don't see why ditching Watcom is a necessary condition for adopting D per se - but I agree that the timing would be useful.

As for point 2, I might be willing to concede it. I actually don't know much at all about D. Derek seems to be our resident D expert, so I look forward to seeing his views on this.

EUWX said...

Much as you would like to confuse between "D Programming Language's approach" and "D Programming Language", I am quite comfortable that "approach" has become tantamount to adopting the language IF the difference (as I believe) is not big, and IF YOU ARE ditching Watcom for another compiler.

I see a huge difference between doing something similarly to D and integrating D into the language.

Our if statements are like BASIC but we can't translate code to BASIC.

EUWX said...

Once a decision has been made to ditch Watcom, YOU could start a thread to decide which of the several compilers are suitable, and at that time I hope you will remember the motion you seconded in this thread.

I have no intention of doing this. I'm happy enough with Mingw/GCC.

EUWX said...

So as I see it, you are wrong in believing that
1. this thread is not pointing to my conclusion;
2. A separate thread is required.

You are an admin or mod here, I am simple programmer with only 30 years experience.

I think my comments above address my POV and show why I think point 1 is true.

As for point 2, technically a separate thread is not required. But I think it'd be better for clarity to make a separate thread and keep the posts about the merits and cons of D separate from this one. Still, since the volume of posts about D to this thread is fairly low, it's really your choice whether or not you want to do this.

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

35. Re: Tasks - communication

jimcbrown said...
EUWX said...

I am sure Euphoria is able to do 1 + 1 = 2 OR
desirable_compiler = (need_for_Tasks_communication & using_D) - watcom_compiler

Not sure what you're getting at here.

EUWX said...

considering that you yourself seconded the idea of "D Programming Language's approach" being very good

You are technically right in saying "I never made that statement."
However, you seconded DerekParnell's statment which reads - see 8. Re: Tasks - communication
"I like the D Programming Language's approach to this, namely that all data is assumed to be shared between tasks unless explicitly said otherwise." You seconded this statement. My understanding of the action of a seconder is that he does not repaet the words of a motion, but his seconding of the motion implies that he FULLY AGREES with the motion.

Here is what I meant to second:

jimcbrown said...
DerekParnell said...

all data is assumed to be shared between tasks unless explicitly said otherwise.

Seconded.

I misread what Derek wrote, however. If D's approach is that all data is assumed to be shared between tasks unless explicitly said otherwise, then I am against it.

I like the approach where all data is assumed to not be shared between tasks unless explicitly stated to be the case, and don't care at all for D's.

This being the case, I withdraw my rhetorical motion to second.


You can't do that, just like i cannot send taskmsgs.e to boatie or Derek.

useless

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

36. Re: Tasks - communication

Mr Jim Brown:
I have programmed for 30 years. I have come accross countless statements as exemplified by Euphoria
Euphoria is a powerful but easy-to-learn programming language. It has a simple syntax and structure with consistent rules, and is also easy to read.

I had machine language, then assembler thrown at me and I adapted. I had GWBasic followed by QBasic folllowed by VisualBasic and about 50 variants of BASIC.
I had many more showed down my throat as "similar to BASIC" - that applies to Euphoria too.
JAVA and HTML were thrown at me as "easy languages"

I had dBase III thropwn at me followed by Clipper and FoxPro, and MS Access and SQL - all "simple database tools" and I accepted and programmed.

I did NOT shudder. I accepted and programmed in those as best as I could
Today I am seeing and experienced C language programmer who has the co-operation of half a dozen experts in C refusing to even bother about D language or to look at it.

I gives me a very clear idea of your abilities and inclinations.

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

37. Re: Tasks - communication

EUWX said...

I had machine language, then assembler thrown at me and I adapted. I had GWBasic followed by QBasic folllowed by VisualBasic and about 50 variants of BASIC.
I had many more showed down my throat as "similar to BASIC" - that applies to Euphoria too.
JAVA and HTML were thrown at me as "easy languages"

I had dBase III thropwn at me followed by Clipper and FoxPro, and MS Access and SQL - all "simple database tools" and I accepted and programmed.

I did NOT shudder. I accepted and programmed in those as best as I could

I have experienced and become skilled in using most of those tools as well. You do not have a monopoly here.

EUWX said...

Today I am seeing and experienced C language programmer who has the co-operation of half a dozen experts in C refusing to even bother about D language or to look at it.

I'm not unwilling to look at it, but I feel my time is better spent waiting for the opinion of our resident D expert (who probably has already invested in a D setup) before I take time out of my busy schedule to do that.

Additionally, I feel that the right person to perform the task that you are suggesting should be a person who is already involved in and proficient with D and really enjoys using it.

EUWX said...

I gives me a very clear idea of your abilities and inclinations.

Of course, if all D supporters and language users are like this, then I'd be perfectly happy to chuck the D language and its users out the window. Naturally, however, I already know one who is not like this at all.

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

38. Re: Tasks - communication

eukat said...

You can't do that, just like i cannot send taskmsgs.e to boatie or Derek.

I'll make you a one-time deal. I'll trade you the withdrawal for a commentary-free transfer of code to boatie and/or Derek.

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

39. Re: Tasks - communication

jimcbrown said...
eukat said...

You can't do that, just like i cannot send taskmsgs.e to boatie or Derek.

I'll make you a one-time deal. I'll trade you the withdrawal for a commentary-free transfer of code to boatie and/or Derek.


You are too late, i made the offer to Derek, and don't know boatie's email address (and he isn't in #euphoria). So no deal.

PS: i been programming on my own computers since 1980, 32 years ago, and i had my paws, and soldering irons, in Apples before that, and ecl state machines. I did some interesting things that i was told were not possible. I didn't get useless till i tried to join with humans in programming.

useless

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

40. Re: Tasks - communication

As usual -- all talk and no code.

Let the code stand on its own merits regardless of any drama or politics.

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

41. Re: Tasks - communication

jimcbrown said...

I'm not unwilling to look at it, but I feel my time is better spent waiting for the opinion of our resident D expert (who probably has already invested in a D setup) before I take time out of my busy schedule to do that.

Additionally, I feel that the right person to perform the task that you are suggesting should be a person who is already involved in and proficient with D and really enjoys using it.

A good scientist never rejects a theory because he does not like it.
Euphoria is supposed to be a team effort, so it behoves on all team members to look at alternative compilers and come to a joint decision - not a decision based on one expert.

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

42. Re: Tasks - communication

jaygade said...

As usual -- all talk and no code.

Let the code stand on its own merits regardless of any drama or politics.


I am not releasing the code to you or jim. You wanna play "bash the useless", go at it, it's not like you're doing anything new.

useless

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

43. Re: Tasks - communication

That's okay. You can't release it because you don't have it.

I understand.

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

44. Re: Tasks - communication

EUWX said...
jimcbrown said...

I'm not unwilling to look at it, but I feel my time is better spent waiting for the opinion of our resident D expert (who probably has already invested in a D setup) before I take time out of my busy schedule to do that.

Additionally, I feel that the right person to perform the task that you are suggesting should be a person who is already involved in and proficient with D and really enjoys using it.

A good scientist never rejects a theory because he does not like it.
Euphoria is supposed to be a team effort, so it behoves on all team members to look at alternative compilers and come to a joint decision - not a decision based on one expert.

Agreed. If one of the devs takes up this task, or someone presents the community with a working and functional prototype, this will happen.

Alternatively, if someone wants this bad enough and is willing to pay me the right price, I'll be very happy to look into this matter myself and get a working proposal to the dev team.

Otherwise, this is a team of volunteers who donate their time to the project.

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

45. Re: Tasks - communication

eukat said...

You are too late, i made the offer to Derek, and don't know boatie's email address (and he isn't in #euphoria). So no deal.

In that case, I withdraw both the second and the deal.

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

46. Re: Tasks - communication

jaygade said...

Let the code stand on its own merits regardless of any drama or politics.

Seconded.

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

47. Re: Tasks - communication

jaygade said...

That's okay. You can't release it because you don't have it.

I understand.


That's BS. But you can't provoke me into proving it exists.

EDIT:
but you could look here:
http://openeuphoria.org/forum/m/109101.wc

useless

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

48. Re: Tasks - communication

eukat said...

I am not releasing the code to <snip> jim.

I haven't asked you to. I'm not interested in it. There's no need to repeat yourself here.

eukat said...

You wanna play "bash the eukat", go at it, it's not like you're doing anything new.

I have no interest in this either.

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

49. Re: Tasks - communication

jimcbrown said...
eukat said...

I am not releasing the code to <snip> jim.

I haven't asked you to. I'm not interested in it. There's no need to repeat yourself here.

eukat said...

You wanna play "bash the eukat", go at it, it's not like you're doing anything new.

I have no interest in this either.


I wasn't replying to your post.

useless

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

50. Re: Tasks - communication

jaygade said...

That's okay. You can't release it because you don't have it.

I understand.

eukat said...

That's BS. But you can't provoke me into proving it exists.

Considering how much of it was deleted, apparently unreleased, well, the deleted parts certainly don't exist anymore.

eukat said...

Or http://openeuphoria.org/forum/m/118918.wc - but again, the unreleased stuff doesn't count.

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

51. Re: Tasks - communication

useless_ said...
jaygade said...

That's okay. You can't release it because you don't have it.

I understand.


That's BS. But you can't provoke me into proving it exists.

EDIT:
but you could look here:
http://openeuphoria.org/forum/m/109101.wc

useless

Ah, yes. I remember that now.

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

52. Re: Tasks - communication

jimcbrown said...
jaygade said...

That's okay. You can't release it because you don't have it.

I understand.

eukat said...

That's BS. But you can't provoke me into proving it exists.

Considering how much of it was deleted, apparently unreleased, well, the deleted parts certainly don't exist anymore.

eukat said...

Or http://openeuphoria.org/forum/m/118918.wc - but again, the unreleased stuff doesn't count.


Are you saying that the upgrades for unreleased code is what i was talking about in

eukat said...



useless

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

53. Re: Tasks - communication

eukat said...

Or http://openeuphoria.org/forum/m/118918.wc - but again, the unreleased stuff doesn't count.

eukat said...

Are you saying that the upgrades for unreleased code is what i was talking about in

eukat said...

Of course not. Merely that the (not-deleted) upgrades were part of what you were considering to offer boater.

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

54. Re: Tasks - communication

jimcbrown said...
eukat said...

Or http://openeuphoria.org/forum/m/118918.wc - but again, the unreleased stuff doesn't count.

eukat said...

Are you saying that the upgrades for unreleased code is what i was talking about in

eukat said...

Of course not. Merely that the (not-deleted) upgrades were part of what you were considering to offer boater.


The released stuff which was uploaded to the internet was indeed what i was offering, you idiot. What i don't have any more is the stuff for tasks on other computers on the lan. And since i was writing the taskmsgs.e for a tasks.e version that doesn't exist, and a previous version of Euphoria, i wasn't guaranteeing it would run today. You eeuyglic idiot.

useless

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

55. Re: Tasks - communication

eukat said...

You may have noticed it always happens this way when i say something and jimcbrown wants to beat me over the head with it, throwing urls, repeating thngs, allowing no leeway, allowing no change of mind or exceptions.

I admit that I have a tick. If I see something that I feel is not 100% accurate, then I feel the need to explain my POV. And I generally like to back up my views when I can.

I'm open to having my views changed (e.g. Derek convinced me that it's better to have unsigned numbers as default over signed numbers, and that we're better off using numbers rather than acronyms for the internationalization of messages), but that only follows after a long and involved discussion on the merits.

There are times when I agree to disagree (e.g. Derek and I disagreeing that unsigned numbers are inherently more natural than signed ones), but again that only follows after a long and involved discussion.

I feel that I hold back quite a bit though. I generally don't swear at people, for example.

eukat said...

I didn't particularly want to share it with jimcbrown, and i certainly do not now.

I'll respect your wishes on that.

eukat said...

I was looking for a way to contact boater to send him/her the code. In fact, after jimcbrown's most recent posts, i don't particularly want to share it at all, so he sealed that deal up tightly.

If you want to send the code to boater, that's fine with me. If you don't want to, that's fine with me. It's your code, after all. I don't really think anything I say or do should affect your decision, but, again, that's really up to you. Either way, I'm hardly responsible for your decisions.

eukat said...

We are back to the devs coding up something and releasing it without me. Maybe in another 2 years?

I suspect it could take even longer. Mainly because with all these comments about history, the original idea has once again fallen by the wayside.

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

56. Re: Tasks - communication

eukat said...

The released stuff which was uploaded to the internet was indeed what i was offering, you idiot.

What i don't have any more is the stuff for tasks on other computers on the lan.

My mistake.

eukat said...

And since i was writing the taskmsgs.e for a tasks.e version that doesn't exist, and a previous version of Euphoria, i wasn't guaranteeing it would run today.

Again, my mistake. I guess the good news then is that the released code is out there and boater can find a copy of it if they need it or want it.

eukat said...

You eeuyglic idiot.

I approve this message!

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

57. Re: Tasks - communication

EUWX said...
jimcbrown said...

I'm not unwilling to look at it, but I feel my time is better spent waiting for the opinion of our resident D expert (who probably has already invested in a D setup) before I take time out of my busy schedule to do that.

Additionally, I feel that the right person to perform the task that you are suggesting should be a person who is already involved in and proficient with D and really enjoys using it.

A good scientist never rejects a theory because he does not like it.
Euphoria is supposed to be a team effort, so it behoves on all team members to look at alternative compilers and come to a joint decision - not a decision based on one expert.

minGW gcc has worked since before 4.0 was released for building euphoria itself and translating euphoria programs.

dropping openwatcom won't require additional dev time finding a replacement. one of the major reasons is to "save" time testing on two compilers. any feature request to add 'D' output would have to suggest some speed or development benefit to get anyone interested who is not already using D or any other language I would guess. otherwise, why not haskel output or ocamal, proven speed demons.

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

58. Re: Tasks - communication

jimcbrown said...

I guess the good news then is that the released code is out there and boater can find a copy of it if they need it or want it.

That *is* good news - I've found the bits of code quoted here and above - just what I was looking for in the first place. If, as it seems, I have stirred up a hornet's nest of bitterness here, my apologies - I'm just a newbie to the forum (and Eu, really) trying to make a bit of progress.

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

59. Re: Tasks - communication

DerekParnell said...

I like the D Programming Language's approach to this, namely that all data is assumed to be shared between tasks unless explicitly said otherwise.

I was wrong. That view in D has been replaced by a much more complex but satisfying approach. For details, have a look at ... http://www.informit.com/articles/article.aspx?p=1609144

And when I say "approach" I am not advocating the replacement of C with D. That subject deserves a whole different discussion thread. What I am referring to is the concurrency concepts implement by D should be considered for future editions of Euphoria, regardless of which system language is used by the Euphoria run-time sub-system.

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

60. Re: Tasks - communication

DerekParnell said...
DerekParnell said...

I like the D Programming Language's approach to this, namely that all data is assumed to be shared between tasks unless explicitly said otherwise.

I was wrong. That view in D has been replaced by a much more complex but satisfying approach. For details, have a look at ... http://www.informit.com/articles/article.aspx?p=1609144

And when I say "approach" I am not advocating the replacement of C with D. That subject deserves a whole different discussion thread. What I am referring to is the concurrency concepts implement by D should be considered for future editions of Euphoria, regardless of which system language is used by the Euphoria run-time sub-system.

For the next two years, the logical approach to Tasks - communication is to use shared memory, not shared objects, i.e. all objects residing in shared memory space are available to all processes. Since we are talking essentially of a single user desktop, there would be no particular need for high security - just a simple approach to use of that memory would suffice.
For the next two years, the logical approach to multi - tasking is to take advantage of multi-core processors.
For Euphoria, based on a quad core processor, multi - tasking and Tasks - communication is a feasible and desirable objective for eight simultaneous processes, without the system grinding to a halt.
I am neither a C, nor a D programmer. However, I feel that anybody who can take a quantum jump from GW BASIC to Visual BASIC, from dBase to SQL and Hadoop, should be able to take the earthworm's jump from C to D, particularly if he is adapt in one or the other.

Beyond that, I would suggest you look at Euphoria on the Desktop computer's video processor using CUDA
http://www.nvidia.com/object/cuda_home_new.html and/or
64 CPU Raspberry PI SuperComputer.
http://www.southampton.ac.uk/~sjc/raspberrypi/

For those who live in the vicinity of Toronto, these topics are being discussed in the annual
Free Software and Open Source Symposium 2012 (25-26 October, 2012) at Seneca College. http://fsoss.senecac.on.ca/2012/
It seems the registration is closed, but I suppose one can try at the door.

I do agree that these approaches require separate discussion threads and building dedicated teams. However, nothing can be achieved nor archived by presuming any poster to be a novice when he makes a simple typo. I have treated everybody here as serious programmers, whose typos and apparent lack of understanding is to be overlooked or explained to them.

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

61. Re: Tasks - communication

Its been a long time since I did a lot of programming in Euphoria so I won't post any code here yet. Since tasks in Euphoria are not technically considered threaded, it should be fairly easy to make a interprocess messaging system for it.

One way to do this is using global FIFO stacks to store the shared data. A producer task puts data into the stack so worker tasks can pull the data to process it.

A more robust system can use maps to store messages sent by other tasks then retrieved when needed. I wrote a simple system like this in Python years ago.

A simple way to share data between other external processes could be the use of external systems such as Redis.

Hope this helps.

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

62. Re: Tasks - communication

EUWX said...

For the next two years, the logical approach to Tasks - communication is to use shared memory, not shared objects, i.e. all objects residing in shared memory space are available to all processes.

I like this idea. Shared memory IPC.

EUWX said...

Since we are talking essentially of a single user desktop, there would be no particular need for high security - just a simple approach to use of that memory would suffice.

Sane OSes have builtin security measures for shared memory anyways, if you do need them.

EUWX said...

For the next two years, the logical approach to multi - tasking is to take advantage of multi-core processors.

Agreed. What's with the "next two years" though?

EUWX said...

For Euphoria, based on a quad core processor, multi - tasking and Tasks - communication is a feasible and desirable objective for eight simultaneous processes, without the system grinding to a halt.

So two Eu processes running per core on a quad core? Since you mean processes - we can do this already.

EUWX said...

I am neither a C, nor a D programmer. However, I feel that anybody who can take a quantum jump from GW BASIC to Visual BASIC, from dBase to SQL and Hadoop, should be able to take the earthworm's jump from C to D, particularly if he is adapt in one or the other.

I look forward to seeing you make that jump and seeing what you come up with.

EUWX said...

Beyond that, I would suggest you look at <snip> For those who live in the vicinity of Toronto <snip>

Something seems off here. It's like reading a horror story and then abruptly switching into a comedy routine. The segway is nonexistent and it's hard to see why you bring it up.

EUWX said...

I do agree that these approaches require separate discussion threads and building dedicated teams.

Glad we can agree on that.

EUWX said...

However, nothing can be archived by presuming any poster to be a novice when he makes a simple typo. I have treated everybody here as serious programmers, whose typos and apparent lack of understanding is to be overlooked or explained to them.

Here you made the same typo twice: archived instead of achieved. Or more likely, you copy and pasted when making the second post to the other thread.

However, I agree with your point. A coder's abilities should be judged by that person's code and troubleshooting skills, not by that coder's skill in a given spoken language. Likewise, a forum poster should be judged on other things, like clarity of communication and conflict resolution ability.

Still, you have to admit, making a typo of MB for GB, and then denying it when it was pointed out to you TWICE, was a pretty serious gaffe. I'm not saying that this means you are a novice to programming, just that you are someone who once made a gaffe.

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

63. Re: Tasks - communication

I am a much better English language user than you are. Look at my current version of what you called a typo.

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

64. Re: Tasks - communication

EUWX said...

I am a much better English language user than you are. Look at my current version of what you called a typo.

Ok, you wrote:

EUWX said...

However, nothing can be achieved nor archived by presuming any poster to be a novice when he makes a simple typo.

Clearly that's grammatically correct. But you're wrong - I can presume that you're a novice and archive the whole thing. (Obviously, stating that "nothing can be archived if .." makes no sense given the context.)

This inability of yours to admit to making mistakes is a more serious issue to me. In light of this, I'm now considering whether or not you are a good addition to the forum.

EUWX said...

I have treated everybody here as serious programmers, whose typos and apparent lack of understanding is to be overlooked or explained to them.

Your latest post to me means that you have done otherwise.

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

65. Re: Tasks - communication

EUWX said...

I am sure Euphoria is able to do 1 + 1 = 2 OR
desirable_compiler = (need_for_Tasks_communication & using_D) - watcom_compiler

I don't think I understand what you meant by that, sorry.

Are you saying that the desirable compiler would be one that satisfies the need for task communication and uses the D programming Language and does not use Watcom complier?

EUWX said...
jimcbrown said...
EUWX said...

I am presuming that you understand that it is axiomatic to replace Watcom with another C compiler

No. Why is this the case?

I'm not sure why you are using 'axiomatic'.

EUWX said...

Considering that the subject of ditching Watcom has been bandied about for a year, and already some effort has been put, into MinGW as compiler;
considering that a whole thread has been started to vote for ditching Watcom;
considering that you yourself seconded the idea of "D Programming Language's approach" being very good
One cannot escape the logical conclusion that "D Programming Language" would be the correct direction to take.
Sometimes it pays to apply computer logic to day-to-day decision making.

It may be that you misunderstood my comment about D. I was not saying that the D Programming Language should be used, but that we should look into the D's conceptual treatment of task/process communication and see if we can get any benefit of implementing that concept into Euphoria - regardless of which compiler/language we code Euphoria's run-time system with.

EUWX said...

So the only unsolved questions about which we remain in disagreement
1. Voting for ditching Watcom is not ended;
2. You think "D Programming Language" is vastly different from C, and I don't.

Voting for Watcom removal has not ended yet. There are still opinions that we need to hear from and consider.

From practical experience, I would argue that "D Programming Language" and "C Programming Language" are very different from each other, in spite of the common syntax look-and-feel. The underlying paradigms and constructs are not compatible. A good C programmer would tend to write poor D code if they failed to think in D, and visa versa.

EUWX said...

However, you seconded DerekParnell's statment which reads - see 8. Re: Tasks - communication
"I like the D Programming Language's approach to this, namely that all data is assumed to be shared between tasks unless explicitly said otherwise." ...
Much as you would like to confuse between "D Programming Language's approach" and "D Programming Language", I am quite comfortable that "approach" has become tantamount to adopting the language IF the difference (as I believe) is not big, and IF YOU ARE ditching Watcom for another compiler.

I'm sorry if I didn't make myself clear about D. Liking D's approach to inter task communications is in no way meant as an endorsement for adopting the D language as Euphoria's system language.

EUWX said...

You are an admin or mod here, I am simple programmer with only 30 years experience.

And by the way, I started my programming experience in 1972, not that that has any relevance to anything except to my age.

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

Search



Quick Links

User menu

Not signed in.

Misc Menu