Home / old_versions / experix_r3
Name Modified Size InfoDownloads / Week
Parent folder
install_r3 2007-07-08 30.1 kB
README_r3 2007-07-08 8.0 kB
experix_r3_dist.tgz2 2007-07-08 721.7 kB
experix_r3_book.tgz2 2007-07-08 152.6 kB
Totals: 4 Items   912.4 kB 0
Download  experix_r3_dist.tgz2  experix_r3_book.tgz2  experix_r2_helpers.tgz2
(nothing has changed since experix_r2_helpers so if you already have that you
don't need to download it.)
Follow instructions in install_r3. 

------------------------------------------------------------------------
changes since experix_release_r2 Mon Jan 15 2007:
------------------------------------------------------------------------

Changed the version number to 6.0 to recognize significant api changes and
device driver interface changes

experix api changes
-- These operators:    ==I ==0I !=I !=0I >I >0I >=I >=0I <I <0I <=I <=0I
   now make a 3-element result array, showing [ first index where it is true,
   last index where it is true, number of times it is true ].   
-- added a member to the amctrl array given to the amoeba command, to support
   the new function value convergence exit criterion
-- completed the gradient and projection command (amoeba/p), which had been
   described but not actually made operational
-- added the "random vector" optimizing method (amoeba/r)
-- in the FPRs command, added the fminconv member of amxblock_t to Crit array
   (test of this is pending)
-- very minor change in use of the LINE_ERRC macro in drivers: now put the
   line "#define LINE_ERRC" before "#include "../../source/xpxdif.h"" in order
   to turn off that feature.  Affected files:  source/xpxdif.h
   drivers/das16/experix__das1602.c  drivers/pcdas16/experix__pcdas16.c
-- FC6 gave us a new problem:  for some reason the pid that a device driver
   got from the kernel's 'current' struct was no longer equal to that recorded
   in gi_TIMERPID and provided for the XDC_CPID field in the control page
   during device initialization.  So we have eliminated this use of XDC_CPID,
   using instead a security value kept in the globalints array (gi_XDC_DCKEY),
   which the timer thread initializes equal to gi_TIMERPID.  The value in
   gi_XDC_DCKEY is given to the driver at initialization and then every driver
   call parameter list includes it for validation, in par[1], with parameters
   after that moved up one place in the argument array.  Affected files:
   all drivers, and source/xpxdif.h  source/xpxdif.c  source/threads.c
   source/defines.h source/globals.c  help/keywords.doc  help/xcd.hlp
-- order of returns in xdc/E has been changed; error line number is first
-- breakfunc() increments a counter in globalints.  This was added because
   gcc-4.1.1 did not put a call to the empty breakfunc() in Cquit_F, so the
   debug command was broken.  And this counter might possibly be useful.
   Affected files:  source/updown.c  source/defines.h  source/globals.c
-- '+' and '-' have been added to FPvalid (characters allowed in filepaths)
-- The exec and shell commands need a complete overhaul.  They often fail to
   notice termination of child process, and get stuck waiting.  Until we have
   a fix for this and some other issues, we can use sysdo/e in place of exec
   and sysdo/s in place of shell.  These do not wait on the child process or
   collect status, and they discard stdout and stderr (but with sysdo/s we can
   redirect those somewhere else). 
-- The \$l operator had an error that made it not detect the 'l', so that it
   did \$ and then the main command loop tried to to 'l'.  Fixed.
-- Exchanged the parts of Igsa[2], so that the left margin for a scaled graph
   is given by the lower part of this.  Affected files:  graph1.c, graph1.hlp,
   graftrix.xpx and other xpx files that use the graph command.
-- Revised the protocol for stepper motor operation using the XDX_PIO driver
   command (it was a total mess).  Affected files:  xpxdif.h and all drivers
   and user programs using this.

program reorganization and todo
-- Moved the 64-bit integer division function __udivdi3 out of daq drivers and
   put it in dist/drivers/hello/missing.c; code that does 64-bit division
   generates calls to this function so missing.ko must be loaded before such
   drivers (unless your kernel already has that function).
-- Re-wrote the stepper motor code according to new XDX_PIO specs and put it
   in dist/drivers/hello/missing.c; drivers that use this need to have a short
   XDX_PIO section like in experix__pcm308.c and missing.ko is loaded first.
-- The pcdas16 driver needs to be finished and tested.
-- Designated drivers/pcm308/test__pcm308.c obsolete; removed real__pcm308.c
-- Removed obsolete stuff from drivers/pport

source/amoeba.c
source/amoeba.h
help/amoeba.hlp
book/amoeba
-- added the function value convergence exit criterion: changes in amoeba()
   and Camoeba_F(), and amxblock_t struct
-- completed the gradient and projection feature (amoeba/p)
-- added an optimization method (amoeba/r) which chooses a random line through
   the initial point and uses parabolic extrapolation to estimate the lowest
   point on that line 

source/command.c
-- fixed the \$l operator-- it was failing to detect the 'l'

source/command2.c
-- StackComp() makes a 3-element array for the output of ..I comparisons

source/display.c
-- fixed dumb mistakes in formatting of 8-byte integers

source/files.c
-- fixed misbehaviour of "file/i":  incr=0 was resetting the field

source/graph1.c
-- increased the limit on data amount for the graph command
-- exchanged the parts of Igsa[2]

source/numbers.c
-- for ..I ops compop() counts the number of times a comparison is true

source/opclist.h
-- updated description of ..I comparison ops

source/updown.c
-- in Ctime_F added "edx" to the clobber list for asm rdtsc instruction
   (this is just fastidiousness; no difference in this instance)
-- revisited this:  failed to compile with gcc-4.1.1, so back to original
-- new command:  sysdo

source/xpxdif.c
-- in register_xcd, set FD_CLOEXEC on device files so that exec'd processes
   do not prevent removing the driver
-- in register_xcd, include a help message "device cookie." in the device
   cookie definition

source/xpxdif.h
-- revised the XDX_PIO command protocol for stepper motor operation

source/models/zdhist.c    (previously fida.c)
-- numerous revisions and extensions, mainly, ability to logically concatenate
   a series of Zeiss data files and to index to an arbitrary time slice in a
   file

source/models/zdhist.xpx 
-- new file:  commands for more complicated zdhist operations

source/models/fpr.c
source/models/fprs.hlp
source/models/fpr.xpx
-- added the new fminconv member of amxblock_t where needed
   (test of this is pending)

source/globals.c
-- added '+' and '-' to filepath-valid character set

drivers/hello/missing.c
-- new file, containing functions for 64-bit integer division and stepper
   motor operation

drivers/pport/pport22.c
drivers/pport/experix__pport22.c
drivers/prometh/prometh1.c
drivers/pport/experix__pport.c (formerly drivers/pport/experix__pport.c_2.6)
-- in interrupt handler added "edx" to the clobber list for rdtsc (2 places)
-- took out 'static' decls and did other stuff to conform to kernel 2.6 usage
-- numerous changes to conform to new xpxdif specification

drivers/pport/pport.xpx
-- command changes to conform to new xpxdif specification

help/file.hlp
-- removed extra "the"

help/graph1.hlp
-- exchanged the parts of Igsa[2]

help/in.experix.hlp
-- updated description of ..I comparison ops

help/ss.valuecmp.hlp
-- updated description of ..I comparison ops

help/keywords.doc
-- updated description of ..I comparison ops in compop() and StackComp()
-- updated validchar():  now allowing '+' and '-'

book/install
-- note about svgalib problem with FC6
-- note about gpm link problem with FC6
-- note about kernel headers needed in /usr/include/
-- note about possible signal use conflict between experix and svgalib
-- more explanations about help session vt #s with and w/o X-session on

book/amoeba
-- added stuff about fminconv, and re-worked the example

experix_helpers/dist/gpm/readme-gpm-wbm
-- note about link problem with FC6

experix_helpers/dist/gpm/synaptics.c
-- inlined the two calls to ceil() in order to remove mathlib dependency


Source: README_r3, updated 2007-07-08