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

Reply via email to