← Back to team overview

opencog-dev team mailing list archive

dynmod branch landed

 

At last!

Launchpad is finally back online so I was able to publish my local
branch with support for dynamic modules. It's available at
lp:~gama/opencog/dynmod. Along with the framework branch, I've pushed a
small repository with sample agent/modules at
lp:~gama/opencog/samplemodules.

I still have to write most of the documentation but I wanted to push it
asap as it's already long overdue. I wrote a brief overview of the most
important changes in the commit messages and the code itself isn't
complicated so everyone currently working in opencog should be able to
get the gist of it fairly quick.

Anyway, from an end-user's point of view the basics may be summed up as:

1. Building and installing opencog:

   prompt$ cmake -DCMAKE_INSTALL_PREFIX=<path> .
   prompt$ make && make install

2. Configuring the server. There's a sample configuration file in
'lib/opencog.conf', which one might want to copy to ~/.opencog.conf for
convenience. Then, make sure you enable the desired modules by editing
the "MODULES" entry (it's a comma separated list of library/module
names). The currently available modules are: libattention.so,
libbuitinreqs.so, libpersist.so, libquery.so, libscheme.so and
libwsd.so.

3. Run the server using your configuration file:

   prompt$ <path>/bin/cogserver -c ~/.opencog.conf

Running the server from the build tree should work too, but cmake's
RPATH support isn't very solid so YMMV.
  
As usual, comments/reviews/criticisms are mostly welcome.

I've also published the first experimental opencog deb packages to my
PPA (https://launchpad.net/~gama/+archive).

There's one particularly important set of packages available at the ppa
as well: the guile* ones. The new server uses threads to handle multiple
clients concurrently and there were bugs in guile <= 1.8.5 that cause
threaded applications to crash. As Ubuntu latest stable release (hardy)
ships with guile == 1.8.3, I had to backport the 1.8.5 release from the
next release (intrepid). So anyone testing the new branch is advised to
install the guile* packages in the ppa.

I have a few big TODOs and would like to get some advice on how to
prioritize them:

      * rebase to main, push the branch as the 'official' unstable
        branch
      * port the branch to win32; we currently use dlopen and will have
        to wrap it around windows' LoadLibrary API
      * write the missing documentation
      * integrate the 'rest' branch
      * package opencog to Fedora, OpenSUSE, etc
      * other minor todos such as doxygen integration, porting to Mac OS
        X or looking at the 'enhancement' bugs in bugzilla
      * others important tasks I'm not aware of or don't remember right
        now

Thanks,

--
Gustavo




Follow ups