Changes are in devel/ruby-activestorage70 only.
Rails 7.0.2.3 (March 08, 2022)
* Added image transformation validation via configurable allow-list.
Variant now offers a configurable allow-list for
transformation methods in addition to a configurable deny-list for arguments.
[CVE-2022-21831]
Ruby on Rails 6.1.4.7 is not latest version but it should be easy to pull-up
to pkgsrc-2021Q4.
Changes are in devel/ruby-activestorage61 only.
## Rails 6.1.4.7 (March 08, 2022) ##
* Added image transformation validation via configurable allow-list.
Variant now offers a configurable allow-list for
transformation methods in addition to a configurable deny-list for arguments.
[CVE-2022-21831]
Changes are in devel/ruby-activestorage60 only.
## Rails 6.0.4.7 (March 08, 2022) ##
* Added image transformation validation via configurable allow-list.
Variant now offers a configurable allow-list for
transformation methods in addition to a configurable deny-list for arguments.
[CVE-2022-21831]
Ruby on Rails 5.2.6.3 is not latest version but it should be easy to pull-up
to pkgsrc-2021Q4.
Changes are in devel/ruby-activestorage52 only.
Rails 5.2.6.3 (March 08, 2022)
* Added image transformation validation via configurable allow-list.
Variant now offers a configurable allow-list for
transformation methods in addition to a configurable deny-list for arguments.
[CVE-2022-21831]
# brio 1.1.3
* Gábor Csárdi is now the maintainer.
* New `write_file_raw()` function to write a raw vector to a file.
* Fix memory leak in `read_lines()` (@ms609, #20)
New in 2022.02
Core:
+ Assure memory write order in native call race condition fix [4d411987]
+ Use faster itoa implementation [48f584c4]
+ Change nqp::radix(_I)? to return # chars converted [45f40826]
+ Ignore untracked changes in the ryu submodule [f4b4692a]
+ Correctly free memory allocated by libuv [781a4799]
+ Include stdbool.h instead of using our own defines [01c3e8f5]
+ Add bindpos_u op [4b404536]
+ Add atpos_u op [44204e89]
+ HLL uint_box_type [362d465a]
+ uint_*_ref HLL config entries [36ba6133]
+ New set-cur-hll-config-key syscall [28df31bb]
+ New atposref_u op [5abfbcff]
+ Let NativeRefs know if they are unsigned [4e429897]
+ fetch_u operation on containers [e298f6a8]
+ New iscont_u op [0e68f31c]
+ New assign_u op [502cd6fb]
+ captureargpos_u op [7c3ddaee]
+ Teach native_ref_store to distinguish between signed and unsigned ints
[0161b143]
+ Treat MVM_CALLSITE_ARG_(FLAT | NAMED) like FLAT_NAMED [9c2df858]
+ Free up MVM_CALLSITE_ARG_FLAT_NAMED flag [b1069f7c]
+ #include <assert.h> explicitly. [55be3aa2]
+ More preparations for fixing unsigned handling [90b24146][36a5fb4c][171ea9f4]
[3f616d7a][ba8bd0e9][4d003732]
+ Run `git submodule --quiet update --depth 1` if git is new enough. [677d1fd6]
+ Add mimalloc submodule, and default to mimalloc where possible [9f0a3bdb]
[0a8a66d5][8a5be0d9][e7388250][eaaeab54][248aa337][e306759e][1d779128]
+ Make value_desc_cont_atomic_store() static [1351cfe6]
+ Allocations for blocks of MVM registers needs to be 8 byte aligned [1850f91a]
+ Add missing static qualifiers to various private functions [d293c683]
[a641520f][38e66874][da372d13][ef4e19c5][5b477a6a][5e217e03][e0f92ab1]
[86ba1d5e][08bf3b61]
+ Support using C11 atomics as an alternative libatomic_ops [44696884]
[9ff22369][783bb2ac][48c67de8][777a18c4]
+ MVM_nativeref_lex_u for proper gelexref_u* [d4dab6eb]
+ Use appropriate (un)signed container ops for native call args [26e2cfad]
+ Fix argument unboxing treating all integers as signed [9239ed5f]
+ Use MVM_STORAGE_SPEC_BP_UINT64 for unsigned box targets [b34604a6]
+ Properly support uints in CArray [53e588e4]
+ Make C(PP)Struct and CUnion properly support uint attributes [06e1ebe3]
+ Properly support uint in MultiDimArrays [b585b5e3]
+ Fix "Wrong kind of access to numeric CArray" when binding into an uint CArray
[f1101b95]
+ Add an lgtm config file [9fb8ec91]
+ Use libc allocator functions for NativeCall [c6064d3b][2bf083bc][a1749f57]
[26ad34e8][20910161][d39f50d7]
+ Fix segfault in nqp::hllboolfor [6661662d]
+ Move the repeated code that frees callsites before exceptions to a function
[85fa90c4]
+ Fix a bug in `report_deserialize_callsites_violation` [03f023cc]
+ Remove all code for serialization versions earlier than 23 [e80869eb]
+ Remove all code for bytecode versions earlier than 7 [bee95459]
+ Implement unsigned native version of binary not op (bnot_u) [b7d2713b]
+ Teach MVM_dump_p6opaque debug function to dump bigints [a0a98d47]
+ Fix autoboxing of arguments treating unsigned ints as signed [3ff5b111]
+ Fix segfault after capture-replace-literal-arg with different kind [2abb4699]
+ Implement (bind|get)attrs?_u ops [d58fa57d]
+ Implement getattrref_u op [ea644a5b]
+ Fix autobox_uint finding negative Ints in the int cache [a851fcf4]
+ Proper uint support for multidim arrays. [ef270d7f]
+ Silence warning about ignoring return value from libtommath function
[c00abdf3]
+ Fix things found by lgtm.com [42060102][55c83c2a][6d1bd83c][80e262a6]
[94847eda]
+ Fix problems in GCC/GDB plugins found by lgtm.com [3d759ed5][b73b9570]
[de12679a][3773169d][0b16384d]
+ Fix more things found by lgtm.com [58d0d756][d968da89]
+ Make it possible turn dispatcher debugger with compiler options [72b313b2]
+ Fix some missing variable renames in GCC plugin [e58fc6d1]
GC:
+ Fix possible access to fromspace in libffi native calls [38349ce4]
+ Fix possible access to fromspace after deopt materialization [2883ba75]
JIT:
+ Jit iscont_u, missed in the recent uint work [7044d53c]
+ Jit some more missing `*_u` versions of ops [6a404765]
Spesh:
+ Support boxed unsigned int primitives in argument spesh [f12bc422]
+ Fix speshed native calls with rw args assigning into wrong target [d783bf27]
+ Teach optimize_decont about UINT64 box type [4a3b98d5]
+ Fix spesh turning decont of a UIntLexRef into a decont_i [ed3cdd38]
+ Fix spesh breaking non-int/long rw args of native calls [280c709c]
Strings:
+ Simplify MVM_string_utf8_encode_C_string [99e0a715]
+ Change Generate-Collation-Data.raku to use raku binary [1b1b7d59]
+ Manually implement simplified strtoll for coerce_si [b80996ff]
+ Avoid reading beyond the end of the string in MVM_coerce_s_i [ecfc0bc2]
+ Replace locale-"aware" <ctype.h> with ASCII-only code in MVM_coerce_s_i
[596be524]
+ Fix format strings for Win32 + set C99 for MinGW [dd978192]
+ Whoops, fix a wrong format string change [418711f0]
Technically, we would require gettext-tools >= 0.19.7, as that's when
the --xml argument was added, rather than >= 0.15, which the tools
chain currently sets, but this seems non-trivial to adjust.
This release is a major new release and introduces several new features,
such as a pure SSH-based protocol, Git-compatible pattern matching, and
locking multiple files on the command line, among other items.
Backwards-incompatible changes:
NTLM support has been completely removed
When using an SSH URL (that is, the syntax starting with ssh://),
the leading slash is not stripped off when invoking git-lfs-authenticate or
git-lfs-transfer.
git lfs fsck now additionally checks that pointers are canonical and that files
that are supposed to be LFS files actually are. It also exits nonzero if any
problem is found.
Pattern matching should be stricter and should either match the behavior of
.gitattributes or .gitignore, as appropriate. Deviations from Git's behavior
will henceforth be treated as bugs and fixed accordingly.
Git LFS will now write a Git LFS repository format version into the repository.
This is designed to allow future extension with incompatible changes.
Repositories without this version will be assumed to be version 0. Note that
this is different from, but modeled on, Git's repository format version.
git lfs lock and git lfs unlock now handle multiple pathname arguments and the
JSON format has changed to handle multiple responses.
The Go package name now contains a version number. This should have no effect
on users because we don't provide a stable Go ABI.
Changes from 1.10:
Miscellaneous bug fixes.
New command line option --cluster-by-file.
New command line options --callees and --callers.
Support omitting external functions using the --omit option.
Support new RTL dump function comment syntax of gcc versions 7 and 10.
New command line option --summarize-callers.
guile-slib:
Add more comments explaining a residual problem. Put back RM
statements because they help re-running failed builds, even if they
are pointless on a fresh build. Sort PLIST. No change in generated
package.
guile22-slib:
Use variables more. Move to site/2.2 subdir, following guile-lib and
upstream defaults. Point to guile-slib for comments.
Sorry for the churn; this was much harder to understand than I expected.
This package is a maze of twisty include paths in guile interacting
with DESTDIR. Add many comments to explain the plan, after reading
sources. Switch to site/2.0 as the scheme subdir, following upstream
slib's default.
This package now expects guile always be namespaced. (Arguably the
paths should come from the bl3.)
With guile20, this builds and works, and thus it is that way. (With
guile22, there's an error that I don't understand.)
* Update HOMEPAGE to follow redirect.
Changelog:
Overview of changes in 1.50.5, 03-03-2022
=========================================
* Fix compiler warnings
* Enable cairo by default
* pango-view: Show more baselines
* layout: Handle baselines
* Windows: build cleanups
Overview of changes in 1.50.4, 09-02-2022
=========================================
* Tweak synthetic space sizes
* itemize: Try harder to avoid NULL fonts
* docs: Some additions
* Pass synthetic slant to harfbuzz
* Make sloped carets work with uneven scales
* Fix serialiation on arm
* Avoid an uninitialized variable warning
* Reinstate previous behavior of pango_attr_list_splice
* Deprecated pango_coverage_ref/unref
* Fix serialization on non-glibc systems
* Fix allow-breaks handling
Overview of changes in 1.50.3, 21-12-2021
=========================================
* pango-view: Add --serialize-to option for easy bug reporting
* Revert a transformation change that broke metrics for vertical text
* Handle fonts without space glyph (such as icon fonts) better
* Fix some corner cases of line width accounting
* Fix line height with emulated Small Caps
Overview of changes in 1.50.2, 16-12-2021
=========================================
* Fix a problem with font fallback for Arabic
* Fix handling of fonts without a space glyph
* Various documentation improvements
* Fix build issues
Overview of changes in 1.50.1, 10-12-2021
=========================================
* Fix a crash in tab handling
* Fix tab positioning without line wrapping
* Fix an assertion failure found by fuzzing
* Make underlines work again for broken fonts
Overview of changes in 1.50.0, 02-12-2021
=========================================
* Fix glyph placement in gravity east
* Fix line heights in improper gravities
* Only shown selected ignorables with nicks
* Support tab alignments other than left
* Support custom decimal points on decimal tabs
* Fix a pango-view crash
* Optimize handling of many tabs
* Drop json-glib dependency
Overview of changes in 1.49.4, 27-11-2021
=========================================
* Require fontconfig 2.13
* Require harfbuzz 2.6
* Many fixes to line breaking accuracy
* coretext: Correctly clamp text weights at min/max values
* Add serialization api for PangoLayout, PangoFont and PangoAttrList
* Require json-glib
* tests: Use serialized layouts for test cases
* tests: Include fonts in git
* pango-view: Accept serialized layouts
* Fix a rounding problem with font metrics
* Fix visible space display using ␣
Overview of changes in 1.49.3
=============================
* Fix hinting of glyph metrics
* Fix logical glyph extents in vertical gravities
* Visualize more default-ignorable glyphs
* Fix advance widths in transformed contexts
* Implement Small Caps and other casing variations
Overview of changes in 1.49.2
=============================
* Update Unicode data to Unicode 14
* Fix underlining of spaces
* Round font metrics when appropriate
* Fix some corner cases of cursor positioning
* Handle Catalan middle-dot in text segmentation
Overview of changes in 1.49.1
=============================
* Only recompute log attrs when needed
* Validate log attrs
* Fix conformance issues in Thai and Indic linebreaking
* Add pango_attr_break to support customizing line and word breaks
* Add font-dependent baseline shifts and sizing for super- and subscripts
* Improve hyphenation support
* pango-view: Visualize caret positions and slopes
* pango-view: Show glyph rects
* pango-view: Make --annotate easier to use
* Add pango_layout_get_caret_pos to support sloped carets
* Improve caret positioning for ligatures
* Better under- and overline placement
* layout: Allocate a bit less
* layout: Fix cluster extents with rise
* Add pango_layout_iter_get_run_baseline
* Add pango_glyph_string_index_to_x_full
* coretext: Set size on font descriptions
* Add color information to PangoGlyphVisAttr
Overview of changes in 1.49.0
=============================
* Rename git `master` branch to `main` (#579)
* Bump version to 1.49
* Require fribidi 1.0.6
* Fix threadsafety issues with Thai
* Fix a rounding problem on i386
* Fix font choice for ellipsis (#575)
* New api: pango_font_get_languages
* New api: Introspection helpers for attributes (#476)
* Ignore width in horizontal context when itemizing (#503)
* markup: Allow specifying size and rise in points (#67)
* markup: Allow specifying size as percentage (#23)
* Rewrite pango_layout_move_cursor_visually (#157, #585, #587)
* Add a line-height attribute and make logical line extents respect it
* Add pango_justify_last_line (#74)
* Add pango_shape_item
* Add a text-transform attribute and implement it
* Clean up fribidi api usage
* Fix a bug in the gravity data table (#597)
* pango-view: Improve the --annotate option
* Fix a possible crash in rendering strikethroughs (#599)
New features:
- The --dependency-file option has been added. The option is analogous to
the compiler's -MM option; it generates a text file containing dependency
information in the Makefile format, so that you can include a generated
file into a Makefile to automate the file dependency management. (a054bcd)
- mold has gained the --reverse-sections option. If the option is given,
mold reverses the list of input sections before assigning them the
addresses in an output file. This option is useful to find a bug in global
initializers (e.g. constructors of global variables.) In C++, the execution
order of global initializers is guaranteed only within a single compilation
unit (they are executed from top to bottom.) If two global initializers
are in different object files, they can be executed in any order. Reversing
the execution order of the global initializers in different input files
should help you identify a bug in your program. If your program does not
work with -Wl,--reverse-sections, your program depends on the undefined
behavior.
- --shuffle-sections now takes an optional seed for the random number
generator in the form of --shuffle-sections=<number>. (8f21cc3)
- mold now supports the following LTO-related options for compatibility
with LLVM lld: --disable-verify, --lto-O, --lto-cs-profile-file,
--lto-cs-profile-generate, --lto-debug-pass-manager, --lto-emit-asm,
--lto-obj-path, --lto-partitions, --lto-pseudo-probe-for-profiling,
--lto-sample-profile, --no-legacy-pass-manager,
--no-lto-legacy-pass-manager, --opt-remarks-filename, --opt-remarks-format,
--opt-remarks-hotness-threshold, --opt-remarks-passes,
--opt-remarks-with_hotness, --save-temps, --thinlto-emit-imports-files,
--thinlto-index-only, --thinlto-index-only, --thinlto-jobs, --thinlto-jobs,
--thinlto-object-suffix-replace, --thinlto-prefix-replace (e413433)
- -noinhibit-exec and --warn-shared-textrel have been supported.
Performance improvements:
- We optimized mold's memory usage by reducing the sizes of
frequently-allocated objects. Compared to mold 1.1, we observed ~6%
reduction of maximum resident set size (RSS) when linking Chromium. Our
maximum RSS is smaller than LLVM lld and GNU gold as far as we tested. We
measured maximum RSSes with time -v. (f2d27d8, 7068c0c, 83e05da, 4dae896)
- If Intel CET-based security-enhanced PLT is enabled (i.e. -z ibtplt is
given), mold used to create a PLT section in which each entry is 32 bytes
long. We optimized the machine code sequence of the CET-enabled PLT
section, so each PLT entry now occupies only 16 bytes, reducing the size
of .plt by almost half. (480efde)
Bug fixes and compatibility improvements:
- -static-pie now works with recent versions of glibc. Previously,
statically-linked position-independent executable would crash on startup
when linked with mold. (3999aa8)
- Previously, mold sometimes created corrupted output file on x86-64 if
an input file containing thread-local variables were compiled with
-mcmodel=large (#360). This issue has been fixed. (4aa4bfa)
- Previously, mold created corrupted debug info section on i386 if an
input debug section is also compressed using the compiler -gz option.
(#361) This issue has been fixed. (3068364)
- mold used to create multiple .init_array sections if input files contain
both writable and non-writable .int_array sections. That caused an issue
that some initializer functions would not be executed on process startup.
(#363). This issue has been fixed. (4198627)
- When building a large program with GCC LTO, mold occasionally failed
with "too many open files" error. This issue has been resolved. (e67f460)
- Previously, mold created a corrupted dynamic relocation table if .got.plt
is missing. This issue has been fixed by always creating
_GLOBAL_OFFSET_TABLE_ symbol in .got on any target. mold used to try to
create the symbol in .got.plt on x86-64 or i386. (eb79859)
This is a feature release. The most notable changes are: a new
command: fixup, which is used to add changes from the working
directory to an arbitrary revision. An issue with histedit not
preserving topics in certain situations was also fixed, see
https://bz.mercurial-scm.org/show_bug.cgi?id=6550. Evolve is now
compatible with the upcoming Mercurial 6.1, which includes head
computation code that is obsolescence-aware (adapted from the evolve
extension). With an up-to-date client and server you should expect
hg push to take much less time. Also compatibility with Mercurial
4.7 was dropped in this release.
New Features
Added a way of specifying required extensions that prevent
Mercurial from starting if they are not found. See hg help
config.extensions.
Merge conflict markers have been made clearer (see backwards
compatibility below)
Improve detailed error codes
Added a hint about mangled whitespace on bad patch
Explain which order the commits are presented in chistedit
Introduce a dirstate-tracked-hint feature to help automation
keep track of changes to tracked files. See hg help
config.use-dirstate-tracked-hint.
Shared repositories can be upgraded if the upgrade is specific
to the share. For now, this only applies to dirstate-v2 and
dirstate-tracked-hint.
When using the narrow extension, non-conflicting changes to
files outside of the narrow specification can now be merged.
When cloning a repository using stream-clone, the client can
now control the repository format variants to use as long as
the stream content does not restrict that variant.
Default Format Change
These changes affect newly created repositories (or new clones)
done with Mercurial 6.1.
The share-safe format variant is now enabled by default. It
makes configuration and requirements more consistent across
repository and their shares. This introduces a behavior change
as shares from a repository using the new format will also use
their main repository's configuration. See hg help
config.format.use-share-safe for details about the feature and
the available options for auto-upgrading existing shares.
New Experimental Features
The pure Rust version of Mercurial called rhg added support
for most common invocations of hg status. See hg help rust.rhg
for details on how to try it out.
rhg supports narrow clones and sparse checkouts.
Bug Fixes
Obsolete revisions are skipped while computing heads. In
conjunction with the evolve extension >= 10.5.0, this leads to
massive exchange (push/pull) speedups in repositories with a
lot of heads and/or obsolete revisions.
Stream-clones now properly advertise all requirements needed.
This can result in the stream-clone feature being disabled for
some clients using < 6.0.2. A small bugfix patch for these
older client is available if necessary.
The --no-check and --no-merge flags now properly overwrite the
behavior from commands.update.check
rhg's fallback detection is more robust in general in the
presence of more advanced configs
rhg's blackbox now supports milliseconds by default and uses
the same ISO 8601 format as the Python implementation
Fix rhg crash on non-generaldelta revlogs
The lfs, largefiles and sparse extensions now correctly take
the appropriate lock before writing requirements
The notify extension does not produce errors anymore if a
revision is not found
Remove unnecessary and overly strict check for divergence in
hg fix
Windows compatibility improvements
Miscellaneous Python 3 and typing improvements
Many other small or internal fixes
Backwards Compatibility Changes
The use of share-safe, means shares (of new repositories) will
also use their main repository's configuration see the Default
Format Change section for details.
The fix to stream-clone requirements advertising means some
requirements previously (wronly) omitted are now sent. This
can confuse client using a Mercurial version < 6.0.2. The client
would consider these requirements unsupported even if it actually
know them. If you encounter this, either upgrade your client
or apply the necessary patch.
The labels passed to merge tools have changed slightly. Merge
tools can get labels passed to them if you include $labellocal,
$labelbase, and/or $labelother in the merge-tool.<tool name>.args
configuration. These labels used to have some space-padding,
and truncation to fit within 72 columns. Both the padding and
the truncation has been removed.
Some of the text in labels passed to merge tools has changed.
For example, in conflicts while running hg histedit, the labels
used to be "local", "base", and "histedit". They are now "already
edited", "parent of current change", and "current change",
respectively.
The computation of namedbranch heads now ignores obsolete
revisions. User of the Changeset Evolution feature may see a
change in location and numbers of heads of each named branches
(and topic).
The remotefilelog extension now requires an appropriate
excludepattern for subrepositories.
debugsparse's interface has been reworked to be more flexible.
Since it's a debug command it is not actually a breaking change,
but it is worth noting here.
Temporary files for merges are now all inside a hgmerge directory
instead of at the root of TMPDIR. The corresponding experimental
mergetempdirprefix config option has been removed.
Internal API Changes
The dirstate API received minor modifications.
Miscellaneous
Removed exchange-v2. It was a prototype that had never been in
a working state and had been left untouched since 2017.
## 3.0.1
This is a single-bugfix release to fix an ODR issue for people using header-only mode in multiple
translation units. If you aren't seeing linker errors because of `toml::array::insert_at()`,
this release holds nothing of value over v3.0.0.
## 3.0.0
This release will be a major version bump, so it's ABI breaks all around.
Go version support
Support for Go 1.18
Version 0.8.0 of gopls supports features added to Go 1.18,
specifically:
Support for multi-module workspaces using go.work files.
Diagnostics for Fuzz tests. Improved support for generics.
To use these features, gopls must be installed using Go 1.18. See
go.dev/dl for the latest status of Go 1.18 -- as of writing Go 1.18
is not yet released, but Go 1.18 RC1 may be used.
Dropped support for Go 1.12
Version 0.8.0 of gopls no longer supports building at Go 1.12. See
golang/go#50827 for more details.
New Features
go.work integration
Gopls now supports multi-module workspaces using go.work files. To
use this feature, create a go.work file that includes the modules
you want to work on, and then open your editor to the directory
containing go.work. For more information, see the go.work reference,
or the gopls documentation for multi-module workspaces.
Diagnostics for Fuzz tests
When writing Fuzz tests, gopls provides diagnostics for invalid
arguments to Fuzz.
Improved support for generics
Honor the language version configured in go.mod
gopls now provides diagnostics for language features based on the
go directive in the applicable go.mod file for a package.
For some errors related to incompatible language versions, gopls
offers a quick-fix to update the go.mod Go version. (note that if
the go.mod file is open, it may need to be saved in order for
language version changes to take effect)
gomodedit
Improved completion with type parameters
Gopls autocompletion is improved in several contexts when using
generic types.
genericvarcompl
New code action to add missing method stubs
Gopls now provides a code action to implement missing methods.
Improved performance and accuracy for workspace symbol requests
Workspace symbols uses a new fuzzy matcher that is up to 3x faster
than previous, and has improved ranking. See golang/go#50016 for
more details. Note that the first time workspace symbols are
requested, there may be a delay as the symbol cache is populated.
Improved gofumpt integration
Gopls now sets the language version and module path when invoking
gofumpt, allowing more accurate formatting based on context.
CMake 3.22.3
* while: Restore tolerance of condition error
* FindMPI: Place static first in mpi test source
* NMake: Document response file encoding heuristic in a comment
* NMake: Use UTF-8 BOM in response files only with MSVC tooling
* message: Restore explicit flushing of messages on stderr
* gitlab-ci: enable assertions on fedora34-ninja jobs
* CompilerId: Fix default extensions check for Clang targeting MSVC ABI
* Intel: Add dependencies on system header files on Windows
* Tests: Add missing guards on Qt4 and Qt5 tests
* BinUtils: Avoid llvm-ar on Apple platforms
* Tests: Simplify RunCMake.{if,while} unbalanced parenthesis cases
* install(TARGETS): Restore per-export INCLUDES DESTINATION
* Help: Add MSVC_TOOLSET_VERSION value for v143 toolset
* IAR/CXX: Fix compatibility with CMP0057 OLD
* FindGLUT: Use link directories for libs from pkg-config
* FindMatlab: Fix version detection for MCR >= 9.10
* IntelLLVM: Add dependencies on system header files on Windows
* Help: Drop incorrect versionadded for try_compile result variable
* FindGSL: Improve version extraction regex
4.10 (2022-03-07)
=================
- Show deprecation warnings when importing modules which are not ported to
Python 3.
- Improve test coverage.
- Port ``zope.testing.formparser`` to Python 3.
- Add support for Python 3.10.
5.4.0
- Improve ``--help`` documentation for ``--package-path`` option
- Do not disable existing loggers during logsupport initialization
- Fix tests with testtools >= 2.5.0
- Add support for Python 3.10.
v13.3.0
* Add lorem provider for `fa-ir` language code. Thanks @arminshoughi.
v13.2.0
* Add `bn_BD` Lorem Provider. Thanks @jabertuhin.
[v13.1.0
* Add lorem support for `de_DE` and `de_AT`. Thanks @@Kalbra.
v13.0.0
* Use `os.urandom` in `binary()` if unseeded. Thanks @AlmightyYakob.
v12.3.3
* Arabic improvements for names. Thanks @alfawal.
v12.3.2
* Fix postcode format for `es_ES` locale. Thanks @mondeja.
v12.3.1
* Prevent "non-integer arguments to randrange()" warnings on Python 3.10.
Thanks @jacksmith15.
v12.3.0
* Fix `it_IT` `ssn()` validity. Thanks @MarcoMatarazzo.
v12.2.0
* Add cities to `de_CH`. Thanks @Kalbra.
v12.1.0
* Set correct language on provider when specific locale is requested.
Thanks @interDist.
v12.0.1
* Remove empty string in Korean job list. Thanks @georgidimitrov-hs.
v12.0.0
* Remove dependency from [`text-unidecode`](https://github.com/kmike/text-unidecode/).
v11.4.0
* Add geonames db of Italian cap-city-province and full match when generating
full addresses.
IPython 8.1.1
-------------
Fix an issue with virtualenv and Python 3.8 introduced in 8.1
Revert
error in Python 3.8, and fixed in a different way in
IPython 8.1.0
-------------
IPython 8.1 is the first minor release after 8.0 and fixes a number of bugs and
Update a few behavior that were problematic with the 8.0 as with many new major
release.
Note that beyond the changes listed here, IPython 8.1.0 also contains all the
features listed in :ref:`version 7.32`.
- Misc and multiple fixes around quotation auto-closing. It is now disabled by
default. Run with ``TerminalInteractiveShell.auto_match=True`` to re-enabled
- Require pygments>=2.4.0
is now explicit in ``setup.cfg``/``setup.py``
- Docs improvement of ``core.magic_arguments`` examples.
- Multi-line edit executes too early with await.
- ``black`` is back as an optional dependency, and autoformatting disabled by
default until some fixes are implemented (black improperly reformat magics).
reformatter has been added
``TerminalInteractiveShell.autoformatter="black"``,
``TerminalInteractiveShell.autoformatter="yapf"`` to re-enable auto formating
with black, or switch to yapf.
- Fix and issue where ``display`` was not defined.
- Auto suggestions are now configurable. Currently only
``AutoSuggestFromHistory`` (default) and ``None``. new provider contribution
welcomed.
- multiple packaging/testing improvement to simplify downstream packaging
(xfail with reasons, try to not access network...).
- Update deprecation. ``InteractiveShell.magic`` internal method has been
deprecated for many years but did not emit a warning until now.
- internal ``appended_to_syspath`` context manager has been deprecated.
- fix an issue with symlinks in virtualenv
- Fix an issue with vim mode, where cursor would not be reset on exit
- ipython directive now remove only known pseudo-decorators
- ``IPython/lib/security`` which used to be used for jupyter notebook has been
removed.
- Fix an issue where ``async with`` would execute on new lines.
0.20.33
* Fix handling of escaped characters in ignore patterns.
* Add ``dulwich.contrib.requests_vendor``.
* Ensure git config is available in a linked working tree.
1.4.5 (2022-02-15)
* Fix to create UTF-8 Symbol keys when symbolize_keys: true
* Fix to assume Symbols as US-ASCII or UTF-8
* Optimize Packer/Unpacker initialization
* Optimize extension class lookup
* Rename Packer#clear as Packer#reset (#clear is still available as an
alias)
1.2.2 (2022-01-07)
* Switched to GitHub actions and add testing of Rubies up to Ruby 3.0
* Fixed issue with keep_duplicate_arrays when merging into a nil array.
Thanks ALTinners!
* Added documentation for keep_duplicate_arrays
Packaging changes:
Switch to guile22.
Request to use the old paths.
Upstream NEWS:
bugfixes
minor improvements
change installation paths unless requested to do it the old way
XXX Please check on illumos:
The patches for illumos as per
https://gitlab.gnome.org/GNOME/dconf/issues/49
no longer apply. It is not obvious to me whether or not they are still
necessary given the new use of symbol files.
(Patch author contacted a week ago.)
Changes in dconf 0.40.0
=======================
- common: Add missing G_BEGIN/END_DECLS to allow use of headers from C++
code (Philip Withnall, !67)
Changes in dconf 0.39.1
=======================
- build: improve libdconf visible symbols (Inigo Martinez, Daniel Playfair
Cal, !59)
- engine: do not emit optimistic change notifications unless the local value
is different (Daniel Playfair Cal, !2)
- build: minor fixes to bash completion script (Philip Withnall, !64)
- service: add a systemd unit for D-Bus activation (Simon McVittie, !63)
Changes in dconf 0.38.0
=======================
- build: Install bash-completion relative to datadir (Jan Trojnar, !58)
- client: add `dconf compile` to shell autocomplete (Andreas Polnas, !60)
- Adjust the open() wrapper from (O_WRONLY | O_RDWR) to O_CREAT.
syncdir only needs to take action when a file is created (or removed,
but that doesn't happen at open time). It doesn't matter what the
write status of the open mode is. As such, the old behavior was a bug
that just happened to work most of the time.
- Relicense from gnu-gpl-v2 to unlicense.
Scrubbing Existing Files. Breaking Features:
- verify_file() will now scrub it if a scrubber is attached.
Note: If you scrub an existing file, it will be written as UTF8,
instead of its existing encoding
- Removed Deprecated method verify_file_with_encoding(),
NOTE: if you call verify_file() instead, your code will work as before
0.29.28 (2022-02-17)
====================
Bugs fixed
----------
* Due to backwards incompatible changes in CPython 3.11a4, the feature flags
``CYTHON_FAST_THREAD_STATE`` and ``CYTHON_USE_EXC_INFO_STACK`` are now disabled
in Python 3.11 and later. They are enabled again in Cython 3.0.
Patch by David Woods.
* A C compiler warning in older PyPy versions was resolved.
Patch by Matti Picus.
- **NEW** Allow keeping manual commits while squashing all wip commits
by finishing a mob-session with `mob done --squash-wip`.
- Removed experimental command `mob squash-wip` in favor of new `mob
done --squash-wip`.
- Added missing configuration option `MOB_WIP_BRANCH_PREFIX` for
`.mob` file.
Release 0.23.0
Syntax support
- Implement structural pattern matching (PEP634)
- Improve the heuristic for joining lines when extracting one line
expression
Bug fixes
- Preserve newline format when writing files
- Fix extract info collection for list comprehension with multiple targets
Documentation
- Fix typo
- Add Vinix to the list of supported unix systems
- Add support for SerenityOS
- Add --etcdir as an alias for --sysconfdir
- Use c++ instead of g++ for defaults in CXX
- Add EXEC! keyword. Like EXEC, but with explicit requirement
- Aim to fix the mkdir when no vpath in use
- Add USE_PKGCONFIG directive with support for BSD's pkgconf
- Support pkgconf as an alternative to pkg-config
- Add -qV in the help message
- env_c should not describe CPPFLAGS,
env_cpp already explains them in more detail.
0.14.5 (February 21, 2022):
- fix faulty version in 0.14.4
0.14.4 (February 21, 2022):
- Several test fixes to fix patchelf test suite on openbsd
- Allow multiple modifications in same call
- Add support to build with musl
- Fix typo: s/folllow/follow/
- mips: fix incorrect polarity on dyn_offset
Shelly provides a single module for convenient systems programming in
Haskell.
* Shelly is aimed at convenience and getting things done rather than being
a demonstration of elegance.
* It has detailed and useful error messages.
* It maintains its own environment, making it thread-safe.
* It has low memory usage: It has
* run_ and other underscore variants that do not return stdout,
* runFoldLines to run a fold operation over each line rather than loading
all of stdout into memory,
* runHandle and runHandles for complete control over handles.
The focus of this library on convenience combined with good error messages
should make shelly approachable for newer users of Haskell.
The purpose of this module is to allow you to capture all exceptions
originating from within the enclosed computation, while still reacting to
asynchronous exceptions aimed at the calling thread.
This way, you can be sure that the function that calls, for example,
catchAny, will still respond to ThreadKilled or Timeout events raised by
another thread (with throwTo), while capturing all exceptions, synchronous
or asynchronous, resulting from the execution of the enclosed computation.
One particular use case is to allow the safe execution of code from various
libraries (which you do not control), capturing any faults that might
occur, while remaining responsive to higher level events and control
actions.
This library provides a wrapper to the Linux Kernel's inotify feature,
allowing applications to subscribe to notifications when a file is accessed
or modified.
- Remove extraneous breakpoints
- Rewrite the search to use a saner, multi-stage
process. Still uses abs_path to avoid duplicates
working up the stack due to multi-level symlinks,
skips things earlier in the process & is a bit
easier to read.
- noignore is handled properly, as is ignore=
- taint extraction on $Bin uses m{^ (.+) /? }x
to strip the trailing '/' in some RHEL versions
of catpath.
- "redo-ifchange"’s "-f" option forces each target rebuilding.
Comparing to "redo", it will parallelize the process.
- Inode’s number is also stored as dependency information, just to
prevent possible "ctime" collision of two files.
- Performance optimization: do not use target’s temporary output file
at all, if its hash equals to already existing target’s one. Just
touch existing target file instead.
Changes for version 2.18 (2022-02-23)
* Added support for [./ssl-server.md|SSL/TLS server mode] for commands
like "[/help?cmd=server|fossil server]" and "[/help?cmd=http|fossil http]"
* The new [/help?cmd=cherry-pick|cherry-pick command] is an alias for
[/help?cmd=merge|merge --cherrypick].
* Add new setting "[/help?cmd=large-file-size|large-file-size]". If the size
of any file in a commit exceeds this size, a warning is issued.
* Query parameter "year=YYYY" is now accepted by [/help?cmd=/timeline|/timeline].
* The [/help?cmd=tar|tar] and [/help?cmd=zip|zip commands] no longer
sterilize the manifest file.
* Futher improvement to diff alignment in cases that involve both
edits and indentation changes.
* [/doc/trunk/www/chat.md|Chat] improvements:<ul>
<li> [/help?cmd=/chat|The /chat page] input options have been reworked
again for better cross-browser portability.
<li> When sending a [/help?cmd=/chat|/chat] message fails, it is no longer
immediately lost and sending may optionally be retried.
<li> [/help?cmd=/chat|/chat] can now optionally embed attachments of certain
types directly into message bodies via an iframe.
<li> Add the "--as FILENAME" option to the "[/help?cmd=chat|fossil chat send]"
command.
<li> Added the "[/help?cmd=chat|fossil chat pull]" command, available to
administrators only, for backing up the chat conversation.
</ul>
* Promote the test-detach command into the [/help?cmd=detach|detach command].
* For "[/help?cmd=pull|fossil pull]" with the --from-parent-project option,
if no URL is specified then use the last URL from the most recent prior
"fossil pull --from-parent-project".
* Add options --project-name and --project-desc to the
"[/help?cmd=init|fossil init]" command.
* The [/help?cmd=/ext|/ext page] generates the SERVER_SOFTWARE environment
variable for clients.
* Fix the REQUEST_URI [/doc/trunk/www/aboutcgi.wiki#cgivar|CGI variable] such
that it includes the query string. This is how most other systems understand
REQUEST_URI.
* Added the --transport-command option to [/help?cmd=sync|fossil sync]
and similar.
This minimalistic library helps you navigate the world of text encodings
avoiding invalid argument (invalid byte sequence) and invalid argument
(invalid character) in runtime.
A library for parsing and comparing software version numbers. We like to
give version numbers to our software in a myriad of ways. Some ways follow
strict guidelines for incrementing and comparison. Some follow conventional
wisdom and are generally self-consistent. Some are just plain asinine. This
library provides a means of parsing and comparing any style of versioning,
be it a nice Semantic Version like this:
1.2.3-r1+git123
...or a monstrosity like this:
2:10.2+0.0093r3+1-1
Please switch to Semantic Versioning if you aren't currently using it. It
provides consistency in version incrementing and has the best constraints
on comparisons.
This library implements version 2.0.0 of the SemVer spec.
turtle is a reimplementation of the Unix command line environment in
Haskell so that you can use Haskell as both a shell and a scripting
language.
Features include:
* Batteries included: Command an extended suite of predefined utilities
* Interoperability: You can still run external shell commands
* Portability: Works on Windows, OS X, and Linux
* Exception safety: Safely acquire and release resources
* Streaming: Transform or fold command output in constant space
* Patterns: Use typed regular expressions that can parse structured values
* Formatting: Type-safe printf-style text formatting
* Modern: Supports text and system-filepath
In Haskell you very often acquire values using the with... idiom using
functions of type (a -> IO r) -> IO r. This idiom forms a Monad, which is a
special case of the ContT monad (from transformers) or the Codensity monad
(from kan-extensions). The main purpose behind this package is to provide a
restricted form of these monads specialized to this unusually common case.
The reason this package defines a specialized version of these types is to:
* be more beginner-friendly,
* simplify inferred types and error messages, and:
* provide some additional type class instances that would otherwise be
orphan instances
Provides parsing of semvers and range indicators, as well as logic such as
version ordering and determining whether a given version falls in a given
range.
A better Prelude. Haskell's Prelude needs to maintain backwards
compatibility and has many aspects that no longer represents best
practice. The goals of classy-prelude are:
* remove all partial functions
* modernize data structures
* generally use Text instead of String
* encourage the use of appropriate data structures such as Vectors or
HashMaps instead of always using lists and associated lists
* reduce import lists and the need for qualified imports
classy-prelude should only be used by application developers. Library
authors should consider using mono-traversable, which classy-prelude builds
upon.
Send textual messages to a Handle in a thread-friendly way.
The motivation for this package is described in a blog post on Haskell's
Missing Concurrency Basics
(http://www.snoyman.com/blog/2016/11/haskells-missing-concurrency-basics). The
simple explanation is, when writing a line of textual data to a Handle -
such as sending some messages t o ther terminal - we'd like to have the
following properties:
* Properly handle character encoding settings on the Handle
* For reasonably sized messages, ensure that the entire message is written
in one chunk to avoid interleaving data with other threads
* This includes the trailing newline character
* Avoid unnecessary memory allocations and copies
* Minimize locking
* Provide a simple API
One of Haskell's strengths is immutable data structures. These structures
make it easier to reason about code, simplify concurrency and parallelism,
and in some cases can improve performance by allowing sharing. However,
there are still classes of problems where mutable data structures can both
be more convenient, and provide a performance boost. This library is meant
to provide such structures in a performant, well tested way. It also
provides a simple abstraction over such data structures via typeclasses.
This package provides a bunch of ad hoc classes for accessing parts of a
container.
In practice this package is largely subsumed by the lens package, but it is
maintained for now as it has much simpler dependencies.
See the dlist packages. This package is the canonical source for some
orphan instances. Orphan instances are placed here to avoid dependencies
elsewhere.
The premise of basic-prelude is that there are a lot of very commonly
desired features missing from the standard Prelude, such as commonly used
operators (<$> and >=>, for instance) and imports for common datatypes
(e.g., ByteString and Vector). At the same time, there are lots of other
components which are more debatable, such as providing polymorphic versions
of common functions.
So basic-prelude is intended to give a common foundation for a number of
alternate preludes. The package provides two modules: CorePrelude provides
the common ground for other preludes to build on top of, while BasicPrelude
exports CorePrelude together with commonly used list functions to provide a
drop-in replacement for the standard Prelude.
Users wishing to have an improved Prelude can use BasicPrelude. Developers
wishing to create a new prelude should use CorePrelude.
This package exposes combinators that can wrap arbitrary monadic
actions. They run the action and potentially retry running it with some
configurable delay for a configurable number of times. The purpose is to
make it easier to work with IO and especially network IO actions that often
experience temporary failure and warrant retrying of the original
action. For example, a database query may time out for a while, in which
case we should hang back for a bit and retry the query instead of simply
raising an exception.
Provides orphan instances for the RIO data type. Currently supports:
* MonadBase from transformers-base
* MonadBaseControl from monad-control
* MonadCatch and MonadMask from exceptions
* MonadLogger from monad-logger
* MonadResource from resourcet
The goal of the rio library is to make it easier to adopt Haskell for
writing production software. It is intended as a cross between:
* Collection of well designed, trusted libraries
* Useful Prelude replacement
* A set of best practices for writing production quality Haskell code
This library uses GHC.Generics to derive efficient optics (traversals,
lenses and prisms) for algebraic data types in a type-directed way, with a
focus on good type inference and error messages when possible.
This library uses GHC.Generics to derive efficient optics (traversals,
lenses and prisms) for algebraic data types in a type-directed way, with a
focus on good type inference and error messages when possible.
This package is the shared internal logic of the generic-lens and
generic-optics libraries.
SQLite Release 3.38.0 On 2022-02-22
Added the -> and ->> operators for easier processing of JSON. The new operators are compatible with MySQL and PostgreSQL.
The JSON functions are now built-ins. It is no longer necessary to use the -DSQLITE_ENABLE_JSON1 compile-time option to enable JSON support. JSON is on by default. Disable the JSON interface using the new -DSQLITE_OMIT_JSON compile-time option.
Enhancements to date and time functions:
Added the unixepoch() function.
Added the auto modifier and the julianday modifier.
Rename the printf() SQL function to format() for better compatibility. The original printf() name is retained as an alias for backwards compatibility.
Added the sqlite3_error_offset() interface, which can sometimes help to localize an SQL error to a specific character in the input SQL text, so that applications can provide better error messages.
Enhanced the interface to virtual tables as follows:
Added the sqlite3_vtab_distinct() interface.
Added the sqlite3_vtab_rhs_value() interface.
Added new operator types SQLITE_INDEX_CONSTRAINT_LIMIT and SQLITE_INDEX_CONSTRAINT_OFFSET.
Added the sqlite3_vtab_in() interface (and related) to enable a virtual table to process IN operator constraints all at once, rather than processing each value of the right-hand side of the IN operator separately.
CLI enhancements:
Columnar output modes are enhanced to correctly handle tabs and newlines embedded in text.
Added options like "--wrap N", "--wordwrap on", and "--quote" to the columnar output modes.
Added the .mode qbox alias.
The .import command automatically disambiguates column names.
Use the new sqlite3_error_offset() interface to provide better error messages.
Query planner enhancements:
Use a Bloom filter to speed up large analytic queries.
Use a balanced merge tree to evaluate UNION or UNION ALL compound SELECT statements that have an ORDER BY clause.
The ALTER TABLE statement is changed to silently ignores entries in the sqlite_schema table that do not parse when PRAGMA writable_schema=ON.
Atomically write to a file on POSIX-compliant systems while preserving
permissions.
On most Unix systems, mv is an atomic operation. This makes it simple to
write to a file atomically just by using the mv operation. However, this
will destroy the permissions on the original file. This library does the
following to preserve permissions while atomically writing to a file:
* If an original file exists, take those permissions and apply them to the
temp file before mving the file into place.
* If the original file does not exist, create a following with default
permissions (based on the currently-active umask).
This way, when the file is mv'ed into place, the permissions will be the
ones held by the original file.
This package (formerly binary-serialise-cbor) provides pure, efficient
serialization of Haskell values directly into ByteStrings for storage or
transmission purposes. By providing a set of type class instances, you can
also serialise any custom data type you have as well.
The underlying binary format used is the 'Concise Binary Object
Representation', or CBOR, specified in RFC 7049. As a result, serialised
Haskell values have implicit structure outside of the Haskell program
itself, meaning they can be inspected or analyzed without custom tools.
A sensible starting Prelude for building custom Preludes.
Design points:
* Banishes String.
* Banishes partial functions.
* Compiler warning on bottoms.
* Polymorphic string IO functions.
* Polymorphic show.
* Automatic string conversions.
* Types for common data structures in scope.
* Types for all common string types (Text/ByteString) in scope.
* Banishes impure exception throwing outside of IO.
* StateT/ReaderT/ExceptT transformers in scope by default.
* Foldable / Traversable functions in scope by default.
* Unsafe functions are prefixed with "unsafe" in separate module.
* Compiler agnostic, GHC internal modules are abstracted out into Base.
* sum and product are strict by default.
* Includes Semiring for GHC >= 7.6.
* Includes Bifunctor for GHC >= 7.6.
* Includes Semigroup for GHC >= 7.6.
This package backports the Control.Monad.Except module from mtl (if using
mtl-2.2.0.1 or earlier), which reexports the ExceptT monad transformer and
the MonadError class.
This package should only be used if there is a need to use the
Control.Monad.Except module specifically. If you just want the mtl class
instances for ExceptT, use transformers-compat instead, since mtl-compat
does nothing but reexport the instances from that package.
Note that unlike how mtl-2.2 or later works, the Control.Monad.Except
module defined in this package exports all of ExceptT's monad class
instances. Therefore, you may have to declare import Control.Monad.Except
() at the top of your file to get all of the ExceptT instances in scope.
This package offers a collection of channel types, similar to
Control.Concurrent.STM.{TChan,TQueue} but with additional features. In
particular we offer the following data types:
Control.Concurrent.STM.TBChan:
Bounded FIFO channels. When the channel is full, writers will
block/retry. This ensures that the writers do not get too far ahead of
the readers, which helps to make sure that memory and cpu resources are
used responsibly.
Control.Concurrent.STM.TMChan:
Closeable FIFO channels.
Control.Concurrent.STM.TMQueue:
Closeable FIFO queues. Like TChan (Maybe a) but with a monotonicity
guarantee that once Nothing is returned all future reads will be
Nothing as well.
Control.Concurrent.STM.TBMChan:
Bounded Closeable FIFO channels.
Control.Concurrent.STM.TBMQueue:
Bounded Closeable FIFO queues. Combines the capabilities of TBChan and
TMChan.
This package exports a module which is the recommended starting point for
using microlens if you aren't trying to keep your dependencies minimal. By
importing Lens.Micro.Platform you get all functions and instances from
microlens, microlens-th, microlens-mtl, microlens-ghc, as well as instances
for Vector, Text, and HashMap.
Use this package instead of microlens if you don't mind depending on all
dependencies here -- Lens.Micro.GHC reexports everything from Lens.Micro
and additionally provides orphan instances of microlens classes for
packages coming with GHC (array, bytestring, containers, transformers).
This package provides an efficient implementation of the Concise Binary
Object Representation (CBOR), as specified by RFC 7049
(https:/tools.ietf.orghtml/rfc7049).
This package supplies half-precision floating point values w/ 1 bit of
sign, 5 bits of exponent, 11 bits of mantissa trailing a leading 1 bit with
proper underflow.
These arise commonly in GPU applications.
optparse-applicative has a really nice feature that enables any tools
parsing command-line arguments with the library to automatically generate
bash, fish, and zsh completion scripts via hidden options, by hidden it
means they aren't shown in the "--help" message.
Packages that install executables using optparse-applicative can now
include this file to automatically generate and install such scripts.
21.4.0 (2021-12-29)
-------------------
Changes
^^^^^^^
- Fixed the test suite on PyPy3.8 where ``cloudpickle`` does not work.
- Fixed ``coverage report`` for projects that use ``attrs`` and don't set a ``--source``.
----
21.3.0 (2021-12-28)
-------------------
Backward-incompatible Changes
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- When using ``@define``, converters are now run by default when setting an attribute on an instance -- additionally to validators.
I.e. the new default is ``on_setattr=[attrs.setters.convert, attrs.setters.validate]``.
This is unfortunately a breaking change, but it was an oversight, impossible to raise a ``DeprecationWarning`` about, and it's better to fix it now while the APIs are very fresh with few users.
- ``import attrs`` has finally landed!
As of this release, you can finally import ``attrs`` using its proper name.
Not all names from the ``attr`` namespace have been transferred; most notably ``attr.s`` and ``attr.ib`` are missing.
See ``attrs.define`` and ``attrs.field`` if you haven't seen our next-generation APIs yet.
A more elaborate explanation can be found `On The Core API Names <https://www.attrs.org/en/latest/names.html>`_
This feature is at least for one release **provisional**.
We don't *plan* on changing anything, but such a big change is unlikely to go perfectly on the first strike.
The API docs have been mostly updated, but it will be an ongoing effort to change everything to the new APIs.
Please note that we have **not** moved -- or even removed -- anything from ``attr``!
Please do report any bugs or documentation inconsistencies!
Changes
^^^^^^^
- ``attr.asdict(retain_collection_types=False)`` (default) dumps collection-esque keys as tuples.
- ``__match_args__`` are now generated to support Python 3.10's
`Structural Pattern Matching <https://docs.python.org/3.10/whatsnew/3.10.html#pep-634-structural-pattern-matching>`_.
This can be controlled by the ``match_args`` argument to the class decorators on Python 3.10 and later.
On older versions, it is never added and the argument is ignored.
- If the class-level *on_setattr* is set to ``attrs.setters.validate`` (default in ``@define`` and ``@mutable``) but no field defines a validator, pretend that it's not set.
- The generated ``__repr__`` is significantly faster on Pythons with f-strings.
- Attributes transformed via ``field_transformer`` are wrapped with ``AttrsClass`` again.
- Generated source code is now cached more efficiently for identical classes.
- Added ``attrs.converters.to_bool()``.
- ``attrs.resolve_types()`` now resolves types of subclasses after the parents are resolved.
- Added new validators: ``lt(val)`` (< val), ``le(va)`` (≤ val), ``ge(val)`` (≥ val), ``gt(val)`` (> val), and ``maxlen(n)``.
- ``attrs`` classes are now fully compatible with `cloudpickle <https://github.com/cloudpipe/cloudpickle>`_ (no need to disable ``repr`` anymore).
- Added new context manager ``attrs.validators.disabled()`` and functions ``attrs.validators.(set|get)_disabled()``.
They deprecate ``attrs.(set|get)_run_validators()``.
All functions are interoperable and modify the same internal state.
They are not – and never were – thread-safe, though.
- ``attrs.validators.matches_re()`` now accepts pre-compiled regular expressions in addition to pattern strings.
21.2.0 (2021-05-07)
-------------------
Backward-incompatible Changes
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- We had to revert the recursive feature for ``attr.evolve()`` because it broke some use-cases -- sorry!
- Python 3.4 is now blocked using packaging metadata because ``attrs`` can't be imported on it anymore.
To ensure that 3.4 users can keep installing ``attrs`` easily, we will `yank <https://pypi.org/help/#yanked>`_ 21.1.0 from PyPI.
This has **no** consequences if you pin ``attrs`` to 21.1.0.
21.1.0 (2021-05-06)
-------------------
Deprecations
^^^^^^^^^^^^
- The long-awaited, much-talked-about, little-delivered ``import attrs`` is finally upon us!
Since the NG APIs have now been proclaimed stable, the **next** release of ``attrs`` will allow you to actually ``import attrs``.
We're taking this opportunity to replace some defaults in our APIs that made sense in 2015, but don't in 2021.
So please, if you have any pet peeves about defaults in ``attrs``'s APIs, *now* is the time to air your grievances in 487!
We're not gonna get such a chance for a second time, without breaking our backward-compatibility guarantees, or long deprecation cycles.
Therefore, speak now or forever hold you peace!
- The *cmp* argument to ``attr.s()`` and `attr.ib()` has been **undeprecated**
It will continue to be supported as syntactic sugar to set *eq* and *order* in one go.
I'm terribly sorry for the hassle around this argument!
The reason we're bringing it back is it's usefulness regarding customization of equality/ordering.
The ``cmp`` attribute and argument on ``attr.Attribute`` remains deprecated and will be removed later this year.
Changes
^^^^^^^
- It's now possible to customize the behavior of ``eq`` and ``order`` by passing in a callable.
- The instant favorite next-generation APIs are not provisional anymore!
They are also officially supported by Mypy as of their `0.800 release <https://mypy-lang.blogspot.com/2021/01/mypy-0800-released.html>`_.
We hope the next release will already contain an (additional) importable package called ``attrs``.
- If an attribute defines a converter, the type of its parameter is used as type annotation for its corresponding ``__init__`` parameter.
If an ``attr.converters.pipe`` is used, the first one's is used.
- Fixed the creation of an extra slot for an ``attr.ib`` when the parent class already has a slot with the same name.
- ``__attrs__init__()`` will now be injected if ``init=False``, or if ``auto_detect=True`` and a user-defined ``__init__()`` exists.
This enables users to do "pre-init" work in their ``__init__()`` (such as ``super().__init__()``).
``__init__()`` can then delegate constructor argument processing to ``self.__attrs_init__(*args, **kwargs)``.
- ``bool(attr.NOTHING)`` is now ``False``.
- It's now possible to use ``super()`` inside of properties of slotted classes.
- Allow for a ``__attrs_pre_init__()`` method that -- if defined -- will get called at the beginning of the ``attrs``-generated ``__init__()`` method.
- Added forgotten ``attr.Attribute.evolve()`` to type stubs.
- ``attrs.evolve()`` now works recursively with nested ``attrs`` classes.
- Python 3.10 is now officially supported.
- ``attr.resolve_types()`` now takes an optional *attrib* argument to work inside a ``field_transformer``.
- ``ClassVar``\ s are now also detected if they come from `typing-extensions <https://pypi.org/project/typing-extensions/>`_.
- To make it easier to customize attribute comparison, we have added the ``attr.cmp_with()`` helper.
See the `new docs on comparison <https://www.attrs.org/en/stable/comparison.html>`_ for more details.
- Added **provisional** support for static typing in ``pyright`` via the `dataclass_transforms specification <https://github.com/microsoft/pyright/blob/main/specs/dataclass_transforms.md>`_.
Both the ``pyright`` specification and ``attrs`` implementation may change in future versions of both projects.
Hypothesis strategies for generating Python programs, something
like CSmith.
This is definitely pre-alpha, but if you want to play with it feel
free! You can even keep the shiny pieces when - not if - it breaks.
1.1.2 (2021-12-05)
Changed
Removed dependency on tomli to simplify installation.
Improve error messages on invalid inputs to rust_extensions keyword.
1.1.1 (2021-12-01)
Fixed
Fix regression from setuptools-rust 1.1.0 which broke builds for the x86_64-unknown-linux-musl target.
Fix --target command line option being unable to take a value.
Fix regression from setuptools-rust 1.0.0 which broke builds on arm64 macos conda builds.
Fix regression from setuptools-rust 1.1.0 which incorrectly converted library extension suffixes to the "abi3" suffix when py_limited_api was unspecified.
1.1.0 (2021-11-30)
Added
Add support for cross-compiling using cross.
Fixed
Fix incompatibility with Python 3.6.0 using default values for NamedTuple classes.
Stop forcing the msvc Rust toolchain for Windows environments using the gnu toolchain.
1.0.0 (2021-11-21)
Added
Add --target command line option for specifying target triple.
Add new default "auto" setting for RustExtension.py_limited_api.
Support very verbose cargo build.rs output.
Changed
Switch to tomli dependency.
Removed
Remove test_rust command. (python setup.py test is deprecated.)
Remove check_rust command.
Move tomlgen_rust command to separate setuptools-rust-tomlgen package.
Fixed
Use info from sysconfig when cross-compiling.
Put Rust extension module binary under build/lib.* directory.
Fix Exec binding with console scripts.
Trio 0.20.0 (2022-02-21)
------------------------
Features
- You can now conveniently spawn a child process in a background task
and interact it with on the fly using ``process = await
nursery.start(run_process, ...)``. See `run_process` for more details.
We recommend most users switch to this new API. Also note that:
- ``trio.open_process`` has been deprecated in favor of
`trio.lowlevel.open_process`,
- The ``aclose`` method on `Process` has been deprecated along with
``async with process_obj``.
- Now context variables set with `contextvars` are preserved when running functions
in a worker thread with `trio.to_thread.run_sync`, or when running
functions from the worker thread in the parent Trio thread with
`trio.from_thread.run`, and `trio.from_thread.run_sync`.
This is done by automatically copying the `contextvars` context.
`trio.lowlevel.spawn_system_task` now also receives an optional ``context`` argument.
Bugfixes
- Trio now avoids creating cyclic garbage when a `MultiError` is generated and filtered,
including invisibly within the cancellation system. This means errors raised
through nurseries and cancel scopes should result in less GC latency.
- Trio now deterministically cleans up file descriptors that were opened before
subprocess creation fails. Previously, they would remain open until the next run of
the garbage collector.
- Add compatibility with OpenSSL 3.0 on newer Python and PyPy versions by working
around ``SSLEOFError`` not being raised properly.
- Fix a bug that could cause `Process.wait` to hang on Linux systems using pidfds, if
another task were to access `Process.returncode` after the process exited but before
``wait`` woke up
mold 1.1 is a new release of the high-performance linker. It contains
a few new major features and various bug fixes.
New features:
- Native LTO (link-time optimization) support has been added.
mold used to invoke ld.bfd or ld.lld if it encountered a GCC
IR (intermediate representation) file or an LLVM IR file to
delegate the task to the LTO-capable linkers, respectively.
Now, mold handles IR files directly. This feature is implemented
using the linker plugin API which is also used by GNU ld and
GNU gold. Note that the LTO support has been added for completeness
and not for speed. mold is only marginally faster than the
other linkers for LTO builds because not linking but code
optimization dominates. (46995bc)
- RISC-V (RV64) is now supported as both host and target platforms.
mold can link real-world large programs such as mold itself or
LLVM Clang for RISC-V. (e76f7c0)
- The -emit-relocs option is supported. If the option is given,
mold copies relocation sections from input files to an output
file. This feature is used by some post-link binary optimization
or analysis tools such as Facebook's Bolt. (26fe71d)
- mold gained the --shuffle-sections option. If the option is
given, the linker randomly shuffle the order of input sections
before fixing their addresses in the virtual address space.
This feature is useful in some situations. First, it can be
used as a strong form of ASLR (address space layout randomization).
Second, you can enable it when you are benchmarking some other
program to get more reliable benchmark numbers, because even
the same machine code can vary in performance if they are laid
out differently in the virtual address space. You want to make
sure that you got good/bad benchmark numbers not by coincidence
by shuffling input sections. (7e91897)
- The --print-dependencies and --print-dependencies=full options
were added. They print out dependencies between input files in
the CSV format. That is, they print out the information as to
which file depends on which file to use which symbol. We added
this feature with a few use cases in mind. First, you can use
this to analyze why some object file was pulled out from an
archive and got linked to an output file. Second, when you want
to eliminate all dependencies to some library, you can find
all of them very easy with this feature. Note that this is an
experimental feature and may change or removed in feature
releases of mold. (a1287c2)
- The following options are added: --warn-once (f24b997),
--warn-textrel (6ffcae4)
- Runtime dependency to libxxhash has been eliminated. (e5f4b96)
Bug fixes and compatibility improvements:
- A PT_GNU_RELRO segment is now aligned up to the next page
boundary. Previously, mold didn't align it up, and the runtime
loader align it down, so the last partial page would not be
protected by the RELRO mechanism. Now, the entire RELRO segment
is guaranteed to be read-only at runtime. (0a0f9b3)
- The .got.plt section is now protected by RELRO if -z now is
given. This is possible because writes to .got.plt happen only
during process startup if all symbols are resolved on process
startup. (73159e2)
- Previously, mold reported an error if object files created with
old GCC (with -fgnu-unique) are mixed with ones created with
newer GCC or Clang (with -fno-gnu-unique) (#324). Now, mold
accepts such input files. (e65c5d2)
- mold can now be built with musl libc. (42b7eb8)
- mold-generated .symtab section now contains section symbols
and symbols derived from input shared object files. (e4c03c2,
1550b5a)
- mold-generated executables can now run under valgrind. Previously,
valgrind aborted on startup due to an assertion failure because
it didn't expect for an executable to have both .bss and .dynbss
sections. mold generated .dynbss to contain copy-relocated
symbols. The section has been renamed .copyrel to workaround
the valgrind's issue. (0f8bf23)
Options.withComparator: You can now inject a custom comparator to check
if two files are equivalent.
Minor bug fix: delete_approve file will not explode if the file does
not exist.
Minor bug fix: options are passed down the stack where they were not
previously being used.
Bug Fixes
- Only drop previous releases if skipped (#44)
- Run clippy from nightly toolchain
- Update tests about optional config values
- Set the previous release when using `--unreleased` (#47)
- Lower the priority of global configuration file (#51)
- Update the download link of latest grcov release
- Use the correct tar command for extracting grcov archive
- Update grcov download command
- Update custom error tests
Documentation
- Update template contexts about link_parsers
- Add minimal example
- Update copyright years
Features
- Add `link_parsers` for parsing/extracting links (#42)
- Make the `git` section optional (#45)
- Make the `changelog` section optional (#45)
- [**breaking**] Use conventional commit body to check against commit parsers
- [**breaking**] Replace --topo-order by --date-order (#58)
Miscellaneous Tasks
- Update arg parsing to clap v3 (#49)
- Upgrade dependencies
- Bump the Rust version in Dockerfile
- Run cargo-audit for checking vulnerabilities
- Update the runner to macos-11
Refactor
- Apply clippy suggestions
- [**breaking**] Change the default value of `trim` to `true`
- Unify serde and serde_derive using derive feature (#57)
Styling
- Update the styling
- Comply with MD022 and fix minor typos (#61)
v60.9.3
Misc
* Repaired automated release process.
v60.9.2
Misc
* When loading distutils from the vendored copy, rewrite __name__ to ensure consistent importing from inside and out.
v60.9.1
Misc
* Prevent vendored importlib_metadata from loading distributions from older importlib_metadata.
* Fixed issue where string-based entry points would be omitted.
* Bump importlib_metadata to 4.11.1 addressing issue with parsing requirements in egg-info as found in PyPy.
v60.9.0
Changes
* In the build backend, allow single config settings to be supplied.
* Removed workaround in distutils hack for get-pip now that pypa/get-pip#137 is closed.
* Setuptools no longer relies on pkg_resources for entry point handling.
* Bump vendored packaging to 21.3.
* Removed bootstrap script.
3.2.7 (2022-01-12)
* Update test expectations for php 8.2.0-dev. Add
`#[AllowDynamicProperties]` Attribute to some tests to avoid notices.
* In php 8.1+, make igbinary_unserialize check to see if an equivalent
interned string already exists when unserializing object property names,
array keys, and class names and use that instead of creating a brand new
string.
(This deliberately doesn't create a new interned string if one doesn't
already exist.)
(Before this change, igbinary would deduplicate strings when serializing,
but would not check if strings were interned by PHP itself when
unserializing)
* Avoid debug build assertion failure for `HT_ASSERT_RC1` the same way as
PHP's unserialize - this is a case where ostensibly there are no other
references to the array being unserialized.
3.1.3 (2022-02-01)
Fixed bugs:
* Fixed issue #2049: evaling broken code (still) causes unhandled exception
in PHP 7.4
* Fixed issue #2052: Memory leak when a trace file can't be opened because
xdebug.trace_output_name is invalid
* Fixed issue #2054: Slowdown when calling a function with long string
parameters
* Fixed issue #2055: Debugger creates XML with double facet attribute
1.43.0-0
* Change the call to acquire_vm_cb() in luv.new_therad() to be made
before the thread is created in luv_new_thread().
* simplify vm management in thread and threadpool