We have tagged Release-1.6.9 (no longer release candidate) within the RB-1.6 
branch.

The 'RB-1.6' marker points to the very latest commit at the head of this 
branch, but not necessarily to a tagged, approved release. 

The 'release' marker always indicates the latest tagged release of the current 
stable release branch (currently points to Release-1.6.9). This is the one we 
endorse for use in conservative production or for embedding in shipping 
products. We will not break API or link compatibility within the 1.6 branch, 
although we will occasionally tag new releases incorporating bug fixes or 
low-risk feature additions. All 1.6 releases will continue to remain compatible 
with C++03 (and whatever compilers or libraries it currently builds against).

The 'master' branch contains current development. It tends to be fairly 
bug-stable (and is used straight from the head at a number of production 
studios, including my own employers), but is definitely not API-stable or 
link-stable. So if you need those assurances, you are advised to stick with the 
'release' branch.

>From here on out, 1.5 is considered to be legacy code, no longer directly 
>supported except to occasionally patch important bug fixes. Generally 
>speaking, I will do so only when requested by somebody who is still stuck 
>using 1.5 and will tend not to spontaneously fix it.

As a final warning, let me reiterate that the current master/1.7 will assume 
the http://www.vfxplatform.com/ recommendations for 2016 releases, requiring a 
minimum of gcc 4.8.3 (or clang 3.4, or MSVS 2013 [I think]) and C++11. At this 
very moment, it still builds as C++03, but we are making no effort to ensure 
that moving forward. You are warned that if your facility or product requires 
C++03 compatibility, you must stay on a 1.6 release and should not be using the 
current master. I am also expecting that at some point in the development of 
1.7, we will remove any cruft that assumes versions dependent libraries older 
than the VFX Platform 2016 guidelines (notably, we will stop supporting OpenEXR 
1.x and certain old Boost versions).

Below is a mostly complete list of all the changes made in the course of 
development of 1.6. Enjoy.



