Changelog:
Bugfixes
* Fixed "dbQuote additional escape regression" (#15560)
* Fixed "[ARC] Finalizer with a do notation proc crashes the compiler" (#
15599)
* Fixed "./koch drnim: git checkout ... fails (invalid git hash)" (#15639)
* Fixed "Testament does not check memory leaks with Valgrind" (#15631)
* Fixed "Templates can't be made discardable" (#13609)
* Fixed "Taking a view of var openArray[T] generates broken C" (#15652)
* Fixed "Regression: parsecsv from newGZFileStream" (#12410)
* Fixed "NimVM generic procs that take anonymous tuples gives nil access
error." (#15662)
* Fixed "net.$ is not printing a zero group smaller than the compressed
group" (#15698)
* Fixed "map, mapIt, filter cause a segfault at compile time in a static
block when passed an inline function" (#15363)
* Fixed "const Table losing object variant data at runtime" (#8007)
* Fixed "regression(1.0.2 => 1.0.4) VM register messed up depending on
unrelated context" (#15704)
* Fixed "VM: nil procvar treated as not nil in VM, causing FieldDefect and
further errors" (#15595)
* Fixed "ICE with sequtils + algorithm (mapIt, sortedByIt) + json " (#10456
)
* Fixed "Size of packed enum of byte is 2 byte; if highest value is 0xFF but
should be 1" (#15752)
* Fixed "OrderedTable.== throws error on empty table: unhandled exception:
index out of bounds..." (#15750)
* Fixed "strictFunc: system & is considered to have side effects under arc
mode" (#15756)
* Fixed "JSON parsing fails for integer values greater than BiggestInt.max
" (#15413)
* Fixed "yet another cmpIgnoreStyle bug" (#7686)
* Fixed "1 mod 0 gives NaN with JS backend" (#7127)
* Fixed "Discarding a dom.Node raises a javascript error" (#15638)
* Fixed "Regression: overriding streams.write(T) does not work on 0.19
anymore" (#9091)
* Fixed "Converter is applied to the first parameter of operator instead of
last" (#9165)
* Fixed "Recursion using concepts crashes compiler" (#8012)
* Fixed "Union types in javascript" (#7658)
* Fixed "Ambiguous call error when it's not" (#7416)
* Fixed "Codegen does not like shadowed parameter" (#7374)
* Fixed "incomplete code generation when using a compile time variable at
run time (undeclared identifier)" (#6036)
* Fixed "Compiler doesn't warn when using {.global.} and {.threadvar.} on
JS backend despite it not working" (#11625)
* Fixed "Discarding output with nested for/if statements" (#14227)
* Fixed "regression: docgen drops enum doc comments" (#15702)
* Fixed "regression(1.0): codegen error with locals" (#12682)
* Fixed "[JS] $ on an enum in an if expression causes bad codegen" (#15651)
* Fixed "Error upon conditional declaration inside a template" (#3670)
* Fixed "Compiler crash when a value in enum is converted to the enum itself
" (#15145)
* Fixed "[AssertionDefect] json.to(type) on object with Option[ref object]
field" (#15815)
* Fixed "Crash with const tuple unpacking" (#15717)
* Fixed "JS codegen can produce extreme switch statements with case a of
range" (#8821)
* Fixed "cannot capture result, produces unhelpful eror" (#15594)
* Fixed "Code that work in 1.2.6, but not 1.4.0" (#15804)
* Fixed "C-backend link failure for let with {.global, compileTime.} pragma
" (#12640)
* Fixed "json.to crashes (SIGSEGV) when object attribute is a JsonNode and
the key is not there" (#15835)
* Fixed "Cannot use custom pragmas in ref object" (#8457)
* Fixed "GC_ref on empty string fails with [GCASSERT] incRef: interiorPtr"
(#10307)
* Fixed "VM segmentation faults with swap" (#15463)
* Fixed "$(s: WideCString) changes result to repr on -gc:arc" (#15663)
* Fixed "unittest.check rejects with a type error, code that Nim otherwise
accepts" (#15618)
* Fixed "Type mismatch on init of static[T] object with T being a static[U]
" (#11142)
* Fixed "sizeof array with static N crash in type section" (#12636)
* Fixed "-gc:arc segfaults when returning result from a proc" (#15609)
* Fixed "Error: 'newHttpHeaders' can have side effects" (#15851)
* Fixed "template that overloads [] accessor does not compile" (#8829)
* Fixed "Simple type definition crash" (#12897)
* Fixed "mapIt from sequtils not working in {.push compile_time.} context"
(#12558)
* Fixed "-gc:arc/orc Error: unhandled exception: 'sym' is not accessible
using discriminant 'kind' of type 'TNode' [FieldDefect]" (#15707)
* Fixed "incorrect type inference with static: Error: ordinal type expected
" (#15858)
* Fixed "constructor causes SIGBUS if a destroy is defined" (#14601)
* Fixed "internal error: getTypeDescAux(tyOr) on sink UnionType argument" (
#15825)
* Fixed "Console apps in Windows can rise OSError" (#15874)
* Fixed "nim doc cannot grok IOSelectorsException" (#12471)
* Fixed "Method dispatch silently breaks on non-ref objects" (#4318)
* Fixed "Cannot take the compile-time sizeof Atomic types" (#12726)
* Fixed "Setting subscript index of cstring is allowed and generates bad
code" (#14157)
* Fixed "Compiler crash using if as an expression with a noreturn branch" (
#15909)
* Fixed "docgen fatal: result[0].kind == nkSym [AssertionDefect]" (#15916)
* Fixed "Iterator for sharedlist won't iterate all items." (#15941)
* Fixed "Embedded templates with iterators fails to compile" (#2771)
* Fixed "C++ Atomics in union: ::::::field with constructor not allowed in
anonymous aggregate" ([#13062](https://github.com/nim-lang/Nim/issues/
13062))
* Fixed "memory corruption in tmarshall.nim" (#9754)
* Fixed "JS backend doesn't handle float->int type conversion " (#8404)
* Fixed "The "try except" not work when the "OSError: Too many open files
" error occurs!" (#15925)
* Fixed "lent gives wrong results with -d:release" (#14578)
* Fixed "backticks : Using reserved keywords as identifiers is not
documented" (#15806)
* Fixed "backticks : Using reserved keywords as identifiers is not
documented" (#15806)
* Fixed "backticks : Using reserved keywords as identifiers is not
documented" (#15806)
* Fixed "backticks : Using reserved keywords as identifiers is not
documented" (#15806)
* Fixed "Program SIGSEGV when using '-gc:orc'" (#15753)
* Fixed "Assignment to Option[T] doesn't call destructor on existing
contained value" (#15910)
* Fixed "In for loop _ is accessible" (#15972)
* Fixed "Pragma codegenDecl doesn't work inside iterators" (#6497)
* Fixed "nim js --gc:arc gives bad error: undeclared identifier: '+!'" (#
16033)
* Fixed "create a new function definitions got Internal error: environment
misses:" (#14847)
* Fixed "Nim emits #line 0 C preprocessor directives with -debugger:native,
with ICE in gcc-10" (#15942)
* Fixed "Serializing and deserializing a proc SIGSEV's" (#16022)
* Fixed "Small tutorial error" (#16047)
* Fixed "lent codegen error for c++ (works with c,js,vm)" (#15958)
* Fixed "sink var/var sink both accepted; sink var leads to bad codegen and
strange behavior" (#15671)
* Fixed "tfuturevar fails when activated" (#9695)
* Fixed "db_sqlite: Error: undeclared field: 'untypedLen'" (#16080)
* Fixed "xmlparser removes significant white space" (#14056)
* Fixed "nre.escapeRe is not gcsafe" (#16103)
* Fixed "macros.getImpl still return incorrect AST for Sym "XXX:ObjectType
"" (#16110)
* Fixed ""Error: internal error: genRecordFieldAux" - in the "version-1-4
" branch" (#16069)
* Fixed "Tracking memory leaks under ORC (mostly with async)" (#15076)
* Fixed "Const seq into sink arg: =copy operator not found" (#16120)
* Fixed "Copying of a sink parameter into a variable not allowed" (#16119)
* Fixed "Memleak in AsyncHttpServer with arc/orc" (#16154)
Like the other test, because /dev/shm isn't available in the build
environment doesn't mean it won't be available on the destination
machine for the packages.
This attempts to build and run a program that uses POSIX semaphores.
This fails in a pbulk sandbox that doesn't contain /dev/shm, resulting
in a broken package where the idea that the platform doesn't support
POSIX semaphores is baked in forever. In newer Python versions,
this means Python doesn't even build properly.
XXX: We might want to avoid it on other platforms too...
3.7 is currently in security fixes only mode, but 3.8 will
continue to recieve a few more months of normal bug fixes.
This should give us time to prep the tree for 3.9 (a few packages
are not happy with 3.9 yet).
3.8 might be more problematic than 3.7 for Linuxes using older compilers
where shm_open isn't detected probably (however this problem doesn't
seem to be entirely absent in 3.7, as shown by certain packages like
mozjs*?). According to the CentOS 7 folks on tech-pkg this should be
possible to work around by using a newer compiler.
0.9.1
Added
- Functions to convert positions from and to utf-16 code units
- Type definitions for `ClientInfo` and `HoverParams`
Changed
- Exit server normally when `ctrl+c` is pressed in command shell.
- Mark deprecated `rangeLength` optional in `TextDocumentContentChangeEvent`
- Optimize json-rpc message serialization
- Fix `__init__()` constructors in several interface types
- Fix valueSet type in `SymbolKindAbstract`
Fixed
- `coroutine` deprecation warning - use async def instead
On NetBSD 8.x, there will be issues with shared library
support, due to missing support for ADDR16_LO, ADDR16_HI
and ADDR16_HA relocations, available in newer code.
There are however other issues, text relocations, and
apparent missing REL24 relocation support(?!?).
The testyield.ml test appears to not terminate, only two
of the 4(?) threads ever get any CPU time, so has to be killed
to complete the selftests. Test result:
2438 tests passed
36 tests skipped
12 tests failed
108 tests not started (parent test skipped or failed)
8 unexpected errors
2602 tests considered
This is for the benefit of NetBSD/powerpc, where we now depends on
the recently added libatomic-links package which leaves symlinks to
the libatomic library files in that directory. This is so that we
don't automatically pick up other libraries behind the compiler users
back.
Also, match the newly uploaded NetBSD/macppc 9.0 bootstrap (regenerated
with this patch applied to 1.46.0).
No pkgrevision bump, since this is a build fix for NetBSD/powerpc.
Release overview
================
Main changes in this release (see RELEASES.rst for full details):
* Various fixes and portability improvements.
Upgrading from Duktape 2.5
==========================
No action (other than recompiling) should be needed for most users to upgrade
from Duktape v2.5.x.
As with earlier versions, this expects 64-bit atomic operations.
Separately, there's an issue with an assertion in test code that makes
an assumption about the size of an index variable vs. size_t that
doesn't hold.
Test suite comparisons between resultant amd64 and i386 builds on
recent NetBSD releases reveal a similar number of failures (18 vs. 20),
mostly to do with date parsing, though i386 also fails with two IEEE
754 double precision tests.
I did look at carrying mozjs60 patches for NetBSD/powerpc forward, but
I don't have a viable test environment at the moment, and code
inspection suggests that may not be straightforward.
Vala 0.50.2
===========
* Various improvements and bug fixes:
- codegen:
+ More use of delegate_target_type and delegate_target_destroy_type
+ Reduce get_delegate_target/get_delegate_target_destroy_notify calls
+ Don't use inferred type for temp-value to access generic property [#1088]
+ Update outdated array _size_ variable of captured local-variable [#1090]
+ Report internal error for unsupported collection type in foreach
- vala:
+ Issue an error on void initializer for local-variable
+ Allow markup-reader to accept spaces around '=' of attribute assignment
+ CodeNode.source_reference is optional, so let the API respect that
+ Use DataType.compatible() to check for string concatenation [#1100]
- valadoc: Don't call CodeContext.pop() on empty stack [#1064]
- libvaladoc: Don't filter-out generic type-parameters of delegates
- libvaladoc/girimporter: Skip "docsection" elements in <namespace>
- testrunner: Add "-Werror=return-local-addr" flag
- manual: Update from wiki.gnome.org
* Bindings:
- alsa: Fix PcmDevice.set_poll_descriptors_revents() binding [#1092]
- curses: Add Terminfo API set, function keycodes F(n) and minor changes
- curses: Correctly use [PrintfFormat] attribute
- glib-2.0: Fix return-type of Uri.parse_params() binding
- glib-2.0: Add return codes to FileStream.putc/puts(), like posix
- glib-2.0: Add GenericArray.find_custom(), variant of find_with_equal_func()
- glib-2.0: Improve GenericArray.length property
- gio-2.0: Fix binding of Resolver.lookup_service*()
- gstreamer: Update from 1.19.0+ git master
- gtk4: Attribute Gsk.ShaderArgsBuilder.free_to_args with DestroysInstance
- gtk4: Update to 3.99.4+7551f85d [#1089]
- linux: Add missing struct in cname for Spi.IocTransfer
- posix: Declare fstat, stat, lstat and fstatat as public [#1086]
- posix: Add freopen binding, as FILE.reopen()
- rest-0.7: Fix ParamsIter.next() binding
- vapi: Update GIR-based bindings
execline is a (non-interactive) scripting language, like sh, but its syntax
is quite different from a traditional shell syntax. The execlineb program
is meant to be used as an interpreter for a text file; the other commands
are essentially useful inside an execlineb script.
I happen to have include/gts.h installed, which includes an accented
ISO-8859-1 character in its copyright message. This trips up the configuration
of Python in pkgsrc.
Ignore files with invalid unicode characters.
Also regenerate one other patch. No revision bump since the result is the same.
Elixir
[Code] Do not crash when getting docs for missing erts appdir
[Kernel] Raise meaningful error if :erlang.is_record is used in guards
[Kernel] Prune tracers when fetching __ENV__ inside functions
Mix
[mix] Fix regression where aliases could not call themselves recursively
[mix compile] Do not discard tracers that are set programmatically
(Apple Silicon being their aarch64 platform.)
This is backport of the same in lang/python39 and lang/python38. Some
parts weren't applicable in 3.7. The setup.py script needed some work
on the ffi code. Otherwise, minor changes.
Patches consist of:
- Upstream work: https://github.com/python/cpython/pull/22855
- Fix for setup.py to find libbz2.tbd and libz.tbd now that with the
shared library cache there's nothing in /usr/lib.
See: https://bugs.python.org/issue41116
- Addition of __arch64__ case to fix _decimal module. A very similar fix
has since been committed upstream.
(Apple Silicon being their aarch64 platform.)
This is backport of the same in lang/python39. Only minor changes were
needed.
Patches consist of:
- Upstream work: https://github.com/python/cpython/pull/22855
- Fix for setup.py to find libbz2.tbd and libz.tbd now that with the
shared library cache there's nothing in /usr/lib.
See: https://bugs.python.org/issue41116
- Addition of __arch64__ case to fix _decimal module. A very similar fix
has since been committed upstream.
Version 12.19.1 'Erbium' (LTS)
Notable changes
This is a security release.
Vulnerabilities fixed:
CVE-2020-8277: Denial of Service through DNS request (High). A Node.js application that allows an attacker to trigger a DNS request for a host of their choice could trigger a Denial of Service by getting the application to resolve a DNS record with a larger number of responses.
Version 14.15.1 'Fermium' (LTS)
Notable changes
This is a security release.
Vulnerabilities fixed:
CVE-2020-8277: Denial of Service through DNS request (High). A Node.js application that allows an attacker to trigger a DNS request for a host of their choice could trigger a Denial of Service by getting the application to resolve a DNS record with a larger number of responses.