* Typed Racket supports refinement types and dependent function types.
Previously an experimental feature, refinement types allow types to
describe more interesting properties of values, especially integers.
For example, this type shows that the `max` function always produces a
number at least as big as its inputs:
`(-> ([x : Integer] [y : Integer])
(Refine [z : Integer] (and (>= z x) (>= z y))))`
* DrRacket's Program Contour is significantly more efficient; using it
no longer hurts DrRacket's interactivity.
* The `web-server/formlets` library produces formlets that are
serializable, facilitating dynamic uses of formlets in stateless #lang
web-server servlets. The new `web-server/formlets/stateless` and
`web-server/formlets/unsafe` libraries provide additional support with
the same API.
* The `db` library supports the Cassandra database.
We need to remove -std=c89 so that compilers which default to C99 don't fail,
and don't automatically add -fstack-protector flags, leave it to the user to
decide via PKGSRC_USE_SSP. Fixes clang on SmartOS. Bump PKGREVISION.
async_hooks:
- deprecate AsyncHooks Sensitive API and runInAsyncIdScope. Neither
API were documented.
deps:
- update nghttp2 to 1.29.0
- upgrade npm to 5.6.0
- cherry-pick 50f7455 from upstream V8
events:
- remove reaches into _events internals
http:
- add rawPacket in err of clientError event
http2:
- implement maxSessionMemory
- add initial support for originSet
- add altsvc support
- perf_hooks integration
- Refactoring and cleanup of Http2Session and Http2Stream destroy
net:
- remove Socket.prototype.write
- remove Socket.prototype.listen
repl:
- show lexically scoped vars in tab completion
stream:
- rm {writeable/readable}State.length
- add flow and buffer properties to streams
util:
- allow wildcards in NODE_DEBUG variable
zlib:
- add ArrayBuffer support
Changes are many and can be found at https://ocaml.org/releases/4.06.html
One change that breaks a lot of packages is that the safe-string compiler
option is now enabled by default, which means that all modules need to use
immutable strings (or explicitly use the bytes type).
This a meta package including Ruby 2.5 full release.
It includes ruby25-base, ruby25-gdbm, ruby25-fiddle and ruby25-readline
package.
No package should depend on this package directly.
Ruby 2.5.0 is the first stable release of the Ruby 2.5 series. It introduces
many new features and performance improvements. The notable changes are as
follows:
o New Features
* rescue/else/ensure are now allowed to be used directly with do/end
blocks. [Feature #12906]
* Add yield_self to yield given block in its context. Unlike tap, it returns
the result of the block. [Feature #6721]
* Support branch coverage and method coverage measurement. The branch coverage
indicates which branches are executed and which are not. The method coverage
indicates which methods are invoked and which are not. By running a test
suite with these new features, you will know which branches and methods are
executed, and evaluate total coverage of the test suite more
strictly. [Feature #13901]
* Hash#slice [Feature #8499] and Hash#transform_keys [Feature #13583]
* Struct.new can create classes that accept keyword arguments. [Feature
#11925]
* Enumerable#any?, all?, none?, and one? accept a pattern argument. [Feature
#11286]
* Top-level constant look-up is no longer available. [Feature #11547]
* One of our most loved libraries, pp.rb, is now automatically loaded. You no
longer have to write require "pp". [Feature #14123]
* Print backtrace and error message in reverse order (oldest call first, most
recent call last). When a long backtrace appears on your terminal (TTY), you
can easily find the cause line at the bottom of the backtrace. Note that the
order is reversed only when the backtrace is printed out to the terminal
directly. [Feature #8661] [experimental]
o Performance improvements
* About 5-10% performance improvement by removing all trace instructions from
overall bytecode (instruction sequences). The trace instruction was added to
support the TracePoint. However, in most cases, TracePoint is not used and
trace instructions are pure overhead. Instead, now we use a dynamic
instrumentation technique. See [Feature #14104] for more details.
* Block passing by a block parameter (e.g. def foo(&b); bar(&b); end) is about
3 times faster than Ruby 2.4 by “Lazy Proc allocation” technique. [Feature
#14045]
* Mutex is rewritten to be smaller and faster. [Feature #13517]
* ERB now generates code from a template twice as fast as Ruby 2.4.
* Improve performance of some built-in methods including Array#concat,
Enumerable#sort_by, String#concat, String#index, Time#+, and more.
* IO.copy_stream uses copy_file_range(2) to copy offload. [Feature #13867]
o Other notable changes since 2.4
* SecureRandom now prefers OS-provided sources over OpenSSL. [Bug #9569]
* Promote cmath, csv, date, dbm, etc, fcntl, fiddle, fileutils, gdbm, ipaddr,
scanf, sdbm, stringio, strscan, webrick, zlib from standard libraries to
default gems.
* Update to Onigmo 6.1.3.
- It adds the absence operator.
- Note that Ruby 2.4.1 also includes this change.
* Update to Psych 3.0.2.
* Update to RubyGems 2.7.3.
* Update to RDoc 6.0.1.
- Switch the lexer from IRB based one to Ripper. This dramatically improves
the performance of document generation.
- Fix a significant amount of bugs that existed over ten years.
- Add support for new Ruby syntax from the latest versions.
* Update supported Unicode version to 10.0.0.
* Thread.report_on_exception is now set to true by default. This change helps
debugging of multi-threaded programs. [Feature #14143]
* IO#write now receives multiple arguments. [Feature #9323]
See NEWS or commit logs for details.
Previously a special override header was used via an additional include path,
but this extra include path was not exported to llvm-config so while llvm was
ok, dependencies wouldn't find the header and fail.
Instead just pull the changes directly inline into DataTypes.h so that they
are available everywhere. Fixes the clang build on SunOS. Bump PKGREVISION.
* Disable Solaris/SunOS suppprt for a while
Changelog:
# What's in 1.23.0 stable
New year, new Rust! For our first improvement today, we now avoid
some unnecessary copies in certain situations. We've seen memory
usage of using rustc to drop 5-10% with this change; it may be
different with your programs.
The documentation team has been on a long journey to move rustdoc
to use CommonMark. Previously, rustdoc never guaranteed which
markdown rendering engine it used, but we're finally committing to
CommonMark. As part of this release, we render the documentation
with our previous renderer, Hoedown, but also render it with a
CommonMark compliant renderer, and warn if there are any differences.
There should be a way for you to modify the syntax you use to render
correctly under both; we're not aware of any situations where this
is impossible. Docs team member Guillaume Gomez has written a blog
post showing some common differences and how to solve them. In a
future release, we will switch to using the CommonMark renderer by
default. This warning landed in nightly in May of last year, and
has been on by default since October of last year, so many crates
have already fixed any issues that they've found.
In other documentation news, historically, Cargo's docs have been
a bit strange. Rather than being on doc.rust-lang.org, they've been
at doc.crates.io. With this release, that's changing. You can now
find Cargo's docs at doc.rust-lang.org/cargo. Additionally, they've
been converted to the same format as our other long-form documentation.
We'll be adding a redirect from doc.crates.io to this page, and
you can expect to see more improvements and updates to Cargo's docs
throughout the year.
See the detailed release notes for more.
## Library stabilizations
As of Rust 1.0, a trait named AsciiExt existed to provide ASCII
related functionality on u8, char, [u8], and str. To use it, you'd
write code like this:
use std::ascii::AsciiExt;
let ascii = 'a';
let non_ascii = '❤';
let int_ascii = 97;
assert!(ascii.is_ascii());
assert!(!non_ascii.is_ascii());
assert!(int_ascii.is_ascii());
In Rust 1.23, these methods are now defined directly on those types,
and so you no longer need to import the trait. Thanks to our
stability guarantees, this trait still exists, so if you'd like to
still support Rust versions before Rust 1.23, you can do this:
#[allow(unused_imports)]
use std::ascii::AsciiExt;
...to suppress the related warning. Once you drop support for older
Rusts, you can remove both lines, and everything will continue to
work.
Additionally, a few new APIs were stabilized this release:
The various std::sync::atomic types now implement From their
non-atomic types. For example, let x = AtomicBool::from(true);.
() now implements FromIterator<()>; check the PR for a neat
use-case. RwLock<T> has had its Send restriction lifted
See the detailed release notes for more.
## Cargo features
cargo check can now check your unit tests.
cargo uninstall can now uninstall more than one package in one
command.
The actual fix as been done by "pkglint -F */*/buildlink3.mk", and was
reviewed manually.
There are some .include lines that still are indented with zero spaces
although the surrounding .if is indented. This is existing practice.
changes in sbcl-1.4.3 relative to sbcl-1.4.2:
* enhancement: SLEEP respects deadlines established by SB-SYS:WITH-DEADLINE.
* bug fix: DECODE-TIMEOUT and operators accepting a timeout no longer signal
an error when called with an argument that is of type (real 0) but not
(unsigned-byte 62) (lp#1727789)
* bug fix: fixed heap exhaustion bug when consing millions of small objects
* bug fix: sb-safepoint builds are now a lot less prone to deadlocks and odd
crashes (lp#1424031, lp#1268710)
* bug fix: argumentless CALL-NEXT-METHOD where specialized-to-T or
unspecialized parameters are mutated now uses the original (non-mutated)
parameter values (lp#1734771)
* bug fix: memory faults from lisp no longer use (thread-and-interrupt
unsafe) global storage for fault addresses (everywhere), and now have
cleaner backtraces (on x86 and x86-64). (lp#309068)
* bug fix: pathnames with a directory component of the form
(:absolute {:up,:wild,:wild-inferiors}) no longer fail to unparse.
(lp#1738775)
* bug fix: more reliable signal handling on macOS.
changes in sbcl-1.4.2 relative to sbcl-1.4.1:
* minor incompatible change: SB-EXT:QUIT is no longer marked as deprecated
and behaves like SB-EXT:EXIT.
* enhancement: ASDF updated to 3.3.1. The ASDF release is dedicated to
the late Elias Pipping who put enormous amounts of work into it despite
his terminal illness. Thank you and rest in peace. (lp#1681201)
* enhancement: alien routines compiled with '-fsanitize=thread' and/or
'-fsanitize=memory' cause fewer false positives in error reporting.
* optimization: fewer instances of consing float constants at runtime.
* bug fix: a number of compiler bugs detected by Paul F. Dietz' randomized
tester. (lp#1731503, lp#1730699, lp#1723993, lp#1730434, lp#1661911,
lp#1729639, lp#1729471, lp#1728692)
* bug fix: better errors from NAMESTRING and friends on pathnames with no
namestrings. (lp#792154)
* bug fix: EQUAL and EQUALP compiler transforms were too confident in
deriving a result. (lp#1732277, lp#1732225)
* bug fix: FILL sometimes returned the underlying data vector rather than
the given array. (lp#1732553)
* bug fix: SEARCH returned the wrong answer in some cases. (lp#1732952)
* bug fix: the type (COMPLEX INTEGER) behaves more as specified by Function
TYPEP, which has stronger constraints than System Class COMPLEX.
(Reported by Eric Marsden, lp#1733400)
changes in sbcl-1.4.1 relative to sbcl-1.4.0:
* optimization: faster foreign callbacks.
* enhancement: complex arrays can be stack allocated.
* enhancement: PROCESS-KILL now exists on win32 and PROCESS-PID actually
returns the PID.
* optimization: the register allocation method used by the compiler when
optimizing for speed is now faster for functions with large bodies.
* bug fix: SB-INTROSPECT:ALLOCATION-INFORMATION works on big-endian CPUs
(fixes lp#490490 for real rather than by disabling a test)
* bug fix: code objects and bignums of large enough size to be placed
on GC pages without any other object no longer cause accidental copying
during garbage collection. (gencgc only)
* bug fix: sb-fasteval failure with 0-argument lambdas (lp#1722715)
* bug fix: RUN-PROGRAM doesn't leak handles on win32 and PROCESS-CLOSE
doesn't crash. (lp#1724472)
changes in sbcl-1.4.0 relative to sbcl-1.3.21:
* minor incompatible change: DESTRUCTURING-BIND treats non-toplevel () as
nested empty pattern. This seems to be what the standard mandates, so
conforming code should not be affected.
* ehancement: (GC :GEN 7) with gencgc will zero-fill dead pseudo-static
objects so that they do not spuriously cause reachability of objects that
would have been otherwise dead.
* enhancement: PROCESS-STATUS now tracks stopped and continued processes
properly (also fixes lp#1624941, based on patch by Elias Pipping).
* bug fix: INSPECT handles errors signaled while printing slot
values. (lp#454682)
* bug fix: DESCRIBE works on classes like it used to.
* bug fix: *LOAD-PATHNAME* and *LOAD-TRUENAME* are bound to pathnames
when processing a sysinit or userinit file
* bug fix: save-lisp-and-die is able to collect more garbage on non-x86oid
gencgc targets.
* bug fix: fixed out-of-bounds array read in optimized POSITION on bit-vectors
* bug fix: signal emulation respects the 128-byte stack red zone on x86-64
macOS.
Elixir is a functional, meta-programming aware language built on top of the
Erlang VM. It is a dynamic language that focuses on tooling to leverage
Erlang's abilities to build concurrent, distributed and fault-tolerant
applications with hot code upgrades.
Unsorted entries in PLIST files have generated a pkglint warning for at
least 12 years. Somewhat more recently, pkglint has learned to sort
PLIST files automatically. Since pkglint 5.4.23, the sorting is only
done in obvious, simple cases. These have been applied by running:
pkglint -Cnone,PLIST -Wnone,plist-sort -r -F
This has been a pkglint warning for several years now, and pkglint can even
fix it automatically. And it did for this commit.
Only in lang/mercury, two passes of autofixing were necessary because there
were nested variables.
pkgsrc changes:
- use paxctl during the build to avoid crashes
- depend directly on pcre
- fix some pkglint
Upstream changes:
- Add Delay>>#value:onTimeoutDo: as an easy way to timeout an operation.
- Improve Delay and millisecondClock behavior across image save and restore.
millisecondClockValue is guaranteed to be monotonic across image save, and
delays are restarted when the image is restored.
- DateTime>>#today will return midnight of the current timezone.
- DateTime has a new method #asLocal.
- DateTime>>#readFrom: can read more time formats.
- Time resolution is now based on nanoseconds.
- Absolute-time delays (Delay>>#untilMilliseconds:) are precise and not
anymore converted to relative-time delays.
- package.xml files support a <dir> tag, like <dir name="Foo">. It can
be used to make package.xml clearer for large packages.
- MethodDictionary is now thread-safe.
- String>>#% supports string keys, like %(string). They can be used
when the argument of #% is a Dictionary or LookupTable. Note that
the keys of the dictionary must be Strings, not Symbols.
- Socket fixes including reporting of EndOfStream on broken pipes and
connection resets.
- Fix the FileDescriptor finalization code to close open descriptors.
- The system file descriptor of FileDescriptor is set to nil on image
restore.
- The asynchronous event notification has been rewritten. The old
version could fail when many file descriptors became available at
the same time.
- DBD-Postgres gained support to bind parameters on queries and various
fixes to allow to resume images that use Postgres.
- Images created with gst-remote can now be resumed.
- Add #system:withArguments: to avoid using #system: with #% to add
arguments.
- Added Integer>>#printPaddedWith:to:.
- Added CharacterArray>>#withShellEscapes
- Added Collection>>#includesAllOf:
- Stream>>#fold: works correctly.
- 64-bit integer types are available using CLongLong and CULongLong.
- gst-blox and gst-browser understand the -i/--rebuild-image option.
- GObject errors show backtraces.
- Improvements to multiarch support.
- CType objects implement #= and #hash, so they can now be used as keys
in a dictionary.
- Floating-point numbers are printed more accurately in some rare cases.
- Some optimization of OrderedCollection and SortedCollection
- Selectors starting with an underscore are treated as keyword messages.
- A new function gst_uint_to_oop is in libgst, and uintToOOP is also
provided by the VMProxy.
- Growing the heap is working again.
- Various bugfixes.
- GNU Smalltalk does not run anymore on i386 hardware, an i486 is needed.
- Slightly faster garbage collection.
- extend upstream hack to work around invalid xml generated by the
docstrings tool;
- add a bunch of missing html files to the PLIST;
- disable build/install of the test modules as they don't understand
the distinction between build dirs and install dirs;
- bump PKGREVISION to 10 for the PLIST changes, although this is
probably unnecessary.
This happened to build only because the BUILDLINK_PREFIX was already passed
through, however the dependency will have been incorrectly registered as
full rather than build-only so bump PKGREVISION.
Changes:
3.6.4
-----
Documentation
-------------
- bpo-32105: Added asyncio.BaseEventLoop.connect_accepted_socket
versionaddded marker.
- bpo-31537: Fix incorrect usage of ``get_history_length`` in readline
documentation example code. Patch by Brad Smith.
- bpo-30085: The operator functions without double underscores are preferred
for clarity. The one with underscores are only kept for back-
compatibility.
Python 3.6.4 release candidate 1:
Core and Builtins
-----------------
- bpo-32176: co_flags.CO_NOFREE is now always set correctly by the code
object constructor based on freevars and cellvars, rather than needing to
be set correctly by the caller. This ensures it will be cleared
automatically when additional cell references are injected into a modified
code object and function.
- bpo-31949: Fixed several issues in printing tracebacks
(PyTraceBack_Print()).
* Setting sys.tracebacklimit to 0 or less now suppresses printing tracebacks.
* Setting sys.tracebacklimit to None now causes using the default limit.
* Setting sys.tracebacklimit to an integer larger than LONG_MAX now means using
the limit LONG_MAX rather than the default limit.
* Fixed integer overflows in the case of more than 2**31 traceback items on
Windows.
* Fixed output errors handling.
- bpo-30696: Fix the interactive interpreter looping endlessly when no
memory.
- bpo-20047: Bytearray methods partition() and rpartition() now accept only
bytes-like objects as separator, as documented. In particular they now
raise TypeError rather of returning a bogus result when an integer is
passed as a separator.
- bpo-31852: Fix a segmentation fault caused by a combination of the async
soft keyword and continuation lines.
- bpo-21720: BytesWarning no longer emitted when the *fromlist* argument of
__import__() or the __all__ attribute of the module contain bytes
instances.
- bpo-31825: Fixed OverflowError in the 'unicode-escape' codec and in
codecs.escape_decode() when decode an escaped non-ascii byte.
- bpo-28603: Print the full context/cause chain of exceptions on interpreter
exit, even if an exception in the chain is unhashable or compares equal to
later ones. Patch by Zane Bitter.
- bpo-31786: Fix timeout rounding in the select module to round correctly
negative timeouts between -1.0 and 0.0. The functions now block waiting
for events as expected. Previously, the call was incorrectly non-blocking.
Patch by Pablo Galindo.
- bpo-31642: Restored blocking "from package import module" by setting
sys.modules["package.module"] to None.
- bpo-31626: Fixed a bug in debug memory allocator. There was a write to
freed memory after shrinking a memory block.
- bpo-31619: Fixed a ValueError when convert a string with large number of
underscores to integer with binary base.
- bpo-31592: Fixed an assertion failure in Python parser in case of a bad
unicodedata.normalize(). Patch by Oren Milman.
- bpo-31588: Raise a TypeError with a helpful error message when class
creation fails due to a metaclass with a bad __prepare__() method.
Patch by Oren Milman.
- bpo-31566: Fix an assertion failure in _warnings.warn() in case of a bad
__name__ global. Patch by Oren Milman.
- bpo-31505: Fix an assertion failure in json, in case
_json.make_encoder() received a bad encoder() argument. Patch by Oren
Milman.
- bpo-31492: Fix assertion failures in case of failing to import from a
module with a bad __name__ attribute, and in case of failing to access
an attribute of such a module. Patch by Oren Milman.
- bpo-31490: Fix an assertion failure in ctypes class definition, in case
the class has an attribute whose name is specified in _anonymous_ but
not in _fields_. Patch by Oren Milman.
- bpo-31478: Fix an assertion failure in _random.Random.seed() in case the
argument has a bad __abs__() method. Patch by Oren Milman.
- bpo-31315: Fix an assertion failure in imp.create_dynamic(), when
spec.name is not a string. Patch by Oren Milman.
- bpo-31311: Fix a crash in the __setstate__() method of
ctypes._CData, in case of a bad __dict__. Patch by Oren Milman.
- bpo-31293: Fix crashes in true division and multiplication of a timedelta
object by a float with a bad as_integer_ratio() method. Patch by Oren
Milman.
- bpo-31285: Fix an assertion failure in warnings.warn_explicit, when the
return value of the received loader's get_source() has a bad splitlines()
method. Patch by Oren Milman.
- bpo-30817: PyErr_PrintEx() clears now the ignored exception that may be
raised by _PySys_SetObjectId(), for example when no memory.
Library
-------
- bpo-28556: Two minor fixes for typing module: allow shallow copying
instances of generic classes, improve interaction of __init_subclass__
with generics.
- bpo-27240: The header folding algorithm for the new email policies has
been rewritten, which also fixes bpo-30788, bpo-31831, and bpo-32182. In
particular, RFC2231 folding is now done correctly.
- bpo-32186: io.FileIO.readall() and io.FileIO.read() now release the GIL
when getting the file size. Fixed hang of all threads with inaccessible
NFS server. Patch by Nir Soffer.
- bpo-12239: Make :meth:msilib.SummaryInformation.GetProperty return
None when the value of property is VT_EMPTY. Initial patch by
Mark Mc Mahon.
- bpo-31325: Fix wrong usage of :func:collections.namedtuple in the
:meth:RobotFileParser.parse() <urllib.robotparser.RobotFileParser.parse>
method.
- bpo-12382: :func:msilib.OpenDatabase now raises a better exception
message when it couldn't open or create an MSI file. Initial patch by
William Tisäter.
- bpo-32110: codecs.StreamReader.read(n) now returns not more than *n*
characters/bytes for non-negative *n*. This makes it compatible with
read() methods of other file-like objects.
- bpo-32072: Fixed issues with binary plists:
* Fixed saving bytearrays.
* Identical objects will be saved only once.
* Equal references will be load as identical objects.
* Added support for saving and loading recursive data structures.
- bpo-32034: Make asyncio.IncompleteReadError and LimitOverrunError
pickleable.
- bpo-32015: Fixed the looping of asyncio in the case of reconnection the
socket during waiting async read/write from/to the socket.
- bpo-32011: Restored support of loading marshal files with the TYPE_INT64
code. These files can be produced in Python 2.7.
- bpo-31970: Reduce performance overhead of asyncio debug mode.
- bpo-9678: Fixed determining the MAC address in the uuid module:
* Using ifconfig on NetBSD and OpenBSD.
* Using arp on Linux, FreeBSD, NetBSD and OpenBSD.
Based on patch by Takayuki Shimizukawa.
- bpo-30057: Fix potential missed signal in signal.signal().
- bpo-31933: Fix Blake2 params leaf_size and node_offset on big endian
platforms. Patch by Jack O'Connor.
- bpo-31927: Fixed compilation of the socket module on NetBSD 8. Fixed
assertion failure or reading arbitrary data when parse a AF_BLUETOOTH
address on NetBSD and DragonFly BSD.
- bpo-27666: Fixed stack corruption in curses.box() and curses.ungetmouse()
when the size of types chtype or mmask_t is less than the size of C long.
curses.box() now accepts characters as arguments. Based on patch by Steve
Fink.
- bpo-31897: plistlib now catches more errors when read binary plists and
raises InvalidFileException instead of unexpected exceptions.
- bpo-25720: Fix the method for checking pad state of curses WINDOW. Patch
by Masayuki Yamamoto.
- bpo-31893: Fixed the layout of the kqueue_event structure on OpenBSD and
NetBSD. Fixed the comparison of the kqueue_event objects.
- bpo-31891: Fixed building the curses module on NetBSD.
- bpo-28416: Instances of pickle.Pickler subclass with the persistent_id()
method and pickle.Unpickler subclass with the persistent_load() method no
longer create reference cycles.
- bpo-28326: Fix multiprocessing.Process when stdout and/or stderr is closed
or None.
- bpo-31457: If nested log adapters are used, the inner process()
methods are no longer omitted.
- bpo-31457: The manager property on LoggerAdapter objects is now
properly settable.
- bpo-31806: Fix timeout rounding in time.sleep(), threading.Lock.acquire()
and socket.socket.settimeout() to round correctly negative timeouts
between -1.0 and 0.0. The functions now block waiting for events as
expected. Previously, the call was incorrectly non-blocking. Patch by
Pablo Galindo.
- bpo-28603: traceback: Fix a TypeError that occurred during printing of
exception tracebacks when either the current exception or an exception in
its context/cause chain is unhashable. Patch by Zane Bitter.
- bpo-30058: Fixed buffer overflow in select.kqueue.control().
- bpo-31770: Prevent a crash when calling the __init__() method of a
sqlite3.Cursor object more than once. Patch by Oren Milman.
- bpo-31672: idpattern in string.Template matched some non-ASCII
characters. Now it uses -i regular expression local flag to avoid non-
ASCII characters.
- bpo-31764: Prevent a crash in sqlite3.Cursor.close() in case the
Cursor object is uninitialized. Patch by Oren Milman.
- bpo-31752: Fix possible crash in timedelta constructor called with custom
integers.
- bpo-31701: On Windows, faulthandler.enable() now ignores MSC and COM
exceptions.
- bpo-31728: Prevent crashes in _elementtree due to unsafe cleanup of
Element.text and Element.tail. Patch by Oren Milman.
- bpo-31620: an empty asyncio.Queue now doesn't leak memory when queue.get
pollers timeout
- bpo-31632: Fix method set_protocol() of class _SSLProtocolTransport in
asyncio module. This method was previously modifying a wrong reference to
the protocol.
- bpo-31675: Fixed memory leaks in Tkinter's methods splitlist() and split()
when pass a string larger than 2 GiB.
- bpo-31673: Fixed typo in the name of Tkinter's method adderrorinfo().
- bpo-30806: Fix the string representation of a netrc object.
- bpo-15037: Added a workaround for getkey() in curses for ncurses 5.7 and
earlier.
- bpo-25351: Avoid venv activate failures with undefined variables
- bpo-25532: inspect.unwrap() will now only try to unwrap an object
sys.getrecursionlimit() times, to protect against objects which create a
new object on every attribute access.
- bpo-30347: Stop crashes when concurrently iterate over itertools.groupby()
iterators.
- bpo-31516: threading.current_thread() should not return a dummy thread
at shutdown.
- bpo-31351: python -m ensurepip now exits with non-zero exit code if pip
bootstrapping has failed.
- bpo-31482: random.seed() now works with bytes in version=1
- bpo-31334: Fix poll.poll([timeout]) in the select module for
arbitrary negative timeouts on all OSes where it can only be a non-
negative integer or -1. Patch by Riccardo Coccioli.
- bpo-31310: multiprocessing's semaphore tracker should be launched again if
crashed.
- bpo-31308: Make multiprocessing's forkserver process immune to Ctrl-C and
other user interruptions. If it crashes, restart it when necessary.
Documentation
-------------
- bpo-32105: Added asyncio.BaseEventLoop.connect_accepted_socket
versionaddded marker.
- bpo-31537: Fix incorrect usage of get_history_length in readline
documentation example code. Patch by Brad Smith.
- bpo-30085: The operator functions without double underscores are preferred
for clarity. The one with underscores are only kept for back-
compatibility.
Tests
-----
- bpo-31380: Skip test_httpservers test_undecodable_file on macOS: fails on
APFS.
- bpo-31705: Skip test_socket.test_sha256() on Linux kernel older than 4.5.
The test fails with ENOKEY on kernel 3.10 (on ppc64le). A fix was merged
into the kernel 4.5.
- bpo-31174: Fix test_tools.test_unparse: DirectoryTestCase now stores the
names sample to always test the same files. It prevents false alarms when
hunting reference leaks.
- bpo-30695: Add the set_nomemory(start, stop) and remove_mem_hooks()
functions to the _testcapi module.
Build
-----
- bpo-32059: detect_modules() in setup.py now also searches the
sysroot paths when cross-compiling.
- bpo-31957: Fixes Windows SDK version detection when building for Windows.
- bpo-31609: Fixes quotes in PCbuild/clean.bat
- bpo-31934: Abort the build when building out of a not clean source tree.
- bpo-31926: Fixed Argument Clinic sometimes causing compilation errors when
there was more than one function and/or method in a .c file with the same
name.
- bpo-28791: Update Windows builds to use SQLite 3.21.0.
- bpo-28791: Update OS X installer to use SQLite 3.21.0.
- bpo-22140: Prevent double substitution of prefix in python-config.sh.
- bpo-31536: Avoid wholesale rebuild after make regen-all if nothing
changed.
Windows
-------
- bpo-1102: Return None when View.Fetch() returns
ERROR_NO_MORE_ITEMS instead of raising MSIError.
- bpo-31944: Fixes Modify button in Apps and Features dialog.
macOS
-----
- bpo-31392: Update macOS installer to use OpenSSL 1.0.2m
Changes 0.13.1:
[ Language Changes ]
* Pythons 2.6, 3.0, 3.1, and 3.2 are no longer supported
* let has been removed. Python's scoping rules do not make a proper
implementation of it possible. Use setv instead.
* lambda has been removed, but fn now does exactly what lambda did
* defreader has been renamed to defsharp; what were previously called
"reader macros", which were never true reader macros, are now called
"sharp macros"
* try now enforces the usual Python order for its elements (else must
follow all excepts, and finally must come last). This is only a
syntactic change; the elements were already run in Python order even when
defined out of order.
* try now requires an except or finally clause, as in Python
* Importing or executing a Hy file automatically byte-compiles it, or loads
a byte-compiled version if it exists and is up to date. This brings big
speed boosts, even for one-liners, because Hy no longer needs to recompile
its standard library for every startup.
* Added bytestring literals, which create bytes objects under Python 3
and str objects under Python 2
* Commas and underscores are allowed in numeric literals
* Many more operators (e.g., **, //, not, in) can be used
as first-class functions
* The semantics of binary operators when applied to fewer or more
than two arguments have been made more logical
* (** a b c d) is now equivalent to (** a (** b (** c d))),
not (** (** (** a b) c) d)
* setv always returns None
* When a try form executes an else clause, the return value for the
try form is taken from else instead of the try body. For example,
(try 1 (except [ValueError] 2) (else 3)) returns 3.
* xor: If exactly one argument is true, return it
* hy.core.reserved is now hy.extra.reserved
* cond now supports single argument branches
[ Bug Fixes ]
* All shadowed operators have the same arities as real operators
* Shadowed comparison operators now use and instead of &
for chained comparisons
* partition no longer prematurely exhausts input iterators
* read and read-str no longer raise an error when the input
parses to a false value (e.g., the empty string)
* A yield inside of a with statement will properly suppress implicit
returns
* setv no longer unnecessarily tries to get attributes
* loop no longer replaces string literals equal to "recur"
* The REPL now prints the correct value of do and try forms
* Fixed a crash when tokenizing a single quote followed by whitespace
[ Misc. Improvements ]
* New contrib module hy-repr
* Added a command-line option --repl-output-fn
* Change PKGNAME as a name of tarball
Changelog:
GnuCOBOL 2.2 released (20170906)
* Move to GPL/LGPL 3
* New GnuCOBOL features (too much to list)
** User Defined Functions, FUNCTION-ID.
** New intrinsic functions
ABSOLUTE-VALUE alias for ABS
CURRENCY-SYMBOL CURRENCY-SYMBOL of the current program
FORMATTED-CURRENT-DATE ISO 8601 datetime function
FORMATTED-DATE ISO 8601 datetime function
FORMATTED-DATETIME ISO 8601 datetime function
FORMATTED-TIME ISO 8601 datetime function
TEST-FORMATTED-DATETIME ISO 8601 datetime function
INTEGER-OF-FORMATTED-DATE date to integer
HIGHEST-ALGEBRAIC now implemented
LOWEST-ALGEBRAIC now implemented
LOCALE-COMPARE now implemented
NUMVAL-F now implemented
TEST-NUMVAL now implemented
TEST-NUMVAL-C now implemented
TEST-NUMVAL-F now implemented
LENGTH-AN alias for BYTE-LENGTH
MODULE-CALLER-ID return the name of the caller
MODULE-DATE current module: compilation date
MODULE-TIME current module: compilation time
MODULE-FORMATTED-DATE current module: formatted datetime
MODULE-ID current module: PROGRAM-ID
MODULE-PATH current module: path on compile time
MODULE-SOURCE current module: name on compile time
MONETARY-DECIMAL-POINT LOCALE based fiscal decimal point
MONETARY-THOUSANDS-SEPARATOR LOCALE based fiscal visual grouping separator
Note:
The functions that are actually available as intrinsic functions depend
on the -std used. Function names that aren't marked as intrinsic functions
by the current -std can be used freely as user defined words or
even as user defined functions.
** New system functions
C$CALLEDBY return the name of the caller
CBL_GC_FORK fork current process (not on Windows)
CBL_GC_WAITPID wait for process to end
CBL_GC_GETOPT (CBL_OC_GETOPT) comand lineoption parser for COBOL
CBL_GC_PRINTABLE (C$PRINTABLE) check if character is printable
CBL_GC_HOSTED (CBL_OC_HOSTED) provides access to C extern variables,
like stdin, errno
CBL_GC_NANOSLEEP CBL_OC_NANOSLEEP
CBL_GET_SCR_SIZE get current terminal size - if any
CBL_READ_KBD_CHAR get character from terminal
CBL_SET_CSR_POS set current position on terminal
x'E4' clear terminal screen
x'E5' ring the bell
** many new / extended COBOL statements from COBOL2002/2014 and extensions
from different COBOL dialects
** more SWITCHes: from SWITCH-01 to SWITCH-36 and its variants from many
COBOL dialects
** more IEEE numeric types added, FLOAT-DECIMAL-16, FLOAT-DECIMAL-34, etc
** more literal types added, numeric boolean etc.
** most of the COBOL 2014 spec Compiler Directive Facility is in
** optional: stricter syntax checks
** refactored and extended compiler and runtime messages with available
translations (currently to Spanish, Portuguese and Dutch, partial to German)
** screen IO: many extended ACCEPT DISPLAY and SCREEN SECTION changes
** Direct call interface for C:
CALL-CONVENTIONS for CALLs and PROCEDURE DIVISION
SIZE of parameters specified for CALL ... BY VALUE
RETURN NOTHING for calling void functions
RETURN ADDRESS OF VAR for calling functions returning a pointer
PROCEDURE DIVISION RETURNING OMITTED -> callable as void function
** Much, much more!
* New cobc options:
** New -std options:
cobol2014 COBOL 2014 Standard
xopen X/Open COBOL Standard
mf-strict Micro Focus COBOL compatibility - strict
ibm-strict IBM COBOL compatibility - strict
ibm-strict MVS/VM COBOL compatibility - strict
acu ACUCOBOL-GT compatibility
acu-strict ACUCOBOL-GT compatibility - strict
bs2000 BS2000 COBOL compatibility (back again)
bs2000-strict BS2000 COBOL compatibility - strict
rm RM-COBOL compatibility
rm-strict RM-COBOL compatibility - strict
Note:
The GnuCOBOL compiler tries to limit both the feature-set and reserved words
to the specified compiler when the "strict" dialects are used.
COBOL sources compiled with these dialects are therefore likely to compile
with the specified compiler and vice versa: sources that were compiled on
the specified compiler should compile without any issues with GnuCOBOL.
With the "non-strict" dialects GnuCOBOL will activate the complete
feature-set where it doesn't directly conflict with the specified dialect,
including reserved words and GnuCOBOL specific extensions.
COBOL sources compiled with these dialects therefore may work only
with GnuCOBOL. COBOL sources may need a change because of rich feature-set
and reserved words in GnuCOBOL, otherwise offending words may be removed
by `-fno-reserved=word`.
COBOL-85, X/Open COBOL, COBOL 2002 and COBOL 2014 are always "strict".
** New listing options:
-t listing, -T wide listing, --tlines=lines, lines per page of listing
-Xref
Note: -P, generate preprocessor listing, is still available (and improved)
** All compiler configuration flags may be set on command line
to override a specific setting of the current -std, see cobc --help
** All Warnings can be explicit enabled/disabled or even marked as error,
see cobc --help
-Wunreachable report on possible unreachable statements
** Options for the C compiler/linker:
-K <entry>, compile entry point as static (resolve at link time)
-A, add options to C compile phase
-Q, add options to C link phase
** Miscellaneous
-i -info, display build/environment
-D define symbol for Compiler Directive Facility
-j -job=args, run job after compile
input filename of '-' reads source from standard in
For more: see cobc --help
* New cobcrun options:
-i -info, display build/environment
-r -runtime-env, display runtime configuration
-c -config, set runtime config from file
-M -module, set path/module name when looking for entry
* New build features
make test downloads NIST testsuite if necessary
now usable with parallel builds (make -j4 test)
make checkall runs both the internal an NIST testsuite
** testsuite defaults to coloured output
** Windows(tm) Visual Studio build support files added,
options to validate the software generated with VS against both test suites
** removed maintainer mode - if files need a rebuild because of a change
they are always rebuild
** help2man, bison and flex are checked during configure,
if they need to be invoked and are missing a useful error message is given
** All files created by GnuCOBOL runtime use the same file permission settings
now: COB_FILE_MODE which was changed to 0666
** changed unix package name from "gnu-cobol" to "gnucobol"
async_hooks:
- add trace events to async_hooks
- add provider types for net server
console:
- console.debug can now be used outside of the inspector
deps:
- upgrade libuv to 1.18.0
- patch V8 to 6.2.414.46
module:
- module.builtinModules will return a list of built in modules
n-api:
- add helper for addons to get the event loop
process:
- process.setUncaughtExceptionCaptureCallback can now be used to
customize behavior for --abort-on-uncaught-exception
- A signal handler is now able to receive the signal code that
triggered the handler.
src:
- embedders can now use Node::CreatePlatform to create an instance of
NodePlatform
stream:
- writable.writableHighWaterMark and readable.readableHighWaterMark
will return the values the stream object was instantiated with
Ruby 2.2.9 Released
Posted by usa on 14 Dec 2017
Ruby 2.2.9 has been released. This release includes several security
fixes. Please check the topics below for details.
* CVE-2017-17405: Command injection vulnerability in Net::FTP
* Unsafe Object Deserialization Vulnerability in RubyGems
Ruby 2.2 is now under the state of the security maintenance phase, until the
end of the March of 2018. After the date, maintenance of Ruby 2.2 will be
ended. We recommend you start planning migration to newer versions of Ruby,
such as 2.4 or 2.3.
Update ruby24-base/ruby24 to 2.4.3.
Ruby 2.4.3 Released
Posted by nagachika on 14 Dec 2017
Ruby 2.4.3 has been released.
This release includes some bug fixes and a security fix.
* CVE-2017-17405: Command injection vulnerability in Net::FTP
There are also som bug fixes. See commit logs for more details.
Update ruby23-base/ruby23 to 2.3.6.
Ruby 2.3.6 has been released.
This release includes about 10 bug fixes after the previous release,
and also includes several security fixes. Please check the topics
below for details.
* CVE-2017-17405: Command injection vulnerability in Net::FTP
* Unsafe Object Deserialization Vulnerability in RubyGems
See the ChangeLog for details.
Some highlights:
crypto, ssl:
- The crypto API is extended to use private/public keys
stored in an Engine for sign/verify or encrypt/decrypt
operations.
- The ssl application provides an API to use this new
engine concept in TLS.
ssh:
- SSH can now fetch the host key from the private keys
stored in an Engine. See the crypto application for
details about Engines.
ssl:
- A new command line option -ssl_dist_optfile has been
added to facilitate specifying the many options needed
when using SSL as the distribution protocol.
stdlib:
- Improve performance of the new string functionality
when handling ASCII characters.
Full release notes:
http://www.erlang.org/download/otp_src_20.2.readme
This is a useless library (we've built it incorrectly for a long time so it
contains no valid symbols) that only creates CONFLICTS with other python3
packages. No objection on tech-pkg. Bump PKGREVISION.
This is a useless library (we've built it incorrectly for a long time so it
contains no valid symbols) that only creates CONFLICTS with other python3
packages. No objection on tech-pkg. Bump PKGREVISION.
This is a useless library (we've built it incorrectly for a long time so it
contains no valid symbols) that only creates CONFLICTS with other python3
packages. No objection on tech-pkg. Bump PKGREVISION.
The update broke MesaLib, which blocks a vast number of packages. In
the interest of stability heading towards 2017Q4, revert it, leaving
the issue of how to handle updates to this package (how much testing
is required, keeping multiple versions, etc.) to after the branch.
- build: fix npm install with --shared
- build: building with python 3 is now supported
- src: v8 options can be specified with either '_' or '-' in NODE_OPTIONS
Upstream Changelog is large; bug fixes are omitted and heaeders only
follow; see NEWS for details.
Changes in 2.2.3 (since 2.2.2):
* New interfaces and functionality
** (web uri) module has better support for RFC 3986
** `struct-ref/unboxed' and `struct-set!/unboxed'
** Improved support for arrays with non-zero lower bounds
** Add `uintptr_t' and `intptr_t' to FFI types.
* Compiler improvements
** Improve speed of compiler backend for functions without loops
** Disable slot pre-coloring for optimization level "-O1" or below
** Improve complexity of constant subexpression elimination pass
** CPS conversion avoids generating return arity adapters if possible
* New deprecations
** Using `uri?' as a predicate on relative-refs deprecated
** Struct tail arrays deprecated
** Struct "self" slots deprecated
** Struct fields with opaque ("o") protection deprecated
** Using `struct-ref' and `struct-set!' on unboxed fields is deprecated
Changes in 2.2.2 (since 2.2.1):
Changes in 2.2.1 (since 2.2.0):
* Notable changes
** New sandboxed evaluation facility
** All literal constants are read-only
** Syntax objects are now a distinct type
5.0.0:
Non-comprehensive list of changes in this release
* LLVM’s WeakVH has been renamed to WeakTrackingVH and a new WeakVH has been introduced. The new WeakVH nulls itself out on deletion, but does not track values across RAUW.
* A new library named BinaryFormat has been created which holds a collection of code which previously lived in Support. This includes the file_magic structure and identify_magic functions, as well as all the structure and type definitions for DWARF, ELF, COFF, WASM, and MachO file formats.
* The tool llvm-pdbdump has been renamed llvm-pdbutil to better reflect its nature as a general purpose PDB manipulation / diagnostics tool that does more than just dumping contents.
* The BBVectorize pass has been removed. It was fully replaced and no longer used back in 2014 but we didn’t get around to removing it. Now it is gone. The SLP vectorizer is the suggested non-loop vectorization pass.
* A new tool opt-viewer.py has been added to visualize optimization remarks in HTML. The tool processes the YAML files produced by clang with the -fsave-optimization-record option.
* A new CMake macro LLVM_REVERSE_ITERATION has been added. If enabled, all supported unordered LLVM containers would be iterated in reverse order. This is useful for uncovering non-determinism caused by iteration of unordered containers. Currently, it supports reverse iteration of SmallPtrSet and DenseMap.
* A new tool llvm-dlltool has been added to create short import libraries from GNU style definition files. The tool utilizes the PE COFF SPEC Import Library Format and PE COFF Auxiliary Weak Externals Format to achieve compatibility with LLD and MSVC LINK.
* Disable SunOS support for a while
Changelog:
Version 1.22.1 (2017-11-22)
Update Cargo to fix an issue with macOS 10.13 "High Sierra"
Version 1.22.0 (2017-11-22)
Language
non_snake_case lint now allows extern no-mangle functions
Now accepts underscores in unicode escapes
T op= &T now works for numeric types. eg. let mut x = 2; x += &8;
types that impl Drop are now allowed in const and static types
Compiler
rustc now defaults to having 16 codegen units at debug on supported
platforms.
rustc will no longer inline in codegen units when compiling for debug
This should decrease compile times for debug builds.
strict memory alignment now enabled on ARMv6
Remove support for the PNaCl target le32-unknown-nacl
Libraries
Allow atomic operations up to 32 bits on armv5te_unknown_linux_gnueabi
Box<Error> now impls From<Cow<str>>
std::mem::Discriminant is now guaranteed to be Send + Sync
fs::copy now returns the length of the main stream on NTFS.
Properly detect overflow in Instant += Duration.
impl Hasher for {&mut Hasher, Box<Hasher>}
impl fmt::Debug for SplitWhitespace.
Option<T> now impls Try This allows for using ? with Option types.
Stabilized APIs
Cargo
Cargo will now build multi file examples in subdirectories of the
examples folder that have a main.rs file.
Changed [root] to [package] in Cargo.lock Packages with the old
format will continue to work and can be updated with cargo update.
Now supports vendoring git repositories
Misc
libbacktrace is now available on Apple platforms.
Stabilised the compile_fail attribute for code fences in doc-comments.
This now lets you specify that a given code example will fail to compile.
Compatibility Notes
The minimum Android version that rustc can build for has been
bumped to 4.0 from 2.3
Allowing T op= &T for numeric types has broken some type inference cases
pkgsrc changes:
- Take MAINTAINERship (or, in other words, make me blameworthy if the Python
documentation isn't synced with the respective lang/python* packages :))
Changes:
No changelog is available but it syncs py36-html-docs to current
python36 version.
pkgsrc changes:
- Take MAINTAINERship (or, in other words, make me blameworthy if the Python
documentation isn't synced with the respective lang/python* packages :))
Changes:
No changelog is available but it syncs py35-html-docs to current
python35 version.
pkgsrc changes:
- Take MAINTAINERship (or, in other words, make me blameworthy if the Python
documentation isn't synced with the respective lang/python* packages :))
Changes:
No changelog is available but it syncs py34-html-docs to current
python34 version.
pkgsrc changes:
- Take MAINTAINERship (or, in other words, make me blameworthy if the Python
documentation isn't synced with the respective lang/python* packages :))
Changes:
No changelog is available but it syncs py27-html-docs to current
python27 version.
No changes intended on other platforms, the configure script arguments
should be identical to those previously found in config.toml. Doing it
this way makes it a lot easier to have per-OS configuration.
This patch is a workaround for a perl core problem.
The patch has not been accepted upstream, and in its current form
introduces other bugs, see https://rt.perl.org/Ticket/Display.html?id=132448
Bump PKGREVISION.
crypto:
- Support building with both 1.1.0 and 1.0.2
fs:
- fs.realpathSync.native and fs.realpath.native are now exposed
process:
- expose process.ppid
While MACHINE_ARCH can be earmv6hf on NetBSD, configure has to match
what config.guess outputs, which is armv6. For now, leave the old
earmv6/7 tokens, because this code inexplicably succeeded on earmv7hf.
With this, ocaml builds and builds a working unison, on earmv6hf
(RPI3).
PHP 7.2.x builds upon 7.1.x, adding new features:
* Argument type declarations
* Object return type declarations
* Parameter Type Widening
* Trailing commas in list syntax
* Argon2 in password hash
* Libsodium as part of PHP Core
* Deprecated: __autoload, $php_errormsg, create_function(),
mbstring.func_overload, parse_str() without second argument,
gmp_random(), each(), assert(), $errcontext
* uniqid() patch to avoid usleep() integrated, 10000x improvement on NetBSD,
about 10x on Linux
This should be the last part of the renaming operation for print/cups to
print/cups-base.
Rationale: packages depending on CUPS but not relying on a functional
printing setup only need to depend on print/cups-base (equivalent to the
former print/cups). The new print/cups now depends on print/cups-base
and on print/cups-filters, thus directly providing a functional printing
setup. This bump reflects this change of dependency.
As discussed on tech-pkg@
This is with the notable exception of meta-pkgs/desktop-gnome, which I
believe implies a fully functional cups.
This is still missing revision bumps - I'll be right there (first time I
am doing this on so many packages at a time).
As discussed on tech-pkg@
assert:
- assert.fail() can now take one or two arguments
crypto:
- add sign/verify support for RSASSA-PSS
deps:
- upgrade openssl sources to 1.0.2m
- upgrade libuv to 1.15.0
fs:
- Add support for fs.write/fs.writeSync(fd, buffer, cb) and
fs.write/fs.writeSync(fd, buffer, offset, cb) as documented
inspector:
- enable --inspect-brk
process:
- add --redirect-warnings command line argument
src:
- allow CLI args in env with NODE_OPTIONS
- --abort-on-uncaught-exception in NODE_OPTIONS
- allow --tls-cipher-list in NODE_OPTIONS
- use SafeGetenv() for NODE_REDIRECT_WARNINGS
test:
- remove common.fail()
CLI:
- NODE_OPTIONS now supports the --stack-trace-limit option. #16495
deps:
- OpenSSL is upgraded to 1.0.2m #16691
http:
- A 'connect' event handler leak has been fixed. #16725
- The 103 Early Hints status code is now supported. #16644
Common logic that can be used by packages that depend on cargo crates
from crates.io. This lets existing pkgsrc infrastructure fetch and verify
cargo crates instead of using the rust package manager in the build phase.
Inspired by cargo.mk from FreeBSD ports.
- run install.sh instead of manually moving around directories
- allow user to set RUST_BOOTSTRAP_PATH (and RUST_ARCH if needed)
in mk.conf to use a locally installed bootstrap toolchain.
Includes many improvements and bugfixes (none that seem to be breaking
backwards compatibility though), see the CHANGELOG.
For packaging:
- camlp4 support removed, package now uses camlp5 exclusively
- fix for PR pkg/52651
### Notable Changes
- Async hooks: Older experimental APIs have been removed.
- Improvements have been made to `buffer` module error messages.
- Child Processes: Errors are emitted on process nextTick.
- Domains: The long-deprecated `.dispose()` method has been removed.
- fs
- The `fs.ReadStream` and `fs.WriteStream` classes now use `destroy()`.
- `fs` module callbacks are now invoked with an undefined context.
- HTTP/1
- A 400 Bad Request response will now be sent when parsing fails.
- Socket timeout will be set when the socket connects.
- A bug causing the request `'error'` event to fire twice was fixed
- HTTP clients may now use generic `Duplex` streams in addition
to `net.Socket`.
- Intl
- The deprecated `Intl.v8BreakIterator` has been removed.
- OS
- The `os.EOL` property is now read-only
- Timers
- `setTimeout()` will emit a warning if the timeout is larger that
the maximum 32-bit unsigned integer.
Changes since nodejs 8.8.1:
- doc: add Gibson Fahnestock to Release team
- deps: update npm to 5.5.1
- http2: The exposed http2 socket is no longer manipulatable
- module: support custom paths to require.resolve()
- util: util.TextEncoder and util.TextDecoder are no longer experimental.
There will no longer be a warning when they are used
Reviewed and thanks to <agc>!
Changes:
=========================
Duktape 2.1 release notes
=========================
Release overview
================
Main changes in this release (see RELEASES.rst for full details):
* Performance, footprint, and portability improvements.
* API additions for more convenient handling of optional arguments:
duk_opt_xxx() and duk_get_xxx_default().
* Allow duk_push_heapptr() for objects which have become unreachable and
are pending finalization. In such a case a duk_push_heapptr() cancels
the pending finalizer call and automatically rescues the object.
* ES2015 additions like String.prototype.{startsWith,endsWith,includes}()
and HTML comment syntax. Non-standard shebang ("#!...") comment support.
* Finalizer handling rework for reference counting and mark-and-sweep to fix
a few "side effect" bugs. Also improved torture test coverage for ensuring
side effects are handled correctly in Duktape internals.
* DUK_VERSION is now visible to duk_config.h so it's possible for duk_config.h
to support multiple Duktape versions. For example, some config options may be
disabled prior to a certain patch level.
Upgrading from Duktape 2.0
==========================
No action (other than recompiling) should be needed for most users to upgrade
from Duktape v2.0.x. Note the following:
* The Duktape thread used for finalizer calls is now always the initial thread
(heap_thread), for both reference counting and mark-and-sweep triggered
finalization. This should be taken into account in finalizer functions;
in particular, if there are multiple global environments, finalizers will
execute in the first global environment created for the heap.
Prior to 2.1 the finalizer thread could also be heap_thread but usually the
current thread would be used.
=========================
Duktape 2.0 release notes
=========================
Release overview
================
Main changes in this release (see RELEASES.rst for full details):
* New tools/configure.py frontend tool replaces genconfig.py for configuring
and preparing Duktape sources for build.
* Buffer handling has been simplified: Duktape.Buffer has been removed and is
replaced by Uint8Array, plain buffers now behave like Uint8Array objects.
Node.js Buffer behavior aligned with more recent Node.js Buffer API.
* Implement more ES2015 and ES2016 functionality, and align some ES5.1
semantics with ES2015/ES2016. Implement WHATWG Encoding API with
TextEncoder() and TextDecoder() bindings.
* Some incompatible API changes, and several API additions. API and config
changes to avoid I/O dependencies (such as printf() and fopen()) in core
Duktape code to simplify porting.
* More configuration flexibility in dropping Duktape specific functionality
from build, e.g. coroutines and finalization.
* Disabled Ecmascript bindings are no longer present (instead of being present
but throwing a TypeError).
* Built-in functionality moved to optional extras: print/alert bindings,
logging, and module loader. New optional extras include a Node.js-like
module loader and a 'console' binding.
* Bug fixes, performance and footprint improvements.
The release has API incompatible changes, see upgrading notes below.
Upgrading from Duktape 1.x
==========================
There are API incompatible changes in this release. Whenever possible the
incompatible changes cause a compilation error (or warning) so that fixing
call sites should be straightforward. Below are instructions on how to
migrate from 1.x to 2.0.0. There are also bug fixes and other minor
behavioral changes which may affect some applications, see ``RELEASES.rst``
for details.
There are backwards compatible providers for some removed/modified API calls
in ``extras/duk-v1-compat``.
Known issues
============
* Some non-compliant behavior for array indices near 2G or 4G elements.
* RegExp parser is strict and won't accept some real world RegExps which
are technically not compliant with Ecmascript E5/E5.1 specification
but allowed in ES2015 Annex B.
* Final mantissa bit rounding issues in the internal number-to-string
conversion.
=========================
Duktape 1.6 release notes
=========================
Release overview
================
Main changes in this release (see RELEASES.rst for full details):
* Add duk_suspend() and duk_resume() API calls, backported from Duktape 2.0.
Upgrading from Duktape 1.5.x
============================
No action (other than recompiling) should be needed for most users to upgrade
from Duktape v1.5.x.
Known issues
============
This release has the following known issues worth noting:
* Non-compliant behavior for array indices near 2G or 4G elements.
* RegExp parser is strict and won't accept some real world RegExps which
are technically not compliant with Ecmascript E5/E5.1 specification.
* Final mantissa bit rounding issues in the internal number-to-string
conversion.
* On FreeBSD 10.x (at least 10.1 and 10.2): Clang with ``-m32`` generates
incorrect code for union assignments needed by Duktape's 8-byte packed
value encoding (see
https://github.com/svaarala/duktape/blob/master/misc/clang_aliasing.c).
The issue can be detected by defining ``DUK_OPT_SELF_TESTS``. A workaround
is to avoid packed types in this case by defining ``DUK_OPT_NO_PACKED_TVAL``.
This release includes fixes to the compiler, linker, runtime, documentation,
go command, and the crypto/x509, database/sql, log, and net/smtp packages. It
includes a fix to a bug introduced in Go 1.9.1 that broke "go get"
of non-Git repositories under certain conditions.
The asttokens module annotates Python abstract syntax trees (ASTs) with the
positions of tokens and text in the source code that generated them.
It makes it possible for tools that work with logical AST nodes to find the
particular text that resulted in those nodes, for example for automated
refactoring or highlighting.