Hi,
while trying to read up on concurrency in Oz, I came across:
http://cs.calstatela.edu/wiki/index.php/Courses/CS_460/Fall_2005/What_programmers_should_know_about_Oz
The information there is certainly not official. You should stick to the
official docs and tutorials.
which seems to me, the clueless newbie, to raise some good usability
questions about how hard it might be to understand and debug Oz
dataflow concurrent programs due to nigh arbitrary thread suspension.
for those people on the list who have actually used the system
somewhat extensively, what is your experience? any tips + tricks?
Don't fear. First, you have to decide what you want to do with Oz.
If you want to solve some combinatorial problems, then use the search
engine, spaces, logic variables (and probably constrained variables and
the constraint system).
Outside of spaces, you have a whole bunch of traditional stateful
variables (Cells and Dictionaries are the most usable). I suggest that
you don't stick to just stateful or logic variables everywhere - learn
when to use which ones and why. If it's not obvious from the docs, ask here.
There is nothing mysterious about thread suspension. If your program is
suspended (ie. all threads in your program are blocked), then this is a
sign of your programming error (typing C-. h will stop the OPI VM
process in this case, BTW). This can be hard to debug at first, but
there are means of discovering what's gone wrong (at least telling where
is each thread blocked ATM). Moreover, you have the Oz debugger, which
is, at least for small-enough programs, useful for basic debugging tasks.
HTH,
Filip
_________________________________________________________________________________
mozart-users mailing list
[email protected]
http://www.mozart-oz.org/mailman/listinfo/mozart-users