welcome: please sign in
location: Diff for "Advanced"
Differences between revisions 3 and 4
Revision 3 as of 2008-03-07 21:53:46
Size: 3705
Comment:
Revision 4 as of 2008-03-07 21:56:07
Size: 3730
Comment:
Deletions are marked like this. Additions are marked like this.
Line 5: Line 5:
OpenBUGS is written using the [[http://www.oberon.ch/blackbox.html|Black Box Component Builder]]. If you want to play with the source code, you will need this. it is also necessary for some of the extra toys listed below. OpenBUGS is written using the
[[http://www.oberon.ch/blackbox.html|Black Box Component Builder]]
. If you want to play with the source code, you will need this. it is also
necessary for some of the extra toys listed below.
Line 9: Line 12:
Some people like blue diamonds. Your version of OpenBUGS (WinBUGS to be more precise) can also have blue diamonds. Just make a directory called Dev in OpenBUGS and within this directory create a subdirectory called Code. Next from the corresponding direcory in the BlackBox distribution copy over the files Commanders.ocf and Debug.ocf. The Node Info tool will now give you blue diamonds so that you can explore Graph and Updater objects. Adding the Debug module to OpenBUGS will also give more informative trap messages when things go wrong. Some people like blue diamonds. Your version of OpenBUGS (WinBUGS to be more
precise) can also have blue diamonds. Just make a directory called Dev in
OpenBUGS and within this directory create a subdirectory called Code. Next from
the corresponding direcory in the BlackBox distribution copy over the files
Commanders.ocf and Debug.ocf. The Node Info tool will now give you blue
diamonds so that you can explore Graph and Updater objects. Adding the Debug
module to OpenBUGS will also give more informative trap messages when things go
wrong.
Line 19: Line 29:
We have had encouraging results using WINE to run OpenBUGS on Linux. Apart from font problems WinBUGS behaves very well under WINE. We have not been able to run the ClassicBUGS interface on WINE yet. Any advice on using or setting up WINE would be happily received. We have had encouraging results using WINE to run OpenBUGS on Linux. Apart from
font problems WinBUGS behaves very well under WINE. We have not been able to
run the ClassicBUGS interface on WINE yet. Any advice on using or setting up
WINE would be happily received.
Line 21: Line 34:
We could be interested in porting OpenBUGS to Linux using Winelib. However we do not have the expertise to make this happen on our own. We might understand the OpenBUGS source code and some of the BlackBox modules but have no knowledge of the Windows dlls. A collaborative effort here might work. We could be interested in porting OpenBUGS to Linux using Winelib. However we
do not have the expertise to make this happen on our own. We might understand
the OpenBUGS source code and some of the BlackBox modules but have no
knowledge of the Windows dlls. A collaborative effort here might work.
Line 28: Line 44:
A new experimental optimization of logical nodes has been developed. The optimization affects node of class GraphStack.Node. It involves writing a new Component Pascal class for the node where the method that calculates the nodes value hard codes the algebraic expression that the node represents (this is instead of the value being calculated by a stack based interpreter). The new class is then compiled by the Component Pascal compiler and loaded dynamicaly. A modification of the Component Pascal compiler has been made which allows this to happen silently and also to work on Linux. A new experimental optimization of logical nodes has been developed. The
optimization affects node of class GraphStack.Node. It involves writing a new
Component Pascal class for the node where the method that calculates the nodes
value hard codes the algebraic expression that the node represents (this is
instead of the value being calculated by a stack based interpreter). The new
class is then compiled by the Component Pascal compiler and loaded dynamicaly.
A modification of the Component Pascal compiler has been made which allows this
to happen silently and also to work on Linux.
Line 32: Line 55:
trial this code please contact <<MailTo(MAN openbugs FOUND ALIVE AT WITH TWO
openbugs2 DOT info LEGS, OpenBUGSs)>> .
trial this code please contact
<<MailTo(MAN openbugs FOUND ALIVE AT WITH TWO openbugs2 DOT info LEGS, OpenBUGSs)>>
.
Line 36: Line 60:
<<MailTo(MAN openbugs FOUND ALIVE AT WITH TWO openbugs2 DOT info LEGS, email
us)>> .
<<MailTo(MAN openbugs FOUND ALIVE AT WITH TWO openbugs2 DOT info LEGS, email us)>>
.

OpenBUGS: Advanced Toys

Black Box

OpenBUGS is written using the Black Box Component Builder . If you want to play with the source code, you will need this. it is also necessary for some of the extra toys listed below.

Blue Diamonds

Some people like blue diamonds. Your version of OpenBUGS (WinBUGS to be more precise) can also have blue diamonds. Just make a directory called Dev in OpenBUGS and within this directory create a subdirectory called Code. Next from the corresponding direcory in the BlackBox distribution copy over the files Commanders.ocf and Debug.ocf. The Node Info tool will now give you blue diamonds so that you can explore Graph and Updater objects. Adding the Debug module to OpenBUGS will also give more informative trap messages when things go wrong.

LinBUGS

A number of changes to ClassicBUGS have been made. The biggest of these is that output is written to the console and not to a buffer file. A new shared object file, bugs.so, has been writen to implement the ClassicBUGS interface on Linux. This shared object file does not export any functions buts its initialization code sets up the command line interpreter for ClassicBUGS. It can be loaded via a small C program CBugs using the dlopen library call. The compiled version of CBugs must be in the root directory of the OpenBUGS software (think of the ocf files as part of the binary). It also seems reasonable to keep the bugs.so file in this directory, the CBugs program will need editing if this is done. It should be possible to load the bugs.so from the Linux version of R. This would allow OpenBUGS to be run from within R but not to to interleave R and BUGS commands.

If anyone would like to help interacing the bugs.so(and the brugs.so) file to Linux via a C program the help would be be most welcome. Linux and C programming are beyond our capabilities...

OpenBUGS and WINE

We have had encouraging results using WINE to run OpenBUGS on Linux. Apart from font problems WinBUGS behaves very well under WINE. We have not been able to run the ClassicBUGS interface on WINE yet. Any advice on using or setting up WINE would be happily received.

We could be interested in porting OpenBUGS to Linux using Winelib. However we do not have the expertise to make this happen on our own. We might understand the OpenBUGS source code and some of the BlackBox modules but have no knowledge of the Windows dlls. A collaborative effort here might work.

There is a rumour that WINE will run on the next (intel) generation of Macs. Does anyone know more on this?

Dynamic node compilation

A new experimental optimization of logical nodes has been developed. The optimization affects node of class GraphStack.Node. It involves writing a new Component Pascal class for the node where the method that calculates the nodes value hard codes the algebraic expression that the node represents (this is instead of the value being calculated by a stack based interpreter). The new class is then compiled by the Component Pascal compiler and loaded dynamicaly. A modification of the Component Pascal compiler has been made which allows this to happen silently and also to work on Linux.

The optimization is in module GraphCompile and the modified CP compiler in the zip file code.zip. Note that this is experimental code. If you would like to trial this code please contact OpenBUGSs <MAN openbugs FOUND ALIVE AT WITH TWO openbugs2 DOT info LEGS> .

If you want to contact the maintainers with your own software bugs, email us <MAN openbugs FOUND ALIVE AT WITH TWO openbugs2 DOT info LEGS> .

Advanced (last edited 2008-03-07 21:56:07 by NathanCoulter)