official breve 2.4 beta [03/11/06] feedback thread

A new set of betas have been posted at:

http://www.spiderland.org/breve_2.4_betas

Please post all feedback here!

- jon

official breve 2.4 beta [03/11/06] feedback thread

For the love of god, PLEASE FIX THE PRIORITY FOR THE WINDOWS VERSION

It's locks and crashes my system completely unless I manage to catch it in the process manager and set it to idle before the simulation starts. Make it start at idle priority please!! PLEASE!

official breve 2.4 beta [03/11/06] feedback thread

Also the breveCreatures demo crashes on both Breve2.4b and BreveIDE2.4b for Windows, right after evaluating and printing the average fitness for the first generation. I've looked over the code quite a lot and I don't think the bug is in the .tz file.

official breve 2.4 beta [03/11/06] feedback thread

tripwire wrote:For the love of god, PLEASE FIX THE PRIORITY FOR THE WINDOWS VERSION

It's locks and crashes my system completely unless I manage to catch it in the process manager and set it to idle before the simulation starts. Make it start at idle priority please!! PLEASE!

Hi,
I'm puzzled by this problem because breve does not change its priority anywhere in the source code. I don't have much experience with applications programming on Windows, so if anybody has any insights into this problem, I would appreciate it!

- jon

official breve 2.4 beta [03/11/06] feedback thread

My plugin system isn't working anymore with the latest cvs:

cannot convert type "(null)" to type "pointer"
error in assignment
... error in file "EvoSimController.tz" at line 53
NULL pointer passed as argument 0 to internal function deleteGA
... error in file "EvoSimController.tz" at line 43

This code works fine with breve-2.3. The strange thing is that it already complains of the function deleteGA, which is only executed when the controller is destroyed.

This is the piece of code in question:

     19     + variables:
     20         ga (pointer).
     21         curGen, curMemberPos, curMemberRun (int).
     22         curMemberFitness (object).
     23         metricProvider, f (object).
     24         simName, statsFileName (string).
     25         writer (object).
     26
     27     + to init:
     28         metricProvider = new MetricProvider.
     29         self initialize-ga.
     30
     31         # Initialize parameters for the first run.
     32         self set-current-member to nextToEvaluate( ga ).
     33         curMemberFitness = new MemberFitness.
     34         curMemberPos = 1.
     35
     36         simName = SIM_NAME.
     37         statsFileName = "$simName.stats".
     38         f = new File.
     39         f open-for-writing with-file statsFileName.
     40         writer = (new FileWriter init-with filename "$simName").
     41
     42     + to destroy:
     43         deleteGA(ga).
     44         free ga.
     45         free curMemberFitness.
     46         free metricProvider.
     47         f close.
     48         free f.
     49
     50     + to initialize-ga:
     51         # Create the genetic algorithm.
     52         ga = createGA( POPULATION_SIZE, NB_GENERATIONS, NB_INPUT, NB_HIDDEN,
     53                        NB_OUTPUT, ALGORITHM, OFFSPRING_RATIO ).
     54         populate(ga).
     55
     56         changeTournamentSize( ga, TOURNAMENT_SIZE ).
     57         changeSelectionMethod( ga, SELECTION_METHOD ).

official breve 2.4 beta [03/11/06] feedback thread

menetto wrote:My plugin system isn't working anymore with the latest cvs:

Version 2.4 will require plugins to be recompiled with modified plugin headers. The latest beta builds should include the new header file. Please recompile the plugin and let me know if you encounter any problems.

- jon

official breve 2.4 beta [03/11/06] feedback thread

Quote:
Version 2.4 will require plugins to be recompiled with modified plugin headers. The latest beta builds should include the new header file. Please recompile the plugin and let me know if you encounter any problems.

I tried recompiling the plugin, but I get a whole bunch of these errors:

src/brEvoNeuralPlugin.cpp(525): error: expression must be a modifiable lvalue
BRPOINTER(result) = reader->readMember();

I can't seem to find documentation on a changed plugin system. Is there something I should change for this to work?

official breve 2.4 beta [03/11/06] feedback thread

