Download experix_r4_dist.tgz2 experix_r4_book.tgz2 experix_r4_helpers.tgz2
Follow instructions in install_r4.
Actually, I'm pretty sure there are no real changes in helpers, so if you
already have that, don't bother installing it again. But there are __many__
changes in dist and book.
------------------------------------------------------------------------
changes since experix_release_r3 Sun Jul 8 2007:
------------------------------------------------------------------------
-----------------------------files changed------------------------------
All files have had the copyleft notice and version number updated.
These files have other changes:
------------------------------------------------------------------------
performance
source/amoeba.c
source/amoeba.h
source/array.c
source/array2.c
source/command.c
source/command2.c
source/defines.h
source/files.c
source/globals.c
source/graph1.c
source/numbers.c
source/opclist.h
source/updown.c
source/structs.h
source/xpxdif.c
source/xpxdif.h
source/models/zdhist.c
xpx/graftrix.xpx
xpx/mathtrix.xpx
xpx/ideas.xpx
help/children.hlp
help/keywords.doc
help/miscellaneous.hlp
help/ss.defercom.hlp
help/in.experix.hlp
help/segfunc.hlp
help/ss.comfiles.hlp
help/ss.localvar.hlp
help/ss.numerals.hlp
help/ss.unaryops.hlp
help/xcd.hlp
help/app/poker.hlp
drivers/poker.xpx
drivers/stepper.xpx
drivers/pcdas16/pcdas16.h
drivers/pcdas16/experix__pcdas16.c
drivers/pcdas16/Makefile
drivers/pcdas16/start_poker.xpx
drivers/das16/das160x.h
drivers/das16/experix__das1602.c
drivers/das16/Makefile
drivers/das16/start_poker.xpx
drivers/pcm308/pcm308.h
drivers/pcm308/experix__pcm308.c
drivers/pcm308/Makefile
drivers/pcm308/start_poker1.xpx
drivers/pcm308/start_poker2.xpx
drivers/pport/Makefile
drivers/hello/Makefile
xpx/calculus.xpx
xpx/vfc.xpx
book/miscellaneous
book/command
book/debugging
book/experix.manual
book/specialfunctions
----------------------------experix api changes-------------------------
-- made "0 <DT" perform one sched_yield
-- fixed the \= operator so that it works as intended on partially-filled
strings
-- added a new method to the segfunc command: segfunc/z makes a zig-zag
function and smooths the corners by convolution
-- added the (x operator: type-alter (not convert) a complex number or
array or variable to polar, or polar to complex
-- designated globalints[32] as data page size for drivers that allow/require
user to specify that in the driver registration procedure
-- the .mm operator computes the array sum (astats[5])
-- the new .sum operator gets the sum of elements (equivalent to .mm 5 \s [)
-- increased the number of local command pointers to 10, and number of local
command variables to 16. This is something that is trivial to set as
desired in source/defines.h, but it can now be expected that .xpx files
will start using the newly available variables, so it could become a
defacto standard.
-- a line starting with ;;sx ends command file execution
-- .X operator uses "truncate" rounding mode, so it gives the same result as
\c .T -
-- new command in graphtrix.xpx: 'bgraph2 makes a bold-face x-vs-y graph
-- zdhist returns an unexpected end-of-file error if the requested number of
data records is not available
-- For the amoeba function optimization method, new members are added to the
amxblock struct to count and limit the number of times that encounters with
the parameter value limits happen, and for the amoeba command this is
combined with the restarts limit in amctrl[3].
-- The FPR model (everything in fpr.c) has been taken out temporarily by
commenting the relevant entries in amoeba.h. It needs update and testing.
------------------------------File changes------------------------------
-- source/amoeba.c: Camoeba_F: took out erroneous copying of the function call
limit into [1] of the user's amctrl array
-- source/amoeba.c: fixed uninitialized variable error on fcode in Camoeba_F
which caused optimization calls to try to do mapping instead. I haven't
checked whether this error exists in any release.
-- source/array2.c, help/segfunc.hlp: added functions convolv() and zzfunc(),
and added the "zzfunc method" to the segfunc command
-- source/array2.c, help/ss.unaryops.hlp: in array_stats, made it do the array
sum for both .mm and .astats operators
-- source/command.c: submit_command: under "if ( cxa.cc[cu-1] == '[' ) {":
Added a line to diagnose condition "range==0" and abort there with the
-CEARG_BADVAL error code (previously it aborted there with no error code;
then the command loop re-executed the operator because the command
characters had not been eaten)
-- source/command.c: submit_command: made "0 <DT" call sched_yield once and
go on immediately with the command string
-- help/ss.defercom.hlp: writeup of this
-- source/command.c: fixed the \= operator: was using the current size, rather
than capacity of a destination string.
-- source/command.c: submit_command: added the (x operator (complex/polar type
alteration)
-- help/ss.numerals.hlp, help/in.experix.hlp: writeup of this
-- source/command2.c: unop(): for SUO_MMS, extracts the value sum from the
statistics array and puts that on stack
-- source/graph1.c: corrected an x- axis-scaling error for graphs of the type
"Fgsa Igsa data graph/s", which became apparent only for graphs of short
arrays
-- source/numbers.c: unop has a new case SUO_MMS for array value sum
-- source/opclist.h: added new op code SUO_MMS
-- drivers/poker.xpx and help/app/poker.hlp: Changed the definitions of
fppars members so that they refer to time in seconds since the start of the
poke rather than data array index. Made corresponding changes in the ap
command definition. Made the ap command also evaluate the sample stiffness
in two ways and put those results in fppars, which has additional members
for that. Updated explanation of clocksetting.
-- drivers/poker.xpx: Made "clocksetting/" do "xcd/Pc" (calculation only);
used this in runpoker to avoid redundant loading of the pacer clock
-- xpx/mathtrix.xpx more explanation
-- source/xpxdif.c had two errors where it tried to do pointer & number which
was diagnosed as invalid operands. Did I really fail to compile my changes,
or fail to notice that it produced errors? Next time be sure to remove the
old object file first.
-- source/xpxdif.c register_xcd: Added support for drivers that need the user
to specify the data page size via the XDX_GETDP command. This should not
break existing drivers; the size is given in the experix variable
globalints[32].
Made the help pointer and data pointer the same in the command definition
for a device cookie, and made minor corrections in setting up the CIdef.
-- source/globals.c, help/ss.unaryops.hlp: added the .sum operator
-- source/globals.c and source/defines.h: Increased the size of globalints,
and designated [32] as driver data page request size
-- source/defines.h: increased CSLOCPTRS and CSLOCVARS
-- source/xpxdif.h: Note designating a special XDX_TEST command for giving
switch and jumper settings of legacy hardware. Note about new use of the
XDX_GETDP command with XB_DO_IT: in drivers that support this feature, it
controls the data page size and may do the actual allocation, and possibly
re-allocation. Designated new control page flag bits to indicate this.
-- source/xpxdif.h: Moved the LINE_ERRC macro def into the kernel section, and
made it do a printk when DEBUG is #defined. It identifies the driver by
displaying the MODULE_NAME, and shows the line number. Therefore, the
must #define DEBUG and MODULE_NAME before #include xpxdif.h.
-- help/xcd/hlp: discusses user-specified data page allocation in the parts
on xcd/R and xcd/w
-- help/keywords.doc: register_xcd: explanation of user-specified data page
allocation
-- daq drivers in the drivers/pcm308, drivers/pcdas16 and drivers/das16
directories, and the .h, .xpx and Makefiles there:
Numerous bug fixes, cleanups, improvements, adjustments and so on. Read
the files. These are working with Fedora Core 6 (2.6.18 kernel).
-- drivers/stepper.xpx (new file): generation of stepper motor controls
-- book/miscellaneous (new file)
-- book/experix_manual, book/specialfunctions: some more work on the book
-- xpx/calculus.xpx Corrected discussion of interpolation errors, which had
been rendered incorrect by a change in the interp command; and added
pauses in pic1
-- help/miscellaneous.hlp, book/debugging: minor corrections and improvements
-- source/command.c, help/ss.comfiles.hlp, help/in.experix.hlp: A new command
file feature is introduced: ;;sx at the start of a line terminates the
executable part of a command file.
-- source/numbers.c: case SUO_FRAC is fixed to use the "truncate" rounding
mode, so that .X gives the same result as \c .T -
-- help/children.hlp: clarification
-- help/ss.localvar.hlp, book/command: more comments about the scope of local
variables and pointers
-- xpx/graftrix.xpx: correct the help for 'bgraph', and addition of 'bgraph2'
-- source/files.c: The %c and %s specifiers for "s ..." format read commands
got broken. Fixed now.
-- source/structs.h: added a convenience macro for addressing format2 items
-- source/models/zdhist.c: Added an error return for processing loop running
out of data before the requested number of records has been done.
Corrected the incorrect diagnosis of a terminal zero record as an error.
-- xpx/ideas.xpx: new file, containing things that need more work
-- source/amoeba.c source/amoeba.h new members in amxblock, and minor changes
in amoeba() and Camoeba_F(), as explained under api changes
-- source/amoeba.h: commented out the entries for FPR
-- help/amoeba.hlp book/amoeba minor corrections and clarifications, and
discussion of the new parameter-limit-encounter limiting system
-- new directory dist/obsolete for things that aren't being maintained enough
to be usable right now but may be useful later. Moved to there:
dist/drivers/mapper.c
dist/drivers/xpxdtest.c