This is the second incremental release for gnuplot stable version 6.0.
In addition to the usual minor bug fixes, it contains several new features
from the development version of gnuplot that didn't quite make it into
the initial version 6 release.
  - plot style "with hsteps" enables a variety of new plot types
  For examples, see
  
  
- 3D plot style "with filledcurves" provides additional flexibility in creating
  the family of plot styles that includes waterfall plots and fence plots.
  See
  
  
- Terminal input when gnuplot is linked against the BSD editline library
  now correctly handles UTF-8 characters.  UTF-8 input has always worked
  for configuration options readline=gnu or readline=builtin; now it also
  works for
      ./configure --with-readline=bsd
   This change should in particular benefit users of Debian and MacOS
  binaries, which are typically linked against the editline library.
 
- Polygons in a 3D plot ("splot ... with polygons") can use palette coloring
  and pm3d lighting.
  
- General binary keyword option "blank=NaN" facilitates using binary input
  data for plot styles that would require blank lines in a text input data
  stream. See
  
  
- "linestyle variable" is accepted as a color specifier in plot commands.
  The primary distinction between this as "linecolor variable" is that
  linestyle properties are cleared by the next "reset" command.
  This allows definition of a temporary color sequence affected only one plot.
  - Local variables are reimplemented to provide a better-defined scope
  and faster evaluation of function blocks.
  
- Existing plot styles steps, histeps, fsteps, and fillsteps are
  reimplemented to use the new hsteps code.
  
- Boxplot outlier position (horizontal displacement) is controlled by "set jitter".
  
- The content of $GPVAL_LAST_MULTIPLOT is appended to the output from "save"
  so that loading the saved file regenerates a full multiplot rather than
  only the final component.
  - reworked generation of logscale axis tic marks                 (Bugs 2372 2717)
  
- Do not save extraneous commands to $GPVAL_LAST_MULTIPLOT       (Bug 2714)
  
- svg: modify gnuplot_svg.js to work in local standalone mode    (Bug 2715)
  
- wxt: release per-thread font data before entering "persist"    (Bug 2693)
  
- "set table": honor "nosurface" keyword in splot
  
- "set table": honor "set format z" when z is printed from plot
  
- better contouring near the edge of a z-clipped surface
  
- handle mousing of logscale axes in inactive plot windows       (Bug 2723)
  
- "set tics scale" does not change other axis tick properties    (Bug 2724)
  
- points with variable color value NaN should not be drawn       (Bug 2737)
  
- "set term tikz nostandalone" should suppress the latex wrapper (Bug 2740)
  
- handle unusual case of intersecting pm3d surfaces              (Bug 2744)
  
- prevent use-after-free if a function block has no "return"     (Bug 2745)
  - Support for replot and pan/zoom mouse operations in multiplot mode is still
  incomplete. Expect further improvement in subsequent releases.
  
- TeXLive2024 pdflatex does not like some of the UTF-8 characters in the user manual.
  The distribution includes a pre-built copy of gnuplot.pdf but if you want
  to rebuild it from the source in docs/gnuplot.doc please use lualatex instead.
  You can either replace the definition PDFLATEX=pdflatex with PDFLATEX=lualatex
  in the Makefile or provide this in the environment during configuration
  
    - PDFLATEX=lualatex ./configure
  
 
Gnuplot development is tracked in a git repository on SourceForge.
You can generate a complete history of changes using "git log"
after downloading:
    git clone -b branch-6-0-stable git://git.code.sf.net/p/gnuplot/gnuplot-main
    git log
Release Notes date:  19 December 2024
  - CHANGE Use of data source '-' inside a multiplot is an error; use a local datablock instead
  
- CHANGE gd: scale "dot" (pointtype 0) by current linewidth             Bug 2690
  
- FIX    configure script modified to accommodate Fedora dependencies   Bug 2706
  
- FIX    mp: configure --with-metapost failed to include mp terminal
  
- FIX    empty field in csv file should not generate a tic label        Bug 2667 2672
  
- FIX    Do not autoscale or extend axis ranges while zooming           Bug 2679 2680
  
- FIX    svg: set default fill properties for depth-sorted pm3d objects
  
- FIX    x11: Empirical correction for bad rotation of enhanced text    Bug 2661
  
- FIX    wxt: Add exception handler for mouse event processing          Bug 2680 2683
  
- FIX    wxt: make right-mouse zoom box independent of terminal scaling Bug 2578
  
- FIX    regression: border color of objects with fillstyle "empty"     Bug 2686
  
- FIX    "set colorbox border {<lt>}" parsing error
  
