This directory and README file contains fixes for bugs or compilation problems in GENESIS version 2.2. Since the release of GENESIS 2.2, we have found the following bugs: disk_out, asc_file, and res_ascfile ----------------------------------- In GENESIS 2.2, these three objects were changed to write data files in double precision format (type double) instead of single (type float). Unfortunately, the resulting files are incompatible with the disk_in and xsimplot objects (which expect floats), and existing utilities that people have written to read the output of disk_out. The piriform cortex simulation uses both disk_out and disk_in, and will not run with the new version of disk_out. The solution is to revert to the old versions of these objects by recompiling genesis with the replacement files provided here, out_file.c, out_ascfile.c, out_struct.h, and res_ascfile.c in the src/out directory. timetable --------- There is a bug in the timetable object that can produce segmentation faults. The solution is to recompile genesis with the replacement file provided here in src/device/timetable.c. deleteall --------- Although the use of "deleteall -force" is discouraged (it isn't always guaranteed to reset all parameters to the same values as when genesis was started), it is used in the Scripts/piriform simulation. Due to a bug introduced in src/sim/sim_malloc.c, this command produces a segmentation violation in GENESIS 2.2. The solution is to recompile genesis with the replacement file provided here. The src/sim directory also has a new version of sim_event.c, with some code cleanup done while investigating a possible bug. readcell -------- If you invoke readcell twice, in order to create two different cells, Em in all the compartments of the second cell gets set to 0, instead of the value of EREST_ACT that is specified in the cell parameter file. (This doesn't happen if ELEAK is specifically set in the cell parameter file, but in principle, it should not have to be set unless you want Em to be different from initVm.) A workaround for this bug is that users who invoke readcell more than once should explicitly set ELEAK (with either set_global or set_comp_param), even if it is the same as EREST_ACT. A better solution is to recompile genesis with the replacement file given here in src/tools/new_parser.c. Also, the documentation for readcell fails to mention that comments in cell parameter (.p) files should be single line comments of the form // this is a comment rather than block C-style comments such as /* * this is a comment * here are more comments */ src/contrib/xplot ----------------- The supplementary plotting program xplot (not the GENESIS xplot object) doesn't compile with the Sun C compiler. The replacement files here in src/contrib/xplot should be used with Sun cc and other compilers that produce errors with the original files. This is a complete replacement for the distribution version of xplot. The following files are no longer used, and may be deleted from the GENESIS 2.2 distribution src/contrib/xplot directory if you wish: button2.bitmap larrow.bitmap save.bitmap toggle.bitmap button.bitmap rarrow.bitmap toggle2.bitmap zap.bitmap menu.c my_stdlib.h xplot.h Scripts/piriform ---------------- In addition to the problems caused by the bugs in disk_out and deleteall (with fixes described above), the shell script test_dir will not execute, because it wasn't given execute permission. This can be fixed with the command "chmod a+x test_dir". It will be even better to replace it with the version given here in Scripts/piriform, which does not require you to be using csh as your shell when you run the simulation. We have also provided a replacement Scripts/piriform/README.1st file, which corrects a minor error. Someday this simulation should be rewritten to use GENESIS 2 style connections with synchans, instead of the old GENESIS 1 oldconn library objects. Any volunteers? Contact genesis@genesis-sim.org. Scripts/examples/diskiolib/diskio --------------------------------- The data file "testfile" is corrupted. The solution is to run generate_netcdf.g (or generate_FMT1.g) to make a new one. The README describes how to do this. Scripts/examples/XODUS/fileview ------------------------------ The script fileview_better.g does not display anything. This is due to the problem with disk_out described above, and can be fixed by recompiling genesis with the replacement files. pgenesis -------- A few people have reported problems with PGENESIS producing errors of the form: > libpvm [t40005]: pvm_trecv(): Can't contact local daemon > libpvm [t40005] mxfer() select: Invalid argument This is apparently due to a race condition between the pvm daemon completing its initialization and pgenesis attempting to contact it. It only shows up on certain architectures and under certain conditions. The fixes for this are in pgenesis-fixes/src/par/pvm-shared.c and pgenesis-fixes/src/startup/pgenesis.dist. The replacement files rfunc.c and par_ext.h in pgenesis-fixes/src/par prevent compilation errors on some new compilers (e.g. on SGI Origin 2000). A missing file ipclean (used after exiting pgenesis) is provided in pgenesis-fixes/src. There are also some changes in Makefile.dist and lib/Usermake to install ipclean and to allow one to compile pgenesis after doing a "make clean" with genesis. (Some needed object files were looked for in the genesis/src tree instead of genesis/lib.) Additionally, you may need to compile pvm even if you already have an executable file since the object libraries may be missing. Finally, some updates were made to README and README.1st. There is still some issue with pgenesis sometimes hanging at the final paroff when running with X turned on (i.e., without the -nox option), but since this happens at the end of a simulation and you can just ^C out of it, this bug is not likely to be fixed for a while. pgenesis-fixes contains replacement files for the files described above. pgenesis-fixes.tar.Z extracts into the current working directory. Extract it within your pgenesis directory to update your distribution version of pgenesis 2.2. You may want to save your old version of Makefile to consult for platform-dependent definitions, before copying the new Makefile.dist to Makefile and editing Makefile. Then do: make clean make install make nxinstall (or make install, if using XODUS) Alternatively, you can start over with the replacement pgenesis distribution pgenesis2.2a.tar.gz in the main directory above Bug-fixes. This untars into the pgenesis/ directory, so be careful not to untar it over your old pgenesis/ directory if you want to retain those files. ---------------------------------------------------------------------------- Files and subdirectories in Bug-fixes: compiling.problems - Gives the solution to problems encountered in compiling GENESIS. src/ - A subdirectory containing the patched source files for current GENESIS bug fixes. The src.tar.Z file can be extracted in your genesis directory to overwrite the old files with the corrected versions. Then you can cd to src, do a "make clean", "make", and "make install" to get a corrected version of GENESIS. As of Jan 22, 2001 this directory has the replacement files: src/contrib/xplot: arg.c event_loop.c label.c psdriver.c text.c xplot_struct.h axis.c graph.c load.c README tick.c buttons.c header.h main.c save2.c xplot_defs.h color.c init.c Makefile save.c xplot.doc command.c keys.c primitives.c scale.c xplot_ext.h src/device: timetable.c src/out: out_ascfile.c out_file.c out_struct.h res_ascfile.c src/sim: sim_event.c sim_malloc.c src/tools: new_parser.c pgenesis-fixes - described above ---------------------------------------------------------------------------- Fixes for older GENESIS versions: fixes.2.0.1 - A subdirectory containing bug fixes for GENESIS version 2.0.1. These have already been been incorporated into GENESIS 2.0.2. fixes.2.0.2 - A subdirectory containing bug fixes for GENESIS version 2.0.2. These have already been been incorporated into GENESIS 2.1. fixes.2.1 - A subdirectory containing bug fixes for GENESIS version 2.1. These have already been been incorporated into GENESIS 2.2.