menetto wrote:I tried recompiling the plugin, but I get a whole bunch of these errors:

src/brEvoNeuralPlugin.cpp(525): error: expression must be a modifiable lvalue
BRPOINTER(result) = reader->readMember();

I can't seem to find documentation on a changed plugin system. Is there something I should change for this to work?

What platform are you on and which compiler are you using? Is it a C++ compiler? Also, make sure you're using the most recent 2.4 beta -- previous versions did not include the updated header.

The "old" plugin convention you have there should still work. For the record, the new convention is to say:

result->set( value );

// the type of the value determines what gets set.  setting pointers
// is a special case, since they can point to anything, so in your case:

result->set( (void*)reader->readMember();

These changes should be documented in the plugins chapter of the most recent betas.

- jon

official breve 2.4 beta [03/11/06] feedback thread

jk wrote:
What platform are you on and which compiler are you using? Is it a C++ compiler? Also, make sure you're using the most recent 2.4 beta -- previous versions did not include the updated header.

I'm using breve on gentoo linux. I tried with g++-3.4.5 and icpc-9.0. I'd rather not like to change my code yet to the new style, since I want to keep using breve 2.3 for my "official" simulations until 2.4 is stable.

For the record, this is my compiler command:

g++ -O2 -g -fno-inline -Wall -pipe -fPIC -Isrc/examples -Isrc/tests -Isrc -c -o build/brEvoNeuralPlugin.os src/brEvoNeuralPlugin.cpp

official breve 2.4 beta [03/11/06] feedback thread

menetto wrote:I'm using breve on gentoo linux. I tried with g++-3.4.5 and icpc-9.0. I'd rather not like to change my code yet to the new style, since I want to keep using breve 2.3 for my "official" simulations until 2.4 is stable.

Again, are you certain you've got and are including the most recent plugin header file? I just downloaded and tested the most recent beta with g++-3.4.2 and am still able to use the older style plugin method that you use in your demo.

Specifically, check look for the following line in the header file:

                
inline void*           &getPointer()  { return _values.pointerValue;  }

If you don't see that line exactly as it's shown here, then I think it's probably an older version of the file.

- jon

official breve 2.4 beta [03/11/06] feedback thread

jk wrote:menetto wrote:I'm using breve on gentoo linux. I tried with g++-3.4.5 and icpc-9.0. I'd rather not like to change my code yet to the new style, since I want to keep using breve 2.3 for my "official" simulations until 2.4 is stable.

Again, are you certain you've got and are including the most recent plugin header file? I just downloaded and tested the most recent beta with g++-3.4.2 and am still able to use the older style plugin method that you use in your demo.

Specifically, check look for the following line in the header file:

                
inline void*           &getPointer()  { return _values.pointerValue;  }

If you don't see that line exactly as it's shown here, then I think it's probably an older version of the file.

- jon

I'm using the cvs version, as I said before. Updated today, so it's the most recent version.

$ fgrep getPointer slBrevePluginAPI.h
inline void *getPointer() { return _values.pointerValue; }
#define BRPOINTER(e) ( (e)->getPointer() )

So I have the exactly the same line in it. You can find the header file and my plugin file at http://m0219842.kuleuven.be/

official breve 2.4 beta [03/11/06] feedback thread

menetto wrote:
I'm using the cvs version, as I said before. Updated today, so it's the most recent version.

$ fgrep getPointer slBrevePluginAPI.h
inline void *getPointer() { return _values.pointerValue; }
#define BRPOINTER(e) ( (e)->getPointer() )

So I have the exactly the same line in it. You can find the header file and my plugin file at http://m0219842.kuleuven.be/

Ah, sorry for the confusion here -- I'm in the process of moving source code control over to subversion, so CVS is NOT up to date with the most recent betas. There's an important difference on that line, as getPointer now returns a reference (&)!

Please use the latest beta builds and not the CVS version. If you want to grab the latest source, you can use subversion using the root https://svn.sourceforge.net/svnroot/breve/trunk/breve . The conversion is not yet complete, but the version there corresponds to the latest build.

- jon

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.