- FIX    gd x11:  very short arrows were not drawn at all               Bug 2690
  
- FIX    qt wxt x11: "set term" from a script causes next pause to fail Bug 2703
  
- FIX    tikz: fix use of palettes with a fixed number of colors        Bug 2706
  
- FIX    "stats ... name FOO" Do not delete existing variables FOO_*    Bug 2695
  
- FIX    order-dependent parsing of 2D plots with "fs solid fc variable"
For a detailed list of new features, with illustrations, see
  http://gnuplot.info/docs_6.0/NewFeatures.html
For more example plots see
  http://gnuplot.info/demo_6.0/
  - Function blocks and scoped variables
  
- Larger collection of special and complex-valued functions
  
- New plot styles
  
    - 2D plot style `with surface` works in 2D polar coordinates to produce a
          solid-fill gridded representation of the plane. This is analogous to the
          use of dgrid3d and pm3d to produce a 3D gridded surface.
    
- 2D plot style `with sectors` renders one annular segment ("sector") for
          each line of input data. This style can generate pie and donut charts,
          windrose charts, and a polar equivalent to sparse-matrix heatmaps.
    
- 2D plot style `with lines` now has a filter option `sharpen`.
          This filter detects spikes in a function plot that would be missed or
          under-represented due to coarse sampling.  It adds an additional
          sampling point at the location of each such peak.
    
- 3D plot style `with contourfill` produces 2D or 3D surfaces with
          distinct z-ranges indicated by solid color fill.
  
 
- Hulls, masks, and smoothing
  
    - A cluster of 2D points can be replaced by a bounding polygon ("hull").
          Both convex hulls and concave hulls (χ-shapes) are supported.
    
- Any hull or other closed path can be used as a mask to display only
          selected regions of a pm3d surface or image plot.
    
- New smoothing option "smooth path" can be used on 2D and 3D curves
          that are not monotonic on x or y.  This allows smoothing of hulls.
  
 
- Named palettes
  
    - The current palette can be saved to a named colormap for future us.
    
- A predefined palette named "viridis" is provided.
    
- Plots can specify a previously saved palette by name.
          This permits the use of multiple palettes in a single plot command.
    
- Named palettes can be edited to contain an alpha channel.
  
 
- New built-in functions and array operations
  
    - palette(z) returns the current RGB palette color mapping for z.
    
- rgbcolor("name") returns the 32bit ARGB value for a named color.
    
- index(Array, element) returns the first index i for which Array[i]
          is equal to element.
    
- split("string", "separator") unpacks the fields in a string into
          an array of strings.
    
- join(array, "separator") is the complement to split().
          It concatenates the elements of a string array into a single string.
    
- `stats <non-existent file>` yields a testable value with no error;
          useful to avoid errors or warnings in scripts.
  
 
- Program control flow
  
    - New syntax if {...} else if {...} else {...}
    
- XDG base directory conventions for configuration files are supported.
    
- `unset warnings` suppresses output of warning messages to the console.
    
- The `fit` command is protected by exception handling. Control always
          returns to the next line of input even in the case of fit errors.
          On return FIT_ERROR is non-zero if an error occurred.
    
- "Watchpoints"  are target values associated with individual plots
          in a graph. As that plot is drawn, each component line segment is
          monitored to see if its endpoints bracket the target value of a
          watchpoint coordinate (x, y, or z) or function f(x,y).
          If a match is found, the [x,y] coordinates of the match point are
          saved for later use.  Possible uses include
    
      - find the intersection points of two curves
      
- find zeros of a function
      
- find and notate where a dependent variable or function f(x,y)
                  crosses a threshold value
      
- use the mouse to track values along multiple plots simultaneously
    
 
 
- New terminals and terminal options
  
    - Terminals that display graphics in the same window as text entry now
          support pseudo-mousing; i.e. they respond to arrow keys and other
          hot-key bindings during "pause mouse".
    
- New terminals kittygd and kittycairo provide in-window graphics for
          terminal emulators that support the kitty protocol.
    
- New terminal webp generates a single frame or an animation sequence
          using webp encoding. Frames are generated using pngcairo,
          then encoded through the WebPAnimEncoder API.
    
- New terminal block for text-mode pseudo-graphics uses Unicode block
          or Braille characters to offer improved resolution compared to the
          dumb or caca terminals.
    
- latex terminals standalone mode updated to work with texlive2023
  
 
- Miscellaneous other new features
  
    - Multiplots can now be saved, replotted, and resized interactively.
          This is a change from all previous gnuplot versions, where only the
          most recent component of a multiplot could be replotted.
    
