changes in sbcl-1.2.13 relative to sbcl-1.2.12:
* incompatible change: on success, TRY-SEMAPHORE and WAIT-ON-SEMAPHORE
return the new count
* enhancement: WAIT-ON-SEMAPHORE accepts a decrement parameter
* enhancement: JOIN-THREAD allows distinguishing timeout vs. abort in all
situations
* enhancement: On Windows DBG_PRINTEXCEPTION_C is handled and its message is
printed. (lp#1437947)
* bug-fix: TRUENAME works properly on broken symlinks presented as
directories. (lp#1458164)
* bug fix: Inlined DPB and DEPOSIT-FIELD don't interfere with left-to-right
order of argument evaluation. (lp#1458190)
* bug fix: (SETF (LDB (BYTE 1 2 JUNK) X) 0) is rightly rejected.
* bug fix: DEFSETF lambda lists should not permit argument destructuring.
* bug fix: calls to (SETF SLOT-VALUE) on a missing slot would in certain
situations incorrectly return the result of a SLOT-MISSING method
instead of always returning the new value. (lp#1460381)
* bug fix: a DEFMACRO occurring not at toplevel and capturing parts of
its lexical environment (thus being a closure) caused expressions
involving the macro name to cause corruption in the pretty-printer
due to faulty introspection of the lambda list of a closure.
* bug fix: out of line MAP/MAP-INTO check that the results produced by the
function are of the matching sequence type. (lp#1459581)
* bug fix: pretty-printing of '(LET `((,X ,Y)) :B) is handled correctly.
only skip them in file checking but actively delete them at the end of the
install.
Fixes some OSX fallout that jperkin@ was seeing, plus PR pkg/49071.
2015.07.03, Version 0.12.6 (Stable)
* V8: fix out-of-band write in utf8 decoder
This is an important security update as this bug can be used to cause
a denial of service attack.
[4.9 Regression] select case with strings and -fgcse -O
[4.9 Regression] Executes wrong function inside an anonymous namespace on runtime
[4.9 Regression] Predictive commoning after loop vectorization produces incorrect code.
[4.9/5 Regression] wrong code (segfaults) at -Os on x86_64-linux-gnu
[4.9.2/5 Regression] Bootstrap broken on powerpc-apple-darwin, cc1: internal compiler error: in init_reg_sets
[4.9 Regression] FAIL: gcc.dg/ipa/pr63551.c (test for excess errors)
[4.9 Regression] internal compiler error: Max. number of generated reload insns per insn is achieved (90)
[4.9/5 Regression] ERROR: can't read additional_sources: no such variable
[4.9/5 Regression] Thumb1 ICE caused by no register to spill
[4.9 Regression] GCC 4.9.2 bootstrap fails on ARM, haifa-sched.c:6507:1: internal compiler error: in lra_create
[4.9 Regression] FAIL: gcc.target/powerpc/pr53199.c scan-assembler-times *
[4.9 Regression] ICE on invalid code on x86_64-linux-gnu: tree check: expected class ‘type’, have ‘exceptional’ (error_mark) in create_tmp_from_val, at gimplify.c:491
[4.9 Regression]: Unaligned access with -O3 -mtune=k8
[4.8/4.9 Regression] Introducing an unrelated template parameter causes compilation to fail
[4.9 Regression] const int (&in)[]{1,2,3,4,5}; results in internal compiler error: Segmentation fault
[4.9/5 Regression] ICE with -frepo
[4.9/5/6 Regression] NSDMI calling constexpr constructor with pointer-to-member is not a constant expression
bootstrap failure on x32
[4.9 Regression] -O2 miscompiles with -mtune=nehalem or corei7
[4.9 Regression] Wrong results with loop vectorization of: "var[i] = ABS_EXPR<var2[i]> > 9.9e-7"
[4.9 Regression] ICE with LTO on valid code on x86_64-linux-gnu in verify_ssa (in 64-bit mode)
[4.9/5 Regression] ssa corruption when compiled with -O3
[4.9 Regression] Incorrect warning "array subscript is above array bounds"
[4.9 regression] ICE with lto related to variably modified type
[4.8 Regression] Missed vectorization with bdver1
[4.9 Regression] ICE: in extract_constrain_insn_cached, at recog.c:2117 with -flive-range-shrinkage -mdispatch-scheduler -march=bdver4
[4.9/5 regression] libsanitizer fails to build with old glibc
[4.9/5 Regression] undefined label in jump_table_data
[4.9 Regression] ICE on valid code at -O3 on x86_64-linux-gnu in vectorizable_reduction, at tree-vect-loop.c:4913
[4.9 regression] FAIL: gcc.dg/vect/costmodel/ppc/costmodel-bb-slp-9a.c scan-tree-dump-times slp2" basic block vectorized using SLP" 1
[4.9 regression] -Wunused-variable: warning supressed by virtual dtor
[4.9 Regression] Using class reference as template parameter causes compilation to fail
[4.9 Regression] gcc-4_9 inlines less funcs than gcc-4_8 because of used_as_abstract_origin flag
[4.9/5 Regression] ICE: in update_visibility_by_resolution_info, at ipa-visibility.c:427
[4.9/5 Regression] ICE: : in rs6000_delegitimize_address, at config/rs6000/rs6000.c:7051
[4.9/5 Regression] SIGBUS in gen_group_rtx compiling 64-bit gcc.dg/vect/vect-singleton_1.c
AddressSanitizer reports *-buffer-overflow in destructor when multiple virtual inheritance is used
ICE in verify_gimple_assign_single
[4.9 Regression] CSE on x86 asm()-s no longer working due to PR/60663 fix
[4.8 Regression] ICE at -O1 and above with -g enabled on x86_64-linux-gnu
[4.9/5 Regression] ICE at omp lowering
[5 Regression] ICE with lambda in default argument of template function
[4.9/5.0 Regression][c++11] ICE on variadic alias template with wrappers
[4.9/5 Regression] Error in template instantiation in GCC 4.9, works fine in GCC 4.8
[4.9/5/6 Regression] Bogus linkage errors for member class of anonymous class
[4.9/5/6 Regression] Default move assignment does not move array members
Simplifying vec_select of vec_concat miscompiles when first element of vec_concat is const_int
ICE in tree_to_uhwi, at tree.h:3668
std::this_thread::sleep_until can cause inifinite sleep
[4.9/5 Regression] std::uninitialized_copy tests assignability the wrong way, resulting in performance pessimization
-fsanitize=nonnull-attribute errors in stl_algobase.h
[UBSAN] stl_algobase.h:708:7: runtime error: null pointer passed as argument
[4.9 regression] Octave -O3 build: internal compiler error: in prepare_cmp_insn, at optabs.c:4237
[4.8 Regression] Vectorization fails because of CLOBBER statements
[4.8 Regression] Element swizzling produces invalid result with -O3
[4.8 Regression] inefficient FDO instrumentation code
[4.9 Regression] Incorrect calculation when assigning to array with -O3
[4.9 Regression] ICE: Segmentation fault with -g -flto
[4.8 Regression] wrong code at -O3 on x86_64-linux-gnu
Postreload CSE propagates aliased memory operand
Scheduler performs Invalid move of aliased memory reference
Gcc on Alpha: Error: No lda !gpdisp!282 was found
avx512fintrin.h:5344:1: internal compiler error: in curr_insn_transform, at lra-constraints.c:3494
ICE: in extract_insn, at recog.c:2341 (unrecognizable insn) with -mmemcpy-strategy=rep_8byte👎noalign -m32 -mtune=btver2
gnatmake doesn't report the options it actually provides to ranlib
[4.8 Regression] Const overloads resolution failure
[4.9/5 Regression] powerpc fp-bit ices at dwf_regno
Merging function DECLs discards leaf attribute which causes cfg verifier to fail
[4.9/5 Regression] Erroneous warning about taking address of register with std=c++1y
[4.9/5 Regression] ICE: verify_flow_info failed: control flow in the middle of basic block with -fprofile-generate
Missing intrinsic functions in avx512intrin.h
[4.9 Regression] array subscript is above array bounds [-Werror=array-bounds]
ICE when non-variadic template template parameter is default argument of variadic template template parameter
[4.9 Regression] Constexpr variables can trigger spurious compiler warnings
ASan reported heap-buffer-overflow in gcc.target/i386/avx256-unaligned-load{store}-7.c
ICE in GCC powerpc64le top of trunk with -mupper-regs-df
[X86_64] With -mcmodel=medium .lrodata accesses do not use 64-bit addresses
[4.9 Regression] internal compiler error: in asan_expand_check_ifn (with -fsanitize=address)
[4.9/5 Regression] [SH] Miscompilation of boolean negation on SH4 using -O2
conflicting definitions in parallel/algo.h and algorithmfwd.h
ICE: SIGSEGV in decide_alg() with -mmemset-strategy=libcall👎align -minline-all-stringops
[4.9 Regression] bootstrap error: segv in c parser
ICE: in decide_alg, at config/i386/i386.c:24510 with -mmemcpy-strategy=libcall👎align -minline-stringops-dynamically
shared_mutex compile errors on bare-metal targets
missed warning for unused variable.
ICE: SIGSEGV in get_attrs_for (trans-mem.c:179) with -fgnu-tm and #pragma GCC ivdep
[4.9/5 Regression] Undefined .L* symbol starting with jump2 on s390x
New overloads of std::is_permutation dereference past-the-end iterator
std::experimental::bad_optional_access is not default constructible
[4.9 Regression] ICE in symtab_remove_unreachable_nodes, at ipa.c:547 on arm-linux-gnueabihf
[4.8/4.9/5 Regression] ICE with {} initialized array with string
array<T,0>::begin()/end() etc. forms a null reference and breaks on clang+ubsan
Missing "using namespace literals::chrono_literals" in std::chrono
arm*-linux* "link" spec passes '-dynamic-linker' even for '-shared'
[4.9 Regression] ICE: definition in block 4 does not dominate use in block 2 with -fnon-call-exceptions -fsanitize=enum
False positive in array bound check in a for loop
[4.9 Regression] ICE (in add_stores, at var-tracking.c:6000) on arm-linux-gnueabihf
[4.9/5/6 Regression] missing DW_AT_abstract_origin for cross-unit call sites
[4.9/5 Regression] overriding final function defined out of line does not lead to an error
[4.8/4.9 Regression] ICE in avr-gcc when passing struct member to varargs function
avr_adjust_insn_length uses recog_memoized on invalid insn
[4.9/5 Regression] Memory leak with allocatable CLASS components
[4.9/5 Regression] Invalid memory reference in a compiler-generated finalizer for allocatable component
[4.9/5 Regression] NAMELIST bug with f2003: reads too far
[4.8 Regression] ICE on cyclically dependent polymorphic types
[4.9/5 Regression] [OOP] ICE on valid with finalizable array components
[4.9/5 Regression] ICE in gfc_conv_descriptor_data_get for generated finalizer
[4.9/5 Regression] -freorder-blocks-and-partition causes some failures on SH
[4.9/5 Regression] ICE(segfault) when passing coarrays around; ICE in gfc_zero_size_array in arith.c:1637
[SH][4.9 Regression] "insn does not satisfy its constraints" when compiling libmcrypt
There is one other change:
* [20 Apr 15] Accept 'fun/try' case list like the change of 22nd Apr 13
on 'match' in revised syntax, allowing them to write "|" .. "end" or
"[" .. "]", both being accepted.
include:
- #6583: add a new class of binary operators with the same syntactic
precedence as method calls; these operators start with # followed
by a non-empty sequence of operator symbols (for instance #+, #!?).
It is also possible to use '#' as part of these extra symbols
(for instance ##, or #+#); this is rejected by the type-checker,
but can be used e.g. by ppx rewriters.
* #6016: add a "nonrec" keyword for type declarations
- #6600: make -short-paths faster by building the printing map
incrementally
- #6642: replace $CAMLORIGIN in -ccopt with the path to cma or cmxa
to output an object file with included runtime and autolink libraries
- #6845: -no-check-prims to tell ocamlc not to check primitives in runtime
- G#149: Attach documentation comments to parse tree
- G#159: Better locations for structure/signature items
- #5958: generalized polymorphic #install_printer
- #6237: explicit "infer" tag to control or disable menhir --infer
- #6625: pass -linkpkg to files built with -output-obj.
- #6712: Ignore common VCS directories
- #6720: pass -g to C compilers when tag 'debug' is set
- #6733: add .byte.so and .native.so targets to pass
-output-obj -cclib -shared.
- #6733: "runtime_variant(X)" to pass -runtime-variant X option.
- #6774: new menhir-specific flags "only_tokens" and "external_tokens(Foo)"
- #6285: Add support for nanosecond precision in Unix.stat()
- #6781: Add higher baud rates to Unix termios
- #6834: Add Obj.{first,last}_non_constant_constructor_tag
- #6078: Release the runtime system when calling caml_dlopen
- #6675: GC hooks
- #5418 (comments) : generate dependencies with $(CC) instead of gcc
- #6266: Cross compilation for iOs, Android etc
- Update instructions for x86-64 PIC mode and POWER architecture builds
- #6452, G#140: add internal suport for custom printing formats
- #6641: add -g, -ocamlcflags, -ocamloptflags options to ocamlmklib
- #6693: also build libasmrun_shared.so and lib{asm,caml}run_pic.a
- #6842: export Typemod.modtype_of_package
- G#139: more versatile specification of locations of .annot
- G#157: store the path of cmos inside debug section at link time
- G#191: Making gc.h and some part of memory.h public
Add a Configure test to verify that including <fenv.h> doesn't produce
a build error, as it will in quite few cases on NetBSD on archs which
are not amd64, i386 or sparc in NetBSD 6.x. If the test build fails,
pretend we don't have fenv.h.
Validated that the result builds on NetBSD/evbarm 6.0 and NetBSD/i386 6.1.5.
Build fix, so no need to bump PKGREVISION.
OK by wiz@
=== 2.4.8 / 2015-06-08
Bug fixes:
* Tightened API endpoint checks for CVE-2015-3900
=== 2.4.7 / 2015-05-14
Bug fixes:
* Backport: Limit API endpoint to original security domain for CVE-2015-3900.
Fix by claudijd
find their parent GCC package libraries first in RPATH at install time
but will correctly resolve to their own copies at runtime thanks to the
additional paths encoded at build time. Fixes CHECK_WRKREF builds.
The following bugs have been fixed (from http://www.lua.org/bugs.html):
1. string.format("%f") can cause a buffer overflow (only when
'lua_Number' is long double!).
reported by Roberto on 13 Jan 2015. existed since 5.3. fixed in
5.3.1.
2. debug.getlocal on a coroutine suspended in a hook can crash the
interpreter.
reported by on 11 Feb 2015. existed since 5.2. fixed in 5.3.1.
Example: See
http://lua-users.org/lists/lua-l/2015-02/msg00146.html.
3. Suspended __le metamethod can give wrong result.
reported by Eric Zhong on 07 Apr 2015. existed since 5.2. fixed in
5.3.1.
Example:
mt = {__le = function (a,b) coroutine.yield("yield"); return a.x <= b.x end}
t1 = setmetatable({x=1}, mt)
t2 = {x=2}
co = coroutine.wrap(function (a,b) return t2 <= t1 end)
co()
print(co()) --> true (should be false)
4. Return hook may not see correct values for active local variables
when function returns.
reported by Philipp Janda and Peng Yi on 19 May 2015. existed since
5.0. fixed in 5.3.1.
Example: See
http://lua-users.org/lists/lua-l/2015-05/msg00376.html.
The ${PREFIX}/include/ansidecl.h installed by devel/binutils is not
necessarily compatible (E.g. binutils-2.25 does not define PARAMS). Adjust
the include path priority so the internal ansidecl.h gets precedence, allowing
cp-demangle.c to use libiberty.h without compilation errors.
necessarily compatible (E.g. binutils-2.25 does not define PARAMS). Adjust
the include path priority so the internal ansidecl.h gets precedence, allowing
cp-demangle.c to use libiberty.h without compilation errors.
Like lang/gcc5-aux, gcc-aux was failing to build on NetBSD 7.0-beta
due to a "operation not permitted" error emitted by pkgsrc gold linker.
The root cause isn't known (problem with NetBSD 7 full-stop? problem
with binutils, but only NetBSD7?). However, the base binutils which
is version 2.23 is sufficient (barely) for gcc 4.9.
The build failure is solved by using base binutils for NetBSD 7*.
No revbump required because there is no change for platforms on which
gcc-aux has already potentially been built.
NOTE: As noted on gcc5-aux, stack-checks that passed on NetBSD 5 and 6
are now failing on GNAT on NetBSD 7. This is because the signal
trampoline has apparently changed and the pattern the unwinder was
looking for is never found, resulting in a segfault instead of a frame
unwind. The fix would be to determine the new signal trampoline
pattern and have it switch based on param.h version (or something like
that).
There are three major issues with gcc5-aux on NetBSD 7.0 Beta.
1) The gold linker fails in the middle of the build with an
"operation not permitted" error. I believe this is either an issue
directory with NetBSD 7.0 beta (not seen on 6.99) or an issue with
the binutils 2.25 from pkgsrc.
It turns out that NetBSD 7.0 uses binutils 2.23 which is new enough.
By removing the requirement for using pkgsrc binutils, it will build
until it hits issue #2 which is ...
2) Fortran no longer builds on NetBSD 7.0. Something about an "old"
version of locale symbol. Something changed with locales and gcc5's
Fortran does not like it.
The solution is to turn off fortran and objc options by default. This
means only C, C++, and Ada languages are supported by default. Obviously
this is not a "solution" but it will have to do for now.
3) The signal trampoline has changed. The pattern for the signal
trampoline has been altered and now the NetBSD unwind support can't
recognize the end of the stack. This causes all the stack overflow
and stack check tests to fail.
I didn't do anything here. It requires a lot of work with gdb to figure
out what the new pattern looks like and I don't have any sort of time
for that. Stack handling still works for NetBSD 5 and 6 though.
This compiler package is not like the lang/gcc4* packages, but rather
the lang/gcc-aux package which exists to bring GNAT, the Ada language
compiler. The lang/gcc-aux package is based on gcc-4.9, and this
package is based on gcc-5. This is the first gcc5 package in pkgsrc,
and it does support C, C++, ObjC, and Fortran in addition to Ada thus
it is very useful, but it does have a different purpose than other
gcc ports.
This port has had minimal testing. I verified GNAT passes 100% of the
testsuite on NetBSD 6.1/amd64, but it has not been tested on any
NetBSD 5, 7.0 or 7.99 platform yet. I don't have any hardware, so it
will require using a VM or having others report failure/success. Due
to similarity with lang/gcc-aux, chances are good that it will build
and function properly on other platforms.
See http://gcc.gnu.org/gcc-5/changes.html for more information about
improvements over the gcc-4.9 series.
The gnat-aux package is based on gcc-4.6, which has been unsupported
upstream since the last point release on 25 March 2011.
Nothing depends on it. The lang/gcc-aux package (based on gcc-4.9) took
over its tasks with the "ada" support a few years ago. A new package,
lang/gcc5-aux is coming soon.
There's no technical reason to use lang/gnat-aux over lang/gcc-aux or
lang/gcc5-aux (hopefully nobody has been!) so just remove it outright
with the recommendation to switch to a newer Ada compiler package.
(1) Default heap limit to 75% of available address space.
(2) Limit GC marker threads to 4MB/8MB (32bit vs 64bit) stack space.
As Mono tries to create 16 such threads by default, the default
stack size on AMD64 would eat 2GB VA alone.
Bump revision.
This update is a by-product of working on new package, gcc5-aux, and
applying those concepts here. Several changes were made, including:
- Version date was not updated when version changed from 4.9.0 => 4.9.2
(revbump occurred instead). Remove revbump and fix date
- Remove DragonFly-i386 from permitted platforms. This platform will be
completely unsupported when DragonFly 4.2 is released (very soon)
- Remove references to OpenBSD and MirBSD. Support was never activated
due to technical issues and likely will not happen.
- Reindent (cosmetic)
- It is seemingly impossible to work around NetBSD's binary compatibility
scheme (e.g. __socket30, __nanosleep50). These weak symbols are simply
ignored by Ada's pragma Import and no c-tricks seem to avoid conflicts.
(Why can't NetBSD use symbol versioning???) Anyway, having NetBSD-
specific copies of source files to handle a couple of symbol differences
is simply not sustainable, so move to a new scheme where these are
replaced on the fly. By the way, this problem basically means that I
cannot fix GNAT upstream, even if I found somebody to sponsor getting
the NUMEROUS non-ada patches upstream. GCC devs would laugh at me if I
describe why I want to introduce so many new but similar files to
support NetBSD. So it's very likely never going to happen.
- Disable libitm and libcilkrts by default. They are out of scope and not
worth building / fixing.
- Apparently NLS support doesn't build on NetBSD 6.1? Nobody reported
this to me, but there are linking issues. I'm just removing the option
(which was on by default) until further notice. Having NLS support on
by default was questionable anyway.
- Remove exetim mods, this was wrong (for all BSD platforms)
- Android support leaked in, but it's not used here
- The diff-ada file dropped about 150k in size, and could have been more
had the android osinte file been masked too.