1.9901
Christian:
- new faq
- few changes to the demos (especially replaced
'output ' with 'print' in the printouts; beginners might be confused
by the 'output' abstraction)
- new demo '3dgal' for the TriD Gallery
- install PDL::Graphics::VRML::Protos in the correct place
- fixed picrgb test to generate a warning when broken
tiff converters are encountered (patched source now included)
those who reported errors with this test please check again
after patch has been included
- make slatec clean rule more complete
Raphael:
- fix Slatec Makefile.PL to work with more stringent makes
- provide 'rint'
Tjl:
- change Copyright + files' copyrights
- new 3dgal stuff
- undo Slatec return -> exit: if slatec is not built, Lib/Makefile
didn't get built
Robin:
- fix typo in Makefile.PL
- add C<> in PG.pm
Jarle:
- better barf message for pdl((pdl 0), (pdl 1))
Gerald:
- typo in PP.pod
1.9900
- make perldl-documentation startup not depend on verbose
- '??' = apropos
- wcols (with Robin)
- fix the TriD demos a little bit...
- clip
- [xyz]linvals
- TriD doc bug fix: grabPIC3d
- vsearch
- FastRaw doc bug
- add to DEPENDS
- misc.pd typos
Karl:
- deprecate where($a), multidim $a->where($b)
1.98_02
Tjl:
- add maptextfraw
- allow even more flexible PDL::Type::new: let it be a scalar piddle.
- made stringize use listref_c for additional speed & avoiding
stack overflows and other nasty stuff.
- add scope.t to finally test for export stuff working and fix PDL.pm
to use $pkg (from Karl).
- undid the stupid glPolygonOffsetEXT fix, now it should finally work.
- default.perldlrc: set verbose=0 to stop too much waffling!
Karl [via Gerald]
- Makefile.PL: -I patch
1.98_00 [ was 1.98_01 originally ]
(!!! = possible source of incompatibilities)
Tjl:
- Various typos - for copyright notices, find ... | xargs perl -p -i.bak RULEZ!
- remake Demos subdirectory with reasonable content.
- new TriD demos in Demos/TriD
- keeptwiddling3d etc. into TriD exported, NAME CHANGE !!!
- hold3d parameter
- POLAR2D context for TriD
- document TriD::MathGraph briefly
- fix TriD/Graph.pm to not barf when several graphs were removed
- Fix mmapped piddle freeing for fastraw - now magickable.
- Fix howbig, zeroes, Types stuff to accept PDL::Type objects
instead of numbers in more places, e.g. FastRaw. fastraw.t updated
- Removed TriD/Vertices.pm Lib/DataPresenter.pm
- removed some of the old crud in Core.pm
- Made Pod scanner not look into Pod::Parser.
- lots of doc fixes, moving docs into the new format.
- mkhtmldoc.pl: emulate "mkdir -p" when installing
- Doc/Doc/Perldl.pm: allow e.g. 'new' to get 'PDL::new' to save typing.
- standardize "3-d", "3-D" and "3d" into "3D".
- Die on errors in evals in Basic/*.pm!!! (e.g. dynaloader unresolved
symbols are now brought to light).
- fix "GetHistory" bug by checking for "can".
- Remove PCARout & PCA, as not really useful in present form !!!
Robin:
- mconf.h osf warnings patch
1.96_01
- TJL's jumbo patch
- stuff into Basic/Math
- TriD/MathGraph, for display of graphs in three
dimensions, by finding an appropriate representation
via a molecular dynamics-type search
- Christian's clipping patch
- set -ve indice patch
- added my wcols() to PDL::IO::Misc
- Lite.pm bug (Shawn)
- Robin's mconf.h patch and Kaj's erfi.t test inserted
- Christians type() patch
- Christians const.c patch for IRIX
- added Christian's COPYING suggestion
- heroically went through and changed all the copyright messages
on the docs to conform to the new standard
- fixed (c) notice in Core.pm docs, others still need to be
done
- better explanation of GenericTypes and Pars in PP.pod
- improved scantree.pl (portable cwd).
- HTML docs!! - thanks to Christian's mkhtmldoc.pl (some changes)
into the distribution. included a hacked Pod::Html (from perl
5.004) as PDL::Pod::Html Still not great but gives us something
to work from. Some links still broken - patches welcome. See
file:/usr/local/lib/perl5/site_perl/PDL/HtmlDocs
for docs after 'make install'
- TJL's average() patch and primitive.t patch
- Docs now only built during 'make install' or 'make doctest'
(which builds them under ./blib), this saves them being built
unnecessarily during 'make'
- PDL::Slatec now works on any system with a f77 compiler.
All unused slatec functions were got rid of which fortunately
removed all the ones with COMPLEX arguments. Also changed
prototype generation which removes warnings on build.
Added local copy of ExtUtils::F77 back into dist and WITH_SLATEC
option to perldl.conf (undef by default for auto-decision).
- removed Example/PP - out of date
1.95_07
- applied Christian's mega-patch - but there were problems
I had to fix manually.
(a) his maga-patch didn't include the patch to pdl.h he had
already made.
(b) the change should have been made to pdl.h.PL in any case.
- fixed NAME in Indexing.pod
- may have fixed executable install problem of 'perldl' shell
- fixed PDL.pm being lost from docs db
- Robin's problems 'compiling pdl 1.54_06 Basic/Math' patch 17/12/97
Rejected because of following error (Linux/gcc)
const.c:80: parse error before `3.14159265358979323846'
const.c:99: parse error before `__extension__'
const.c:99: parse error before `}'
Can the patch be revised?
- Robin's at() accepts -ve indices patch. Can we have set() to?
- removed 'docscan' and 'pdlhead2item' from MANIFEST - OK ?
1.95_06
KGB
- FITS patch
- restored cc8compt fibonacci from pdl-porters archive (!)
- fixed misc module name problems in tests (thanks Bob!)
- Robin and Christian's help patches
- Robin's Object.pod patch
- Achim: chmod 0755 on Doc/*.PL,
- Achim wanted pdldoc.db in archlib, ignored this (don't understand
why)
- put fudge in ops.pd to get rid of that stupid compiler warning
with abs() and byte/ushort types
- rebuilt MANIFEST hope it is OK now
- introduced new barf(...) routine in Core.pm and pdlcore.c
[see help barf]
we should use barf(...) in C and Perl code instead of croak etc.
Note the barf engine is written in Perl, so is easy to customize!
- changed references to 'croak' in pd/xs/c code to barf(..)
or Perl_croak where appropriate
- changed references to 'croak' in various .pm files to barf()
where appropriate
- croak #defined to barf() in pdlcore.h to catch the use in
xsubpp (..fingers crossed..). Perhaps future xsubpp will allow
an override of this.
- renamed PDL::Io:: heirarchy PDL::IO:: for consistency with Perl IO::
1.95_05
KGB
- Renamed PDL.pdl_make_physical PDL.make_physical (woops!) - ditto
physdims().
- Changed type config. Now Types.pm pdl.h pdlsimple.h are generated
AUTOMATICALLY from Types.pm.PL pdl.h.PL and pdlsimple.h.PL
files using perl Config information. int size issue is now handled
from perl config information. Lots of potential for more flexibility.
Hope this doesn't break Alpha stuff by mistake!
- Revised PDL::CallExt. Now uses make_physical rather than PP and allows
unlimited args in the same way as PDL-1.11. Ought to be more compiler
friendly too! Put callext.t back.
- Added 'dog' and 'cat'
1.95_04
KGB
- Added glEnable/DisableClientState to dontfunc in OpenGL
- Doug: added fake MAIN_ to cfft.f in Slatec for old g77s
- Achim's patches of 4/12
- my IIS changes
- Robin's random and Inf/NaN patches of 4/12
- Christian: 'minor doc polishing Core.pm+primitive.pd'
- Christian: INSTALL patches.
- Christian: 'docs in Doc/Doc/Perldl.pm'
- Robin's minor perldl docs patch
- Restored my missing hist() patch and test of Oct 10th (sic)
- Achim's suggestions on help 'help' and help 'perldl', '?' and
allow no quotes (with warning)
- Added solaris_2 hints file for OpenGL
- Robins perldl pod patches but NOT 'l' as a synonym for 'last'
(I don't like this as 'last' is a perl keyword)
1.95_03
KGB:
- Various small changes to TriD/test*.pl scripts. Renamed as *.p
- minor TriD changes to comply with new zeroes() etc.
- moved tests all into one top level t/ directory.
- corrected PDL::initialise and convert (Christian)
- Robin's primitive.pd patch
- callext.t temporarily disabled - I will rewrite the module.
- Minor changes to 'Doc'.
- TriD renamed to PDL::Graphics::TriD
1.95_02 [emergency bug fixing release]
KGB:
- Redid all the zeroes/ones/[xyrz]vals/[g]random/sequence stuff
someone please please give me some objective advice :-)
- Added Robin's new FFT
- 3 byte change to Pnm.pm for new zeroes()
- added make_physical and make_physdims to PDL struct
1.95_01
KGB:
- Added Cephes code to PDL::Math as backup, changed signature of
jn, yn.
- changed scalar convesion in pdlcore.c SvPDLV() - '2.0' is now
double, '2' is now int. [Uses SvNOK SvIOK etc] - changed
Basic/t/conv.t to comply.
- Added magic {PDL} = code ref hook. And put test/example in
subclass.t
- random() is now like zeroes() and both allow type/dim and
$x template arguments. New arg proc. method to support this.
- Added grandom().
- Ressurected PDL::Exporter (q.v.). Much simpler than bizarrity
in PDL-1.11. Now 'use PDL::Mod' defaults to loading ':Func'.
Provision for noimports. Less typing!!!! Modified docs too.
- Renamed PDL::Graphics::PG PDL::Graphics::PGPLOT
- Reverted to manpages named PDL::FAQ.1, PDL::Dataflow.1, etc.
This is simpler and maintains consistence between manpage
and pod browsers. Fixed all the text links to comply.
- small changes to Pod/ docs.
- shut PP the hell up! Much less scary build now.
- added Pods to files scanned in building doc database.
- [xvyz]rvals now act like zeroes - but they now act like
constructos so $derived->xvals does not give you what
you expect. Need to think about this some more.
1.94_09
KGB: NOTE ONE MAJOR INCOMPATIBLE CHANGE [random]
- removed PDL_OPTIONS - PDL_CONFIG for everything. I think this is
better, e.g. if we want debugging we can add Debugging=>1 to
%PDL_CONFIG.
- changed use of PDL_CONFIG - see INSTALL. I think this is simpler.
- made Karma conform with above - and simplified.
- changed Callext arg limit to 10 to avoid compiler explosions.
- integrated PDL::Doc, created PDL::Doc::Perldl.
- manifying is now back from the .pm file rather then the .pd
(this is a better design now pod are semi-generated from PP)
- Christian's patches of 25/11/97:
'Core.xs and pdlapi.c'
'test' for Io::Pic
- added docs for Doc field in PP.pod and made one-line a special case
- Moved statistical functions from Basic.pm to Primitive.pm
- Lots and lots and lots and lots and lots and lots and lots and
lots and lots and lots and lots and lots and lots and lots and
lots and lots and lots and lots and lots and lots and lots and
lots and lots and lots and lots and lots and lots and lots and
lots and lotsof miscellaneous docs.
- Robin's browser patch of 26/11
- Core now completely OO - i.e. none of the stuff below Basic/ export
routines to each other and it still works!
- changed occurences of foo(sig) to use '=for sig' as this seems to
work better with Pod::Parser.
- made random $x=random($y), i.e. to get inplace now random(inplace $y)
OK?????????? This is because I think it is natural to say
$r = random(zeroes(10,20,2)), etc.
If this is a major headache let me know and I will change it back.
- Docs => undef allowed - no PP docs at all (not even the sig)
- Various changes to Docs.pm and Docs::Perldl.pm - apropos text searches
now include module names and one-line desriptions. God I love this
language.
- Renamed Iutil module as ImageRGB - hope this is OK???
- changed name of 'inv' to 'matinv' in Slatec for consistency
with matmult in Primitive.
1.94_06
Christian:
- lots of things.
Robin:
- add type to PdlParObj.pm
Achim (req):
- Version to Core.pm
Tjl:
- New configuration.
1.94_05
... Not recorded. Real threading for example.
1.94_02
Lots of changes by everyone, e.g. FFT, Browser, ...
1.94_01
Christian:
- simplescaler
- VRML !!!
Achim:
- misc.t patch
- Browser hints
Karl:
- autocreation memleak patch
Robin:
- flexraw test correction
Jarle:
- Ops.pd: prevent creation of -0
Tuomas:
- Core bug fixes for e.g. $a->slice("...")->index(...) .= foo,
originally reported by Christian.
- mandel.pl demo
Others??
1.94
Kgb:
- Autoload patch
- subclass fixes: pdl_destroy + test.
- sethdr + gethdr ref counts
- rfits/wfits update
Christian:
- where etc.
- imag3d without lines
Kaj Wiik:
- tsimp.pl use correction
Achim:
- Tk patch
Tjl:
- Change PP.pm to really allow Pars => 'a(tri=>3)' to happen.
Embarrassingly, this was a one-liner.
- OpenGL libs changed to take both GL and MesaGL.
- openglq.pd: use tri=3
- rout.pd ditto
- TriD.pm: documentation updates & 'LINE' as context
- Graph.pm: coordinate axes labels!
- test7.pl: some niceties.
- make the thread incs etc. into register variables.
this should, with a good compiler, result in some speedup.
- primitive.pd: histogram -> histogram + whistogram,
more thread-friendly.
- correct foo.t
- TriD: add imag3d_ns (no surface) and minor twiddling.
1.93_06
Kgb:
- PP: use PDLOBJ for the stub subs.
- Basic.pm: sec, ins fixes - use "int" to ensure type of coords.
- PG.pm fixes
- IIS fixes
Achim:
- ws fixes for docs, pptest.t
- "small perldl fixes"
Tjl:
- start making support for piddle-controlled (e.g. affine)
transformations by using magic.
- Core.xs: setdims should now work with dataflow properly.
- Core.xs, pdl.h, pdlapi.h, PP.pm: add support for
foofunctions and PDL::Trans objects. These are a very basic way
of accessing the internals of transformations so that
in the future, as the mechanism is improved,
you can e.g. change your slice from outside.
The current level of support is enough to make a routine
that takes a slice of one dimension and is given offset and
increment and n in that.
- TriD:
- add test8.pl to demonstrate an use of foofunctions.
- document OpenGLQ and Rout
- add gl_triangles_n for shaded triangles
- TriD.pm:
- realcoords: add more contexts
- make the default routines all plot a graph
- GL.pm:
- add glPolygonOffset call to GL::Window in order to
get good-looking imag3d always
- change the colors to somewhat lighter ones.
- delete_viewports -> clear_viewports (like clear_objects)
- new argument to twiddle
- Graph.pm:
- default names for dataseries
- waffle less
- support changed dataseries
- Image.pm:
- use realcoords COLOR context
- Lines.pm:
- start deprecation by renaming package
- Objects.pm:
- realcoords support better by r_type
- waffle less
- SLattice_S to draw shaded lattices
- tests changed somewhat.
- Core.xs: remove pdl_unpackint unnecessarity
- Basic.pm: make axisvals return zeroes if not enough dimensions.
- Opt/Simplex/Simplex.pm: add support for temperature a la
Numerical Recipes.
- (Christian) - remove Data::Dumper from FastRaw.
1.93_05
Tjl:
- PP: several changes, basically inline *size and *incs into
register variables to speed up execution.
- TriD:
- add TriD/Rout for misc C routines for TriD
- add a routine to do flowing combination of 3 piddles into
coordinates or colours
- this makes the test3.pl data_changed stuff work again.
- imagrgb now defaults to a whole-window image - no reason
to make it rotatable with the mouse.
1.93_04
Tjl:
- TriD: add stuff for Tk
- OpenGL: ConnectionNumber
- ButtonPress + Release: more info back
- TriD.pm: add export imagrgb
- Control3D: small changes + TriD::Tk::post_menu
- GL.pm: ConnectionNumber support for Tk eventloop
- Graph.pm: minor changes
- Image.pm: major changes, make multi-D images actually work.
also, support for different multi-D background color.
***** NOTE: calling convention now same as with coordinates!
this means an incompatible change.
- added Tk.pm, rudimentary support for a menu of actions
associated with the displayed 3D graph. Currently, can save
the image.
- test3.pl: change to new imagrgb calling sequence.
- GoBoard.pm: ditto
- test6.pl: test the Tk functionality.
- testimg.pl: really test the multidimensional picture facility
with an 8-D tricolor picture.
- Io/Pnm/Pic.pm: use the new 'Func' convention
- perldl.PL: new '-tk' option to use Tk and the Tk event loop.
1.93_03
Tjl:
- TriD:
- Change default controller to ArcCone
- Graphs with axes!
- PP:
- EquivDimCheck now honoured
- iis.pd: #undef Generic
- OpenGL/Makefile.PL update + generate.PL tuning
- Browse: manpage twiddle
1.93_02
Tjl:
- Core/Basic.pm: use PDL::Core qw/:Func/;
- Core/Core.xs, pdl.h, pdlapi.h: hdr stuff (untested)
- Core/Core.xs: bugfix threadover_n to make_physical
- Core/pdlapi.c: pdl_destroy will not destroy if an affine trans the
child of which hasn't been allocated exists.
- Core/pdlapi.c: pdl_changed will not try to do overeager
optimization. Fixes flow.t bug
- Basic/t/flow.t: enable again the tests that now work.
- Gen/PP.pm: new '$a = inner($b,$c)' changes.
- Slices/slices.pd: splitdim checks arguments
- Basic/t/thread.t: semi-add new test
- Graphics/TriD/OpenGL: new PDL::OpenGL module to enable virtualization
- Graphics/TriD/OpenGLQ: a test for TriD virtualization of OpenGL,
this will later on expand a lot
- Graphics/TriD/TriD.pm & TriD/*: new docs, small changes.
- Io/Fastraw/FastRaw.pm: don't waffle when mmapping
- MANIFEST.SKIP: add more ignorable stuff
KGB:
- Fixed multiple 'use PDL' etc problem for loaders.
- "use 5.004"
1.93_01 (Kgb) MAJOR CHANGES
- these are very significant and affect code throughout the
system so EXPECT problems. In particular note that this code
is the new PATCHBASE.
- NEW IMPORT/EXPORT system
PDL_OO.pm now deleted.
PDL::Exporter is DEAD and gone!! (hooray)
All modules now define their functions in package PDL.
The idea is a PDL::Module now looks like this:
package PDL::Module;
@EXPORT_OK = qw( sub1 sub2 ...);
%EXPORT_TAGS = (Func=>[@EXPORT_OK]);
@ISA = qw( Exporter ... );
*sub1 = \&PDL::sub1;
sub PDL::sub1 { ... def ...}
# If you wanted to do something special (e.g. a constructor) you can:
sub rfits(PDL->rfits(@_)); # This gets exported
sub PDL::rfits {
my $class = shift;
# etc...
}
i.e. the onus is entirely on the module writer.
Thus saying 'use PDL::Module' will load (cheaply) PDL methods.
If you want to (less cheaply) import functions say 'use PDL::Module qw/:Func/'
PP has been modified to generate modules which follow this scheme. i.e. by
default it stuffs its functions in to the PDL namespace, and writes stubs
'*sub1 = \&PDL::sub1;' into the PM file. This can be changed at whim
however. There is a new pp function - pp_bless('MyObj') which will change the
default package from "PDL" to 'MyObj' in anticipation of future
Object-Oriented PP modules. (Up to the author how he writes his module).
Also the pp_def(PMFunc=>'...') attribute can be used to generate special
purpose PM code instead of the default.
Comments please, hopefully nice ones as I have spent all day changing
code everywhere and debugging!!!
- Karl (exhausted)
- Module defaults
PDL.pm now loads a set of standard packages (with :Func) - including graphics
and I/O for TPJ article and v1.11 compatibility. Thus a script with 'use PDL'
is v1.11 compatible (modulo bug fixes!)
Lite.pm loads only the truly fundametal core, with no imports, for method
speed freaks. Thus a lean script need only say 'use PDL::Lite' plus whatever
else it needs.
I hope various other sets of meta-modules (PDL::Astronomy, PDL::Medical) etc
will follow this simple scheme. Basically there is nothing sacred about
'use PDL' anymore - it is just one of many loaders.
- perldl shell
The 'perldl' script sources C<~/.perldlrc> if present or falls back to
C<PDL/default.perldlrc>. The latter just does the standard 'use PDL'
Thus by creating a C<~/.perldlrc> you are free to 'use PDL::Lite' or
whatever set of modules you fancy without impinging on v1.11 compatibility.
I think this is a rather elegant solution to all our aesthetic tastes
(namespace polluters vs method maniacs, module hoarders vs leany
meanies) while still ensuring script compatibility with v1.11.
I hope everyone is happy with this!
- Fixed minor bug in FlexRaw
1.92_10: 'make test' ok but see flow.t
- PATCHBASE reset to zero
(KGB)
- new wfits() with BITPIX support and clever BSCALE/BZERO - PLEASE TEST!!
- added Robin's PDL::Io::Browser
- Robin's 'cutmask' function (need PP version!!!) - needs docs SOMEWHERE!!
- string() no longer make_physical()
- added mslice and test (slice.t)
- lags patch (Jun 29)
- extra tests to flow.t which FAIL, currently disabled as
'make test' then stops early.
- added some tests of simple ops and functions
- moved all the 2D routines (med2d etc) into PDL::Image2D
- Inserted new TriD 16/Jul (untested)
- tjl's 'IMPORTANT: Just let me eat my words once more today' patch
- applied tjl's 'minorities' patch - ext modules now seem to work
- fixed rfits/wfits bugs, added gzip/compress support via suffixes
- increased size trap in pdlhash.c to 1Gb
1.92_09:
- applied Tuomas' Simplex patch
- applied Robin's patch: SlowRaw -> FlexRaw
- added PDL::Io::Pnm and PDL::Io::Pic (+PDL::Lib::Iutil) to
support image I/O based on pbmplus/netpbm (+ wmpeg based on
mpeg_encode)
- PDL::PP - $TBSULFD(B,S,U,L,F,D)_func now expands to
B_func, S_func, etc *without* intervening whitespace
- byte+ qualifier to make a pdl a "typeslave"
- dispensed with Pthread.pm, thread_define now part of
PDL::Core
- new PDL::Dbg
1.92_08:
- ops.pd debugged
- FastRaw doc patches (TJL)
1.92_06/07:
Applied the 41(!) missing patches. See file KGB.1.92_06_TO_1.92_07
- numerous small changes.
1.92_05/06:
- Rudimentary perl level threading; see documentation in Pthread.pm.
- Diagonal patch
- workaround for slice and clump to *not* leave trans in
a too ill-defined state when croaking (previously sometimes
coredumped upon destruction (as reported by Karl), see tests
in croak.t).
- Karl's zeroes patch.
- Matmult in primitive.pd.
- history mechanism for perldl.
- PDL::PP : type+ qualifiers, int, float and double now supported
$GENERIC, $SIZE, fixed $P vaffine bug, [t] now does
something, set named dimension from an 'OtherPars', i.e.
OtherPars => 'int nsz => n'
- primitive.pd : added histogram + interpol
- Basic.pm : added hist
- new file tests.pd in Basic/Test to hold tests for PP features
- updated indexing.pod, PP.pod and FAQ.pod
- Lib/Makefile.PL : only build slatec stuff if we have f2c (until we
get a Makefile that works with ExtUtils::F77)
- Dev.pm : change postambles so that C files built from .pd's will be cleaned
1.92_04:
Lots of patches from people installed. If I forget someone's
attribution, please remind me.
1.92_02:
Vaffining. Just about everything should work now.
New library files that don't work properly yet.
1.91_01:
Perldl: don't use blib unless have to (eval).
Hashes done away with: $a->{...} doesn't work.
It was impossible to get both that *and* a reasonable
assignment behaviour.
1.91:
Bug fixen
New PDL::PP
The perldl shell now aborts on <EOF>, q and Q.