GDL(1)

πŸ“¦
version 1.1.3 Β· 3 versions
, in debian trixie, fedora 43, fedora 44, nixos 26.05, nixpkgs unstable, ubuntu questing, ubuntu resolute, ubuntu stonking

GDL πŸ’– (1) β€” General Commands Manual πŸŽ€

okay bestie, sit DOWN, we're learning gdl(1) today and it's literally so good. ✨


🌸 NAME 🌸

gdl β€” GNU Data Language incremental compiler πŸ‘‘


πŸ¦‹ SYNOPSIS πŸ¦‹

gdl [--help] [-h] [--version] [-v] [-V] [[-]-quiet] [-q] [ -arg value ]
[ -args ...  ] [ -e statement ] [ -pref=/path/to/preferenceFile ] [
batch_file ...  ]

πŸ’œ DESCRIPTION πŸ’œ

okay so gdl is an incremental compiler for the GNU Data Language (GDL). and the whole vibe of GDL is: it's being developed to be an open-source drop-in replacement for Interactive Data Language (IDL) β€” and bestie, IDL has been passed around like a group chat screenshot: RSI, then ITTVIS, then Exelis, and now Harris Geospatial Solutions, Inc. 😭 It's also partially compatible with Visual Numerics (VN) PV-WAVE. and jsyk, IDL and PV-WAVE are registered trademarks of L3Harris and VN respectively. no cap.

GDL and its library routines are designed as a tool for numerical data analysis and visualisation. GDL is dynamically typed, vectorized, and has object-oriented programming capabilities. the library routines handle:

  • numerical calculations
  • data visualisation
  • signal/image processing
  • file input/output (incl. graphical and scientific data formats such as TIFF, PNG, netCDF, HDF etc) 🫢
  • interaction with the host OS

for a list of resources on GDL/IDL/PV-WAVE syntax and library routines, see the references in the GDL v1.0 JOSS paper: https://doi.org/10.21105/joss.04633 ⭐

the GDL mailing list is maintained at: https://sympa.obspm.fr/wws/info/gdl-announces πŸ“¬

a vast part of GDL library routines is implemented using open-source libraries including GSL, plPlot, and optionally: readline, FFTW, Eigen3, ImageMagick, netCDF, HDF4, HDF5, PROJ, UDUNITS-2, libps and others. the range?? immaculate. πŸ’…


