r3wp [groups: 83 posts: 189283]
  • Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search
 

World: r3wp

[!Cheyenne] Discussions about the Cheyenne Web Server

Pekr
28-Dec-2009
[6866x4]
yes, so hopefully you can now understand, why I objected to your 
(taken from Project plan) words: "Also, this list is only for R3 
core operation and does not include community-based projects such 
as graphics, GUI, protocols, documentation, and other features that 
can be developed externally, depending on the needs of the community."
I can (well, maybe I even can't :-) imagine, how picky you might 
be about the code quality. So it is really not imo enought to state 
- hey, guys, here's host code, who does the best task implementation, 
wins a bottle of Rebol wine :-)
I know that BrianH might not agree with me. Community can do some 
research, reference implementation, but I would expect stuff like 
tasks being DESIGNED (not implemented) by the author of first multitasking 
operating system himself :-)
OK, going to sleep, 2:30 here ... and soon enough Doc might jump 
here, that I turned his group off-topic ...
Kaj
28-Dec-2009
[6870]
Steeve seemed to imply that R3 has its own thread scheduler. Is that 
true?
Carl
28-Dec-2009
[6871]
No.
Kaj
28-Dec-2009
[6872]
I thought so :-)
Carl
28-Dec-2009
[6873]
I think he's referring to the R3 Device timeslicer.
Kaj
28-Dec-2009
[6874]
Is that based on async I/O or something?
Carl
28-Dec-2009
[6875x5]
Yes.
But not all devices are async.
So, if no devices have "work to do" then we sleep for a short period 
of time (as long as that period is greater than the minimum dispatch 
time for the host CPU.)
We have more adjustments to make on this. E.g. OS X burns extra CPU.
I thought Henrik would have it fixed by now. ;-)
Kaj
28-Dec-2009
[6880]
Ah, I remember that. Good info
Henrik
29-Dec-2009
[6881]
Carl, I'm not a C programmer, so I can't fix that stuff. :-)
Endo
29-Dec-2009
[6882]
@doc: is there macos version of cheyenne?
Henrik
29-Dec-2009
[6883]
Endo, I run Cheyenne off my macbook, script version, though. Runs 
fine.
Endo
29-Dec-2009
[6884]
Thx. Does not it require be compiled? Console should be stay open 
I guess, there is no service edition on MacOS?
Henrik
29-Dec-2009
[6885x2]
No compilation necessary. Services are builtin: launchd
I use Lingon to create services and then use the launchd console 
to load and manage services.
Endo
29-Dec-2009
[6887]
Ok. Thanks a lot.
Dockimbel
29-Dec-2009
[6888]
Endo: you can run it on OS X either from sources or using a binary 
version from here : http://cheyenne-server.org/download.shtml
Endo
29-Dec-2009
[6889x2]
Doc: is this the session-problem fixed version? or it was only a 
windows related problem?
Btw, I wrote a "intranet voting system" using cheyenne & rsp just 
in 2-3 hours (with login, user management, messaging, voting, product 
upload etc.). That was a real fun to use rsp.
Dockimbel
29-Dec-2009
[6891x2]
session-problem

: if you mean the issue raised by Janko and fixed a few days ago, 
it's in the SVN repository: http://code.google.com/p/cheyenne-server/
Intranet voting in RSP: "simple things should be simple to do." ;-)
Endo
29-Dec-2009
[6893]
Doc: yes, I meant that, you sent me the fixed version r40.
Dockimbel
29-Dec-2009
[6894]
Right, I forgot...
Paul
29-Dec-2009
[6895x2]
Anyone know if RT is looking at using Cheyenne on the backend?
Also, is Cheyenne currently being ported to R3?
Dockimbel
29-Dec-2009
[6897]
1) Don't know.
2) No, see yesterday's discussions here.
Pekr
29-Dec-2009
[6898x2]
Doc - sorry to flood your channel here, but I tried to convince Carl 
to finish concurrency, while he was still here :-)
I thought that 10 other users might help me to convince him, but 
noone helped :-)
Henrik
29-Dec-2009
[6900]
The only advantage of task! is about 1MB of memory. Otherwise, you 
can fire up multiple R3 processes and communicate between them.

 <- I thought task! would make things like that much simpler. I've 
 always found that using multiple processes was too complicated, unless 
 you have a powerful tool at hand to handle this for you.
Pekr
29-Dec-2009
[6901x2]
Henrik - yes, just read the discussion. Carl claimed, that RT has 
long time the code to IPC between processes. I objected, that no 
such code was standardised over-time, so that is maybe a reason, 
why ppl do wait for tasks. We await stuff like ipc:// scheme, etc.
also - isn't there difference between tasks and threads and how they 
scale in multi CPU/multicore environments?
Kaj
29-Dec-2009
[6903]
A task is an OS thread in R3. Carl just confirmed that here yesterday
Pekr
29-Dec-2009
[6904]
yes, I know. But he also asked, why don't we use OS tasks, via 'launch 
funciton probably, and such solution would mean OS tasks, not threads. 
My question was plainly theoretical - I was curious, what scales 
better in modern multicore envrionments - tasks, or threads, or it 
does not matter?
Kaj
29-Dec-2009
[6905]
Those are called processes
Dockimbel
29-Dec-2009
[6906]
Pekr: no problem. Cheyenne is one of the application that would benefit 
the most from threads.


IPC between processes can't compare to shared memory between threads. 
With processes, you need to serialize values, transfer them (multiple 
memory copies or worth using a disk file), then LOAD them back. With 
shared memory, you just pass a memory reference to the value and 
you ensure (using a sync mechanism) that no concurrent writes occur 
on that value. It's at least a magnitude faster and uses so much 
less memory.
Pekr
29-Dec-2009
[6907x2]
hmm, how is that Amiga tasks were so fast? Didn't they share some 
space too? Well, but AOS is not memery protected, so most probably 
you are right, that in most OSes, processess are isolated ...
thanks for explanation ....
Kaj
29-Dec-2009
[6909]
In AmigaOS, there's no difference between processes and threads, 
hence tasks. The major difference is that processes have their own 
memory space, while threads share memory within a process. AmigaOS 
has no protected memory, so there is only one task concept
Dockimbel
29-Dec-2009
[6910]
Needing to advocate for multithreading support in a programming language 
two days from 2010 is almost...anachronic.
Kaj
29-Dec-2009
[6911]
Almost?
Dockimbel
29-Dec-2009
[6912]
I'm trying to say it softly.
Kaj
29-Dec-2009
[6913x2]
So far, REBOL has been quite like Amiga: one big shared memory space
To be fair, you also still have to beg for multithreading in operating 
systems and applications
Pekr
29-Dec-2009
[6915]
Doc - we all know, that it is planned, no? We just don't screem loudly 
enough, that R3 released without finished concurrency concept, is 
not worth calling a beta ...