Upstream changes:
1.38 2018-12-13 16:26:00
[BUGFIX]
* require at least Cwd 3.75
1.35 2018-12-12 09:05:00
[BUGFIX]
* Tests failed
1.34 2018-12-11
[BUGFIX]
* Tests failed on Windows (github #9)
* 'exclude' is meant to be a list of directories, but it was handled as regular expressions
[IMPROVEMENTS]
* rewrite larger parts of the module
* add lots of tests
Relates to PR pkg/53826, further details are provided there. This is a
temporary fix: the newest release of Bison addresses this by including
a newer version of gnulib. I'm applying this less obtrusive change for
now. No PKGREVISION, because there should be no change to existing
packages, it addresses build failures only.
pluggy 0.8.1:
Trivial/Internal Changes
- Add stacklevel=2 to implprefix warning so that the reported location of warning is the caller of PluginManager.
1.4.0:
* Fixing python 3 compatibility in Simple HTTP Server fixture
* Fixed broken tests in pytest-profiling
* Pinned pytest<4.0.0 until all deprecation warnings are fixed.
* pytest-webdriver: replaced deprecated phantomjs with headless Google Chrome.
* Add Vagrantfile to project to make test environment portable.
* Add .editorconfig file to project.
* pytest-server-fixtures: add TestServerV2 with Docker and Kubernetes support.
* pytest-server-fixtures: fix for an issue where MinioServer is not cleaned up after use.
* pytest-server-fixtures: fix deprecation warnings when calling pymongo.
* pytest-server-fixtures: close pymongo client on MongoTestServer teardown.
* pytest-server-fixtures: upgrade Mongo, Redis and RethinkDB to TestServerV2.
* coveralls: fix broken coveralls
1.4.0:
* Fixing python 3 compatibility in Simple HTTP Server fixture
* Fixed broken tests in pytest-profiling
* Pinned pytest<4.0.0 until all deprecation warnings are fixed.
* pytest-webdriver: replaced deprecated phantomjs with headless Google Chrome.
* Add Vagrantfile to project to make test environment portable.
* Add .editorconfig file to project.
* pytest-server-fixtures: add TestServerV2 with Docker and Kubernetes support.
* pytest-server-fixtures: fix for an issue where MinioServer is not cleaned up after use.
* pytest-server-fixtures: fix deprecation warnings when calling pymongo.
* pytest-server-fixtures: close pymongo client on MongoTestServer teardown.
* pytest-server-fixtures: upgrade Mongo, Redis and RethinkDB to TestServerV2.
* coveralls: fix broken coveralls
1.4.0:
* Fixing python 3 compatibility in Simple HTTP Server fixture
* Fixed broken tests in pytest-profiling
* Pinned pytest<4.0.0 until all deprecation warnings are fixed.
* pytest-webdriver: replaced deprecated phantomjs with headless Google Chrome.
* Add Vagrantfile to project to make test environment portable.
* Add .editorconfig file to project.
* pytest-server-fixtures: add TestServerV2 with Docker and Kubernetes support.
* pytest-server-fixtures: fix for an issue where MinioServer is not cleaned up after use.
* pytest-server-fixtures: fix deprecation warnings when calling pymongo.
* pytest-server-fixtures: close pymongo client on MongoTestServer teardown.
* pytest-server-fixtures: upgrade Mongo, Redis and RethinkDB to TestServerV2.
* coveralls: fix broken coveralls
0.19.10:
IMPROVEMENTS
* Add dulwich.porcelain.write_tree.
* Support reading MERGE_HEADS in Repo.do_commit.
* Import from collections.abc rather than collections where
applicable. Required for 3.8 compatibility.
* Support plain strings as refspec arguments to
dulwich.porcelain.push.
* Add support for creating signed tags.
BUG FIXES
* Handle invalid ref that pretends to be a sub-folder under a valid ref.
Version 2.3.1
-------------
- POSSIBLE API CHANGE: this release fixes a bug when results names were
attached to a MatchFirst or Or object containing an And object.
Previously, a results name on an And object within an enclosing MatchFirst
or Or could return just the first token in the And. Now, all the tokens
matched by the And are correctly returned. This may result in subtle
changes in the tokens returned if you have this condition in your pyparsing
scripts.
- New staticmethod ParseException.explain() to help diagnose parse exceptions
by showing the failing input line and the trace of ParserElements in
the parser leading up to the exception. explain() returns a multiline
string listing each element by name. (This is still an experimental
method, and the method signature and format of the returned string may
evolve over the next few releases.)
Example:
# define a parser to parse an integer followed by an
# alphabetic word
expr = pp.Word(pp.nums).setName("int")
+ pp.Word(pp.alphas).setName("word")
try:
# parse a string with a numeric second value instead of alpha
expr.parseString("123 355")
except pp.ParseException as pe:
print_(pp.ParseException.explain(pe))
Prints:
123 355
^
ParseException: Expected word (at char 4), (line:1, col:5)
__main__.ExplainExceptionTest
pyparsing.And - {int word}
pyparsing.Word - word
explain() will accept any exception type and will list the function
names and parse expressions in the stack trace. This is especially
useful when an exception is raised in a parse action.
Note: explain() is only supported under Python 3.
- Fix bug in dictOf which could match an empty sequence, making it
infinitely loop if wrapped in a OneOrMore.
- Added unicode sets to pyparsing_unicode for Latin-A and Latin-B ranges.
- Added ability to define custom unicode sets as combinations of other sets
using multiple inheritance.
class Turkish_set(pp.pyparsing_unicode.Latin1, pp.pyparsing_unicode.LatinA):
pass
turkish_word = pp.Word(Turkish_set.alphas)
- Updated state machine import examples, with state machine demos for:
. traffic light
. library book checkin/checkout
. document review/approval
In the traffic light example, you can use the custom 'statemachine' keyword
to define the states for a traffic light, and have the state classes
auto-generated for you:
statemachine TrafficLightState:
Red -> Green
Green -> Yellow
Yellow -> Red
Similar for state machines with named transitions, like the library book
state example:
statemachine LibraryBookState:
New -(shelve)-> Available
Available -(reserve)-> OnHold
OnHold -(release)-> Available
Available -(checkout)-> CheckedOut
CheckedOut -(checkin)-> Available
Once the classes are defined, then additional Python code can reference those
classes to add class attributes, instance methods, etc.
See the examples in examples/statemachine
- Added an example parser for the decaf language. This language is used in
CS compiler classes in many colleges and universities.
- Fixup of docstrings to Sphinx format, inclusion of test files in the source
package, and convert markdown to rst throughout the distribution, great job
by Matěj Cepl!
- Expanded the whitespace characters recognized by the White class to include
all unicode defined spaces.
- Added optional postParse argument to ParserElement.runTests() to add a
custom callback to be called for test strings that parse successfully. Useful
for running tests that do additional validation or processing on the parsed
results. See updated chemicalFormulas.py example.
- Removed distutils fallback in setup.py. If installing the package fails,
please update to the latest version of setuptools. Plus overall project code
cleanup (CRLFs, whitespace, imports, etc.), thanks Jon Dufresne!
- Fix bug in CaselessKeyword, to make its behavior consistent with
Keyword(caseless=True).
1.0.3
- Don't use long deprecated functions from pytest, broke with pytest 4.1.0
- Fix typo that caused some tests to not run as expected
- Run Travis CI tests against Python 3.7, and fix some issues with current tox
ccache 3.6
ccache now has an opt-in “depend mode”. When enabled, ccache never executes the preprocessor, which results in much lower cache miss overhead at the expense of a lower potential cache hit rate. The depend mode is only possible to use when the compiler option -MD or -MMD is used.
Added support for GCC’s -ffile-prefix-map option. The -fmacro-prefix-map option is now also skipped from the hash.
Added support for multiple -fsanitize-blacklist arguments.
ccache now includes the environment variables LANG, LC_ALL, LC_CTYPE and LC_MESSAGES in the hash since they may affect localization of compiler warning messages. Set sloppiness to locale to opt out of this.
Fixed a problem due to Clang overwriting the output file when compiling an assembler file.
Clarified the manual to explain the reasoning behind the “file_macro” sloppiness setting in a better way.
ccache now handles several levels of nonexistent directories when rewriting absolute paths to relative.
A new sloppiness setting clang_index_store makes ccache skip the Clang compiler option -index-store-path and its argument when computing the manifest hash. This is useful if you use Xcode, which uses an index store path derived from the local project path. Note that the index store won’t be updated correctly on cache hits if you enable this option.
Rename sloppiness no_system_headers to system_headers for consistency with other options. no_system_headers can still be used as an (undocumented) alias.
The GCC variables “DEPENDENCIES_OUTPUT” and “SUNPRO_DEPENDENCIES” are now supported correctly.
The algorithm that scans for __DATE_ and __TIME__ tokens in the hashed source code now doesn’t produce false positives for tokens where __DATE__ or __TIME__ is a substring.
Changes in 3.13.3 since 3.13.2:
- VS: Exclude VS 2019 instances when using VS 2017 generator
- Tests: Add cases for -{C,D,U} without a source tree
- Tests: Add case for warning when AUTOMOC/UIC/RCC gets disabled
- cmake: Stop processing if -P option lacks file name
- cmake: Ensure source and binary dirs are set
- cmake: distinguish '-Cpath' from '-C path' in source dir parsing
- Autogen: Issue a warning when AUTOMOC/UIC/RCC gets disabled.
- BundleUtilities: Ensure target dir exists when creating symlinks
Changes from 6.6.0 to 7.0.0
- clean new library abi 8.0
- atomic typeref system completed, matches tychomt spec
- c++11 support completed
- deprecated functions and templates removed
- deprecated modules (xml, persist) moved to commoncpp
Changes from 6.5.7 to 6.6.0
- introduced rsa key support
- expanded hmac support
- expanded digests for sha256 and 384
- reword of common digest code
- improved nullptr clang support
- remove clang forced c++11 from build
- check for openssl rsa support
- port types for 7.0 migration
- socket addresses for typeref
- further c++11 header fixes
- removed old ssl demo app
Changes from 6.5.6 to 6.5.7
- improved c++11 support
- mapped pointer introduced
- fixed is usage
- improved mapref remove
Changes from 6.5.5 to 6.5.6
- simplified arrayref
- added listref
- map iterators thru locked instances
- type standardization
- socket address type
Changes from 6.5.4 to 6.5.5
- more portable nullptr support
- thread-safe mapref class
- some typeref convenience types
- bit operations on byterefs
Changes from 6.5.3 to 6.5.4
- secure string and key management types
- better cleanup of secure objects
- file i/o for heap temporary
Changes from 6.5.2 to 6.5.3
- arrayref now uses ConditionalAccess, fix for Conditional
Changes from 6.5.1 to 6.5.2
- memory management cleanup and mingw32 support for native conditionals
- new methodology of having getaddrinfo allocate memory
- introduction of queueref and stackref; arrayref becomes useful
- typeref concatenation operators
Changes from 6.5.0 to 6.5.1
- thread shared references added
Changes from 6.4.4 to 6.5.0
- typeref expanded
- arrayref introduced
- nullptr and other c++ modernizations
- clang now defaulted to c++11
- minimum native windows now requires conditionals
- mingw has to use win32 pthread support
- somewhat more usable heap temporary templates
Changes from 6.4.3 to 6.4.4
- additional typeref operators
Changes from 6.4.2 to 6.4.3
- fix for broken windows setuid macro
Changes from 6.4.1 to 6.4.2
- solaris related cmake fixes
- cleanup of test build and osx fixes
Changes from 6.4.0 to 6.4.1
- keyfile fixed constructor issue
Changes from 6.3.6 to 6.4.0
- new typeref system for immutable atomic reference counted objects
- heap management objects support moving heap through assignment
- extended unit tests for typeref system
- improved openbsd support
- atomics enabled by default
Changes from 6.3.5 to 6.3.6
- code cleanup
- simulate option for scrub
- set newline style for cmake genorated files
Changes from 6.3.4 to 6.3.5
- general code cleanup
- some build fixes
Changes from 6.3.3 to 6.3.4
- improved atomics support
- configure atomics default matches cmake default
- general code cleanup
- more casting operations and cast fixups
- polymorphic casting support & rtti detection
- enclose random value templates in Random
- improved rng support
Changes from 6.3.2 to 6.3.3
- improved cipher key management
- b64 support improved and string hex conversions
- simplified digest functions
- some solaris fixes
Changes from 6.3.1 to 6.3.2
- fixed a broken streambuf for commoncpp
- deref cast function added
- fixed missing pkg-config
v3.7.0:
Features
- Parallel mode added (alternative to detox which is being deprecated), for more details see :ref:parallel_mode
- Added command line shortcut -s for --skip-missing-interpreters
Deprecations (removal in next major release)
- Whitelisting of externals will be mandatory in tox 4: issue a deprecation warning as part of the already existing warning
Documentation
- Clarify explanations in examples and avoid unsupported end line comments
- Set to PULL_REQUEST_TEMPLATE.md use relative instead of absolute URLs
Fixed PULL_REQUEST_TEMPLATE.md path for changelog/examples.rst to docs/changelog/examples.rst
pytest-xdist 1.26.0:
Features
- The current directory is no longer added ``sys.path`` for local workers, only for remote connections.
This behavior is surprising because it makes xdist runs and non-xdist runs to potentially behave differently.
Bug Fixes
- Warning attributes are checked to make sure they can be dumped prior to
serializing the warning for submission to the master node.
pytest 4.1.1:
Bug Fixes
* Show full repr with assert a==b and -vv.
* Extend Doctest-modules to ignore mock objects.
* Fixed pytest.warns bug when context manager is reused (e.g. multiple parametrization).
* Don’t rewrite assertion when __getattr__ is broken
User-visible changes:
- Minor new features and improvements:
* Conflict resolver support for added vs unversioned file (r1845577)
* Conflict resolver support for unversioned directories (r1846299)
- Client-side bugfixes:
* Fix: repos-to-WC copy with --parents doesn't create dirs (#4768)
* Fix: foreign repo copy with peg/operative revisions (#4785)
* Fix: foreign repo copy of file adding mergeinfo (#4792)
* Fix: assertion failure using -rPREV on a working copy at r0 (#4532)
* Fix: tree conflict message ends a sentence with a colon (#4717)
- Server-side bugfixes:
* Fix: unexpected SVN_ERR_FS_NOT_DIRECTORY errors (#4791)
* Fix: mod_dav_svn's SVNUseUTF8 had no effect in some setups (r1844882)
* Fix crash in mod_http2 (#4782)
- Other tool improvements and bugfixes:
* svndumpfilter: Clarify error messages by including node path (r1845261)
- Bindings bugfixes:
* JavaHL: Fix crash in client code when using external diff (r1845408)
Developer-visible changes:
- General:
* Fix build on systems without python in $PATH (r1845555)
- API changes:
(none)
which is not true of most systems. Add 'tai-system-clock' option, off by
default, that installs leapsecs.dat in ${PKG_SYSCONFDIR} and also
depends on leapsunpack for easy updating by the sysadmin.
Bump PKGREVISION.
WAF 2.0.14
* Support Fortran 2008 submodules
* Possible solution for Msys/Python 3.6 path issues
* Support NEC SX-Aurora TSUBASA system's Fortran compiler extras/fc_nfort.py
* Fix ignored configuration flags in gccdeps extras/gccdeps.py
* Fix included protoc search on nested wscripts extras/protoc.py
* Support extra taskgen and out of project include directories extras/protoc.py
The PyObjC project aims to provide a bridge between the Python and Objective-C
programming languages. The bridge is intended to be fully bidirectional,
allowing the Python programmer to take full advantage of the power provided by
various Objective-C based toolkits and the Objective-C programmer transparent
access to Python based functionality.
This package contains wrappers for framework 'CoreSpotlight'.
Version 5.1.2
Fix compile error on macOS 10.9 or earlier
Calling completion handler failed due to incomplete runtime info
PyObjC’s metadata system didn’t automaticly set the call signature for blocks passed into a method implemented in Python. This causes problems when the ObjC or Swift block does not have signature information in the ObjC/blocks runtime.
Use MAP_JIT when allocating memory for the executable stubs for Python methods.
With the “restricted” runtime you’ll have to add the “com.apple.security.cs.allow-jit” entitlement to use this flag, in earlier versions you’d have to use a different entitlement: “com.apple.security.cs.allow-unsigned-executable-memory”.
The MAP_JIT flag is only used on macOS 10.14 or later.
Ensure that PyObjC can be built using /usr/bin/python on macOS 10.14
This failed due the problems with header files in the SDK included with Xcode 10.
Version 5.1.1
Update metadata for Xcode 10.1
Version 5.1
Xcode 10 “GM” contains one difference from the last beta: the constant MLComputeUnitsCPUAndGPU in the CoreML bindings.
Add a proxy for C’s “FILE*” type on Python 3. This is not necessary on Python 2 because the default IO stack on Python 2 already uses FILE* internally.
This proxy type is very minimal and shouldn’t not be used for general I/O.
Bindings are up-to-date w.r.t. Xcode 10.1 (beta)
Updated the support code for framework wrappers to be able to emit deprecation warnings on the first import of a deprecated constants (functions and methods will only raise a deprecation warning when called).
This is just an infrastructure change, the actual framework bindings do not yet contain the information used to emit deprecation warnings.
Add metadata for deprecation warnings to the “Contacts” framework
Import ABCs from collections.abc instead of collections because the latter is deprecated.
Instances of most builtin value types and sequences (int, float, str, unicode, tuple, list, set, frozenset and dict) can now be written to archives that require secureCoding.
Version 5.0
Version 5.0 of PyObjC primarily adds support for macOS 10.14 (mojave), and also adds support for a couple of older frameworks that weren’t supported before.
1.5.0:
Fix ‘console_scripts’ entry point syntax.
Add support for JSON output from the CLI.
Add support for installed wheels. E.g., ‘dist-info/’ dirs.
Add support for Python 3.6 and 3.7.
Drop support for Python 3.3.
v1.2.1:
Changelog:
Added support for pytest 4.x (removed pytest_namespace)
Updated builds to run against multiple pytest versions
Fixed errors with unicode/bytecode
pytest 4.1.0:
Removals
* pytest.mark.parametrize: in previous versions, errors raised by id functions were suppressed and changed into warnings. Now the exceptions are propagated, along with a pytest message informing the node, parameter value and index where the exception occurred.
* Remove legacy internal warnings system: config.warn, Node.warn. The pytest_logwarning now issues a warning when implemented.
See our docs on information on how to update your code.
* Removed support for yield tests - they are fundamentally broken because they don’t support fixtures properly since collection and test execution were separated.
See our docs on information on how to update your code.
* Removed support for applying marks directly to values in @pytest.mark.parametrize. Use pytest.param instead.
See our docs on information on how to update your code.
* Removed Metafunc.addcall. This was the predecessor mechanism to @pytest.mark.parametrize.
See our docs on information on how to update your code.
* Removed support for passing strings to pytest.main. Now, always pass a list of strings instead.
See our docs on information on how to update your code.
* [pytest] section in setup.cfg files is not longer supported, use [tool:pytest] instead. setup.cfg files are meant for use with distutils, and a section named pytest has notoriously been a source of conflicts and bugs.
Note that for pytest.ini and tox.ini files the section remains [pytest].
* Removed the deprecated compat properties for node.Class/Function/Module - use pytest.Class/Function/Module now.
See our docs on information on how to update your code.
* Removed the implementation of the pytest_namespace hook.
See our docs on information on how to update your code.
* Removed request.cached_setup. This was the predecessor mechanism to modern fixtures.
See our docs on information on how to update your code.
* Removed the deprecated PyCollector.makeitem method. This method was made public by mistake a long time ago.
* Removed support to define fixtures using the pytest_funcarg__ prefix. Use the @pytest.fixture decorator instead.
See our docs on information on how to update your code.
* Calling fixtures directly is now always an error instead of a warning.
See our docs on information on how to update your code.
* Remove Node.get_marker(name) the return value was not usable for more than a existence check.
Use Node.get_closest_marker(name) as a replacement.
* The deprecated record_xml_property fixture has been removed, use the more generic record_property instead.
See our docs for more information.
* An error is now raised if the pytest_plugins variable is defined in a non-top-level conftest.py file (i.e., not residing in the rootdir).
See our docs for more information.
* Remove testfunction.markername attributes - use Node.iter_markers(name=None) to iterate them.
Deprecations
* Deprecated the pytest.config global.
See https://docs.pytest.org/en/latest/deprecations.html#pytest-config-global for rationale.
* Passing the message parameter of pytest.raises now issues a DeprecationWarning.
It is a common mistake to think this parameter will match the exception message, while in fact it only serves to provide a custom message in case the pytest.raises check fails. To avoid this mistake and because it is believed to be little used, pytest is deprecating it without providing an alternative for the moment.
If you have concerns about this, please comment on issue 3974.
* Deprecated raises(..., 'code(as_a_string)') and warns(..., 'code(as_a_string)').
See https://docs.pytest.org/en/latest/deprecations.html#raises-warns-exec for rationale and examples.
Features
* A warning is now issued when assertions are made for None.
This is a common source of confusion among new users, which write:
assert mocked_object.assert_called_with(3, 4, 5, key="value")
When they should write:
mocked_object.assert_called_with(3, 4, 5, key="value")
Because the assert_called_with method of mock objects already executes an assertion.
This warning will not be issued when None is explicitly checked. An assertion like:
assert variable is None
will not issue the warning.
* Richer equality comparison introspection on AssertionError for objects created using attrs or dataclasses (Python 3.7+, backported to 3.6).
* CACHEDIR.TAG files are now created inside cache directories.
Those files are part of the Cache Directory Tagging Standard, and can be used by backup or synchronization programs to identify pytest’s cache directory as such.
* pytest.outcomes.Exit is derived from SystemExit instead of KeyboardInterrupt. This allows us to better handle pdb exiting.
* Updated the --collect-only option to display test descriptions when ran using --verbose.
* Restructured ExceptionInfo object construction and ensure incomplete instances have a repr/str.
* pdb: added support for keyword arguments with pdb.set_trace.
It handles header similar to Python 3.7 does it, and forwards any other keyword arguments to the Pdb constructor.
This allows for __import__("pdb").set_trace(skip=["foo.*"]).
* Added ini parameter junit_duration_report to optionally report test call durations, excluding setup and teardown times.
The JUnit XML specification and the default pytest behavior is to include setup and teardown times in the test duration report. You can include just the call durations instead (excluding setup and teardown) by adding this to your pytest.ini file:
[pytest]
junit_duration_report = call
* -ra now will show errors and failures last, instead of as the first items in the summary.
This makes it easier to obtain a list of errors and failures to run tests selectively.
* pytest.importorskip now supports a reason parameter, which will be shown when the requested module cannot be imported.
Bug Fixes
* -p now accepts its argument without a space between the value, for example -pmyplugin.
* approx again works with more generic containers, more precisely instances of Iterable and Sized instead of more restrictive Sequence.
* Ensure that node ids are printable.
* Fixed raises(..., 'code(string)') frame filename.
* Display actual test ids in --collect-only.
Improved Documentation
* Markers example documentation page updated to support latest pytest version.
* Update cache documentation example to correctly show cache hit and miss.
* Improved detailed summary report documentation.
Trivial/Internal Changes
* Changed the deprecation type of --result-log to PytestDeprecationWarning.
3.86.5:
This is a docs-only patch, which fixes some typos and removes a few hyperlinks for deprecated features.
3.86.4:
This release changes the order in which the shrinker tries to delete data. For large and slow tests this may significantly improve the performance of shrinking.
3.86.3:
This release fixes a bug where certain places Hypothesis internal errors could be raised during shrinking when a user exception occurred that suppressed an exception Hypothesis uses internally in its generation.
The two known ways to trigger this problem were:
Errors raised in stateful tests’ teardown function.
Errors raised in finally blocks that wrapped a call to data.draw.
These cases will now be handled correctly.
3.86.2:
This patch is a docs-only change to fix a broken hyperlink.
3.86.1:
This patch fixes issue 1732, where integers() would always return long values on Python 2.
3.86.0:
This release ensures that infinite numbers are never generated by floats() with allow_infinity=False, which could previously happen in some cases where one bound was also provided.
The trivially inconsistent min_value=inf, allow_infinity=False now raises an InvalidArgumentError, as does the inverse with max_value. You can still use just(inf) to generate inf without violating other constraints.
Addresses PR pkg/53826, further details are provided there. This is a
temporary fix, until the next m4 release. No PKGREVISION, because
there should be no change to existing packages, it addresses build
failures only.
Version 2.14.02
Fix crash due to multiple errors or warnings during the code generation pass if a list file is specified.
Version 2.14.01
Create all system-defined macros defore processing command-line given preprocessing directives (-p, -d, -u, --pragma, --before).
If debugging is enabled, define a __DEBUG_FORMAT__ predefined macro. See section 4.11.7.
Fix an assert for the case in the obj format when a SEG operator refers to an EXTERN symbol declared further down in the code.
Fix a corner case in the floating-point code where a binary, octal or hexadecimal floating-point having at least 32, 11, or 8 mantissa digits could produce slightly incorrect results under very specific conditions.
Support -MD without a filename, for gcc compatibility. -MF can be used to set the dependencies output filename. See section 2.1.7.
Fix -E in combination with -MD. See section 2.1.21.
Fix missing errors on redefined labels; would cause convergence failure instead which is very slow and not easy to debug.
Duplicate definitions of the same label with the same value is now explicitly permitted (2.14 would allow it in some circumstances.)
Add the option --no-line to ignore %line directives in the source. See section 2.1.33 and section 4.10.1.