✨ OPTIONS ✨

  • --help (or -h) β€” shows a summary of the options. your little map. πŸ—ΊοΈ
  • --version (or -v, -V) β€” shows the version of the program. πŸ’«
  • --quiet (or -quiet, -q) β€” suppresses the welcome messages. no hello, just vibes. 🀫
  • -arg value β€” tells COMMAND_LINE_ARGS() to report the following argument (and yes, you can specify this more than once). πŸ”
  • -args ... β€” tells COMMAND_LINE_ARGS() to report all the following arguments. everything. the whole group chat. πŸ’¬
  • -e statement β€” execute the given statement and exit. only the last occurrence is taken into account, it's executed after the startup file, and it may not be specified together with batch files. ⚠️
  • -pref=/path/to/PreferenceFile β€” (only partially working right now, bestie, don't come for me) setting using an external text file a few variables including default preferences (e.g. X11 Windows Size).
  • --fakerelease version β€” sets !VERSION.RELEASE to that value. !VERSION.RELEASE is often tested by procedures to decide whether some function or option should be used. it's sometimes possible to use this option to fool a procedure that requests a specific value of !VERSION.RELEASE (e.g. atv.pro). catfishing, but for compilers. πŸ™ˆ
  • --fussy β€” signals that all used procedures will adhere to modern IDL, where "()" are for functions and "[]" are for arrays. this speeds up compilation (sometimes terribly) but chokes on every use of "()" with arrays. conversion of procedures to modern IDL can be done with D. Landsman's idlv4_to_v5 procedure. use the environment variable "GDL_IS_FUSSY" to set up this feature permanently.

incidentally, "being fussy" can help find all the places in a procedure that need to be corrected to have it in the modern IDL format. so it's giving tough love. πŸ’…

  • --silent β€” suppresses some messages (mainly "Compiled Module XXX"). 🀐
  • --sloppy β€” the inverse of fussy above. sets the traditional (default) compiling option where "()" can be used both with functions and arrays. needed to counteract temporarily the effect of the environment variable "GDL_IS_FUSSY". chaotic but valid. πŸ“
  • --smart-tpool β€” switch to a mode where the number of threads is adaptive (experimental). should enable better perfs on many-core machines. πŸ”₯
  • --use-wx β€” tells GDL to use WxWidgets graphics instead of X11 or Windows. (nicer plots 🌈) also enabled by setting the environment variable GDL_USE_WX to a non-null value.
  • --no-use-wx β€” tells GDL not to use WxWidgets graphics, even if the env. var. "GDL_USE_WX" is set. 🚫
  • --no-dSFMT β€” tells GDL not to use double precision SIMD oriented Fast Mersenne Twister (dSFMT) for random values. also disabled by setting the environment variable GDL_NO_DSFMT to a non-null value.

with dSFMT, although the Mersenne Twister algorithm is the same as in modern IDL, the values are computed in parallel (hence a speed gain πŸƒβ€β™€οΈ) but the output order is not the same as IDL. also, the seed is different. these differences should not be a problem as it is discouraged to interfere with seed values.

the -demo, -em, -novm, -queue, -rt, -ulicense and -vm options are ignored for compatibility with IDL. πŸ«₯

a list of batch files to be executed before entering the interactive mode (but after executing a startup file, if specified) may be given when not using the -e option. πŸ“‚


πŸŽ€ FILES πŸŽ€

  • $DATADIR/gnudatalanguage/lib/*.pro β€” library routines implemented in GDL. $DATADIR is specified during compilation and usually translates to /usr/share, /usr/local/share or alike. GDL includes this directory in its search path unless GDL_PATH or IDL_PATH env. variables are set (see below πŸ‘‡).
  • $HOME/.gdl/history β€” a file used for storing the history of commands issued in the interactive mode (if GDL was compiled within ReadLine). your receipts, bestie. 🧾

🌈 ENVIRONMENT 🌈

the following environment variables have special meaning to gdl. and here's the rule: the GDL_* variant, if defined, takes precedence over any corresponding IDL_* variant. πŸ‘‘

  • GDL_PATH, IDL_PATH β€” the GDL command (script) search path.
  • GDL_STARTUP, IDL_STARTUP β€” a file of commands to be executed on startup. πŸš€
  • GDL_TMPDIR, IDL_TMPDIR β€” a directory in which temporary files may be created.
  • HOME, SHELL β€” variables influencing shell invocations from within GDL (the SPAWN procedure and the $ interpreter command). the value of HOME determines as well the location of the GDL history-file. 🏠
  • PATH β€” determines the search path when spawning child processes using the SPAWN procedure with the /NOSHELL keyword set.
  • PYTHONPATH β€” influences the behaviour of the PYTHON procedure and the PYTHON() function (available if GDL is compiled with support for calling Python code). 🐍
  • GDL_MPI β€” a message to be sent out using MPI_Send before initialization of the interpreter (available if GDL is compiled with support for MPI).
  • DISPLAY, XENVIRONMENT β€” tell GDL how to connect to the X server. πŸ–₯️
  • LC_* β€” the locale-related settings accessible via LOCALE_GET() (GDL always uses the C locale internally).
  • GDL_GR_WIN_HEIGHT β€” sets the preference for the default height of a Windows(tm) graphic window.
  • GDL_GR_WIN_QSCREEN β€” if set to true (1) this will prevent the use of the GDL_GR_WIN_HEIGHT and GDL_GR_WIN_WIDTH preferences, and the default dimensions of graphic windows will be 1/4 of the screen dimensions. πŸ“
  • GDL_GR_WIN_WIDTH β€” sets the preference for the default width of a Windows(tm) graphic window.
  • GDL_GR_X_HEIGHT β€” sets the preference for the default height of an X11 graphic window.
  • GDL_GR_X_QSCREEN β€” if set to true (1) this will prevent the use of the GDL_GR_X_HEIGHT and GDL_GR_X_WIDTH preferences, and the default dimensions of graphic windows will be 1/4 of the screen dimensions. πŸ“
  • GDL_GR_X_WIDTH β€” sets the preference for the default width of an X11 graphic window.
  • GDL_WX_BACKEND β€” can be set to [0,1,2] which will select, respectively, the back-ends 0, 1 or 2 of plplot's old wxWidgets driver (plplot versions < 5.10). back-end 2 has anti-aliasing enabled. ✨
  • GDL_MAPS_DIR β€” if not automatically found, tells GDL where the maps files (coasts, rivers, etc, used by MAPS_CONTINENTS) are located. these are in Shapefile format and newer versions can possibly be present on naturalearthdata.com. πŸ—ΊοΈ

πŸ’€ BUGS πŸ’€

please report bugs, comments, patches or feature requests at https://github.com/gnudatalanguage/gdl/ β€” the devs want to hear from you, fr fr. 🫢


πŸ‘‘ AUTHOR πŸ‘‘

the primary author of GDL is Marc Schellens <m_schellens@users.sourceforge.net>. a list of contributors is available in the AUTHORS file shipped with GDL, and on the project website (see above). 🫑

the original version of this manual page was written by Sergio Gelato <Sergio.Gelato@astro.su.se>. it is currently a part of the GDL package, and is maintained by the GDL Team. πŸ’–


⭐ SEE ALSO ⭐

netcdf(3), hdf(1), gsl(3), eigen3, plplot, fftw 🧚


and that's the whole page, bestie!! this one's brought to you by The GDL Team, dated 2024-03-19 β€” and it's the manual for GDL(1) obviously, iykyk. go compile something iconic. πŸ’…βœ¨πŸ¦‹