Full release notes at https://golang.org/doc/go1.10.
The latest Go release, version 1.10, arrives six months after Go 1.9. Most of
its changes are in the implementation of the toolchain, runtime, and libraries.
As always, the release maintains the Go 1 promise of compatibility. We expect
almost all Go programs to continue to compile and run as before.
This release improves caching of built packages, adds caching of successful
test results, runs vet automatically during tests, and permits passing string
values directly between Go and C using cgo. A new compiler option whitelist may
cause unexpected invalid flag errors in code that built successfully with older
releases.
As announced in the Go 1.9 release notes, Go 1.10 now requires FreeBSD 10.3 or
later; support for FreeBSD 9.3 has been removed.
Go now runs on NetBSD again but requires the unreleased NetBSD 8. Only GOARCH
amd64 and 386 have been fixed. The arm port is still broken.
On 32-bit MIPS systems, the new environment variable settings GOMIPS=hardfloat
(the default) and GOMIPS=softfloat select whether to use hardware instructions
or software emulation for floating-point computations.
Go 1.10 is the last release that will run on OpenBSD 6.0. Go 1.11 will require
OpenBSD 6.2.
Go 1.10 is the last release that will run on OS X 10.8 Mountain Lion or OS X
10.9 Mavericks. Go 1.11 will require OS X 10.10 Yosemite or later.
Go 1.10 is the last release that will run on Windows XP or Windows Vista. Go
1.11 will require Windows 7 or later.
Changelog:
Do not abort when unwinding through FFI (this reverts behavior added
in 1.24.0)
Emit UTF-16 files for linker arguments on Windows
Make the error index generator work again
Cargo will warn on Windows 7 if an update is needed.
- libuv: Updated to libuv 1.19.2
- src: Add initial support for Node.js-specific post-mortem
metadata
- timers: The return value of setImmediate() now has ref() and
unref() methods
- util: It is now possible to get the name for a numerical
platform-specific error code as a string
1. Enhancements
Mix
- [mix compile.erlang] Teach Mix erlang compiler alternative spelling
for -behavior declaration
- [mix format] Support the :subdirectories configuration that points
to other directories with their own .formatter.exs file. This is
useful in umbrella applications. mix new --umbrella has also been
changed to use this new configuration by default
- [mix format] Include the current environment for missing dependency
errors
2. Bug fixes
Elixir
- [Code.Formatter] Ensure -> does not exceed line length
- [DynamicSupervisor] Properly tag error reports generated by dynamic
supervisors so they can be properly translated by Logger
- [DynamicSupervisor] Consider extra arguments during child restart
- [Kernel] Ensure arguments given to a guard defined with defguard are
evaluated in the correct order
- [Module] Do not remove docs for previous function declaration when
@impl true is used
- [Supervisor] Ensure use Supervisor properly adds the @behaviour
Supervisor annotation
Mix
- [Mix.Shell] Bring back Mix.Shell.cmd/2 - this arity was defined via
a default argument that was accidentally removed
Vala 0.38.8
===========
* Various bug fixes:
- Fix GDestroyNotify of delegate parameters in delegate declaration [#639059]
- Avoid critical when connecting dynamic signals
- compiler: Prefix headers for set_cheader_override() if includedir is given
[#793299]
- Don't warn about unused internal methods which are meant to be visible
on DBus [#593902]
- libvaladoc: Prevent WITH_CGRAPH conditional having an impact on generated
sources
* Bindings:
- gio-2.0: Cherry-pick some DBusProxy fixes from 0.40
- gstreamer-1.0: Update from 1.13+ git master
- gdk-3.0,gtk+-3.0: Update to 3.22.27
- NetBSD current has OpenSSL-1.1 and this requires at least 7.1 to compile.
- http://php.net/supported-versions.php: 7.2 was released 2 months ago and
is too fresh.
nodejs 9.6.1
events:
- events.usingDomains being set to false by default was removed in
9.6.0 which was a change in behavior compares to 9.5.0. This
behavior change has been reverted and the events object now has
usingDomains preset to false, which is the behavior in 9.x prior
to 9.6.0
nodejs 9.6.0
async_hooks:
- deprecate unsafe emit{Before,After}
- rename PromiseWrap.parentId to PromiseWrap.isChainedPromise
deps:
- update node-inspect to 1.11.3
- ICU 60.2 bump
- Introduce ScriptOrModule and HostDefinedOptions to V8
http:
- add options to http.createServer() for IncomingMessage and
ServerReponse
http2:
- add http fallback options to .createServer
https:
- Adds the remaining options from tls.createSecureContext() to the
string generated by Agent#getName(). This allows https.request() to
accept the options and generate unique sockets appropriately.
inspector:
- --inspect-brk for es modules
lib:
- allow process kill by signal number
module:
- enable dynamic import
- dynamic import is now supported
n-api:
- add methods to open/close callback scope
src:
- allow --perf-(basic-)?prof in NODE_OPTIONS
vm:
- add support for es modules
0.14.0
Removals
* Python 3.3 is no longer supported
* def is gone; use setv instead
* apply is gone; use the new #* and #** syntax instead
* yield-from is no longer supported under Python 2
* Periods are no longer allowed in keywords
* Numeric literals can no longer begin with a comma or underscore
* Literal Inf\s and NaN\s must now be capitalized like that
Other Breaking Changes
* Single-character "sharp macros" are now "tag macros", which can have
longer names
* xi from hy.extra.anaphoric is now a tag macro #%
* eval is now a function instead of a special form
New Features
* The compiler now automatically promotes values to Hy model objects
as necessary, so you can write (eval (+ 1 ~n)) instead of
(eval (+ 1 ~(HyInteger n)))
* return has been implemented as a special form
* Added a form of string literal called "bracket strings" delimited by
#[FOO[ and ]FOO], where FOO is customizable
* Added support for PEP 492 (async and await) with fn/a, defn/a,
with/a, and for/a
* Added Python-style unpacking operators #* and #** (e.g.,
(f #* args #** kwargs))
* Added a macro comment
* Added EDN #_ syntax to discard the next term
* while loops may now contain an else clause, like for loops
* #% works on any expression and has a new &kwargs parameter %**
* Added a macro doc and a tag macro #doc
* get is available as a function
* ~@ (unquote-splice) form now accepts any false value as empty
Bug Fixes
* Relative imports (PEP 328) are now allowed
* Numeric literals are no longer parsed as symbols when followed by a dot
and a symbol
* Hy now respects the environment variable PYTHONDONTWRITEBYTECODE
* String literals should no longer be interpreted as special forms or macros
* Tag macros (née sharp macros) whose names begin with ! are no longer
mistaken for shebang lines
* Fixed a bug where REPL history wasn't saved if you quit the REPL with
(quit) or (exit)
* exec now works under Python 2
* No TypeError from multi-arity defn returning values evaluating to None
* try forms are now possible in defmacro and deftag
* Multiple expressions are now allowed in try
* Fixed a crash when macroexpand\ing a macro with a named import
* Fixed a crash when with suppresses an exception. with now returns
None in this case.
* Fixed a crash when --repl-output-fn raises an exception
* Fixed a crash when HyTypeError was raised with objects that had no
source position
* assoc now evaluates its arguments only once each
* Multiple expressions are now allowed in the else clause of
a for loop
* else clauses in for and while are recognized more reliably
* Statements in the condition of a while loop are repeated properly
* Argument destructuring no longer interferes with function docstrings
* Nullary yield-from is now a syntax error
* break and continue now raise an error when given arguments
instead of silently ignoring them
Misc. Improvements
* read, read_str, and eval are exposed and documented as top-level
functions in the hy module
* An experimental let macro has been added to hy.contrib.walk
* Disable SunOS support for a while
Changelog:
Version 1.24.0 (2018-02-15)
Language
External sysv64 ffi is now available. eg. extern "sysv64" fn foo () {}
Compiler
rustc now uses 16 codegen units by default for release builds. For
the fastest builds, utilize codegen-units=1.
Added armv4t-unknown-linux-gnueabi target.
Add aarch64-unknown-openbsd support
Libraries
str::find::<char> now uses memchr. This should lead to a 10x improvement
in performance in the majority of cases.
OsStr's Debug implementation is now lossless and consistent with Windows.
time::{SystemTime, Instant} now implement Hash.
impl From<bool> for AtomicBool
impl From<{CString, &CStr}> for {Arc<CStr>, Rc<CStr>}
impl From<{OsString, &OsStr}> for {Arc<OsStr>, Rc<OsStr>}
impl From<{PathBuf, &Path}> for {Arc<Path>, Rc<Path>}
float::from_bits now just uses transmute. This provides some optimisations
from LLVM.
Copied AsciiExt methods onto char
Remove T: Sized requirement on ptr::is_null()
impl From<RecvError> for {TryRecvError, RecvTimeoutError}
Optimised f32::{min, max} to generate more efficent x86 assembly
[u8]::contains now uses memchr which provides a 3x speed improvement
Stabilized APIs
RefCell::replace
RefCell::swap
atomic::spin_loop_hint
The following functions can now be used in a constant expression.
eg. let buffer: [u8; size_of::<usize>()];, static COUNTER: AtomicUsize =
AtomicUsize::new(1);
AtomicBool::new
AtomicUsize::new
AtomicIsize::new
AtomicPtr::new
Cell::new
{integer}::min_value
{integer}::max_value
mem::size_of
mem::align_of
ptr::null
ptr::null_mut
RefCell::new
UnsafeCell::new
Cargo
Added a workspace.default-members config that overrides implied --all
in virtual workspaces.
Enable incremental by default on development builds. Also added
configuration keys to Cargo.toml and .cargo/config to disable on
a per-project or global basis respectively.
Misc
Compatibility Notes
Floating point types Debug impl now always prints a decimal point.
Ipv6Addr now rejects superfluous ::'s in IPv6 addresses This is in
accordance with IETF RFC 4291 Sec. 2.2.
Unwinding will no longer go past FFI boundaries, and will instead abort.
Formatter::flags method is now deprecated. The sign_plus, sign_minus,
alternate, and sign_aware_zero_pad should be used instead.
Leading zeros in tuple struct members is now an error
column!() macro is one-based instead of zero-based
fmt::Arguments can no longer be shared across threads
Access to #[repr(packed)] struct fields is now unsafe
Cargo sets a different working directory for the compiler
Vala 0.38.7
===========
* Regression fix:
- codegen: Don't try to infer error argument on async begin methods [#793158]
This was a regression introduced by [#614294]
Vala 0.38.6
===========
* Various bug fixes:
- girparser:
+ Set NoAccessorMethod for non-readable and construct-only properties
+ Ignore conflicting closure/destroy indexes
+ Don't accept methods as property-accessor which throw errors [#792998]
- codegen:
+ Infer error parameter from abstract/virtual base methods [#614294]
+ Fix return-type for cancelled async creation methods of classes [#792942]
- vala: Variadic constructors without a real first parameter are not allowed
- libvaladoc: Keep bootstrap-support with valac >= 0.16.1
* Bindings:
- gstreamer-1.0: Update from 1.13+ git master
- gtk+-4.0: Only override type of "event" parameters
Vala 0.38.5
===========
* Various improvements and bug fixes:
- codegen
+ Only add property-enum and GParamSpec-array for GObject classes
+ Add destroy param when invoking delegate returned by delegate [#792077]
- vala: Add pkgdatadir and pkglibdir to pkg-config file
- gidlparser: Update type qualifiers
- libvaladoc: Allow @link tags to be split over multiple lines [#646982]
- libvaladoc: Add support for single line documentation comments [#736483]
- vala: Fix parameter type inference of overridden async methods [#792660]
- codewriter: Don't use string.replace() to apply header_to_override [#731322]
* Bindings:
- glib-2.0: Add GLib.OPTION_REMAINING and GLib.OptionFlags.NONE
- gstreamer-1.0: Update from 1.13+ git master
- gtk+-2.0: Mark MessageDialog constructor parameter, message_format, as
nullable [#791570]
- gtk+-2.0/3.0: Don't hide user_data in Clipboard.set_with_data() [#792237]
- gtk+-3.0: Update to 3.22.26+6f26d0dc
- gtk+-4.0: Update to 3.93.0 and split Gsk.RenderNode into several classes
- libwnck-3.0: Update to 3.24.1
- posix: Add ctime(3) and fix binding of struct hostent and gethostbyname(3)
- webkit2gtk-4.0: Update to 2.19.5
- webkit2gtk-web-extension-4.0: Fix DOM.EventTarget interface
Version 5.1.1:
Correct code used to identify the directory in which the library and its zip file are located.
Ensure that the pythoncom and pywintypes DLLs are found in the lib directory, not in the base directory.
Copy dependent files to the same directory as the file it depends on, not the root directory; also add a sample for PyQt5 to demonstrate its correct use.
Version 5.1:
Use fixed library location on all platforms; should correct the error “no module named __startup__”.
Correct sqlite3 hook for use in Python 2.7.
Correct usage of scipy.lib.
Correct handling of __path__ attribute in module.
Fix gevent bug 42.
Droppped support for Python 3.4.
the patch predates php56, doesn't seem to be necessary when building
with apache22, and we want to reduce diffs against upstream; maybe
that part was needed with distant past with apache 1.3 or whatnot,
but that is not in pkgsrc any more
By using the clang or gcc plugin mechanism, it was possible for an attacker to
trick the “go get” command into executing arbitrary code. The go command now
restricts the set of allowed host compiler and linker arguments in cgo source
files to a list of allowed flags, in particular disallowing -fplugin= and
-plugin=.
The issue is CVE-2018-6574 and Go issue golang.org/issue/23672. See the Go
issue for details.
Thanks to Christopher Brown of Mattermost for reporting this problem.
This was added 8 years ago intending to ensure pkgsrc libtool was used, except
it actually did the opposite. By default we will try to replace any script
named "libtool" up to the override depth. Setting LIBTOOL_OVERRIDE changes
the behaviour to instead override the list of filenames specified by the
LIBTOOL_OVERRIDE variable. Thus we were trying to replace any file named
"YES" instead of "libtool".
Noticed by SmartOS/clang builds of php-intl which were using the supplied
broken libtool script instead of the correct pkgsrc one.