Release 1.6 (released Dec 21, 2015) -- compared to 1.5.x
----------------------------------------------
Major new features and improvements:
 * New oiiotool functionality:
    * Expression evaluation/substitution on the oiiotool command line.
      Anything enclosed in braces { } in a command line argument will be
      substituted by the evaluation of the enclosed expression. Expressions
      may be numbers, simple arithmetic (like 'expr+expr'), or retrieving
      image metadata from named images or images on the stack.
      Please see the PDF documentation, Section 12.1 for details and
      examples.
    * --absdiff, --absdiffc compute the absolute difference (abs(A-B)) of
      two images, or between an image and a constant color. #1029 (1.6.0)
    * --abs computes the absolute value of an image.  #1029 (1.6.0)
    * --div, divc divide one image by another (pixel by pixel), or divides
      the pixels of an image by a constant color. #1029 (1.6.0)
    * --addc, --subc, --mulc, --powc are the new names for --cadd, --csub,
      --cmul, and --cpow. The old ones will continue to work but are
      considered depcrected. #1030 (1.6.0)
    * --pattern supports new patterns: "fill" makes a solid, vertical or
       horizontal gradient, or four-corner interpolated image (just like
       the --fill commmand) (1.6.0); "noise" can generate uniform, gaussian,
       or salt & pepper noise (1.6.2).
    * --fill, in addition to taking optional parameter color=... to give a
      solid color for the fill region, now also takes top=...:bottom=... to
      make a vertical gradient, left=...:right=... to make a horizontal
      gradient, and topleft=...:topright=...:bottomleft=...:bottomright=...
      to make a 4-corner gradient. (1.6.0)
    * --noise adds noise to the current image: additive uniform or gaussian
      noise, or making "salt & pepper" noise. (1.6.2)
    * --trim crops the image to the minimal rectangle containing all
      the non-0 pixels. (1.6.3)
    * --autocc : when turned on, automatic color conversion of input files
      into a scene_linear space, and conversion to an appropriate space
      and pixel type upon output. It infers the color spaces based on
      metadata and filenames (looking for OCIO-recognized color space names
      as substrings of the filenames). #1120 (1.6.3)
    * --mad takes three image arguments, multiplies the first two and then
      adds the third to it. #1125 (1.6.3)
    * --invert computes the color inverse (1-value) for color channels.
      #1125 (1.6.3)
    * --colorconfig allows you to specify a custom OCIO configuration file
      (rather than strictly relying on the $OCIO env variable). #1129 (1.6.3)
    * --deepen converts flat images to "deep". #1130 (1.6.3)
    * -n (no saved output) performs all calculations (including timing and
      stats) but does not write any output files to disk. #1134 (1.6.3)
    * --debug prints debugging information, this is now separate from
      -v which just makes more verbose (non-debugging) output. #1134 (1.6.3)
    * --pixelaspect rescales the image to have the given pixel aspect
      ratio. #1146 (1.6.5)
    * --ociofiletransform() implements OpenColorIO "file" transforms.
      #1213 (1.6.5)
 * New ImageBufAlgo functions:
    * absdiff() computes the absolute difference (abs(A-B)) of two images,
      or between an image and a constant color. #1029 (1.6.0)
    * abs() computes the absolute value of an image. #1029 (1.6.0)
    * div() divides one image by another (pixel by pixel), or divides all
      the pixels of an image by a constant color. #1029 (1.6.0)
    * fill() has been extended with new varieties that take 2 colors (making
      a vertical gradient) and 4 colors (one for each ROI corner, for a
      bilinearly interpolated gradient). (1.6.0)
    * noise() injects noise into an image -- uniform, gaussian/normal,
      or salt & pepper noise. (1.6.2)
    * mad() multiplies the first two arguments and then adds the third to
      it. #1125 (1.6.3)
    * invert() computes 1-val. #1125 (1.6.3)
    * deepen() turns a flat RGBA (and optional Z) image into a "deep"
      image. #1130 (1.6.3)
    * ociofiletransform() implements OpenColorIO "file" transforms.
      #1213 (1.6.5)
 * Some open source fonts are now distributed with OIIO (DroidSans,
   DroidSans-Bold, DroidSerif, DroidSerif-Bold, DroidSerif-Italic,
   DroidSerif-BoldItalic, and DroidSansMono), and so those are always
   available to ImageBufAlgo::render_text() and oiiotool --text, on all
   platforms and even if you don't have any other installed fonts on
   your system. DroidSans is now the default font. #1132 (1.6.3)
 * GIF output support (including writing animated GIF images, just write it
   as a multi-subimage file). For example, this works:
      oiiotool foo*.jpg -siappendall -attrib FramesPerSecond 10.0 -o anim.gif
   #1193 (1.6.4)

