1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797
|
0.6: initial release
0.6.1: made GDL compile with g++ 3.3 (datatypes.hpp)
0.6.2: fixed bug with # and ## operator (basic_op.cpp)
added -I.. cpp option (Makefile.am)
0.7: added graphic support (PLOT, WINDOW, WDELETE, SET_PLOT, WSET)
some small bug fixes.
0.7.1: added 64 bit integer support (LONG64, ULONG64)
added python support (PYTHON function and procedure)
completed type functions for all types (ULONG, UINT, ...)
completed INDGEN and INTARR functions for all types
New library routines: SYSTIME, LEGENDRE, MACHAR, FFT, TVLCT,
MAX, MIN, TOTAL, ARRAY_EQUAL, CATCH, ON_ERROR
Library routines written in GDL (check out *.pro files not
starting with test_)
several bugfixes: conversion between BYTE and STRING.
GOTO within IF statement.
Memory leakage concatenating struct arrays.
0.7.2: Bugfix: dereferenced pointers are now passed by reference
0.8: added netCDF support.
several new library routines.
support for .COMPILE command.
Improved formatted and unformatted output.
Improved configure script.
Extended and cleaned up the API for library routines (envt.hpp)
Fixed: GOTO,undefined_label made GDL crash.
Several other bugfixes.
0.8.1: Updated the configuration files (automake).
0.8.2: added HDF support.
added support for several image file formats.
changed the code and configuration files to make GDL build
also on Mac OS X.
bug fix for TRANSPOSE function.
0.8.3: now netCDF and HDF can be used together (there were linker
errors in 0.8.2).
updated some obsolete commands in configure.in
more complete HDF support.
added DEFSYSV procedure.
addef CONJ and IMAGINARY functions.
0.8.4: introduced _STRICT_EXTRA
solved remaining problem of using netCDF and HDF together.
HELP now reports variable names correctly.
the line continuation operator ($) is now also recognized in
interactive mode.
Added SORT, UNIQ, SHIFT (1 dim only), STRTOK, FILE_TEST, CD,
HISTOGRAM and REFORM function.
Added LOADCT, CD and TV procedure.
Basic HDF5 support.
0.8.5: Fixed bug in STRING with PRINT or FORMAT keywords set.
Fixed bug in STRMID with 3rd parameter undefined or not given.
Added MESSAGE procedure (some keywords not enforced)
Added FILE_SEARCH, ARG_PRESENT and EOF functions.
Fixed bug in AssignAt functions.
Fixed subtle bug concerning arrays() and function() which
made GDL not recognize library functions when identifier was
used before as array.
0.8.6: Added CONVOL function (very fast).
Added EXP function.
Added JOURNAL procedure.
Completed SHIFT for multiple dimensions.
HISTOGRAM now supports REVERSE_INDICES keyword.
HELP,/LIB sorts now the output.
Made # and ## operators IDL conforming for 1 dimensional arrays.
N_ELEMENTS now returns LONG (before ULONG)
0.8.7: Support for GDL_PATH (falls back to IDL_PATH) environment variable.
Added EXPAND_PATH, ARRAY_INDICES, REBIN, LEGENDRE, IGAMMA,
LNGAMMA, BETA functions.
Added OPLOT procedure.
Bugfixes for ATAN (with 2 floats), CONVOL (1-dim kernel),
MESSAGE (prefix).
0.8.8: Added OBJ_CLASS, OBJ_ISA, N_TAGS, SWAP_ENDIAN, BYTSCL functions.
Added PLOTS, XYOUTS (both 2D only), BYTEORDER procedures.
Improved FFT.
OMIN,OMAX keyword support for HISTOGRAM.
Fixed braced reference argument bug.
Changed equality checking to compatibility checking for
struct array definitions.
Added structure compatibility check for assignment to struct
arrays.
Fixed offset bug for conversion functions (BYTE, FIX, ...).
Fixed libfunction returning parameter bug.
Fixed AND, OR operator bug.
Fixed TVLCT bug.
@file now honors !PATH.
Changed configure.in to support python on OS X (fink)
Added SETENV, STRUCT_ASSIGN pro.
Added GETENV, STREGEX, TAG_NAMES functions.
Minor adjustments of default output (no FORMAT keyword).
Widen struct tag name rules: "!", "!$" and "!TEXT" are
allowed.
System variables can be named "!$", or "!$TEXT".
0.8.9: Added SPAWN, WAIT procedure.
Added FINITE, ROUTINE_INFO, TEMPORARY functions.
Added DIST function and TVSCL procedure (as .pro files).
!EXCEPT system variable.
Changed common block compilation.
Allow RETURN as jump label (remove it from reserved words)
Allow library functions to return their own parameters if used
in a return statement.
Allow library functions as l-functions.
Fixed assignment to indexed array at one position (insert at) for
indices which are 0.
Cleaned up Compiler/Interpreter.
Added NAN keywords to BYTSCL, MIN, MAX.
Added SUBSCRIPT_MIN/MAX keywords to MAX/MIN.
Added NTOHL, NTOHS, HTONL, HTONS keywords to BYTEORDER.
Added z-buffer device
Fixed MOD division by zero for integers.
Support for files with main programs.
Fixed COMMON and GOTO for interactive use.
Added .RUN command
True color support for TV (X-device).
0.8.10: Optimization (~10%): Arrayindexing, non-copy constants,
Complex (pow, abs).
Optimization (>200%): Dedicated ProgNodes for compiled programs
Fixed RETURN statement in FOR loops.
Made GDL buildable as a python module.
.RUN handle files without subroutines.
GCC 4.0 compilance.
INTERPOLATE function.
Fixed eof detection on input.
Implemented strided index support.
Improved raise to power (^ operator) for integer types.
0.8.11: Added CONTOUR procedure.
Added CREATE_STRUCT, RADON, LAGUERRE, STRCMP, GAUSS_PDF, GAUSS_CVF
functions.
Added STRUCTURES keyword to HELP.
Added NAN keyword to TOTAL.
Sub-millisecond resolution for SYSTIME function
Added !DIR system variable
Much faster array indexing.
Much faster operators (+-/*^...)
Faster FFT (requires FFTW library: http://www.fftw.org/download.html)
0.9: Added HEAP_GC, PRODUCT, FILEPATH, MEDIAN (no filtering), READ_ASCII,
PUSHD, POPD, PRINTD, PRIMES, NORM, T_PDF, POLY_2D routines.
Support for SAVE and RESTORE through Craig Markwardt's CMSVLIB library.
Added SMOOTH and DERIV as external functions.
Full support of ON_IOERROR
Full support of F77_UNFORMATTED.
Support for XDR I/O.
Fixed positional index (value and dimension) returned by STREGEX.
HELP without parameters and keywords puts out a list of all local
variables as well as compiled procedures and functions.
Add support for PROCEDURES & FUNCTIONS keywords in HELP
Made GDL compile under x86_64 linux.
Fixed incompatibility with # operator and one-dim vectors.
Speedup for ^ operator for integer types.
Speedup (>100x!) for REVERSE_INDICES of HISTOGRAM.
Implement INPUT keyword in HISTOGRAM.
Support for non-rectangular (x,y 2d arrays) calls to SURFACE and CONTOUR.
Support for DICOM files (GDLffDICOM object).
INTEGER keyword for TOTAL.
Add support for variable-length VMS files.
Add support for CHANNEL keyword in TV/TVSCL.
Add support for TRUE/CHANNEL keywords in TVRD (X only)
Add support for DIMENSION keyword in FFT.
Add REGEX keyword support to STRTOK.
Add preliminary support for MPI.
Add initial support for SOCKET.
Preliminary support for map projections. (requires libproj4 from
(http://members.verizon.net/~vze2hc4d/proj4/lbp4_050319S.tar.gz)
Add initial support for BESELI, BESELJ, BESELK and BESELY but only for
integer order due to limitations of GSL Bessel functions
Added Erf() [and Errorf() for compatibility], Erfc(), Expint(), Gaussint().
Fixed I/O of Gamma(), Igamma(), LnGamma() and Beta()
+-Inf now managed in MIN and MAX (if called with /Nan)
NaN and +-Inf now properly managed in PLOT, OPLOT, PLOTS
Speedup in PLOT, OPLOT, PLOTS for large data sets (see test_plot_benchmark.pro)
Add 6 linestyles (via !p.linestyle or keyword) for PLOT, OPLOT, PLOTS
Improved memory management.
Improved new implementation of struct arrays.
Management of an history (ASCII) file save in ~/.gdl/history (with memory of previous sessions)
Add initial CURSOR, limited but functionnal (know
limitations documented in program) and !mouse
0.9rc1: fixing memory leak in FFT when using FFTw lib.
fixing FACTORIAL (GDL syntax)
add SKIP_LUN (used by Astron Lib.; GDL syntax)
add VOIGT() function (in C++) based on Wells' paper.
add REAL_PART() function (GDL syntax)
add RK4() function (in C++)
in CONTOUR: throw when levels= are not ordered, manage NaN
and Inf values, add Nlevels= and /Fill
Two new projections in MAP_SET: Satellite and Robinson
Preliminary version for Width parameter in MEDIAN()
initial import for SPL_INIT() and SPL_INTERP() (GDL syntax)
0.9rc2: undocumented BYTSCL accepting three parameters (value,min,max)
g++ 4.3 compatibility
ignore something like a=(a=a) (so it is allowed even if a is undefined)
accept self assignment of undefined variables
fixed print, ', ', FORMAT='(A)'
Add SUBEXPR keyword support for STREGEX
Add S_FUNCTIONS/S_PROCEDURES keywords for ROUTINE_NAMES
in MEDIAN(), managing "width" parameter
precalculation for (selected) constant parmeter functions.
precalculation for constant arrays composed of constant expressions
precalculation for constant expressions and constant arrays, a major improvement
speedup for constant arrays
add FILL and NLEVELS for CONTOUR
Initial import of RK4
initial import of codes for function VOIGT
initial import of function REAL_PART in GDL syntax
allow floats without exponent number like 1e
FACTORIAL correcting bug when inputs are Integers; managing arrays
Made for READ_ASCII DATA_START independent of HEADER
0.9rc3: interpreter:
- corrected GOTO out of loops within outer blocks
- corrected array to tag of struct array assignment
- $: fixing two segfault conditions when SHELL or HOME env. variables not set
- allowing tag names with leading '!'
- imroved DataListT an empty procedure call by extimated 40%
- detecting change of type of FOR index variable
- allowing common blocks outside subroutines
library routines:
- ATAN: precision fixes (atan(float, float) -> float(atan(double, double))),
/PHASE keyword support, array-scalar argument combination support,
two-complex-arguments case support
- BESEL*: non integer order, X neg, Complex, and better management of arrays dimensions
- BETA: better management of the dimensions of output arrays
- BROYDEN: initial import
- CALENDAR: initial import
- CALDAT: initial import
- CD: avoiding segfault on OSX (wordexp() bug)
- COMMAND_LINE_ARGS: initial import
- CONTOUR: avoiding plplot error messages when filling,
fixing segfault when contouring NaNs,
smarter contour-level choice,
partial labelling support
- CREATE_STRUCT: accepting excl. mark as a first char of a tag name
- EXIT: fixing segfault if HOME env. var undefined
- EXPINT: better management of the dimensions of output arrays
- FILE_INFO: initial import
- FILE_LINES: no longer calling awk to parse wc output
- FILE_SAME: initial import
- FILE_SEARCH: support for FULLY_QUALIFY_PATH kw.
- FILE_TEST: handling /NOEXPAND_PATH keyword
- FFT: Fix /OVERWRITE with non-global parm bug (FFTW), fix auto_ptr bug with DOUBLE
- FLUSH: initial import
- GET_DRIVE_LIST: initial import
- GET_KBRD: reading only one character (setting stdin to non-echo and non-canonical mode)
- GET_LOGIN_INFO: initial import
- HISTOGRAM: fixing inclusive ranges definition
setting OMIN/OMAX type according to the type of input data
binsize = (max - min) / (nbins - 1) when NBINS specified with neither MAX nor BINSIZE
LOCATION keyword set correctly when HISTOGRAM called with NBINS and without BINSIZE or MAX
- HELP: reporting structure data lengths, /MEMORY keyword support
- IDL_BASE64: initial import
- IGAMMA: better management of the dimensions of output arrays
- IMSL_CONSTANT: initial import (using UDUNITS-2)
- IMSL_ZEROSYS: initial import
- LL_ARC_DISTANCE: initial import
- LOCALE_GET: initial import
- MAKE_ARRAY: /PTR & /OBJ keywords, /INDEX keyword support for strings
- MAKE_ARRAY: keyword name changed from INT to INTEGER
- MAX: DIMENSION keyword support
- MIN: ditto
- MEDIAN: memory leak fix + change DIM into DIMENSION
- MEMORY: initial import
- MOMENT: MAXMOMENT kw support + update of the documentation header
- N_TAGS: rename keyword /LENGTH to /DATA_LENGTH
- NCDF_ATTGET: code cleanup + fixes
- NCDF_ATTPUT: fixing invalid keyword numbering
- NCDF_DIMINQ: accepting long integers as file and dimension ids
- NCDF_VARGET: 64-bit fix (SizeT->Dlong for transposed_dim_length[])
reading text data
- NCDF_VARGET1: reading text data
- NCDF_VARPUT: fixing random behaviour due to type mismatch (size_t -> int),
fixing uninitialized variable bug
- NEWTON: initial import
- OPENW: allowing /APPEND flag for non-existant files
- PARSE_URL: initial import
- PATH_SEP: now return good type STRING = '/', before STRING = Array[1]
- PLOTS: correction for DATA coordinates
- PM: initial import
- PRINT: handling VMS compatibility syntax; demo: print, "$(F)", 1
- PRINTF: ditto
- READ_ASCII: handling both whitespace and tab as delimiter by default;
using FILE_LINES instead of spawning wc
- READ_XWD: fixing a conditional statement typo
- READF: bugfix - allowing reads from standard input (lun 0)
- REVERSE: initial import
- ROTATE: better error message
- SIZE: fixing datatype (sign) conflict in IDL_SIZE structure assignment
- SHOWFONT: initial import
- SPAWN: fixed segfault when SHELL env. variable not set,
undoing bitwise shift in EXIT_STATUS value; demo: spawn, "exit -1", e=i & help, i
setting EXIT_STATUS parameter when nParam==0; demo: spawn, exit=i & help, i
- SPL_INIT: initial import of C++ version (y0= and yn_1= not ready)
- SPL_INTERP: ditto
- STRING: handling VMS compatibility syntax; demo: help,string(1,"(G)")
- STRSPLIT: will allow 'str' and ['str'] 1D strings
- SYSTIME: correction for /JULIAN flag; conflicting keywords message
- TV: managing [1,n,m], [n,1,m] and [n,m,1] cases when TRUE=0
- VOIGT: better management of the dimensions of output arrays
- XYOUTS: axis thickness fix, DATA coordinates fix
configure script:
- HDF4/HDF5: linking with SZIP if needed
- detecting presence of Python numarray package
- printing summary information
- support for linux ppc64
- using nc-config (if present) to determine netcdf LIBS/INCLUDES
- using Magick++Config (if present) to determine Magick LIBS/INCLUDES
- better ncurses/curses check, preventing linking both libraries
other:
- embedded formatting commands for plotting routines (TEXTOIDL works)
- !DTOR & !RADEG values more precise
- SVG terminal available via set_plot, 'svg'
- misc. minor updates in readme/doc files
- several new test routines
- input/output: 64-bit OSX fix (xdr_long()/xdr_u_long() argument types)
- allowing setting history-file lenght in startup file using !EDIT_INPUT
- OpenSolaris compatibility fixes
- handling some out-of-memory exceptions
- gcc 4.4 compatibility fix
- HDF5: v1.8 compatibility fix
- widgets: some new functionality
- mapping: support for new LIBPROJ4
0.9rc4: in short:
---------
- thread pool support using OpenMP (G++ >= 4.2),
- enhanced error-reporting (line numbering, message decoration, etc.)
- new library routines, including: CPU, CROSSP, GET_SCREEN_SIZE, IMSL_BINOMIALCOEF,
IMSL_CONSTANT, IMSL_ZEROPOLY, QUERY_*, WSHOW, WTN (wavelet transform), ...
- enhanced HDF5 (15 new routines) and netCDF support
- support for GRIB 1/2 file format (read-only, using ECMW GRIB_API)
- several new command-line options, support for specifying batch files at command-line
- bug-fixes in library routines and the interpreter
- new plotting functionalities (contouring on maps, color PostScript output, ...)
- enhanced detection of libraries in the configure script
- enhanced "make install" and "make check" rules
- compatibility fixes for various GCC versions and UNIX flavours
in detail:
--------------
interpreter:
- fixed/enhanced numerous error-reporting related features including:
line number tracking, error message "decoration" (prefixes etc.),
inclusion of string-representation of error-related values in error messages
- fixed STRUCT access of non struct struct member (e. g. a={b:0}&print,a.b.c )
- corrected beahvior of call_fun and call_lfun for RC_ABORT return code,
old behavior lead to endless loop at startup in some conditions
- fixed wrong handling of CONTINUE under certain conditions in nested loops
- support for COMPILE_OPT OBSOLETE & !WARN.OBS_ROUTINES
- support for numeric constants in explicit binary format, e.g. a='1010101'b
- honouring COMPILE_OPT within $ and EXECUTE
library routines:
- BROYDEN: fixed behaviour with constant-returning functions
- BYTEORDER: support for structures
- CHECK_MATH: 2 undocument params and also keep memory of value
- CONTOUR: memory-leak fix (thanks to Valgrind), support for the /OVERPLOT keyword,
partial support for contouring on maps, more sanity checks for argument types,
better filled-contour level-choice mechanism, fixing axis colour
- CPU: initial import
- CREATE_STRUCT: fixed behaviour with no parameters
- CROSSP: initial import
- CURSOR: verification if we are in X mode, support for lat/lon query on maps
- DEVICE: support for /COLOR, XSIZE and YSIZE for PostScript driver,
support for the GET_VISUAL_DEPTH keyword
- DIST: runs correctly when called like dist([2,2])
- FFT: sanity check for the rank of argument, preventing bogus memory freeing with dcomplex input
- FILE_BASENAME: support for array argument, better handling of empty and space-only strings
- FILE_LINES: spawning subprocesses with /NOSHELL keyword to prevent execution of shell startup file
- FILE_TEST: stripping the trailing '/' if present
- [F,D,L,...]INDGEN: making the values of the resulting array more precise for large
arrays (demo: print, (findgen(40000000))[40000000-1])
- GET_SCREEN_SIZE: initial import
- GETENV: error message when called with /ENV and a positional parameter
- GRIBAPI_*: initial import of GRIB-1/2 file format support using the ECMWF GRIB API
- H5F_IS_HDF5, H5_GET_LIBVERSION, H5D_GET_TYPE, H5T_GET_SIZE, H5A_OPEN_NAME,
H5A_OPEN_IDX, H5A_GET_NAME, H5A_GET_SPACE, H5A_GET_TYPE, H5A_GET_NUM_ATTRS, H5G_OPEN,
H5A_CLOSE, H5T_CLOSE, H5G_CLOSE, H5A_READ: initial import
- HELP: corrected output for expressions
- HISTOGRAM: correcting binsize definition when max and nbins set,
better INPUT-kw-related error message
- IMSL_BINOMIALCOEF: initial import
- IMSL_ZEROPOLY: initial import (using gsl_poly_complex_solve())
- IMSL_ZEROSYS: fixed behaviour with constant-returning functions
- INVERT: fixing a segfault condition with non-global parameter
- LA_TRIRED: checking if the first argument is an array
- LOADCT: set !D.TABLE_SIZE from 0 to 256
- LOCALE_GET: returning locale of the parent process
- N_TAGS: support for LENGTH keyword (currently equal to DATA_LENGTH)
- NCDF_ATTGET: outputing byte arrays instead of strings
- NCDF_ATTNAME: allowing to specify the global atribute number
- NCDF_ATTPUT: support for LENGTH keyword
- NCDF_VARGET: fixing a segfault condition
- NCDF_VARINQ: fixing failed-assertion condition (dimension(0)) with scalar variables
- NCDF_*: fixes in error handling, compatibility with netcd-4
(file handles are now Long instead of Int)
- NEWTON: fixed behaviour with constant-returning functions
- OPLOT: sanity checks for the rank of arguments
- PLOT: adjusting axes when charsize changed, better automatic range selection,
sanity checks for the rank of arguments
- POINT_LUN: assuring the 2nd par is a global par
- POLY_AREA: initial import
- PRINT/PRINTF: changed output of trailing newline after empty string output,
corrected alignment for all types
- RSTRPOS: initial import
- READ_TIFF: ignoring errors related to GeoTIFF fields in TIFF files
- QUERY_BMP, QUERY_DICOM, QUERY_GIF, QUERY_IMAGE, QUERY_JPEG, QUERY_PICT, QUERY_PNG:
QUERY_PPM, QUERY_TIFF: initial import (using Magick++'s ping functionality)
- READ_ASCII: printing error message when DATA_START exceeds file length
- REVERSE: support for /OVERWRITE keyword
- ROUTINE_INFO: support for PARAMETERS keyword
- ROUTINE_NAMES: fixed ARG_NAME keyword for values larger than current level,
corrected name lookup, proper behaviour with the /STORE kw.,
fixed support for /FETCH kw.
- STREGEX: preventing bogus call to basic_string::substr(-1,...)
- STRMID: fixed behaviour for negative values of 3rd parameter
- STRPOS: does no longer ignore undefined 3rd parameter
- STRSPLIT: fixed probem related with STRTOK bug
- STRTOK: fixed output dimensions
- SURFACE: memory-leak fix (thanks to Valgrind), more sanity checks for argument types
- TVRD: fixed segfault with no window open
- WAIT: allowing interruption with control-c
- WSHOW: initial import (ICONIC kwrd not implemented yet)
- WTN: initial import (using GSL DWT routines)
configuration/installation:
- installing library .pro files, manpage and basic docs during make install
- setting default library-routine search path if GDL_PATH/IDL_PATH not defined
- checking if HDF4 was compiled with --disable-netcdf
- checking if netCDF installation is usable (HDF4 installation conflict)
- configure: checking if netcdfcpp.hpp is usable (conflicting hdf4/netcdf installation issue)
- fixes in wxWidgets detection code
- support for the Debian naming of the HDF4 libraries from the hdf4-alt packages
(compiled with --disable-netcdf)
- checking for GSL >=1.7 which is requiered to use both FFT and DWT at the same time
other:
- adding a manpage
- Cygwin compatibility fixes (as of version 1.7.1, Cygwin still needs a patch for rpc and fenv)
- adding on_error,2 for all routines implemented in GDL
- error reporting for HDF5 support
- Strassen algorithm for matrix multiplication (needs manual enabling)
- !DEVICE.N_COLORS in now dependant on the actual X-window setting
- handling "cannot connect to X-server" via a GDL error message
- initial thread pool support using OpenMP
- checking if PLplot supports the requested driver (ps, xwin, mem)
and informing the user via a GDL error message if not
- SVG plots: swithing between svg and svgcairo drivers by checking which
drivers are supported by PLplot
- support for -quiet and -e command-line options and for specifying batch files
at command-line; ignoring numerous license-related options for compatibility
- warning the user if MPI changes the working directory of GDL
- welcome message changes (informing about the library-routine search path)
- more meaningful contnents of the !VERSION structure
- GCC 3.4.3, 3.4.4, 4.3.4, and 4.4 compatibility fixes
- support for reading ASCII files not ending with newline character
- ![X,Y].RANGE support in plotting routines
- Allow neg. width for A format code, fixed T,TL,TR format codes
- sanity checks in array-returning library routines preventing segfaults
when called with invalid arguments
- new test-routines: test_dims_of_arrays.pro, test_valgrind.pro, test_check_math.pro,
test_get_screen_size.pro, test_nestedloop.pro, test_plotting_misc.pro,
test_plotting_ranges.pro, test_grib.pro, test_poly2d.pro, test_wavelet.pro
- inclusion of some of the test-routines in the "make check" rule
- quick_start_GDL.sh script
- making the initial "DECOMPOSED" setting of the X device dependant on the colour
depth reported by the X-server
0.9:
- FOREACH statement, syntax: FOREACH loopVar,array[,indexVar] DO
- member function and procedure calls with '.' e. g.: object.aProcedure
- support of negative index ranges. -1 is the last element, -2 the one before
the last and so on. E.g.: array[-7:-5]
- new widget features incl. WIDGET_DROPLIST
- automatic garbage collection
- numerous bugfixes (incl. SAVE/RESTORE, WRITEU, ...)
- memory leak in FFT when using FFTw lib should be solved
- all input types OK in FFT when using GSL FFT
- new routines: HIST_2D, INTERPOL, MAP_CONTINENTS, POLYFILL,
RESOLVE_ROUTINE, SPHER_HARM, IMSL_ERF
- new keywords/calling sequences handled:
- DEVICE, /INCHES, GET_SCREEN_SIZE
- PRODUCT, /PRESERVE_TYPE, /INTEGER
- REBIN: support for specifying new dimensions as an array
- TOTAL, /PRESERVE_TYPE
- FILE_SEARCH, /FOLD_CASE
- STRSPLIT, /preserve_null
- new test routines (invoked during "make check")
- DIALOG_PICKFILE, based on Zenity, OK on most Linux and OSX
- FILE_DELETE, FILE_COPY and FILE_EXPAND_PATH
- SPL_INIT: now y0= and yn_1= ready
- Compressed files should be well processed now (readf, printf, fstat, point_lun, ...). See test_zip.pro
0.9.1:
- fixes/improveents in: CONTOUR, DIALOG_PICKFILE, EXECUTE, EXIT, FIX (TYPE=7 and /PRINT),
FFT, FSTAT, HEAP_GC, MOMENT, NCDF_ATTNAME, NCDF_DIMDEF, NCDF_VARID, NCDF_VARPUT, INTERPOL,
PLOTS, POINT_LUN (64-bit addressing), POLYFILL (support for LINE_FILL, SPACING, LINESTYLE,
ORIENTATION and THICK), PRINT, PRINTF, SAVE/RESTORE, SPL_INIT (mem leak), STRSPLIT,
SURFACE (added AX,AZ), WAIT, XYOUTS (support for the WIDTH kw), DEVICE (WINDOW_STATE kw)
- other improvements: fixed reading of (big) compressed files, decomposed colours with PostScript,
gdlffdicom update (v20100309), new test routines, improved cmake configuration (still experimental),
fixed behaviour with non-comma locale-defined decimal separators
- early draft of GDL User's & Developer's guide: source files in doc/udg, current pdf version at:
http://gnudatalanguage.sf.net/gdl.pdf
- Python bridge: Numarray -> NumPy transition (several known bugs still exist)
- the .STEP command
- new routines: CALL_EXTERNAL (by Christoph Fuch), DIALOG_MESSAGE, ROBERTS, SWAP_ENDIAN_INPLACE,
CORRELATE
0.9.2:
- tremendous speed improvements: Indexing, subroutine calls, operators (especially for scalar values in
conjunction with OpenMP), ...
- UNIT keyword for SPAWN (thanks to a patch by Greg Huey)
- fixed ASSOC var indexing with a variable
- new routines: FILE_MKDIR, FILE_WHICH (patch by H Xu), IDL_VALIDNAME (by Rene Preusker), SCOPE_VARFETCH,
SEM_CREATE, SEM_LOCK, SEM_RELEASE, SEM_DELETE (SEM_* routines by Mateusz Turcza),
- fixes/enhancements in: BETA, CONTOUR, CORRELATE, DIALOG_PICKFILE, EXPINT, HDF_OPEN, H5F_OPEN,
HDF_SD_START,
IGAMMA, IMSL_CONSTANT, INTERPOL, LOADCT, NCDF_CONTROL, NCDF_OPEN, ROUTINE_NAMES, TV, TVRD,
XYOUTS (!P.MULTI vs. !P.POSITION, ORIENTATION with logscales), INTERPOLATE (the MISSING kw)
- fixes in STREGEX, STRPOS, STRSPLIT
- non-Encapsulated PostScript support along with XSIZE, YSIZE, XOFFSET, YOFFSET, PORTRAIT, LANDSCAPE and
SCALE_FACTOR settings support for PostScript output (requires pslib - http://pslib.sourceforge.net/
and makes advantage of PLplot fixes introduced in PLplot 5.9.9)
- memory leak fix (bug introduced in the previous version)
- various testsuite & docs updates (incl. docs and examples for CALL_EXTERNAL)
- fix in WordExp() when filename argument contain whitespaces (useful in various cases, including
OPENR/W, FILE_MKDIR, ...) [AC 2012/01/04: not finished :(
- !version.os now in lower case for Linux and Darwin
0.9.3:
- activities on speed improvements continuing
- Initial import of STRMATCH()
- Initial import of USERSYM
- SCOPE_VARFETCH (only LEVEL keyword supported)
- keyword /NaN for HISTOGRAM
- Initial import of LUDC, LUSOL and DETERM, OK now only for DOUBLE
- Initial import of ROT, CONGRID and BILINEAR
- Initial import of TV for PS output
- fix in RANDOMN/RANDOMU (Binomial OK, conflicting keywords detected ...)
- Initial import for QROMB(), QSIMP() (based on QROMB) and QROMO()
- Initial import for TRISOL()
- fix in ERASE for background color (preparing Coyote lib. support)
- Initial import of STANDARDIZE and HIST_EQUAL
- improvment in MAGICK related codes, especially MAGICK_PING (pb with ImageMagick (IM) in Ubuntu 12.04; GraphicsMagick can also be used instead of IM)
- FZ_ROOTS: initial import (same way than IMSL_ZEROPOLY using gsl_poly_complex_solve(), only real coefs. for input poly)
- FX_ROOT: initial import. in c++
- keyword DIM in MOMENT(), MEAN(), STDDEV(), VARIANCE(), SKEWNESS(), KURTOSIS() (requested DIM and other improvments)
- keyword SIGN in FINITE
- support for empty arrays and !NULL system variable
- promotion of FOR loop index variable type
- various improvments on READ_JPEG, READ_PNG, WRITE_JPEG, WRITE_PNG
- keyword ICONIC in WSHOW
- keyword ISOTROPIC in PLOT, CONTOUR
- new widget features incl. WIDGET_LIST and CW_GROUP
- various fix in FFT: DIM keyword, memory leak when using GSL
- support for some overloaded operators (_overloadIsTrue,
_overloadPlus, _overloadMinus, _overloadBracketsLeftSide,
_overloadBracketsRightSide, _overloadEQ, _overloadNE)
- support for .SKIP [NSteps] command
0.9.4:
- when compiled with Eigen3 library, significant speed improvement
in MATRIX_MULTIPLY() (and # operators), especially on multi-cores
Basic loading management included (if some core are busy).
- LIST and HASH are fully supported
even left-side struct access is possible e. g.:
GDL> h = HASH('key',{tag1:1}) & h['key'].tag1 = 3
this even works with all (derived) GDL_OBJECTs:
In this case (a variable set to) !NULL is passed as the OBJREF
parameter to the OBJECT::_OVERLOADBRACKETSLEFTSIDE member procedure,
it must in turn set this OBJREF parameter (the variable) to a POINTER to
the heap variable to access.
- .RESET_SESSION and .FULL_RESET_SESSION commands
- CHOLSOL/CHOLDC using Eigen3 (sub-optimal but efficient for big matrix on multicores) (LA_CHOLSOL/LA_CHOLDC removed for technical issues)
- large change in various graphic/plotting keywords (see below). 3D options supported,
but some limitations due to the use of the plplot library.
- PLOT, OPLOT: All keywords supported except FONT and CHANNEL,
Correct handling of log/DATA/NORMAL/DEVICE coordinates and CLIPPING.
- PSYMs shapes now identical to IDL's.
- PLOTS: idem as above, all keywords now supported.
- XYOUTS: idem as above, one-argument support (XYOUTS,"string").
Enhancement wrt. reference program: color,size,angle,etc
of text are vectors. FONT and TEXT_AXES not supported.
- CONTOUR: Support of all options except CELL_FILL, C_ANNOTATIONS, CLOSED, DOWNHILL,
IRREGULAR, TRIANGULATION,PATH_***
Correct implementation of Z, [X,Y], i.e., contours may be skewed,
rotated, etc depending on X and Y.
Better than IDL:
- a new ZLOG option makes log contours as well.
- C_ORIENTATION, C_SPACING are also vectors.
- log axes give better results
- good contouring of Not-A-Number values in Z and MIN_VALUE/MAX_VALUE
- CLIPPING ok.
- Automatic limits in some cases still different from IDL.
- AXIS and boxes in plots: all [XYZ]TICK[***] options supported except TICKV
and a few TICKFORMAT specifics.
- CURSOR: full support for CURSOR command, which is interruptible by control-c
and has all the options.
- SURFACE: all Keywords supported except "LEGO" and "CHANNEL".
- Added SHADE_SURF (slow and imperfect shading from the plplot library).
- Added cursor-related functions TVCRS and command EMPTY.
- Added DEVICE options CURSOR_CROSSHAIR, CURSOR_STANDARD, CURSOR_ORIGINAL and
GET/SET_GRAPHICS_FUNCTION (GXoR, GXand, etc).
- Disabled by default the focus in the X11 graphics windows as IDL does and
repositioned WINDOWS by default to top-right of screen. Screen size and behaviour
using GDL_GR_X_WIDTH, GDL_GR_Y_WIDTH and GDL_GR_X_QSCREEN environment variables (X window)
(GDL_GR_WIN_WIDTH, GDL_GR_WIN_WIDTH and GDL_GR_WIN_QSCREEN under windows)
- WSHOW works irregularly, depending on the window manager.
0.9.5:
- lot of improvments in Widgets related code. Available widgets:
WIDGET_DRAW(!), WIDGET_BASE, WIDGET_BUTTON,
WIDGET_DROPLIST, WIDGET_COMBOBOX, WIDGET_LIST,
WIDGET_SLIDER, WIDGET_TAB, WIDGET_TEXT,
WIDGET_LABEL, CW_BGROUP
(Note: Not all keywords are supported yet (however, they are accepted) but almost all functional keywords.
This means: Programs using these widgets should work but maybe look a bit different)
Controlling routines:
WIDGET_EVENT, WIDGET_CONTROL, XMANAGER
- TIC and TOC
- !CONST system variable
- initial import of NetCDF-4 related codes:
NCDF_GROUPSINQ, NCDF_GROUPNAME, NCDF_GROUPDEF, NCDF_FULLGROUPNAME,
NCDF_GROUPPARENT, NCDF_DIMIDSINQ, NCDF_NCIDINQ, NCDF_VARIDSINQ
- introducing the NULL device type, better result on Unix like system without X11
(e. g. computing nodes on HPC)
- better free format for print, preserving precision digits.
- ISA() and TYPENAME()
0.9.6:
- support for projections now complete. See MAP_INSTALL for details.
- new keywords (BOOLEAN,INTEGER,FLOAT,COMPLEX,STRING) in ISA()
- two new system variables: !TRUE and !FALSE
- initial import for SCOPE_TRACEBACK() (/sys and /struct not ready)
- combination of input arrays in math. special functions now ok with IDL
- SVSOL(); RESOLVE_ALL, more keywords in RESOLVE_ROUTINE
- initial import of LA_LEAST_SQUARES (for Ulyss), required Eigen3
- keyword LEVEL in MESSAGE
- support for Calendar format codes in input/output
- better handling of multiaxes in plot
- option --fakerelease for gdl: "$gdl --fakerelease 6.2" will pretend that the software
release is 6.2 by setting !VERSION.RELASE to that value. !VERSION.RELASE is often tested by
procedures to decide whether some function or option should be used. It is sometimes possible to
use this option to fool a procedure that request a specific value of !VERSION.RELEASE
0.9.7:
- Huge gains in plotting speed for X device by bypassing plplot's X11 color handling. Especially
noticeable for remote X11 displays.
- Widget numbering scheme aligned to IDL's.
- Patched several buggy output formats (PRINT, etc).
- better report of memory size (MEMORY command) for unix.
- .RESET_SESSION OK.
- better behaviour of WRITE_GIF and WRITE_PNG as well as other graphic formats.
- Correct setup of !D.N_COLORS and !P.COLOR when switching devices and decomposed state.
- Window-related commands (WSET,EMPTY,WINDOW...) now correctly handle the managed/widget/free/absent cases.
- ISHFT() now an internal C++ function (for speed).
- Begun implementation of TRIANGULATE when GDL is compiled with the QHULL library. Only the most basic
support is provided.
- Experimental: use device wxWidgets as replacement of X11 and WIN devices (of course when GDL is
linked with the wxWidgets library). This is at the moment triggered by the environment variable
GDL_USE_WX="YES" : setting this variable, the device 'X' or 'WIN' will actually be a wxWidgets device,
with antialiasing and trueType fonts.
- Experimental: calling GDL with option "--fussy" or setting the environment variable "GDL_IS_FUSSY"
enforces the STRICTARR compiling scheme (array index always between "[]"). This generally speeds up
procedure compilation.
0.9.8:
- internal SAVE and RESTORE. CMSVLIB not required anymore, and references to it removed in the documentation.
- better L64 support (N_ELEMENTS, SIZE)
- better TOTAL for large numbers or special types
- update RANDOM ...
- revisited MAKE_DLL & CALL_EXTERNAL
- MIN, MAX /ABSOLUTE.
- support of DEVICE,SET_CHARACTER_SIZE, and consequently a better positioning and sizes of plots.
- TRIANGULATE and TRIGRID complete (including spherical triangulation) using Renka's legacy algorithms.
0.9.9:
- build requirements and development hosting changes:
- development hosting moved from SourceForge to Github
- introduction of continuous integration services with Linux, OSX and Windows builds
- C++11 and CMake 3 requirements
- OpenMP required by default
- dropped support for OLDPLPLOT
- support for using eccodes instead of grib_api
- language/interpretter:
- auto-print feature
- implicit array generation, ex: array=[0.1:3.5:0.33]
- many HASH and LIST handling improvements
- DELVAR and .RNEW
- STATIC and NOSAVE compile options
- new functionalities:
- major TIFF improvement and GEOTIFF support
- LINFIT, DILATE, ERODE, SOBEL, PREWITT, ROBERTS
- NCDF4_EXISTS and H5F_CREATE
- HELP improvements for objects, structures, etc
- performance improvements:
- WHERE speedup
- parallelized FINITE, MIN and MAX
- RANDOM functions (RANDOMUn RANDOMN etc) rewritten using dSFMT, both simd-accelerated and parallelized
- FILE_LINES, FILE_LINK, FILE_COPY, FILE_MOVE reimplemented in C++
- other enhancements:
- reimplemented PARSEL_URL
- added support for START and INCREMENT to MAKE_ARRAY
- /ABSOLUTE keyword for MAX and MIN
- /L64 keyword for WHERE
- CONTOUR, SURFACE and SHADE_SURF accept degenerated N-D equivalents to 2D arrays
- preservation of types by TOTAL
- FIX & ROUND improvements
- colormap initialisation fix
- corrected os_name reporting in !version for OSX
- fixed behaviour with no X-server connection available
- several files cleaned up or moved to obsolete folder
- Windows fixes for STRTRIM and SYSTIME
- FreeBSD fixes for sincos
- improvements in idlneturl class
- numerous compiler warnings addressed
- pytest-based Python module testsuite
- new tests, test cleanups
1.0.0-rc.1:
- entirely rewritten mapping support
- major improvements on the Windows compatibility
- shift to Python 3
- added READ_CVS, SCOPE_VARNAME
- fixes in CONGRID, FILE_MKDIR, FX_ROOT, INTRPOLATE, LINFIT, MAKE_ARRAY, RESTORE, TAG_NAMES, ...
- numerous other fixes and performance improvements and increased test coverage
1.0.0-rc.2
- fixed linestyle +psym problem when NaN in data (#678)
- fixes for path separators on Windows
- cleanup of map projections resource files (much reduced tarball size)
- cleanup of GSHHS leftovers (GDL no longer depends on GSHHS)
- clarification of projection resource licensing information
- fix for SMOOTH() making it work correctly with complex arrays (#685)
- fix for SMOOTH() curing segfault condition with large arrays (#682)
- fix for POLYFILL and log axes (#674)
- fixing build failures on s390x (#676)
- fix for segmentation fault on total(,/double) (#680)
- removed confusing message about graphic magick compiled only with 8 BPP
- improved management of input to RANDOM( ... poisson=)
- fixed WRITE_JPEG so it creates 2-dim jpg by default instead of 3-dim (#710)
- fix in HELP so it does not free memory twice when used like help,/obj,out=xxx
- corrected behaviour of '...' in string truncation in HELP
- fixed OBJ_CLASS so it does not include structures in the list of objects (#173)
- added "compile_opt idl2, hidden" to numerous GDL-written library routines
- VALUE_LOCATE: speedup + better error message
- XMANAGER: many new features supported
- improved IDL compatibility in the idlneturl class
- added FILE_CHMOD
- improvements in PRT_VALID and OBJ_VALID (e.g. correct support of /CAST)
- new implementation of WordExp for use in path expansion
- better integration of !NULL type (#589)
- added WIDGET_INFO(/display) and WIDGET_INFO(/map)
- SPAWN modified to allow immediate return when background job
- multiple choice support in list widget
- better HELP,/HEAP
- FILE_MOVE improvements
- FSTAT() improvements
- fixed HDF_VD_READ segfault issue (#664)
- fixed FindXdr.cmake
- support for SORT()-ing pointers (#698)
- STRUCT_ASSIGN fixed so it assigns correctly parts of structs that were themselves structs
- some compiler warnings eliminated
- fixed crash in REPLICATE_INPLACE (#574)
1.0.0-rc.3:
- transparent reading of windows text files (terminated with <CR><LF>)
- speedup of TRISOL
- SAVE/RESTORE correctly handling complicated objects and heap nested structures
- TERMINAL_SIZE() added
- adding HANNING() and GAUSSIAN_FUNCTION() (thanks J. Tappin)
- SIGMA() added
- fixes in SIMPLEX(), PTRARR() and IDLNETURL
- correction dim. in POLYWARP() (thanks Igor Ch.)
- reworked help,/obj and help,/path_cache and help,/sys
- complex inputs in READS
- removing EditLine and PSlib from dependencies
- fixed OpenMP-related bug in MAX/MIN
- revised test_hash() and test_list()
- added test_widgets()
- numerous small fixes (CMake, typos, cleanups, compilation issues...)
- Windows compilation issues
- numerous updates in plotting and widget infrastructure
- updated manpage
|