LARD is now being maintained by the team of:
No change in environment variables is required from version 2.0.12. If you are upgrading from older versions of LARD (or using LARD for the first time) do this:
LARDHOME=/home/amulinks/lard/2.0.13 BINFMT=`${LARDHOME}/bin/common/lard_bin_fmt` export LCD_OPTS="-lio -lchannels -ltime" export PATH=${LARDHOME}/bin/${BINFMT}:${LARDHOME}/bin/common:${PATH}
forseq_in_do_ now works the same way it did in all versions from 1 to 11. Also added forseq_in_step_do to allow reverse and variable increment counting.
Added the function fsetunbuffered (which does a setbuf (..., 0) on a binary file descriptor) and changed bopenout to allow connection of binary streams to pipes.
lardpos returns a string representing the position in the LARD code (with debugging on) when it was called. warning can be used to issue non fatal runtime warnings (which may in later versions be logged and presented in interesting ways).
The file type nbfile and the functions nbopenin and nbfread allow input from files (pipes really) which doesn't block the LARD scheduler.
`Notebook' widgets are used to reduce the clutter of separate windows. The time view and channel selector are now in one window, as are the source view and threads windows. LARD now requires the BWidgets widget set in order to be built.
Setting the variable perpetual (e.g. perpetual := true) prevents the scheduler from reporting Program Terminated when no channel/thread activity is scheduled. This is useful for preventing a program using non-blocking I/O from terminating while the input loop is the only thread runnable.
The parsedata string parser now allows C style number prefices to be used (0x for hex, 0b for binary). The leading-zero octal prefix is only recognised when the input radix is set to 0 or the %i format is used.
LARD should be more portable and easier to install. Unfortunately LARD still only works correctly on machines with 32 bit architectures. (sizeof (int) == 4 && sizeof (void *) == 4)
I have improved the functionality of the tviewps (plot) module. You can now specify a scale factor, and if you have more traces than will fit on the page the plot will be broken into multiple slices.
You can now pass arguments to the lard code itself from the li command line. Simply append the arguments to the command line, separated from arguments to the li binary by the argument --end.
(foo(T:type):expr(T)=foo(T)).null