Public API changes:
 * TypeDesc:
    * New helper methods: is_array(), is_unsized_array(), is_sized_array().
      #1136 (1.6.3)
    * New constructor and fromstring of a string_view, in addition to
      the old versions that took char*. #1159 (1.6.4/1.5.16)
    * New aggregate type: MATRIX33. #1265,#1267 (1.6.6)
 * ImageSpec:
    * ImageSpec::metadata_val() is now static, rather than simply const,
      since it doesn't need access to *this at all. #1063 (1.6.1)
    * Added a new variety of find_attribute that takes a temporary
      ImageIOParameter as scratch space. The advantage of this call is
      that it can retrieve items from the named ImageSpec fields, such
      as "width", "full_x", etc. Also, the get_int_attribute,
      get_float_attribute, and get_string_attribute can now retrieve
      these fixed fields as well.  #1063 (1.6.1)
 * ImageInput & ImageOutput:
    * New ImageOutput::supports() tags: supports("alpha") should be true
      for image formats that support an alpha channel, supports("nchannels")
      should be true for output formats that support an arbitrary number
      of output channels. (1.6.2/1.5.13)
    * ImageInput and ImageOutput supports() method has been changed to accept
      a string_view (rather than a const std::string&), and return an int
      (rather than a bool). (1.6.2)
    * ImageInput and ImageOutput have added destroy() static
      methods. They are just wrappers around 'delete', but can help you
      to ensure that II and IO objects are deleted on the same side of a
      DLL boundary as where they were created. (Helps with using OIIO
      from DLL-based plugins on Windows.)  (1.6.3)
    * New ImageInput query: "procedural" -- returns 1 if the ImageInput may
      not correspond to an actual file. #1154 (1.6.4/1.5.16)
    * ImageInput and ImageOutput's error() method is changed from protected
      to public, making it easier for an app to set an error on a reader
      or writer. (1.6.4)
    * ImageOutput::copy_to_image_buffer is a helper function that
      generalizes the existing copy_tile_to_image_buffer, but for any
      rectangle.  #1193 (1.6.4)
    * ImageInput::read_image() variant that takes a channel range to
      read just a subset of the channels present. #1222 (1.6.5)
    * ImageInput and ImageOutput now have new method threads(n) that sets
      the thread "fan-out" for the ImageInput or ImageOutput individually,
      overriding any global attribute("threads"). #1259 (1.6.6)
 * ImageBuf:
    * Add make_writeable(), which forces ImageCache-backed read-only
      ImageBuf to read into locally allocated pixels so they can be
      subsequently altered. #1087 (1.6.2)
    * ImageBuf::Iterator has added set_deep_samples() and set_deep_value()
      methods. (1.6.3)
    * ImageBuf::set_pixels() now provides a way to set an arbitrary
      rectancle of an ImageBuf from raw values. #1167 (1.6.4)
    * ImageBuf::get_pixels() now has a variety that takes an ROI to
      describe the rectangle of pixels being requested. #1167 (1.6.4)
    * ImageBuf now has new method threads(n) that sets the thread
      "fan-out" for the ImageInput or ImageOutput individually,
      overriding any global attribute("threads"). #1259 (1.6.6)
 * ImageCache/TextureSystem:
    * Clarified in the docs that TextureSystem::get_texture_info and
      ImageCache::get_image_info "exists" queries should return true, and
      place in *data the value 1 or 0 depending on whether the image exists
      and can be read. (1.6.0/1.5.10)
    * Added handle-based versions of TextureSystem get_texture_info(),
      get_imagespec(), imagespec(), and get_texels(), in addition to the
      existing name-based versions of those methods. Note that
      texture(), environment(), and texture3d() already had both
      name-based and handle-based varieties. #1057 (1.6.1) #1083 (1.6.2)
    * Add create_thread_info() and destroy_thread_info() methods that
      allow an app to manage the per-thread records needed by the IC.
      #1080 (1.6.2)
    * Added ImageCache get_perthread_info() and get_image_handle() to
      return opaque perthread and file handle pointers, much like
      TextureSystem already had, and added handle-based versions of
      get_image_info(), get_imagespec(), imagespec(), get_pixels(), and
      get_tile(), in addition to the existing name-based versions of
      those methods. #1057 (1.6.1)
    * ImageCache get_tile and get_pixels have new varieties that let you
      request channel begin/end range. This allows you to control which
      channel ranges are in the cache, and thus be much more efficient
      with cache storage when only a few channels are needed from a file
      with many channels. #1226 (1.6.5)
 * ImageBufAlgo:
    * New ImageBufAlgo functions: abs, absdiff, div, fill, noise, mad,
      invert, deepen, ociofiletransform.
    * nchannels() now takes an 'nthreads' parameters, just like all the
      other ImageBufAlgo functions. #1261 (1.6.6)
 * Python bindings:
    * Added previously-M.I.A. ImageSpec::erase_attribute(). #1063 (1.6.1)
    * ImageSpec.set_channel_formats() now works when the channel
      type lists are either TypeDesc, in addition to the existing support
      for BASETYPE. #1113 (1.6.3/1.5.13)
    * Added Python bindings for DeepData and deep reads (ImageInput) and
      writes (ImageOutput), as well as additional DeepData and ImageBuf
      methods to fully match the C++ API. #1113 #1122 (1.6.3/1.5.13)
    * ImageBuf.set_pixels, and ImageBuf.get_pixels with ROI. #1167,1179 (1.6.4)
    * Change Python ImageOutput bindings to simplify the write_* methods.
      They no longer take both a TypeDesc and an array; it can figure out
      the type from the array itself. Also get rid of the stride parameters,
      which weren't useful in a Python context. #1184 (1.6.4)
    * ImageBufAlgo colorconvert, ociolook, and ociodisplay now take an
      optional string colorconfig argument. #1187 (1.6.4)
    * Fix missing Python bindings for global OIIO::getattribute(). #1290
      (1.6.8)
 * The ColorConfig wrapper for OCIO functionality has been extended to
   parse color names from filename strings, and to report the recommended
   pixel data type for a color space. #1129 (1.6.3)
 * C++11 definitions: oiioversion.h defines OIIO_BUILD_CPP11 as nonzero
   if OIIO itself was built in C++11 (or later) mode, and platform.h
   defines OIIO_USING_CPP11 as nonzero if at this moment C++11 (or
   later) mode is detected. Note that these can differ if one set of
   compiler flags was used to build OIIO, and a different set is used to
   build a project that uses OIIO headers. #1148 (1.6.4)
 * Renamed the "fps" standard metadata to "FramesPerSecond. #1193 (1.6.4)
 * Removed deprecated header "string_ref.h" (use string_view.h). (1.6.1)
 * oiioversion.h: Renamed the namespace macros OIIO_NAMESPACE_ENTER/EXIT to
   OIIO_NAMESPACE_BEGIN/END, and roll the braces into it. #1196 (1.6.4)
 * array_view.h: Refactor array_view to be more in line with what is slated
   for C++17, in particular it is now templated on Rank and so can be a view
   to a multi-dimensional array. Also change array_view_strided to have
   strides measured in units of sizeof(T), not bytes (to keep with C++17).
   This also adds coordinate.h to give definitions for the offset<>,
   bounds<>, and bounds_iterator<> templates used by array_view. #1205
   (1.6.4)
 * Add top-level OIIO::get_int_attribute(), get_float_attribute(), and
   get_string_attribute() helpers, similar to how they work in many
   of the classes. #1283 (1.6.7)

