Requested by Peter Bex.
Changes:
4.8.0.3
- Runtime
- Avoid high CPU usage when waiting for child process I/O with poll().
Affects at least Linux and Solaris.
- Escape single backslash in printed symbols.
- Type system
- Fixed types.db entry for join and mutex-lock!
- Core tools
- chicken-install transports now parses ports on URIs with empty paths
4.8.0.2
- Interpreter
- Fix regression in ,d for procedures, which resulted in an sprintf error.
- Compiler
- Fix rewriting of newlines (~~) in printf.
- Runtime
- Allow > 4GB heap on 64-bit systems (#974).
- Added missing library (-lrt) on Solaris for nanosleep calls (#970).
- Build system
- Use test -f instead of test -e in identify.sh to placate Solaris.
== 2.6.0 / 2013-02-16 Charlie Savage
* Fix uninitialized constant LibXML::XML::Error::I18N (NameError) that occurred
with older versions of libxml.
* Various updates/fixes to new XML::Writer class and update how flushing works
(julp)
## 4.0.0
* The Haml exectutable now accepts an `--autoclose` option. You can now
specify a list of tags that should be autoclosed
* The `:ruby` filter no longer redirects $stdout to the Haml document, as this
is not thread safe. Instead it provides a `haml_io` local variable, which is
an IO object that writes to the document.
* HTML5 is now the default output format rather than XHTML. This was already
the default on Rails 3+, so many users will notice no difference.
* The :sass filter now wraps its output in a script tag, as do the new :less and
:scss filters. The :coffee filter wraps its output in a script tag.
* Haml now supports only Rails 3 and above, and Ruby 1.8.7 and above. If you
still need support for Rails 2 and Ruby 1.8.6, please use Haml 3.1.x which
will continue to be maintained for bug fixes.
* The :javascript and :css filters no longer add CDATA tags when the format is
html4 or html5. This can be overridden by setting the `cdata` option to
`true`. CDATA tags are always added when the format is xhtml.
* HTML2Haml has been extracted to a separate gem, creatively named "html2haml".
* The `:erb` filter now uses Rails's safe output buffer to provide XSS safety.
* Haml's internals have been refactored to move the parser, compiler and options
handling into independent classes, rather than including them all in the
Engine module. You can also specify your own custom Haml parser or compiler
class in Haml::Options in order to extend or modify Haml reasonably easily.
* Add an {file:REFERENCE.md#hyphenate_data_attrs-option `:hyphenate_data_attrs`
option} that converts underscores to hyphens in your HTML5 data keys. This is
a language change from 3.1 and is enabled by default.
(thanks to [Andrew Smith](https://github.com/fullsailor))
* All Hash attribute values are now treated as HTML5 data, regardless of key.
Previously only the "data" key was treated this way. Allowing arbitrary keys
means you can now easily use this feauture for Aria attributes, among other
uses.
(thanks to [Elvin Efendi](https://github.com/ElvinEfendi))
* Added `remove_whitespace` option to always remove all whitespace around Haml
tags. (thanks to [Tim van der Horst](https://github.com/vdh))
* Haml now flattens deeply nested data attribute hashes. For example:
`.foo{:data => {:a => "b", :c => {:d => "e", :f => "g"}}}`
would render to:
`<div class='foo' data-a='b' data-c-d='e' data-c-f='g'></div>`
(thanks to [Péter Pál Koszta](https://github.com/koszta))
* Filters that rely on third-party template engines are now implemented using
[Tilt](github.com/rtomayko/tilt). Several new filters have been added, namely
SCSS (:scss), LessCSS, (:less), and Coffeescript (:coffee/:coffeescript).
Though the list of "official" filters is kept intentionally small, Haml comes
with a helper method that makes adding support for other Tilt-based template
engines trivial.
As of 4.0, Haml will also ship with a "haml-contrib" gem that includes useful
but less-frequently used filters and helpers. This includes several additional
filters such as Nokogiri, Yajl, Markaby, and others.
* Generate object references based on `#to_key` if it exists in preference to
`#id`.
* Performance improvements.
(thanks to [Chris Heald](https://github.com/cheald))
* Helper `list_of` takes an extra argument that is rendered into list item
attributes.
(thanks [Iain Barnett](http://iainbarnett.me.uk/))
* Fix parser to allow lines ending with `some_method?` to be a Ruby multinline.
(thanks to [Brad Ediger](https://github.com/bradediger))
* Always use :xhtml format when the mime_type of the rendered template is
'text/xml'.
(thanks to [Stephen Bannasch](https://github.com/stepheneb))
* html2haml now includes an `--html-attributes` option.
(thanks [Stefan Natchev](https://github.com/snatchev))
* Fix for inner whitespace removal in loops.
(thanks [Richard Michael](https://github.com/richardkmichael))
* Use numeric character references rather than HTML entities when escaping
double quotes and apostrophes in attributes. This works around some bugs in
Internet Explorer earlier than version 9.
(thanks [Doug Mayer](https://github.com/doxavore))
* Fix multiline silent comments: Haml previously did not allow free indentation
inside multline silent comments.
* Fix ordering bug with partial layouts on Rails.
(thanks [Sam Pohlenz](https://github.com/spohlenz))
* Add command-line option to suppress script evaluation.
* It's now possible to use Rails's asset helpers inside the Sass and SCSS
filters. Note that to do so, you must make sure sass-rails is loaded in
production, usually by moving it out of the assets gem group.
* The Haml project now uses [semantic versioning](http://semver.org/).
## 3.2.0
The Haml 3.2 series was released only as far as 3.2.0.rc.4, but then was
renamed to Haml 4.0 when the project adopted semantic versioning.
## 3.1.8
* Fix for line numbers reported from exceptions in nested blocks
(thanks to Grant Hutchins & Sabrina Staedt).
* Frame body on Ruby 1.9+ using bytes, not code points String#slice will only
use byte slicing if the string is considered to be in ASCII.
* Replace broken link with an inline comment
* Adds specs to validate 8bit/16bit signed decoding
* Adds 8bit signed and 16bit signed integers to table decoder
# Addressable 2.3.3
- fixed issue with converting common primitives during template expansion
- fixed port encoding issue
- removed a few warnings
- normalize should now ignore %2B in query strings
- the IDNA logic should now be handled by libidn in Ruby 1.9
- no template match should now result in nil instead of an empty MatchData
- added license information to gemspec
gcc 4.6 won't complain about that, but earlier versions do:
http://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=ce3765bf44e49ef0568a1ad4a0b7f807591d6412
gcc 4.6 with -pedantic-errors shows:
/opt/xorg/include/X11/extensions/XInput2.h:172:13: error: redefinition of
typedef ‘PointerBarrier’ [-pedantic]
In file included from test.c:1:0:
/opt/xorg/include/X11/extensions/Xfixes.h:255:13: note: previous declaration
of ‘PointerBarrier’ was here
PointerBarriers is defined in XFixes.h and here. So hook onto the only thing
we can in Xfixes.h and use that to figure out if we need to typedef
ourselves. XFIXES_MAJOR is defined in xfixeswire.h, so we can't hook onto it
directly.
Adding this ifdef here means we have include order dependency of XFixes.h
before XInput2.h unless we add a similar ifdef to the fixes headers.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
---
Nasty, but can't think of a better way atm.
separately distributed catman page.
R44 contains these bugfixes:
* [tg] "$@" always generates words; bug spotted by engla in IRC
* [tg] Optimise print_columns display to use the screen space better
Please upgrade to mksh R43 (or stick on R41c) because of#
* [tg] Do not permit $'#' and $"#" in anything that looks like a
string, as old scripts, like ncurses', depend on behaviour not
guaranteed by POSIX regarding unescaped dollar signs there
* [dalias] Make detection of function prototypes more reliable
* [tg] Quote setenv arguments for eval properly in dot.mkshrc
* [tg] Validate parameter names for typeset, export, etc.
* [tg] Provide a classic BSD echo builtin for /bin/sh on MidnightBSD
* [tg] When generating Makefrag.inc put list of check_categories
inside
* [tg] Actually test all [197]echo(1) flavours and MidnightBSD
/bin/sh hacks
mksh R42b and R41c fix regressions:
* [tg] Correctly initialise memory (Debian #700604)
* [tg] LP#1104543 fix was too strict (Debian #700526)
mksh R42 brings back the release\ {early,often} scheme:
* [tg] Make -DMKSH_DISABLE_EXPERIMENTAL a nop again
* [tg] Quell some LLVM+Clang warnings; overhaul scan-build
[198]assert(3)s
* [tg, RT] Bunch of portability and build system fixes
* [tg] Re-enable ${ precmd;} in dot.mkshrc and fix it to retain the
errorlevel
* [RT] Port to Minix-vmd, QNX 4, Watcom C; begin porting to SunOS
4.1.1, Xenix, ISC (Interactive) Unix
* [tg] Prefer const-clean sys_errlist[] to [199]strerror(3)
* [tg] Permit $"#" and $'#' everywhere except in the body of here
documents that are not here strings
* [tg] Use full recursive parser for double-quoted here strings, and
reuse code between here strings and here documents
* [tg] #ifdef DEBUG_LEAKS free all fds and memory on exit
(LP#1106116)
* [tg] Don't close stdout/stderr with redirections, dup /dev/null
instead, always, both in dot.mkshrc and the testsuite, it does
break!
* [tg] Handle ${ #;} like functions in that local and return DWIW;
use it for the big chunk in $PS1 to avoid [200]fork(2)ing (at cost
of tempfiles; dot.mkshrc is a sample, adjust to your needs)
* [tg] Document invalid ${a/b/c} patterns in manpage (Debian #698678)
mksh R41b is a bugfix-only release off a stable branch:
* [tg] Fix [201]gettimeofday(2) detection at build time (warning)
* [RT, tg] Build.sh: catch non-working dash printf builtin
* [chris2, dalias, tg] Remove musl libc workaround and use
_GNU_SOURCE which they kindly aliased to _ALL_SOURCE, which is
implemented now
* [tg] Fix getn and some cases of possible array bounds trespasses
* [chris2, dalias, tg] Use -fno-asynchronous-unwind-tables with GCC
* [tg] Fix a few warnings from libFirm/cparser (mostly
-Wsign-compare)
* [tg] Correct mistake when doing hashtable lookup collision
resolution
* [tg] Fix running the ERR and EXIT traps in situations with set -e
and/or eval (also closes Debian #696823)
* [tg] Fix "command shift", reported by «ormaaj:#!/bin/mksh»
* [Torsten Sillke] Unbreak linking on AIX (remove -qextchk)
* [tg] Fix regression wrt lists in functions and "set -e"
(LP#1104543)
mksh R41 brings a number of bugfixes and new features:
* [tg] Drop "set ±o arc4random" (deprecated in R40)
* [tg] Drop old Build.sh -long-options (deprecated in R40)
* [tg] Change the internal hash algorithm from Bob Jenkins'
one-at-a-time to its NUL-counting, always-changing,
better-avalanching MirOS variant [202]NZAAT (with feedback from
ciruZ; 75% fill level is reasonable; names tbd in Mirkev/MirJSON)
* [tg] Use $'#' for non-ASCII parameters for re-entry printing
* [tg] Use sane spelling of "read-only" consistently
* [tg] Improve tree -DDEBUG functions (internal/developer use)
* [tg] Reduce stack usage a bit; speed up hash tables at size cost
* [tg] MKSH_SMALL no longer implies -fno-inline
* [tg] Support optional seed in ${parameter@#seed} for security
* [tg] New Build.sh environment configurable: LDSTATIC (empty)
* [tg] Improve LTO effect by always adding our copies of distributed
utility function sources when linking statically (i.e. LDSTATIC is
not empty)
* [tg] Drop deprecated hack for lines beginning with an exclamation
mark
* [tg] No longer interpret numbers beginning with a 0 digit as octal
* [tg] Attempt to use -fwrapv on more compilers
* [tg, RT] Better portability to 386BSD, Debian 0.91, ancient Unic#s
* [tg] No longer use [203]mkstemp(3) or [204]tempnam(3) functions, do
our own
* [tg] Fix some bugs in the manual page and Build.sh
* [tg] Add MKSH_NO_CMDLINE_EDITING, MKSH_DISABLE_TTY_WARNING
* [RT] Port to Coherent UNIX
* [tg] Enable some options by default for some ports, for instance,
since BeOS can never have a controlling tty, the option disabling
that warning
* [tg] Some bugfixes, prompted by RT and Valgrind
* [RT] Disable [205]sigsuspend(2) on Syllable Desktop
* [tg] Fix several issues with typeset -p (LP: #993847)
* [RT] Detect lcc and apply inline fix, e.g. for use with libc5
* [tg] If klibc, set -DMKSH_NO_LIMITS and check for sigsuspend fix
* [tg] Fix some issues found by Coverity and some found while fixing
* [tg] Build.sh options: -t target-filename (instead of mksh); -L to
build a legacy mksh, current changes:
+ different $KSH_VERSION "LEGACY KSH" instead of "MIRBSD KSH"
+ purely for running ksh88 and pdksh scripts; no command line
editing
+ use traditional "set -- $(getopt #); echo $?" mode always
+ do not keep file descriptors private
+ parse leading-zero-digit numbers as octal
+ no mksh extension -T
+ use "long", not "int32_t", for arithmetics
* [tg] fix trimming with positional parameters (Debian #48453)
* [tg] ensure that case end tokens are not mixed up (Debian #220272)
* [tg] make alias definitions in mksh -c work (Debian #517009), hack
* [tg] Apply speed improvements and add MKSH_SMALL_BUT_FAST
* [tg] Fix CONSERVATIVE_FDS use-before-definition bug
* [tg] Correct two regressions when tab-completing (LP: #1025843) and
fix bugs in the same code wrt. completion display and other
expansions
* [tg] Make quoted output of "typeset -p" AT&T ksh93 compatible
* [tg] Implement ${foo@Q} like ${foo:Q} in [206]make(1)
* [tg] Remove some unused code; more int # bool conversion
* [tg] Fix using here documents in COMSUB etc. (LP: #1030581)
* [tg] Fix ulimit builtin usage to match what limits we actually know
* [tg] Allow overriding /etc location, experts only (LP: #1039713)
* [tg] Update to Unicode 6.1.0
* [tg, Todd Miller] Avoid changing [207]ps(1) output by accident
* [tg, ft, Christian Neukirchen] Detect zsh 2.5.02/NeXTstep for
Build.sh
* [tg] Detect musl-gcc wrapper, define _BSD_SOURCE there, which is
totally bogus, but musl, just like dietlibc, gets it wrong
* [tg] Improve compile-time assertions
* [tg] Repair select builtin without any choices given
* [tg] Add -DMKSH_GCC55009 hack to avoid some compile-time assertions
and introduce arith-mandatory in check.t to substitute for missing
that compile-time check; will change
* [tg] Rewrite lots of code to not rely on -fwrapv so much
* [tg] Build.sh: Fix [208]flock(2) detection on GNU/Linux
* [Andrew Kudryashov] Manpage: fix default for HISTSIZE
* [tg] Add debugging aid (split-screen mechanism using GNU screen)
* [Andrew Kudryashov] Manpage, Website: point out correct mailing
list
* [tg, Andrew Kudryashov] Fix ~/nonexistant tab completion
* [tg] Optimise sh -c "[^]\t\n"-$&-*;-?[\\`|]*" to exec, inspired by
Jilles Tjoelker (-DMKSH_DISABLE_EXPERIMENTAL to ostracise)
* [tg] Fix $? inside eval (RedHat BZ#865121)
* [tg] Implement ksh93 feature ${ foo;} (using tempfiles this time;
exclude with -DMKSH_DISABLE_EXPERIMENTAL in R41)
* [tg] Run SIGINT check more reliably in the cat builtin (LP#1058815)
* [tg] Handle ^C in here documents, COMSUB, arithmetics (LP#1069428)
* [tg] Make dot.mkshrc usable with "set -o nounset" / "set -u"
* [tg, Clint Adams] Clean up and optimise the error handling code
* [tg] Fix and add some checks in the testsuite
* [tg] Sort list of variables in the source code when possible
* [tg] Add $BASHPID (for ormaaj) and $EPOCHREALTIME
* [tg] Improve documentation, #ksh IRC channel homepage
* [tg, RT] Minix 2 also doesn't have [209]gettimeofday(2) # check for
it
* [tg] Fix an input command line editing display redrawing issue
* [tg] Track the tty to keep $COLUMNS and $LINES up-to-date after a
SIGWINCH even in scripts
The jsMath package provides a method of including mathematics in
HTML pages that works across multiple browsers under Windows,
Macintosh OS X, Linux and other flavors of unix. It overcomes a
number of the shortcomings of the traditional method of using images
to represent mathematics: jsMath uses native fonts, so they resize
when you change the size of the text in your browser, they print
at the full resolution of your printer, and you don't have to wait
for dozens of images to be downloaded in order to see the mathematics
in a web page. There are also advantages for web-page authors, as
there is no need to preprocess your web pages to generate any
images, and the mathematics is entered in TeX form, so it is easy
to create and maintain your web pages.
Although it works best with the TeX fonts installed, jsMath will
fall back on a collection of image-based fonts (which can still be
scaled or printed at high resolution) or unicode fonts when the
TeX fonts are not available. This package contains the necessary
TeX fonts.
Special Issues:
Due to GCC bug 53967, several key agorithms (e.g. convolution) may execute much faster (e.g. 2-3X) for x86-64 and/or when SSE is enabled for floating point math (-mfpmath=sse) if the GCC option -frename-registers is used. Default 32-bit builds do not experience the problem since they use '387 math. It is not clear in what version of GCC this problem started but it was not noticed by the developers until the GCC 4.6 timeframe. Other compilers do not suffer from this bug.
Security Fixes:
None.
Bug fixes:
Fixed bug with format substitutions if input string ends with a single '%'.
BMP: Fixed an old bug with decoding chromaticity primaries.
PNG: Fixed reading of interlaced images. Fix reading of sub-8-bit palette and grayscale images. Some PNG sub-formats were written incorrectly. Fix crash in PNG8 writer if image colors happened to be non-zero but image was not actually colormapped.
PNG: Configure script now also searches for libpng versions 16 and 17.
TIFF: Fix a crash which was noticed when writing RGBA separated (planar) format.
--enable-symbol-prefix was not prefixing all of the C symbols. Some core C library functions were not prefixed. This option applies to the Wand library API as well now.
C API: When input is from a user-provided file descriptor, the file position is restored after reading the file header bytes. Previously the file position was rewound to the beginning of the file. This allows reading embedded image data from the current offset in a file, and allows continuing to use the stream after GraphicsMagick has returned the image.
C API: It is now possible to invoke CloseBlob() multiple times.
display: Display was supposed to respond to +/-usePixmap, but was not. It was responding to +/-use_pixmap. Now it responds to both.
Windows/VisualMagick: Fix building GraphicsMagick with Intel ICC compiler driven by Visual Studio Professional 2012.
Windows: Avoid a crash and produce a useful diagnostic if Ghostscript is needed but not yet installed.
New Features:
GM utility: New 'batch' command was contributed by Kenneth Xu which supports executing any number of other GM utility sub-commands in a single invokation in a sort of "batch" script. Input may be piped from standard input, from a specified file, or from a 'GM >' command prompt. This utilities front-end allows any other program/script to drive 'gm' using a co-process model and speeds up execution by eliminating utility start-up/shut-down time.
WIN64 (64-bit Windows): Windows 64-bit is now officially supported.
convert/mogrify: Now support -auto-orient to automatically rotate the image upright for viewing based on its current orientation setting. Also support -orient to support setting the current image orientation. Please note that the orientation property of EXIF profiles is not yet updated so the EXIF profile will be wrong after using -auto-orient.
C API: AutoOrientImage(), new New function to automatically orient the image so that it is upright for normal viewing.
Wand API: MagickGetImagePage()/MagickSetImagePage(), new functions to support getting and setting the image page size and offsets.
PNG: Added PNG48 and PNG64 support. Added PNG00 support (png encoder that inherits its color-type and bit-depth from the input, if the input was a PNG datastream).
Feature improvements:
GraphicsMagick TAP tests may now be run stand-alone using Perl's 'prove' TAP test driver.
Performance Improvements:
Detection of glob specifications in file names is more efficient.
Windows Delegate Updates:
None.
Behavior Changes:
ltdl: Libltdl is no longer bundled. Libltdl must be previously installed on the system in order to build the modules configuration.
AppendImages() now converts subsequent images to the colorspace of the first image, and no longer converts the first image to RGB. Instead, it is assumed the user knows what she is doing.
SetImageColorRegion() no longer automatically converts the image to RGB. The user is responsible for assuring that the provided color is in the same colorspace as the image.
* fixes some Activity related issues
* fixes image preview issue with Ruby1.9.3.p392 and later
* support image upload service `pikubo'
* measures agains delay
PR pkg/47604 by Edgar Fuss.
IO::Prompter exports a single subroutine, C<prompt>, that prints a
prompt (but only if the program's selected input and output streams are
connected to a terminal), then reads some input, then chomps it, and
finally returns an object representing that text.
Revision history for Image::Info
2012-02-29 Slaven Rezic <slaven@rezic.de>
Release 1.34
Stable release with all changes in 1.33_50..1.33_51
2013-01-28 Slaven Rezic <slaven@rezic.de>
Release 1.33_51
Handle corrupt JPEG files with extraneous bytes
2013-01-25 Slaven Rezic <slaven@rezic.de>
Release 1.33_50
Limited support for WBMP files.
2012-11-03 Slaven Rezic <slaven@rezic.de>
Release 1.33
Added test image for RT #78471.
2012-10-25 Slaven Rezic <slaven@rezic.de>
Release 1.32_52
Handle BMP files with negative heights (RT #78471).
2012-10-24 Slaven Rezic <slaven@rezic.de>
Release 1.32_51
Signature fix.
2012-10-23 Slaven Rezic <slaven@rezic.de>
Release 1.32_50
Repacked because of Module::Install 1.04 problems (see mail from
Miyagawa). Now Image::Info is again using good old EUMM.