- The command sequence that generates the current multiplot is saved to
          a datablock $GPVAL_LAST_MULTIPLOT.
    
- New command "remultiplot" replays the saved command sequence. 
    
- Time unit settings for major and minor axis tics.  For example,
          minor tic marks can be placed at exactly one month intervals.
    
- The character sequence $# in a using specifier evaluates to the total
          number of columns available in the current line of data.
          "plot FOO using 0:(column($# - 1))" plots the last-but-one field of each row.
    
- keyword binvalue=avg plots the average, rather than the sum, of binned data.
    
- "set colorbox bottom" places the color box underneath the plot.
    
- "set pm3d spotlight" adds a user-controlled spotlight to the lighting model.
    
- New key layout options to force specific width or number of columns.
          Automatic positioning of the key on the page can be manually tweaked
          by giving an offset.
    
- "set isotropic" adjusts the axis scaling in both 2D and 3D plots such
          that x, y, and z axes all have the same scale.
    
- Text rotation angles are not limited to integral degree values.
    
- Data-driven color assignments in plot style "histograms".
    
- A keyentry with no given plot style can be used to place a secondary title
          in the key or, in combintation with "title", to create two columns of text.
  
 
The "gnuplot mode" elisp and TeX files for use with emacs are now
maintained as a separate project: https://github.com/bruceravel/gnuplot-mode
so there is no longer a configuration option --with-lisp-files.
LaTeX-related terminal drivers latex, emtex, eepic, and tpic are no longer
built by default.  Their closest equivalent is the new pict2e terminal, but
LaTeX users who want support for the full range of gnuplot plot styles are
recommended to use the cairolatex or tikz terminals.
The 6.0 source code supports three primary cross-platform interactive
modes in addition to several platform-specific modes.
  - Qt
   The qt terminal supports interactive display with menu-driven
   output to png, svg or pdf.  If either Qt6 or Qt5 is detected by the
   configure script, this will be the default terminal.  It is now the
   fastest and most full-featured interactive terminal option.
    To disable this terminal or force use of Qt5 even if Qt6 is present
   
    - ./configure --with-qt=qt5
    
- ./configure --without-qt
           
  
 
- Cairo/pango/wxWidgets
   This set of terminals includes pngcairo, pdfcairo, epscairo, and cairolatex
   for output to a file. The wxt terminal provides interactive display
   All of these will be built by default if the configuration script finds
   the required libcairo, libpango, libcairo, libwxgtk, and related
   support libraries
    To disable these terminals:
   
    - ./configure --without-cairo
    
- ./configure --with-cairo --disable-wxwidgets
       
  
 
- X11 (the "classic" interactive interface)
   This used to be the preferred interactive interface, but the newer
   wxt and qt terminals offer nicer output and a wider range of features.
 
Of course the terminals (output modes) present in previous gnuplot versions
are also still available. These include, among many more obscure options:
The sixel and kitty terminals display graphics in-line with the commands
typed in a suitable terminal emulator window.  For example "xterm -ti 340"
emulates a vt340 with indexed color sixel graphics.
The KDE desktop konsole terminal provides RGB color sixel graphics
and 32-bit color + alpha channel graphics using the kitty protocol.
The yaft terminal emulator can provide sixel graphics at linux console
level with no x11 or other windowing system active.
  - Mouseable output for display on the web can be created using either
  the canvas terminal (HTML5 2D canvas element) or the svg terminal.
  Both allow zooming, toggling plot elements on/off, and user-scriptable
  hot keys.
You can download a source tarball for the current gnuplot version
from the gnuplot development site on SourceForge.
        http://sourceforge.net/projects/gnuplot
Some platform-specific installation tips are given in the INSTALL
file of the source package; the short version for linux/unix-like
systems is to unpack the tarball and then
build it:
      cd gnuplot-6.0.2 ; ./configure ; make
test it:
      make check
install it:
      make install
Pay careful attention to the output of the ./configure script.
It may indicate that some output modes have been omitted because the
necessary support libraries were not found.  In general you need to have
previously installed the "-devel-" versions of these libraries.
Please report all bugs and installation problems to the bug tracker
on SourceForge:
        https://sourceforge.net/p/gnuplot/bugs/
Gnuplot development is ongoing. The development branch contains preliminary
implementations of new features.  The current development version is 6.1.
Bug fixes for version 6.0 will appear in patchlevel releases 6.0.1, 6.0.2, etc.
approximately twice a year or as needed to correct a serious regression.