Fixes, minor enhancements, and performance improvements:
 * oiiotool
    * Bug fix for frame sequences -- could crash in Windows. #1060 (1.6.1)
    * Gracefully handle requests to save an image with more channels than
      the output file format can handle. Instead of being a fatal error,
      now it's just a warning, and extra channels are dropped. It tries to
      to find R, G, B, and A channels, saving them. If those names are
      not found, it just saves the first 3 (or 4) channels. #1058 (1.6.1)
    * Improve error messages when files can't be read. It is now easier
      to to distinguish files that don't exist from those that are an
      unknown format from those that are corrupted or have read
      errors. #1065 (1.6.1)
    * Flag errors properly when -d specifies an unknown data format name.
      #1077 (1.6.2/1.5.13)
    * oiiotool numeric wildcard improvement: allow more digits to match.
      #1082 (1.6.2/1.5.13)
    * Bug fix: input file data format didn't always end up in the output.
      (1.6.3)
    * --channels bugs were fixed when dealing with "deep" images. (1.6.3)
    * All the color space conversion operations run much faster now,
      since the underlying IBA::colorconvert() has been parallelized. (1.6.3)
    * --crop logic bug fixed in cases where the crop region was the same
      size as the original pixel data window. #1128 (1.6.3)
    * oiiotool now gives proper error messages when asked to perform
      unsupported operations on deep images. (1.6.3)
    * Bug fix: --frames incorrectly overrode explicit frame sequence
      wildcards on the command line. #1133 (1.6.3)
    * --crop, --trim, and --autotrim have been extended to work on
      "deep" images. #1137 (1.6.3)
    * For "procedural" ImageInputs, don't give "file doesn't exist"
      errors. (1.6.4)
    * Suppress output/copying of "textureformat" metadata inherited from
      input if it's not plausibly still a valid texture (i.e., if it's
      no longer tiled or MIPmapped). #1206 (1.6.4)
    * oiiotool's full help message lists all supported formats. #1210 (1.6.5)
    * oiiotool --help prints a briefer help screen. Use --help -v for
      the full-detail help. #1214 (1.6.5)
    * Bug fix in --fit when the image didn't need to be resized.
      #1227 (1.6.5/1.5.21)
    * Bug fix in --ch for "deep" files when the channel reordering is
      the same as it already was. #1286 (1.6.7)
 * ImageBufAlgo:
    * compare() (and therefore oiiotool -diff and idiff) did not notice
      image differences when the pixels that differed had NaN or NaN or
      Inf values! Now it is right. #1109 (1.6.3/1.5.13)
    * channels() bugs were fixed when dealing with "deep" images. (1.6.3)
    * colorconvert() has been parallelized, and thus on most systems will
      now run much faster. (1.6.3)
    * render_text() handles UTF-8 input. #1121 (1.6.3)
    * colorconvert(), ociodisplay(), and ociolook() have new varities that
      accept an optional ColorConfig, rather than having no choice but to
      construct a new one internally. (1.6.3)
    * nonempty_region() and crop() have been extended to handle "deep"
      images. #1137 (1.6.3)
    * Fix bug in fft() -- was not always zeroing out the imaginary channel.
      #1171 (1.6.4/1.5.17)
    * Fixed uninitialized variable bugs with rangecompress() and
      rangeexpand() when using luma. #1180 (1.6.4)
    * The lanczos3, radial-lanczos, and catrom filters have been change
      from fixed-width to fully scalable. This fixes artifacts that
      occur when using them as upsizing filters. #1228,#1232 (1.6.5/1.5.21)
 * maketx, TextureSystem, and ImageCache:
    * TextureSystem/IC now directly stores uint16 and half pixel data in
      the cache rather than converting internally to float for tile storage,
      thus effectively doubling the cache capacity for files of those
      formats. (1.6.3)
    * Fix broken bicubic texture sampling with non-power-of-two sized
      tiles. #1035 (1.6.0/1.5.10)
    * maketx: when the source image was a crop (data window != display
      window), and the sharpening filters were used, it would
      incorrectly issue an "unknown filter name" error. #1059 (1.6.1/1.5.12)
    * maketx: Flag errors properly when -d specifies an unknown data
      format name. #1077 (1.5.13)
    * maketx now writes to a temporary file, then moving it to the final
      requested output filename only when the write completed without
      error.  This prevents situations where maketx crashes or is killed
      and leaves behind a file that looks correct but is actually
      corrupted or truncated. #1072 (1.6.2/1.5.13)
    * TextureSystem bug fix that occasionally resulted in NaN in the
      alpha channel result when looking up from 3-channel images. #1108
      (1.6.3/1.5.13)
    * maketx --runstats prints runtime staticstics (deprecating --stats).
      #1152 (1.6.4)
    * Fixed trilinear MIPmap texture lookups that gave invalid alpha fill.
      #1163 (1.6.4/1.5.16)
    * The lanczos3, radial-lanczos, and catrom filters have been change
      from fixed-width to fully scalable. This fixes artifacts that
      occur when using them as upsizing filters. #1228,#1232 (1.6.5)
    * Texture cache memory efficiency is much better for the special case
      of accessing just a few channels from a texture file with large
      numbers of channels. #1226 (1.6.5)
    * Eliminate spurious ImageCache invalidation just because the shared
      cache is requested again. #1157 (1.6.4/1.5.16)
    * Statistics output also shows all the option setting values. #1226 (1.6.5)
    * Data copy error in ImageCache::get_pixels for partial-channel-set
      copies. #1246 (1.6.5)
    * maketx -u now remakes the file if command line arguments or OIIO
      version changes, even if the files' dates appear to match.
      #1281 (1.6.8)
 * GIF:
    * Write support! #1193 (1.6.4)
    * On input, renamed "fps" metadata to "FramesPerSecond". #1193 (1.6.4)
 * IFF:
    * Fix botched output of 16 bit uncompressed data. #1234 (1.6.5/1.5.21)
    * Make "rle" compression the default. #1234 (1.6.5/1.5.21)
 * JPEG:
    * Now properly read/write xdensity and ydensity (what OIIO and TIFF
      call "XResolution" and "YResolution" and, therefore,
      "PixelAspectRatio". #1042 #1066 (1.6.0, 1.6.1)
    * Support JPEG files encoded as CMYK (by converting to RGB upon read)
      #1044 (1.6.1)
    * Fix misdeclared supports() which would make the JPEG plugin appear
      to not support exif or iptc. #1192 (1.6.4)
 * JPEG-2000:
    * Fix handling of un-premultiplied alpha (which is dictated by the
      JPEG-2000 spec). (1.6.3)
    * Fix reading of YUV-encoded files. (1.6.3)
    * Read and write the ICC profile, if present. (1.6.3)
    * Handle all bit depth precisions properly (previously only 8, 10,
      12, and 16 were right). (1.6.3)
    * Set the full/display window correctly. (1.6.3)
    * Deal with differing per-channel data windows and sampling rates. (1.6.3)
 * OpenEXR:
    * Improved handling of density and aspect ratio. #1042 (1.6.0)
    * Fix read_deep_tiles() error when not starting at the image origin.
      #1040 (1.6.0/1.5.10)
    * Fix output of multi-part exr file when some parts are tiled and
      others aren't. #1040 (1.6.0/1.5.10)
    * write_tile() with AutoStride calculated the wrong default strides
      for "edge" tiles when the image width or length was not an integer
      multiple of the tile size. Also clarified the PDF and imageio.h
      docs in how they explain strides for this case. #1055 (1.6.1/1.5.12)
    * Fix bugs in reading deep OpenEXR images with mixed channel types.
      #1113 (1.6.3/1.5.13)
    * OpenEXR output supports("deepdata") now correctly returns 'true'.
      #1238 (1.6.5/1.5.21)
    * A separate global OIIO::attribute("exr_threads") sets the thread pool
      size for OpenEXR's libIlmImf, independent of the OIIO thread fan-out
      attribute OIIO::attribute("threads"). #1244 (1.6.5)
    * Correctly read and write Matrix33 and double (scalar, 2d, 3d, m33, m44)
      metadata. #1265,#1267 (1.6.6)
    * Recognize AR/AG/AB channel names in addition to the old RA/RG/RB
      #1277 (1.6.6)
 * PNG:
    * Writing PNG files now honors the PixelAspectRatio metadata.
      #1142 (1.6.3)
 * PFM:
    * PFM (float extension of PNM) was incorrectly flipped top to bottom.
      Now fixed. #1230 (1.6.5)
 * PSD:
    * Better error handling for files lacking "global layer mask info"
      or "additional layer info". #1147 (1.6.4/1.5.18)
    * Additional PSD signatures for global additional layer info.
      #1147 (1.6.4/1.5.18)
    * Better error handling when dealing with an empty layer mask.
      #1147 (1.6.4/1.5.18)
 * TIFF:
    * Improved handling of density and aspect ratio. #1042 (1.6.0)
    * Improved proper handling of the interplay between "XResolution",
      "YResolution", and "PixelAspectRatio". #1042 (1.6.0)
    * TIFF output: recognize special "tiff:write_exif" metadata, which when
      present and set to 0, will skip writing the Exif directory into the
      TIFF file. This can be helpful when you expect the resulting TIFF
      file to be read with very old versions of libtiff. #1185 (1.6.4/1.5.18)
    * Correct read and write of JPEG-compressed TIFF. #1207 (1.6.4)
    * Correct support for reading LAB, LOG, YCbCr, subsampled chroma.
       #1207 (1.6.4)
    * Make robust to strange TIFF files that have unexpected MIP
      level-to-MIP level changes in planarconfig, photometric, palette,
      extrasamples, etc. #1220,1221 (1.6.5/1.5.20)
    * Support output of 2, 4, 10, and 12 bit unsigned ints into TIFF files.
      #1216 (1.6.5)
    * Make TIFF reading more robust to certain subimage-to-subimage
      changes that were thought to be invariant. #1221 (1.6.5)
    * CMYK is properly read and written. Upon read, CMYK is auto-converted
      to RGB (and the "tiff:ColorSpace" metadata is set to "CMYK"). For
      output, if "tiff:ColorSpace" metadata is set and nonzero, the RGB
      passed in will be auto-converted to CMYK upon writing.
      #1233 #1245 (1.6.5)
    * Recognize Exif tags in the main directory, not only the special
      Exif directory. #1250 (1.6.5)
    * Fix bug in read_scanlines when reading TIFF files with UNassociated
      alpha and unusual ystride values. #1278 (1.6.6)
 * ImageBuf iterator constructors with 0-size ranges or ROIs have been
   fixed to look like they are immediately done(). #1141 (1.6.3)
 * Fix bug in internal convert_image() that could corrupt certain image
   copying of non-contiguous data layouts. #1144 (1.6.3)
 * Also search for OIIO plugins in [DY]LD_LIBRARY_PATH. #1153 (1.6.4/1.5.16)
 * Nuke plugin: don't crash with NULL Knob* in TxReaderFormat::setMipLabels.
   #1212 (1.6.5/1.5.20)
 * idiff -q results in quiet mode -- output nothing for success, only
   minimal errors to stderr for failure. #1231 (1.6.5)

Build/test system improvements:
 * Python plugin is now build as a cmake "module" rather than "library",
   which fixes some things on OSX. #1043 (1.6.0/1.5.10)
 * Various build fixes for Windows. #1052 #1054 (1.6.1)
 * New CMake build-time option to specify the default plugin search path.
   #1056 (1.6.1/1.5.12)
 * Fix build breaks for very old versions of Ilmbase (1.6 and earlier)
   that lack a definition of V4f used by our simd.h. #1048 (1.6.1/1.5.11)
 * Fix signed/unsigned warning on 32 bit platforms in jpeginput.cpp.
   #1049 (1.6.1/1.5.11)
 * New CMake build-time option to specify the default plugin search path.
   #1056 (1.6.1/1.5.12)
 * Fix gcc 5.0 compiler warning in PtexHalf.cpp. (1.6.1/1.5.12)
 * Remove dependency of OpenSSL by default. #1086 (1.6.2/1.5.13)
 * Fix warnings when compiling with C++11. (1.6.3/1.5.13)
 * Dont link Python framework on OSX. #1099 (1.6.3/1.5.13)
 * Changed the way testtex warps the image to give faux perspective to
   test texture mapping. (1.6.3)
 * Build-time USE_SIMD=... has been changed from accepting a single tag to
   a comma-separated list of feature options. So you can, for example, do
   make USE_SIMD=avx,f16c ...  (1.6.3)
 * make USE_NINJA=1 causes CMake to build Ninja build files instead of
   Makefiles (they execute much faster, espectially for incremental builds).
   #1158 (1.6.4)
 * PSD & JPEG plugins fixes for Win32 compilation. #1150 (1.6.4/1.5.16)
 * Fix Nuke plugin build files to not do anything if USE_NUKE=0.
   #1156 (1.6.4/1.5.16)
 * Builds now produce much less console output by default (use VERBOSE=1
   to get all the details, most of which is only useful when debugging
   broken builds). #1162 (1.6.4)
 * Fix support for older ffmpeg version on Ubuntu 14.04. #1168 (1.6.4/1.5.17)
 * Build-time fixes for Nocona CPUs that have SSE3 without SSSE3.
   #1175 (1.6.4/1.5.17)
 * ustring internals fixes for gcc 5.x changs to std::string ABI. #1176 (1.6.4)
 * Fixes for clean build with clang 3.6. #1182,1183 (1.6.4)
 * Fix signed/unsigned comparison error. #1186 (1.6.4)
 * Top-level Makefile option USE_OPENCV=0 to turn off even searching for
   OpenCV components. #1194 (1.6.4/1.5.18)
 * If a system-installed (external) PTex implementation is found, use
   it.  Only use the "bundled" version if no other is found. Also add a
   top-level USE_PTEX=0 that will skip PTex support, even if the library
   is found.  #1195,1197 (1.6.4)
 * Fix compiler warnings about int vs size_t mismatches. 1199 (1.6.4)
 * Improve C++11 and C++14 readiness. #1200
 * Fix build break with certain new versions of libraw. #1204 (1.6.4/1.5.19)
 * Fix build warnings for new Apple tools release that upgrades the standard
   clang release. #1218 (1.6.5/1.5.20)
 * When compiling in C++11 mode, std::unordered_map, mutex,
   recursive_mutex, lock_guard, bind, ref, cref, thread, shared_ptr will
   be used rather than boost equivalents, and our own thread_group and
   intrusive_ptr are now used rather than the boost equivalents. We
   believe that this completely removes all Boost headers and types from
   the OIIO public APIs when in C++11 mode. (Though internals still use
   Boost in some cases.) #1262 #1266 (1.6.6)
 * We are now set up to use Travis-CI (https://travis-ci.org) for continuous
   integration / automatic builds of all merges and pull requests.
   #1268, #1269, #1273 (1.6.6)
 * Don't install fonts if USE_FREETYPE is disabled. #1275 (1.6.6)
 * Use ccache for builds when detected and safe (unless USE_CCACHE=0).
   #1274,#1285 (1.6.7)
 * Failed tests now print their non-matching text output to the console
   when doing 'make test'. This makes it much easier to spot most errors.
   #1284 (1.6.7)

Developer goodies / internals:
 * Strutil additions: parse_until, parse_nested (1.6.1), repeat
   (#1272/1.6.6/1.5.21).
 * Give Strutil::parse_string an option to not strip surrounding quotes.
   (1.6.4)
 * Made TypeDesc::equivalent accept comparisons of arrays of unspecified
   length with ones of definite length. #1072  (1.6.2/1.5.13)
 * Add Filesystem::rename() utility. #1070  (1.6.2/1.5.13)
 * New SIMD methods: insert<>, xyz0, vreduce_add, dot, dot3, vdot, vdot3,
   AxBxCxDx, blend0not (1.6.2)
 * array_view enhancements that let you initialize an array_view<const float>
   from a const std::vector<float>&.  #1084 (1.6.2/1.5.14)
 * hash.h contains several new hashes in namespaces 'OIIO::xxhash' and
   'OIIO::farmhash'. Also, Strutil::strhash now uses farmhash rather than
   the Jenkins one-at-a-time hash, bringing big speed improvements
   (including ustring creation). Beware that the strhash value returned
   will be different than they were before. #1090 (1.6.3)
 * fmath: safe_fast_pow improves the precision of its results for
   special cases of pow(x,1) and pow(x,2). #1094 (1.6.3/1.5.13)
 * Added TypeDesc::TypeHalf(). #1113 (1.6.3/1.5.13)
 * thread.h: our atomic types have had their API adjusted somewhat to
   more closely conform to C++11's std::atomic. (1.6.3)
 * ustring's internals and underlying hash table have been overhauled,
   yielding much higher performance, especially when many threads are
   simultaneously creating ustrings. (1.6.3)
 * ROI improvement: make intersection & union robust to uninitialized ROIs
   as arguments. (1.6.3)
 * osdep.h is deprecated. Use platform.h instead. (1.6.3)
 * The DISPATCH_TYPES utility macros used internally by IBA have been
   improved, and in particular the DISPATCH_COMMON_TYPES now handle ALL
   types ("uncommon" ones are silently converted to float). (1.6.3)
 * platform.h moves the endian functions into the OIIO namespace. (1.6.3)
 * platform.h adds functions for runtime query of CPU capabilities. (1.6.3)
 * simd.h: float4 and int4 can now construct and load from unsigned short*,
   short*, unsigned char*, char*, and 'half'. (1.6.3)
 * Strutil::utf8_to_unicode (1.6.3)
 * Filesystem::current_path(). #1124 (1.6.3/1.5.21)
 * Filesystem enumerate_file_sequence and scan_for_matching_filenames
   have been modified to clear their result vectors rather than simply
   assume they are empty. #1124 (1.6.3)
 * oiiotool internals have been refactored to be class-oriented and move
   a lot of boilerplate repeated in each op to be part of the base
   class. #1127 (1.6.3)
 * timer.h: Timer and ScopedTimer have changed slightly. This isn't used
   in any public OIIO APIs, but may affect 3rd party programs that like
   to use OIIO's timer.h for convenience. #1201 (1.6.4/1.5.19)
 * dassert.h: added OIIO_STATIC_ASSERT macros for static
   assertion. Doesn't affect existing OIIO apps since they are new
   additions, but feel free to use them! #1202 (1.6.4/1.5.19)
 * New unit test for imagecache. #1246 (1.6.5)
 * Sysutil::hardware_concurrency() and physical_concurrency(). #1263
   (1.6.6/1.5.21)



--
Larry Gritz
[email protected]


_______________________________________________
Oiio-dev mailing list
[email protected]
http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org

Reply via email to