Changes from V8.6beta1 to V8.6
==============================
Kernel
- Fixed critical bug #5248 in VM long multiplication on 32-bit
architectures. Was there only since 8.6beta1, so no stable release impacted.
Other bug fixes in universes, type class shelving,...
Changes from V8.5 to V8.6beta1
==============================
Kernel
- A new, faster state-of-the-art universe constraint checker.
Specification language
- Giving implicit arguments explicitly to a constant with multiple
choices of implicit arguments does not break any more insertion of
further maximal implicit arguments.
- Ability to put any pattern in binders, prefixed by quote, e.g.
"fun '(a,b) => ...", "λ '(a,(b,c)), ...", "Definition foo '(x,y) := ...".
It expands into a "let 'pattern := ..."
Tactics
- Flag "Bracketing Last Introduction Pattern" is now on by default.
- Flag "Regular Subst Tactic" is now on by default: it respects the
initial order of hypothesis, it contracts cycles, it unfolds no
local definitions (common source of incompatibilities, fixable by
"Unset Regular Subst Tactic").
- New flag "Refolding Reduction", now disabled by default, which turns
on refolding of constants/fixpoints (as in cbn) during the reductions
done during type inference and tactic retyping. Can be extremely
expensive. When set off, this recovers the 8.4 behaviour of unification
and type inference. Potential source of incompatibility with 8.5 developments
(the option is set on in Compat/Coq85.v).
- New flag "Shrink Abstract" that minimalizes proofs generated by the abstract
tactical w.r.t. variables appearing in the body of the proof.
On by default and deprecated. Minor source of incompatibility
for code relying on the precise arguments of abstracted proofs.
- Serious bugs are fixed in tactic "double induction" (source of
incompatibilities as soon as the inductive types have dependencies in
the type of their constructors; "double induction" remains however
deprecated).
- In introduction patterns of the form (pat1,...,patn), n should match
the exact number of hypotheses introduced (except for local definitions
for which pattern can be omitted, as in regular pattern-matching).
- Tactic scopes in Ltac like constr: and ltac: now require parentheses around
their argument.
- Every generic argument type declares a tactic scope of the form "name:(...)"
where name is the name of the argument. This generalizes the constr: and ltac:
instances.
- When in strict mode (i.e. in a Ltac definition), if the "intro" tactic is
given a free identifier, it is not bound in subsequent tactics anymore.
In order to introduce a binding, use e.g. the "fresh" primitive instead
(potential source of incompatibilities).
- New tactics is_ind, is_const, is_proj, is_constructor for use in Ltac.
- New goal selectors. Sets of goals can be selected by listing integers
ranges. Example: "1,4-7,24: tac" focuses "tac" on goals 1,4,5,6,7,24.
- For uniformity with "destruct"/"induction" and for a more natural
behavior, "injection" can now work in place by activating option
"Structural Injection". In this case, hypotheses are also put in the
context in the natural left-to-right order and the hypothesis on
which injection applies is cleared.
- Tactic "contradiction" (hence "easy") now also solve goals with
hypotheses of the form "~True" or "t<>t" (possible source of
incompatibilities because of more successes in automation, but
generally a more intuitive strategy).
- Option "Injection On Proofs" was renamed "Keep Proof Equalities". When
enabled, injection and inversion do not drop equalities between objects
in Prop. Still disabled by default.
- New tactics "notypeclasses refine" and "simple notypeclasses refine" that
disallow typeclass resolution when typechecking their argument, for use
in typeclass hints.
- Integration of LtacProf, a profiler for Ltac.
- Reduction tactics now accept more fine-grained flags: iota is now a shorthand
for the new flags match, fix and cofix.
- The ssreflect subterm selection algorithm is now accessible to tactic writers
through the ssrmatching plugin.
- When used as an argument of an ltac function, "auto" without "with"
nor "using" clause now correctly uses only the core hint database by
default.
Hints
- Revised the syntax of [Hint Cut] to follow standard notation for regexps.
- Hint Mode now accepts "!" which means that the mode matches only if the
argument's head is not an evar (it goes under applications, casts, and
scrutinees of matches and projections).
- Hints can now take an optional user-given pattern, used only by
[typeclasses eauto] with the [Filtered Unification] option on.
Typeclasses
- Many new options and new engine based on the proof monad. The
[typeclasses eauto] tactic is now a multi-goal, multi-success tactic.
See reference manual for more information. It is planned to
replace auto and eauto in the following version. The 8.5 resolution
engine is still available to help solve compatibility issues.
Program
- The "Shrink Obligations" flag now applies to all obligations, not only
those solved by the automatic tactic.
- "Shrink Obligations" is on by default and deprecated. Minor source of
incompatibility for code relying on the precise arguments of
obligations.
Notations
- "Bind Scope" can once again bind "Funclass" and "Sortclass".
General infrastructure
- New configurable warning system which can be controlled with the vernacular
command "Set Warnings", or, under coqc/coqtop, with the flag "-w". In
particular, the default is now that warnings are printed by coqc.
- In asynchronous mode, Coq is now capable of recovering from errors and
continue processing the document.
Tools
- coqc accepts a -o option to specify the output file name
- coqtop accepts --print-version to print Coq and OCaml versions in
easy to parse format
- Setting [Printing Dependent Evars Line] can be unset to disable the
computation associated with printing the "dependent evars: " line in
-emacs mode
- Removed the -verbose-compat-notations flag and the corresponding Set
Verbose Compat vernacular, since these warnings can now be silenced or
turned into errors using "-w".
XML protocol
- message format has changed, see dev/doc/changes.txt for more details.
Many bug fixes, minor changes and documentation improvements are not mentioned
here.
Changes from V8.5pl2 to V8.5pl3
===============================
Critical bugfix
- #4876: Guard checker incompleteness when using primitive projections
Other bugfixes
- #4780: Induction with universe polymorphism on was creating ill-typed terms.
- #4673: regression in setoid_rewrite, unfolding let-ins for type unification.
- #4754: Regression in setoid_rewrite, allow postponed unification problems to remain.
- #4769: Anomaly with universe polymorphic schemes defined inside sections.
- #3886: Program: duplicate obligations of mutual fixpoints.
- #4994: Documentation typo.
- #5008: Use the "md5" command on OpenBSD.
- #5007: Do not assume the "TERM" environment variable is always set.
- #4606: Output a break before a list only if there was an empty line.
- #5001: metas not cleaned properly in clenv_refine_in.
- #2336: incorrect glob data for module symbols (bug #2336).
- #4832: Remove extraneous dot in error message.
- Anomaly in printing a unification error message.
- #4947: Options which take string arguments are not backwards compatible.
- #4156: micromega cache files are now hidden files.
- #4871: interrupting par:abstract kills coqtop.
- #5043: [Admitted] lemmas pick up section variables.
- Fix name of internal refine ("simple refine").
- #5062: probably a typo in Strict Proofs mode.
- #5065: Anomaly: Not a proof by induction.
- Restore native compiler optimizations, they were disabled since 8.5!
- #5077: failure on typing a fixpoint with evars in its type.
- Fix recursive notation bug.
- #5095: non relevant too strict test in let-in abstraction.
- Ensuring that the evar name is preserved by "rename".
- #4887: confusion between using and with in documentation of firstorder.
- Bug in subst with let-ins.
- #4762: eauto weaker than auto.
- Remove if_then_else (was buggy). Use tryif instead.
- #4970: confusion between special "{" and non special "{{" in notations.
- #4529: primitive projections unfolding.
- #4416: Incorrect "Error: Incorrect number of goals".
- #4863: abstract in typeclass hint fails.
- #5123: unshelve can impact typeclass resolution
- Fix a collision about the meta-variable ".." in recursive notations.
- Fix printing of info_auto.
- #3209: Not_found due to an occur-check cycle.
- #5097: status of evars refined by "clear" in ltac: closed wrt evars.
- #5150: Missing dependency of the test-suite subsystems in prerequisite.
- Fix a bug in error printing of unif constraints
- #3941: Do not stop propagation of signals when Coq is busy.
- #4822: Incorrect assertion in cbn.
- #3479 parsing of "{" and "}" when a keyword starts with "{" or "}".
- #5127: Memory corruption with the VM.
- #5102: bullets parsing broken by calls to parse_entry.
Various documentation improvements
Changes from V8.5pl1 to V8.5pl2
===============================
Critical bugfix
- Checksums of .vo files dependencies were not correctly checked.
- Unicode-to-ASCII translation was not injective, leading in a soundness bug in
the native compiler.
Other bugfixes
- #4097: more efficient occur-check in presence of primitive projections
- #4398: type_scope used consistently in "match goal".
- #4450: eauto does not work with polymorphic lemmas
- #4677: fix alpha-conversion in notations needing eta-expansion.
- Fully preserve initial order of hypotheses in "Regular Subst Tactic" mode.
- #4644: a regression in unification.
- #4725: Function (Error: Conversion test raised an anomaly) and Program
(Error: Cannot infer this placeholder of type)
- #4747: Problem building Coq 8.5pl1 with OCaml 4.03.0: Fatal warnings
- #4752: CoqIDE crash on files not ended by ".v".
- #4777: printing inefficiency with implicit arguments
- #4818: "Admitted" fails due to undefined universe anomaly after calling
"destruct"
- #4823: remote counter: avoid thread race on sockets
- #4841: -verbose flag changed semantics in 8.5, is much harder to use
- #4851: [nsatz] cannot handle duplicated hypotheses
- #4858: Anomaly: Uncaught exception Failure("hd"). Please report. in variant
of nsatz
- #4880: [nsatz_compute] generates invalid certificates if given redundant
hypotheses
- #4881: synchronizing "Declare Implicit Tactic" with backtrack.
- #4882: anomaly with Declare Implicit Tactic on hole of type with evars
- Fix use of "Declare Implicit Tactic" in refine.
triggered by CoqIDE
- #4069, #4718: congruence fails when universes are involved.
Universes
- Disallow silently dropping universe instances applied to variables
(forward compatible)
- Allow explicit universe instances on notations, when they can apply
to the head reference of their expansion.
Build infrastructure
- New update on how to find camlp5 binary and library at configure time.
some patches that have been migrated upstream.
Changes (bug numbers removed so they don't trigger our system) include:
(Changes that can break existing programs are marked with a "*")
### Language features:
- Support GADT equations on non-local abstract types
(Jacques Garrigue)
- Local opening of modules in a pattern.
Syntax: "M.(p)", "M.[p]","M.[| p |]", "M.{p}"
(Florian Angeletti, Jacques Garrigue, review by Alain Frisch)
- local exception declarations "let exception ... in"
(Alain Frisch)
- Allow shortcut for extension on semicolons: ;%foo
(Jeremie Dimino)
- optimized representation for immutable records with a single
field, and concrete types with a single constructor with a single argument.
This is triggered with a [@@unboxed] attribute on the type definition.
Currently mutually recursive datatypes are not well supported, this
limitation should be lifted in the future (see M).
(Damien Doligez)
### Compiler user-interface and warnings:
* interpret all command-line options before compiling any
files, changes (improves) the semantics of repeated -o options or -o
combined with -c see the super-detailed commit message at
da56cf6dfd
(whitequark)
- clarify the wording of Warning 38
(Unused exception or extension constructor)
(Gabriel Scherer)
* add colors when reporting errors generated by ppx rewriters.
Remove the `Location.errorf_prefixed` function which is no longer relevant
(Simon Cruanes, Jérémie Dimino)
- clarify the wording of Warning 8
(Non-exhaustivity warning for pattern matching)
(Florian Angeletti, review and report by Gabriel Scherer)
* Improve support for OCAMLPARAM: (i) do not use objects
files with -a, -pack, -shared; (ii) use "before" objects in the toplevel
(but not "after" objects); (iii) use -I dirs in the toplevel,
(iv) fix bug where -I dirs were ignored when using threads
(Marc Lasson, review by Damien Doligez and Alain Frisch)
- New -plugin option for ocamlc and ocamlopt, to dynamically extend
the compilers at runtime.
(Fabrice Le Fessant)
- Detect unused module declarations
(Alain Frisch)
- Add a settable Env.Persistent_signature.load function so
that cmi files can be loaded from other sources. This can be used to
create self-contained toplevels.
(Jérémie Dimino)
### Standard library:
- Provide `Sys.backend_type` so that user can write backend-specific
code in some cases (for example, code generator).
(Hongbo Zhang)
- implement Set.map
(Gabriel Scherer)
- Add Obj.reachable_words to compute the
"transitive" heap size of a value
(Alain Frisch, review by Mark Shinwell and Damien Doligez)
- Add a non-allocating function to recover the number of
allocated minor words.
(Pierre Chambart, review by Damien Doligez and Gabriel Scherer)
- String.split_on_char
(Alain Frisch)
- Filename.extension and Filename.remove_extension
(Alain Frisch, request by Edgar Aroutiounian, review by Daniel Bunzli
and Damien Doligez)
### Code generation and optimizations:
- Optimize Hashtbl by using in-place updates of its
internal bucket lists. All operations run in constant stack size
and are usually faster, except Hashtbl.copy which can be much
slower
(Alain Frisch)
* Optimize performance of record update:
no more performance cliff when { foo with t1 = ..; t2 = ...; ... }
hits 6 updated fields
(Olivier Nicole, review by Thomas Braibant and Pierre Chambart)
- Better unboxing strategy
(Alain Frisch, Pierre Chambart)
- Ocamlopt + flambda requires a lot of memory
to compile large array literal expressions
(Pierre Chambart, review by Mark Shinwell)
- Handle specialisation of recursive function that does
not always preserve the arguments
(Pierre Chambart, Mark Shinwell, report by Simon Cruanes)
- Obj.is_block is now an inlined OCaml function instead of a
C external. This should be faster.
(Demi Obenour)
- Optimize immutable float records
(Pierre Chambart, review by Mark Shinwell)
- Do not generate dummy code to force module linking
(Pierre Chambart, reviewed by Jacques Garrigue)
- Do not eliminate boxed int divisions by zero and
avoid checking twice if divisor is zero with flambda.
(Pierre Chambart, report by Jeremy Yallop)
- Optimize some constant string operations when the "-safe-string"
configure time option is enabled.
(Pierre Chambart)
- Load cross module information during a meet
(Pierre Chambart, report by Leo White, review by Mark Shinwell)
- Share a few more equal switch branches
(Pierre Chambart, review by Gabriel Scherer)
- Small improvements to type-based optimizations for array
and lazy
(Alain Frisch, review by Pierre Chambart)
- Prevent warning 59 from triggering on Lazy of constants
(Pierre Chambart, review by Leo White)
- Sort emitted functions according to source location
(Pierre Chambart, review by Mark Shinwell)
- Lack of type normalization lead to missing simple compilation for "lazy x"
(Alain Frisch)
### Runtime system:
- Allows to register finalisation function that are
called only when a value will never be reachable anymore. The
drawbacks compared to the existing one is that the finalisation
function is not called with the value as argument. These finalisers
are registered with `GC.finalise_last`
(François Bobot reviewed by Damien Doligez and Leo White)
- Do not perform compaction if the real overhead is less than expected
(Thomas Braibant)
### Tools:
- toplevel #show, follow chains of module aliases
(Gabriel Scherer, report by Daniel Bünzli, review by Thomas Refis)
- have ocamldep interpret -open arguments in left-to-right order
(Gabriel Scherer, report by Anton Bachin)
- ocamldoc, missing line breaks in type_*.html files
(Florian Angeletti)
- ocamldoc, improved support for inline records
(Florian Angeletti)
- ensure "ocamllex -ml" works with -safe-string
(Hongbo Zhang)
- ocamldoc, add viewport metadata to generated html pages
(Florian Angeletti, request by Daniel Bünzli)
- Make the output of ocamldep more stable
(Alain Frisch)
- empty documentation comments
(Florian Angeletti)
- Add the -no-version option to the toplevel
(Sébastien Hinderer)
- Add a --strict option to ocamlyacc treat conflicts as errors
(this option is now used for the compiler's parser)
(Jeremy Yallop)
- make ocamldoc use -open arguments
(Florian Angeletti)
- ocamldoc, fix order of extensible variant constructors
(Florian Angeletti)
### Debugging and profiling:
- Spacetime, a new memory profiler (Mark Shinwell, Leo White)
### Runtime system:
- Add a new primitive caml_alloc_float_array to allocate an
array of floats
(Thomas Braibant)
### Manual and documentation:
- document the existence of OCAMLPARAM and
ocaml_compiler_internal_params
(Damien Doligez, reports by Wim Lewis and Gabriel Scherer)
- warn users against using WinZip to unpack the source archive
(Damien Doligez, report by Shayne Fletcher)
- clarification to the wording and documentation
of Warning 52 (fragile constant pattern)
(Gabriel Scherer, William, Adrien Nader, Jacques Garrigue)
- Restore 4.02.3 behaviour of Unix.fstat, if the
file descriptor doesn't wrap a regular file (win32unix only)
(Andreas Hauptmann, review by David Allsopp)
- flatten : Avoid confusion
(Damien Doligez, report by user 'tormen')
- Gc.finalise and lazy values
(Jeremy Yallop)
- Document that [Store_field] must not be used to populate
arrays of values declared using [CAMLlocalN] (Mark Shinwell)
### Build system:
- Compiler developers: Adding new primitives to the
standard runtime doesn't require anymore to run `make bootstrap`
(François Bobot)
- Fix compilation using old Microsoft C Compilers not
supporting secure CRT functions (SDK Visual Studio 2005 compiler and
earlier) and standard 64-bit integer literals (Visual Studio .NET
2002 and earlier)
(David Allsopp)
- More sharing between Unix and Windows makefiles
(whitequark, review by Alain Frisch)
* Installed `ocamlc`, `ocamlopt`, and `ocamllex` are
now the native-code versions of the tools, if those versions were
built.
(Demi Obenour)
- "./configure -safe-string" to get a system where
"-unsafe-string" is not allowed, thus giving stronger non-local
guarantees about immutability of strings
(Alain Frisch, review by Hezekiah M. Carty)
### Bug fixes:
* Missed Type-error leads to a segfault upon record access.
(Jacques Garrigue, extra report by Stephen Dolan)
Proper fix required a more restrictive approach to recursive types:
mutually recursive types are seen as abstract types (i.e. non-contractive)
when checking the well-foundedness of the recursion.
* Nominal types and scope escaping.
Revert to strict scope for non-generalizable type variables, cf. Mantis.
Note that this is actually stricter than the behavior before 4.03,
cf. , meaning that you may sometimes need to add type annotations
to explicitly instantiate non-generalizable type variables.
(Jacques Garrigue, following discussion with Jeremy Yallop,
Nicolas Ojeda Bar and Alain Frisch)
- Aliased arguments ignored for equality of module types
(Jacques Garrigue, report by Leo White)
- compiler forcing aliases it shouldn't while reporting type errors
(Jacques Garrigue, report and suggestion by sliquister)
- document that Unix.SOCK_SEQPACKET is not really usable.
- uncaught exception on invalid lexer directive
(Gabriel Scherer, report by KC Sivaramakrishnan using afl-fuzz)
- revert a 4.03 change of behavior on (Unix.sleep 0.),
it now calls (nano)sleep for 0 seconds as in (< 4.03) versions.
(Hannes Mehnert, review by Damien Doligez)
- GADT + subtyping compile time crash
(Jacques Garrigue, report by Nicolas Ojeda Bar)
- Segfault from conjunctive constraints in GADT
(Jacques Garrigue, report by Stephen Dolan)
- Support more than FD_SETSIZE sockets in Windows' emulation
of select
(David Scott, review by Alain Frisch)
* Prevent private inline records from being mutated
(Alain Frisch, report by Pierre Chambart)
- Bug in mcomp_fields leads to segfault
(Jacques Garrigue, report by Leo White)
- Relaxed value restriction broken with principal
(Jacques Garrigue, report by Leo White)
- -strict-sequence turns off Warning 21
(Jacques Garrigue, report by Valentin Gatien-Baron)
- remove access to OCaml heap inside blocking section in win32unix
(David Allsopp, report by Andreas Hauptmann)
- remove access to OCaml heap inside blocking in Unix.sleep on Windows
(David Allsopp)
- -principal causes loop in type checker when compiling
(Jacques Garrigue, report by Anil Madhavapeddy, analysis by Leo White)
- Missing exhaustivity check for extensible variant
(Jacques Garrigue, report by Elarnon *)
- Contractiveness check unsound with constraints
(Jacques Garrigue, report by Leo White)
- GADT constructors can be re-exposed with an incompatible type
(Jacques Garrigue, report by Alain Frisch)
- Unsoundness in GADT exhaustiveness with existential variables
(Jacques Garrigue, report by Stephen Dolan)
* Thread library: fixed [Thread.wait_signal] so that it
converts back the signal number returned by [sigwait] to an
OS-independent number
(Jérémie Dimino)
- (similar to ) ensure that register typing constraints are
respected at N-way join points in the control flow graph
(Mark Shinwell)
- Fix float_of_hex parser to correctly reject some invalid forms
(Bogdan Tătăroiu, review by Thomas Braibant and Alain Frisch)
- Fix maximum weak bucket size
(Nicolas Ojeda Bar, review by François Bobot)
- Allow more module aliases in strengthening (Leo White)
- Fix wrong code generation involving lazy values in Flambda
mode
(Mark Shinwell, review by Pierre Chambart and Alain Frisch)
- Fix infinite loop in flambda due to [@@specialise] annotations
- Building native runtime on Windows could fail when bootstrapping
FlexDLL if there was also a system-installed flexlink
(David Allsopp, report Michael Soegtrop)
- check for integer overflow in String.concat
(Jeremy Yallop,
review by Damien Doligez, Alain Frisch, Daniel Bünzli, Fabrice Le Fessant)
- check for integer overflow in Array.concat
(Jeremy Yallop)
- fix the Buffer.add_substring bounds check to handle overflow
(Jeremy Yallop)
- Fix [@@inline] with default parameters in flambda (Leo White)
- fix build on OpenIndiana
(Sergey Avseyev, review by Damien Doligez)
### Internal/compiler-libs changes:
- Improve, fix, and add test for parsing/pprintast.ml
(Runhang Li, David Sheets, Alain Frisch)
- make driver/pparse.ml functions type-safe
(Gabriel Scherer, Dmitrii Kosarev, review by Jérémie Dimino)
- Improve Texp_record constructor representation, and
propagate updated record type information
(Pierre Chambart, review by Alain Frisch)
- Graphics.close_graph crashes 64-bit Windows ports (re-implementation
of )
(David Allsopp)
- delay registration of docstring after the mapper is applied
(Hugo Heuzard, review by Leo White)
- don't attach (**/**) comments to any particular node
(Thomas Refis, review by Leo White)
Core and Builtins
-----------------
- Issue 28847: dumbdbm no longer writes the index file in when it is not
changed and supports reading read-only files.
- Issue 11145: Fixed miscellaneous issues with C-style formatting of types
with custom __oct__ and __hex__.
- Issue 24469: Fixed memory leak caused by int subclasses without overridden
tp_free (e.g. C-inherited Cython classes).
- Issue 19398: Extra slash no longer added to sys.path components in case of
empty compile-time PYTHONPATH components.
- Issue 21720: Improve exception message when the type of fromlist is unicode.
fromlist parameter of __import__() only accepts str in Python 2 and this
will help to identify the problem especially when the unicode_literals
future import is used.
- Issue 26906: Resolving special methods of uninitialized type now causes
implicit initialization of the type instead of a fail.
- Issue 18287: PyType_Ready() now checks that tp_name is not NULL.
Original patch by Niklas Koep.
- Issue 24098: Fixed possible crash when AST is changed in process of
compiling it.
- Issue 28350: String constants with null character no longer interned.
- Issue 27942: String constants now interned recursively in tuples and frozensets.
- Issue 15578: Correctly incref the parent module while importing.
- Issue 26307: The profile-opt build now applies PGO to the built-in modules.
- Issue 26020: set literal evaluation order did not match documented behaviour.
- Issue 27870: A left shift of zero by a large integer no longer attempts
to allocate large amounts of memory.
- Issue 25604: Fix a minor bug in integer true division; this bug could
potentially have caused off-by-one-ulp results on platforms with
unreliable ldexp implementations.
- Issue 27473: Fixed possible integer overflow in str, unicode and bytearray
concatenations and repetitions. Based on patch by Xiang Zhang.
- Issue 27507: Add integer overflow check in bytearray.extend(). Patch by
Xiang Zhang.
- Issue 27581: Don't rely on wrapping for overflow check in
PySequence_Tuple(). Patch by Xiang Zhang.
- Issue 23908: os functions, open() and the io.FileIO constructor now reject
unicode paths with embedded null character on Windows instead of silently
truncating them.
- Issue 27514: Make having too many statically nested blocks a SyntaxError
instead of SystemError.
* Fix PR pkg/51738 from Oshima-san
Changelog:
* Changes in opensource COBOL 1.5.1J
** Bug fixes
*** build error on Windows.
*** test failure caused by missing inline-function declarations on gcc5.
*** compiler warnings on v1.3 or later.
** Changes
*** update solution file in Visual Studio to 2015.
-----------------------------------------------------------------------
* Changes in opensource COBOL 1.5.0J
** New features
*** ADD new functions and features.
(1) Add a new function "C$CALLEDBY".
This gets the program name that called itself.
(2) Add a new function "C$LIST-DIRECTORY".
This gets the list of files in the target directory.
(3) Add a new feature "CANCEL ALL".
This cancel subprogram and all subprograms that callded by it.
I had intended to migrate the ada framework to use gcc6-aux instead of
lang/gcc5-aux, but unfortunately there's been a regression on NetBSD.
It builds and tests perfectly on DragonFly and FreeBSD, but it only
builds on NetBSD. All the ACAT tests that involve tasking fail, but
the cause is unclear. All the modifications used on gcc5-aux for NetBSD
are present in gcc6-aux but pthread destruction results in a segfault.
Since then gcc5-aux support has been improved, so I'm putting this away
for a while. NetBSD has been removed from the platform support list
for now, but I'll review any patches I get to fix NetBSD tasking.
This compiler is based on gcc 6.2 and is primarily used for the Ada
frontend.
Many of these definitely do not depend on readline.
So there must be a different underlying problem, and that
should be tracked down instead of papering over it.
Changelog from release notes:
Bug Fixes in Qore:
* fixed a reference bug in the Queue class introduced in the last release
(issue 1309)
* fixed a bug where database types could not be correctly aligned if they had
dependencies (issue 1314); entailed updates in the following modules:
SqlUtil
FreetdsSqlUtil
MysqlSqlUtil
OracleSqlUtil
PgsqlSqlUtil
Schema
* fixed a bug in trunc_str() where an infinite loop could be triggered with
certain arguments and multi-byte character encodings (issue 1327)
* improved prompt collection performance with larger graphs of objects by
eliminating unnecessary graph scans made during object method calls
(issue 1363)
* fixed bugs in date(string) and date(string, string) where invalid input data
was ignored and invalid dates were returned (issue 1369)
* CsvUtil.qm module:
fixed a bug in AbstractCsvIterator::identifyTypeImpl() generating an
error message (issue 1355)
* MailMessage.qm module:
fixed a bug using the default encoding in Message::attach()
(issue issue 1352)
* SqlUtil.qm module:
* fixed the ignored character_semantics column option in schema alignmed
(issue 1379)
* implemented the cop_length() column function (issue 1395)
* OracleSqlUtil.qm module:
OraclePackage attribute body_src is now public to access package bodies
* Qorize.qm module:
Qorize module: new qorize_val() set of functions; qorize_named()
introduced; qorize tests
* TableMapper.qm module:
* fixed runtime option propagation to
TableMapper::SqlStatementMapperIterator from
TableMapper::AbstractSqlStatementOutboundMapper::iterator()
(issue 1418)
* fixed SqlStatementMapperIterator::getCount() (issue 1417)
* added the following methods:
TableMapper::AbstractSqlStatementOutboundMapper::getRowIterator()
TableMapper::InboundTableMapper::iterator()
TableMapper::InboundTableMapperIterator::getRuntime()
TableMapper::InboundTableMapperIterator::replaceRuntime()
TableMapper::InboundTableMapperIterator::setRuntime()
TableMapper::SqlStatementMapperIterator::getRuntime()
TableMapper::SqlStatementMapperIterator::replaceRuntime()
TableMapper::SqlStatementMapperIterator::setRuntime()
* QUnit.qm module:
fixed showing the assertion location when there are test modules on
top of QUnit.qm (issue 1046)
* fixed inconsistency between list splice operator and splice function
(issue 1380)
* fixed the documentation (and DB modules) where
SQLStatement::fetchColumns() was inconsistent; now it will return a
empty hash when no more rows are available to fetch (issue 1241)
* added I/O timeout support to the FtpClient class (issue 1252)
* fixed bugs in Socket::recv() and Socket::recvBinary() with size = 0
where NOTHING could be returned which is invalid according to the
methods' declared return types (issue 1260)
* fixed a bug where FtpClient:get() would fail with an exception when
retrieving an empty file (issue 1255)
* fixed a bug where executing a call reference to a deleted object
method would cause a crash (issue 1268)
* fixed a bug where Qore would allow methods to be called on already
deleted objects under certain conditions (issue 1270)
* fixed a bug where calling exit() in a multithreaded program could
result in a segmentation fault (issue 1215)
* fixed a bug where HttpServer::addListener() could not accept a bind on
port 0 to mean any random port (issue 1284)
* fixed a race condition in prompt collection that could lead to a crash
(issue 1084)
* fixed a bug clearing Socket event queues when the Socket goes out of
scope that could lead to a crash (issue 1292)
* fixed a bug with FtpClient::setWarningQueue() that could cause a crash
(issue 1293)
* fixed a bug where Qore::FtpClient::pwd() returned invalid directory
names (issue 1295)
* fixed bugs in handling websocket close status codes in the
WebSocketUtil, WebSocketClient, and WebSocketHandler modules
(issue 1216)
* TableMapper module fixes:
* fixed a bug with the SqlStatementOutboundMapper::iterator() method;
corrected the iterator object return value which was causing
AbstractMapperIterator::mapBulk() to fail (issue 979)
* fixed a bug with SqlStatementOutboundMapper; it would throw an error
if the required "table" or "sh" options were used and only worked
with subclasses that declared these options (issue 981)
* fixed a bug where AbstractSqlStatementOutboundMapper::iterator()
failed to use options when creating the new Mapper object
(issue 1088)
* fixed a bug where optional arguments were not handled correctly in
some rare cases (issue 974)
* fixed a bug causing a crash when parse_base64_string_to_string() was
called with an empty string (issue 996)
* fixed a bug resolving base class method calls during parse
initialization (issue 1075)
* fixed thread memory handling bug with some operator expressions and
the background operator (issue 1096)
* fixed a race condition in the prompt collection of closure-bound local
variables in the garbage collector (issue 1103)
* fixed a bug where HTTPClient class method variants such as
HTTPClient::get() without a callback would fail to return the message
body when the server sent a reply with chunked transfer encoding
(issue 1117)
* fixed a bug in CsvUtil where backward compatibility was broken for
single-row-type format (issue 1124)
* fixed bugs where declared public functions were missing from the
library ABI (issue 1126)
* fixed bugs where Qore::format_number() and <float>::format() gave
incorrect results when rounding to the significant decimals given in
the format string (issue 1149)
* fixed a bug referencing self in base class constructor arguments
(issue 1169)
* fixed a bug where the incorrect class destructor was called in the
openldap module (issue 1174)
* fixed a bug where declaring a copy() method as synchronized would
result in a crash when the method was called (issue 1188)
* fixed bugs in <string>::getEncoded() and <string>::getDecoded()
regarding CE_XML and CE_NONASCII (issue 1193)
* fixed bugs where Qore::call_object_method() and
Qore::call_object_method_args() allowed private methods to be called
from outside the class (issue 1194)
* fixed a bug where "Deprecated" Functions methods were being internally
registered as RUNTIME_NOOP (issue 1197)
* fixed bugs where the Datasource class would open a connection to the
server in the constructor before options were set and where a server
connection was required to call Datasource::getOption() or
Datasource::setOption() (issue 1201)
* fixed memory errors in the Queue class where spurious exceptions could
be raised (issue 1202)
* fixed a memory leak with static class member initializers (issue 1206)
- buffer:
- Reverted the runtime deprecation of calling Buffer() without new.
- Fixed buffer.transcode() for single-byte character encodings to UCS2.
- promise: --trace-warnings now produces useful stacktraces for Promise
warnings.
- repl: Fixed a bug preventing correct parsing of generator functions.
- V8: Fixed a significant instanceof performance regression.
- buffer: coerce slice parameters consistently
- deps:
- npm: upgrade npm to 3.10.9
- V8: Various fixes to destructuring edge cases
- cherry-pick 3c39bac from V8 upstream
- cherry pick 7166503 from upstream v8
- gtest: the test reporter now outputs tap comments as yamlish
- inspector: inspector now prompts user to use 127.0.0.1 rather
than localhost
- tls: fix memory leak when writing data to TLSWrap instance
during handshake
The SEMVER-MINOR changes include:
- build: export openssl symbols on Windows making it possible to
build addons linking against the bundled version of openssl
- debugger: make listen address configurable in the debugger server
- dgram: generalized send queue to handle close fixing a potential
throw when dgram socket is closed in the listening event handler.
- http: Introduce the 451 status code "Unavailable For Legal Reasons"
- tls: introduce secureContext for tls.connect which is useful for
caching client certificates, key, and CA certificates.
Notable SEMVER-PATCH changes include:
build:
- introduce the configure --shared option for embedders
- gtest: the test reporter now outputs tap comments as yamlish
- src: node no longer aborts when c-ares initialization fails
- tls: fix memory leak when writing data to TLSWrap instance during
handshake
The runpath issue only affected the x86-64 arch on NetBSD. The
spec change was only effective on i386, so relocating the change
enables the RUNPATH tag in the gcc libraries on the amd64 platform.
NetBSD doesn't seem to be honoring -rpath, at least not with binutils
from base. Using binutils from pkgsrc doesn't work either because it
uses the gold linker (for an unknown reason) which fails with an
"unsupported operation". As a result, gcc5-aux was limited to base
binutils for NetBSD 7 and later. The issue was never resolved.
New in version 1.3.12
* enhancement: on x86-64, compiled functions loaded from fasl
files can not be moved, but can be freed, by GC.
Additionally, COMPILE will produce immobile code
if SB-C::*COMPILE-TO-MEMORY-SPACE* is set to :IMMOBILE.
(Caution: the flag is experimental and subject to change.)
The benefits are better physical separation of code from
data, and potentially easier examination of live images by
external tools.
* enhancement: the docstring for SAVE-LISP-AND-DIE has been
amended to say that the :ROOT-STRUCTURES parameter is not
meaningless on gencgc, depending on the platform.
* bug fix: calling a named function (e.g. a DEFUN) concurrently
with redefining that same function could lead to execution of
random bytes.
* bug fix: yes-or-no-p accepts formatter functions (#1639490)
* bug fix: better handling of exceptions on macOS.
New in version 1.3.11
* minor incompatible change: SB-EXT:*INTEXP-MAXIMUM-EXPONENT*
is removed.
* enhancement: TRACE ... :REPORT {TRACE,NIL} now work as
advertised in the documentation string (based on patch by
Patrick Stein)
* enhancement: support unboxed signed-word structure slots on
x86, x86-64 and ARM64. (#377616)
* optimization: faster logical bit-array operations on
multidimensional arrays.
* optimization: better GC performance in the presence of many
threads. (patch by Ilya Perminov, #1339924)
* optimization: multiple-value-call is optimized with multiple
argument forms, not just one. (#753803)
* bug fix: MAKE-ALIEN-STRING returns the number of allocated
bytes as a second value as advertised (reported by Johann
'Myrkraverk' Oskarsson)
* bug fix: when TO-READTABLE is supplied to COPY-READTABLE, it
will contain only the macros in FROM-READTABLE and no others.
(#1631506)
* enhancement: gencgc has been modified for x86-64 on Linux and
macOS to a support mark-and-sweep as well as the traditional
copying strategy. It is conceivable that some applications
might be adversely affected. Please see ':immobile-space' in
'base-target-features.lisp-expr' for further details, and
possible reasons to disable this feature.
* enhancement: x86-64 supports shrinking the fixed overhead in
a structure from 2 words to 1 word, reducing memory
consumption in applications which create many small
structures.
pkgsrc change: rubygems dose not blame open-ended dependency unless verbose
option is enabled.
Ruby 2.3.2 Released Posted by nagachika on 15 Nov 2016
Ruby 2.3.2 has been released.
This is the TEENY version release of the stable 2.3 series.
This release contains update of RubyGems 2.5.2 and update of included ssl
certificates.
Ruby 2.3.3 Released Posted by nagachika on 21 Nov 2016
Ruby 2.3.3 has been released.
This release contains a bug fix about Refinements and Module#prepend. The
mixture use of Module#refine and Module#prepend to the same Class could cause
unexpected NoMethodError. This is a regression on Ruby 2.3.2 released last
week. See [Bug #12920] for details.
There are some bugfixes too. See the ChangeLog for details.
pkgsrc change: rubygems dose not blame open-ended dependency unless verbose
option is enabled.
Ruby 2.2.6 Released Posted by usa on 15 Nov 2016
Ruby 2.2.6 has been released.
This release includes new SSL certificates for RubyGems. And, this also
includes about 80 bug fixes after the previous release. See the ChangeLog for
details.
Two security-related issues were recently reported, and to address these issues
we have just released Go 1.6.4 and Go 1.7.4.
We recommend that all users update to one of these releases (if you're not sure
which, choose Go 1.7.4).
The issues addressed by these releases are:
On Darwin, user's trust preferences for root certificates were not honored. If
the user had a root certificate loaded in their Keychain that was explicitly
not trusted, a Go program would still verify a connection using that root
certificate. This is addressed by https://golang.org/cl/33721, tracked in
https://golang.org/issue/18141.
Thanks to Xy Ziemba for identifying and reporting this issue.
The net/http package's Request.ParseMultipartForm method starts writing to
temporary files once the request body size surpasses the given "maxMemory"
limit. It was possible for an attacker to generate a multipart request crafted
such that the server ran out of file descriptors. This is addressed by
https://golang.org/cl/30410, tracked in https://golang.org/issue/17965.
Thanks to Simon Rawet for the report.
Solves:
/usr/libexec/binutils225/elf/ld.gold: error: cannot find -lreadline
The missing specification is obvious on DragonFly because there's
no publically accessible version of readline in base.
This compiler is mainly used for Ada which normally does not require
gcc5-aux to be installed. Set it as a build dependency by default.
While here, remove obsolete NLS option check.
This large commit accomplishes the following:
1) Switch USE_LANGUAGES=ada to require lang/gcc5-aux (gcc 5.4) instead
of lang/gcc-aux (gcc 4.9.2) on gcc.mk
2) Bump affected ports and fix paths as necessary
3) Upgrade devel/gprbuild to the latest release
- No longer requires lang/gnat_util
- gprslave requires gcc6-aux, so it was disabled for now
4) Fix lang/gnat_util but set PKG_SKIP_REASON
- It has no further purpose in the pkgsrc tree
- It has no practical purpose outside of the pkgsrc tree
- Indicate intent to remove from tree in Jan. 2017
5) Set devel/GPS as failed with PKG_FAIL_REASON
- This version of GPS is several years old and at the time they were
strongly tied to compiler.
- Latest release of GPS require gcc6-aux (not available) and several
new and complex dependencies
- maintainer (me) has no interest to continue supporting it
- Leaving GPS in place until Jan 2017 to give another person chance to
upgrade and take over support
- Latest version in FreeBSD Ports Collection as a reference point
- crypto: The Decipher methods setAuthTag() and setAAD now return this.
- dns: Implemented {ttl: true} for resolve4() and resolve6().
- libuv: Upgrade to v1.10.1
- Fixed a potential buffer overflow when writing data to console on
Windows 10.
- process: Added a new external property to the data returned by
memoryUsage().
- tls: Fixed a memory leak when writes were queued on TLS connection that
was destroyed during handshake.
- V8 (dep): Upgrade to v5.4.500.43
- v8: The data returned by getHeapStatistics() now includes three new
fields: malloced_memory, peak_malloced_memory, and does_zap_garbage.
The compiler failed to build on DragonFly and I think it was because
--enable-shared wasn't explicitly set. Previously this was the default
but maybe it's not anymore. While here I added a new (non-default)
option to build via a long 3 stages instead of a quick single stage.
Versioned as 1.8.5 despite the distfile version, as that seemed like
a confusing misnomer (especially compared to other branches versioning).
SpiderMonkey is the code-name for the Mozilla's C implementation of JavaScript.
* Drop CppBackend. It is removed.
Changelog:
* GCC ABI Tag
* LLVM IR: new intrinsics etc.
* Change LLVM IPO model
* Support ThinLTO
* Improve the ARM targets, ARMv8.2-A support etc.
* Improve the MIPS targets
* Improve the PowerPC target, default optim O3 to O2
* Improve the X86 target, SKylake AVX-512 etc.
* Improve the AMDGPU, better support for Mesa 12
USERLIMIT is given.
From Brad Forschinger in PR pkg/49787
Also from both boehm-gc commit, where there is a longer description of issues
in issue #122:
https://github.com/ivmai/bdwgc/issues/12281cae56522
we have the additions here (adding the definition of STACKBOTTOM if USERLIMIT
otherwise use HEURISTIC2), but not the removal of the first part, which
declares STACKBOTTOM unconditionally.
Reportedly fixes build on SunOS 5.10 sun4u.
- buffer: add buffer.transcode to transcode a buffer's content from one
encoding to another primarily using ICU
- child_process: add public API for IPC channel
- icu:
- Upgraded to ICU 58 - small icu
- Add cldr, tz, and unicode to process.versions
- lib: make String(global) === '\[object global\]'
- libuv: Upgraded to 1.10.0
- readline: use icu based string width calculation
- src:
- add NODE_PRESERVE_SYMLINKS environment variable that has the same effect
as the --preserve-symlinks flag
- Fix String#toLocaleUpperCase() and String#toLocaleLowerCase()
- build: It is now possible to build the documentation from the release
tarball
- buffer: Buffer.alloc() will no longer incorrectly return a zero filled
buffer when an encoding is passed
- deps: upgrade npm in LTS to 2.15.11
- repl: Enable tab completion for global properties
- url: url.format() will now encode all # in search
distinfo from cvs: trusted to convey hashes
patches from same cvs: untrusted thus require hashes to verify
absurdness: Any intruder that can modify the patch in cvs can also modify
the distinfo file.
Only externally hosted patches require hashes. Hopefully some day
thousands of future commits to distinfo files everywhere can be avoided by
making the framework smarter. </rant>
go1.7.2 should not be used. It was tagged but not fully released. The release
was deferred due to a last minute bug report. Use go1.7.3 instead, and refer to
the summary of changes below.
go1.7.3 (released 2016/10/19) includes fixes to the compiler, runtime, and the
crypto/cipher, crypto/tls, net/http, and strings packages. See the Go 1.7.3
milestone on our issue tracker for details.
* Include a patch from PR pkg/51221
Changelog:
security-libs/java.security
SunPKCS11 Provider no longer offering SecureRandom by default
SecureRandom.PKCS11 from the SunPKCS11 Provider is disabled by default on Solaris because the native PKCS11 implementation has poor performance and is not recommended. If your application requires SecureRandom.PKCS11, you can re-enable it by removing "SecureRandom" from the disabledMechanisms list in conf/security/sunpkcs11-solaris.cfg
Performance improvements have also been made in the java.security.SecureRandom class. Improvements in the JDK implementation have allowed for synchronization to be removed from the java.security.SecureRandom.nextBytes(byte[] bytes) method.
See JDK-8098581
Fix following security bugs:
CVE-2016-5556
CVE-2016-5582
CVE-2016-5573
CVE-2016-5597
CVE-2016-5554
CVE-2016-5542
Node.js is an evented I/O framework for the V8 JavaScript engine. It is
intended for writing scalable network programs such as web servers.
This package holds the 6.x LTS release.
This new major version of Node.js includes: V8 5.4 which brings along with
98% coverage of ES6 language features, improved reliability and performance,
and a new experimental URL parser based on the WHATWG URL standard.
As an odd numbered release, in accordance with our Long Term Support plan,
Node.js v7 will be supported only until about June, 2017, with Node.js v8
currently scheduled for release in April, 2017.
Notable changes
Buffer
- Passing invalid input to Buffer.byteLength will now throw an error #8946.
- Calling Buffer without new is now deprecated and will emit a process
warning #8169.
- Passing a negative number to allocUnsafe will now throw an error #7079.
Child Process
- The fork and execFile methods now have stronger argument validation #7399.
Cluster
- The worker.suicide method is deprecated and will emit a process warning
#3747.
Deps
- V8 has been updated to 5.4.500.36 #8317, #8852, #9253.
- NODE_MODULE_VERSION has been updated to 51 #8808.
File System
- A process warning is emitted if a callback is not passed to async file
system methods #7897.
Intl
- Intl.v8BreakIterator constructor has been deprecated and will emit a
process warning #8908.
Promises
- Unhandled Promise rejections have been deprecated and will emit a process
warning #8217.
Punycode
- The punycode module has been deprecated #7941.
URL
- An Experimental WHATWG URL Parser has been introduced #7448.
Local changes:
- add test target
- build and install optional modules (right now: oo, tree, binary,
readline, rlprompt, mk, tclprefix, sqlite3, zlib, win32)
- install shared library
- simplify usage of the GitHub framework
- use --docdir instead of the SUBST framework
Upstream changelog
==================
CHANGES SINCE VERSION 0.76
This release contains some bug fixes plus a number of additional features. A summary is below. See git for the full changelog.
Thanks to everyone who contributed to this release.
Bugs fixed in version 0.77
exec - better handline of pipeline abnormal termination
exec - fix append redirection on Windows
regsub - fix substitution with trailing backslash
expr - improved mathfunc handling and pow/**
chained tailcalls were not always being run
Features added in version 0.77
Add support for configure --docdir=...
Add support for jimsh --help
Add support for booleans in string is and expressions (true, false, on, off, yes, no)
aio - add sync, openssl bindings, posix locking
expr - add support for atan2, hypot and fmod
regexp, regsub:
Add support for \D, \W and \S
Add partial support for \A, \Z
Add support for all character classes: [[::blank:]], [[::xdigit::]], etc.
Update included sqlite3 to v3.14.1
Add $tcl_platform(engine)
Add basic (optional) zlib support
Add interp child interprester support
oo:
Add support for constructor, runs on new object creation
Add support for unknown method
Add Travis and AppVeyor continuous integration support
Use pkg-config in configure to find packages if possibe
Steve Bennett (steveb@workware.net.au)
-- http://jim.tcl.tk/fossil/doc/www/www/news/
Changes in ABCL 1.4.0
Enhancements
============
* Consolidated RUN-PROGRAM fixes (ferada, pipping)
In support of getting a more universal UIOP:RUN-PROGAM across all
contemporary Lisp implementations.
* Upstream consolidated patchset (ferada)
** [r14857] Support `FILE-POSITION` on string streams.
** [r14859] Add multiple disassembler selector.
** [r14860] Add EXTERNAL-ONLY option to APROPOS.
** [r14861] Fix nested classes from JARs not visible with JSS.
* [r14840-2] (Scott L. Burson) Introduced "time of time" semantics for
{encode,decode}-universal time.
* EXTENSIONS:MAKE-TEMP-FILE now takes keyword arguments to
specify values of the prefix and suffix strings to the underlying
JVM implementation of java.io.File.createTempFile().
* [r14849] EXT:OS-{UNIX,WINDOWS}-P now provide a pre-ASDF runtime
check on hosting platform
Fixes
-----
* [r14863] RandomCharacterFile (vibhu)
* [r14839] (JSS) Ensure the interpolation of Java symbol names as
strings (alan ruttenberg)
* [r14889] Fix ANSI-TEST SXHASH.8 (dmiles)
Updates
------
* [r14883] asdf-3.1.7.27
* [r14849] jna-4.2.2
Removed
-------
* [r14885] ASDF-INSTALL was removed
Changes in Racket 6.6
- The new Macro Profiler command-line tool (`raco macro-profiler`) shows
how macros contribute to the final expanded code size of a program.
- Typed Racket supports intersection types. This allows the type system
to track more information, and for programmers to express more precise
types.
- Typed Racket produces up to 4x smaller compiled files compared with
Racket 6.5, reducing the size of the Racket distribution by 50M.
- Typed Racket issues warnings in cases where the contract generated for
`Any` was not strict enough in the past. These warnings will become
errors in a future release. Warnings are enabled via View -> Show Log
in DrRacket, and shown by default on command-line Racket.
- Typed Racket enforces uses of `cast` more correctly, by checking both
the "casted-to" and "casted-from" types. Previously, only the former
were checked. In some cases, this will produce contract errors in
programs that did not have errors before.
- `syntax-parse` raises an error when an ellipsis pattern has an empty
match rather than diverging, and it logs a warning when it statically
detects a nullable pattern, such as `((~seq) ...)`. In the next version
of Racket, it will reject the pattern instead, and it will remove
special handling that currently makes some uses of such patterns
terminate.
- `htdp/dir`: The `create-dir` function delivers data information for
files in a new field. The domain of its functions are backwards
compatible.
Changes in Racket 6.5
- Typed Racket and the racket/contract library generate code with lower
overhead, speeding up typed/untyped interaction in a number of gradual
typing programs we studied.
- Macros written using `syntax-parse` automatically emit more accurate
error messages.
- The contract profiler captures costs from more contract combinators,
including all those in the main distribution.
- Hash table and set iteration, via both existing and new non-generic
sequences, is more performant, up to twice as fast on microbenchmarks.
- The Racket optimizer detects many more optimization opportunities,
including when variables always hold numbers.
- The `db` library supports multi-result statements in MySQL.
- The `net/dns` library supports SRV records.
- The `racket/unix-socket` library supports listen and accept operations.
Use these versions as well in Makefile and PLIST.
It's unclear whether buildlink3.mk might include Makefile.version, this
is the reason to duplicate this information.
There are other packages that might be versioned similarily:
- sqlite3,
- thread.
No user-visible change in the main package.
New in version 1.3.10
* enhancement: more compact low-level error signaling code
* enhancement: more compact encoding of cross-reference information
* optimization: faster out of line fixnum-float comparisons.
* optimization: filling a known simple-vector with a constant value is about
as fast in unoptimized code as in code compiled with (SPEED 3), and the
x86-64 implementation is able to use SSE instructions.
* bug fix: correctly handle the case of a non-local exit within a function
terminating the extent of dynamic-extent functions and variables in the
presence of multiple-values (#1563127)
* bug fix: restore builds on the latest OSX with the latest Xcode (#1470996)
New in version 1.3.9
* minor incompatible change: NAMESTRING prefers to return a BASE-STRING
instead of (ARRAY CHARACTER (*)) when possible.
* enhancement: cached make-instance/allocate-instance constructors can now
get garbage collected.
* optimization: better performance for some unoptimized operations on complex
numbers.
* bug fix: using the options :LOCAL-NICKNAMES and :LOCK in the same
DEFPACKAGE form no longer signals a bogus error
New in version 1.3.8
* minor incompatible change: the system now understands that the CONDITION
type is disjoint with many other system types.
* minor incompatible change: argument types in condition report functions are
now declared (in combination with the above change, this can result in
early detection of erroneous code).
* enhancement: simple arrays of any rank can be stack-allocated on platforms
supporting stack allocation of vectors.
* optimization: improved type derivation for FIND, POSITION, COUNT, SEARCH,
MISMATCH and other array and sequence functions.
* optimization: ALLOCATE-INSTANCE is now as fast as MAKE-INSTANCE.
* optimization: more efficient CHANGE-CLASS.
* bug fix: versions of getresuid() and getresgid() in SB-POSIX no longer
cause memory faults, and should work properly (#1603806, reported by Kieran
Grant)
* bug fix: handle ENOENT from getprotobyname() (#1596043, reported by Stephen
Hassard)
New in version 1.3.7
* bug fix: preserve the name of the destructive function for the destroyed
constant and important result warnings, even when declared NOTINLINE.
* optimization: faster operations on list-sets.
* optimization: better type derivation of set functions. (#1592152)
* optimization: load-time TLS-INDEX assignment, and other microoptimizations,
on x86.
* optimizations in:
+ APPEND;
+ ECASE/ETYPECASE;
+ ARRAY-DIMENSIONS;
+ ARRAY-TOTAL-SIZE;
+ REMOVE, REMOVE-DUPLICATES, DELETE and DELETE-DUPLICATES on lists.
New in version 1.3.6
* bug fix: do not insert conditional newlines in print-unreadable-object
(#1398290). This reverses a change made in #488979 which reversed a fix
advertised in release 0.8.14 to pass the GCL ANSI Test Suite.
* bug fix: constant negative rotations of 32-bit quantities are compiled
correctly on x86-64 and arm. (#1586614, reported by Guillaume Le Vaillant)
- crypto: Don't automatically attempt to load an OpenSSL
configuration file, from the OPENSSL_CONF environment variable
or from the default location for the current platform. Always
triggering a configuration file load attempt may allow an attacker
to load compromised OpenSSL configuration into a Node.js process
if they are able to place a file in a default location.
- node: Introduce the process.release.lts property, set to "Boron".
This value is "Argon" for v4 LTS releases and undefined for all
other releases.
- V8: Backport fix for CVE-2016-5172, an arbitrary memory read.
- v8_inspector: Generate a UUID for each execution of the
inspector. This provides additional security to prevent
unauthorized clients from connecting to the Node.js process via
the v8_inspector port when running with --inspect.
Add LICENSE
Upstream changes:
* 20160813 GnuCOBOL 2.0rc1
** User Defined Functions
** New cobc options:
*** -t listing, -T wide listing, --tlines=lines, lines per page of listing
*** -K <entry>, entry point compile static
*** -i -info, display build/environment
*** -j -job=args, run job after compile
*** -P, generate preprocessor listing
*** -Xref, generate cross reference (requires cobxref)
*** -A, add options to C compile phase
*** -Q, add options to C link phase
*** -D define symbol for Compiler Directive Facility
*** -f<tag>=value override .conf configuration setting
*** -list-reserved, -list-intrinsics, -list-mnemonics, -list-system
*** -W enable ALL warnings (more than -Wall, which excludes some)
*** -Wunreachable report on unreachable statements
*** -Wprototypes warn missing FUNCTION prototypes/definitions
*** -fmfcomment * or / in column 1 as comment
*** -facucomment $ in idicator area treated as *, | treated as *>
*** Many compiler messaging changes, refactored for translation
*** input filename of '-' reads source from standard in
*** New -std=cobol2014
*** new configuration settings
**** call-overflow, literal-length, numeric-literal-length
**** specify-reserved-words
** 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
*** coloured textsuite output
*** Windows(tm) Visual Studio build support files added to source tree
** New GnuCOBOL features
*** User Defined Functions, FUNCTION-ID.
*** Most of the COBOL 2014 spec Compiler Directive Facility is in
*** Spanish and Dutch messages along with English and Japanese
*** More C/C++ reserved words tested to avoid conflicts
*** screen IO, many extended ACCEPT DISPLAY screen section changes
*** stricter ordering of CONFIGURATION SECTION paragraphs
*** PICTURE clause, more to COBOL 2014 spec
*** ACCEPT OMITTED, waits for return/enter
*** More Intrinsic Functions, including ISO 8601 FORMATTED-DATE and TIME
*** Changes to INITIAL and RECURSIVE program handling, needs to improve more
*** More IEEE numeric types added, FLOAT-DECIMAL-16, FLOAT-DECIMAL-34, etc
*** More SWITCHes, from SWITCH-01 to SWITCH-36
*** TALLY special register predefined
*** More literal types added, numeric boolean etc.
*** Nested OCCURS DEPENDING ON (when proper config settings
*** comment keywords in IDENTIFICATION DIVISION treated as end-of-line comments
*** PROCEDURE DIVISION RETURNING OMITTED support matching void C functions
*** New system functions
**** CBL_OC_HOSTED - provides access to C extern variables, like stdin, errno
*** More support for EC-exception codes
*** SET LAST EXCEPTION TO OFF
* All files created by GnuCOBOL runtime use the same file permission settings
now: COB_FILE_MODE which was changed to 0666
Notable changes
- fs:
- SyncWriteStream now inherits from Stream.Writable.
- fs.existsSync() has been undeprecated. fs.exists() remains
deprecated.
- http: http.request() now accepts a timeout option.
- module: The module loader now maintains its own realpath cache.
- npm: Upgraded to 3.10.8
- stream: Duplex streams now show proper instanceof Stream.Writable.
- timers: Improved setTimeout/Interval performance by up to 22%.
Release Notes:
Better R7RS conformance
* Keyword-symbol integration: Gauche keywords (e.g. :key) can be symbols
that are automatically bound to itself. It breaks the backward
compatibility in some corner cases, however, so we haven't make the
change in effect by default in 0.9.5. Setting the environment variable
GAUCHE_KEYWORD_IS_SYMBOL turns on this feature. See Keywords, for the
details. We urge you to test your code with this feature turned on,
for pretty soon (probably in the next release) we'll make this feature
effective by default.
* R7RS raise is now conformant of R7RS (which is slightly different from
Gauche's builtin raise, which is srfi-18 conformant).
New modules and procedures
* Renamed modules (old names are still valid, but new code should use
the new names):
+ Data structure implementations are now named data.*; so
util.queue, util.sparse, util.trie are renamed to data.queue,
data.sparse, data.trie.
+ Module text.unicode is renamed to gauche.unicode, for it's
essential for R7RS support.
* New modules:
+ data.cache - Cache
+ data.heap - Heap
+ data.ring-buffer - Ring buffer
+ data.imap - Immutable map
+ data.ideque - Immutable deque
+ text.console: Simple console control module, works on both
vt100-ish terminals and Windows console. Try examples/snake.scm to
see it in action.
+ util.dominator - Find a dominator tree of a directed graph.
+ util.levenshtein - Calculate various edit-dinstances.
+ util.unification - Unification algorithm.
* Low-level hygienic macro support by er-macro-transformer.
* New builtin macros and procedures:
+ and-let1.
+ macroexpand-all - Expands everything in the given form.
+ sys-available-processors - query # of processor cores at runtime.
+ symbol-append.
+ sys-getgroups, sys-mkdtemp.
+ debug-label - Get unique label of an object.
+ length<?, length>?, length>=?, length=? - We had length<=?, so why
not?
+ encode-float, inverse of decode-float.
* In gauche.uvector:
+ New procedures:string->u32vector!, string->s32vector!,
make-uvector, port->uvector
+ Generic accessor and mutator uvector-ref, uvector-set!.
* In gauche.sequence:
+ New searching procedures - sequence-contains,
break-list-by-sequence, break-list-by-sequence!, sequence->
kmp-stepper.
+ New utilities - common-prefix, common-prefix-io.
* In gauche.array: Add constructors u8array, etc., for the consistency.
* In gauche.lazy: lappend-map
* In gauche.generator: gflatten, uvector->generator.
* In gauche.process:
+ run-process-pipeline - for easier pipelining.
+ shell-tokenize-string.
* In gauche.termios: sys-termios-copy
* In gauche.test:
+ test-none-of - As an expected value.
+ test-script - To test script files.
* In gauche.vport: List ports are added. See open-input-char-list,
open-input-byte-list.
* In data.queue: mtqueue-num-waiting-readers.
* In data.trie: trie-longest-match.
* In data.random: samples$, for random sampling.
* In text.csv: Middle-layer procedures: csv-rows->tuples,
make-csv-header-parser, make-csv-record-parser.
* In rfc.uri: uri-ref to access components of uri conveniently.
* In rfc.http: http-status-code->description.
Added srfi supports
* srfi-69: Basic hash tables
* srfi-111: Boxes
* srfi-112: Environment inquiry
* srfi-113: Sets and Bags
* srfi-114: Comparators
* srfi-117: Mutable queues
* srfi-118: Simple adjustable-size strings
* srfi-121: Generators - Covered by gauche.generator.
* srfi-128: Comparators (reduced) - the comparator is actually built-in
to Gauche's core, so that other built-in mechanism such as hashtables,
treemaps, sort, etc. can take comparators.
* srfi-131: ERR5RS Record Syntax (reduced) - Subset of gauche.record.
* srfi-133: Vector library
* srfi-134: Immutable deques - Covered by data.ideque.
More pleasant interactive experience
* Better error message while loading/compiling, using <mixin-condition>
mechanism. Details.
* Improved describe.
* Toplevel REPL commands. See blog entry, or see the manual section
"Working in REPL"
* Scheme-defined procedures maintain source code and source location. It
can be queried by source-code and source-location. The source location
is also shown by describe. (Source code isn't kept for precompiled
Scheme code for now.)
* Online REPL document (info procedure, or ,info/,doc toplevel command)
now shows just the named entry.
* Experimental support of line-editing. If the environment variable
GAUCHE_READ_EDIT is set and the terminal is capable, you can use line
editing (with emacs-like key binding). This feature still in early
development stage and has number of known issues---especially,
multiline edit only partially work. If you're brave, give it a shot,
but don't blame me if your REPL explodes.
* You can invoke editor from repl by (ed file-or-procedure) (see ed). If
the source location is known, you can directly jump to the source of
the procedure, edit, and reload it.
* Now REPL consumes the trailing newline of input S-expr; that is, when
you type (read-line) on REPL, it waits for your input. Before, REPL
didn't consume the trailing newline, so (read-line) immediately
returned when it sees the newline character left in the input buffer,
but that confused users.
* use, select-module, export, import - Now these forms evaluate to zero
values instead of #<undef>, for less cluttering of REPL.
Other notable improvements
* gauche.configure: More feature tests on compilers and linking. Start
using package.scm for the source of package metainformation.
* Extended number syntax:
+ You can insert _ in prefixed numeric literal for readability, e.g.
#b1101_1000_0001_1101.
+ Polar notation of numeric literal recognize pi suffix, e.g.
2@0.5pi => 0.0+2.0i.
+ The reader recognizes CL-ish #<radix>r syntax, e.g. #3r121 for 121
on base 3 (which is 16 in decimal).
* Hashtables are now salted, meaning, it uses different hash functions
at least for each invocation of the program, so that it is immune to
the hash collision attack. The hash function is deprecated, replaced
by default-hash, portable-hash and legacy-hash. See the manual entry
for the details.
* sys-sleep, sys-nanosleep: Changed to retry sleep/nanosleep by default
if it is interrupted by as signal.
* A new debug special reader macro: #?,, which can be used as #?,(proc
arg ...). When evaluated, it displays the form (proc arg ...) and each
value of arg, then calls proc with those arguments and displays the
return value(s). Similar to #?= but you can also check the actual
value of arguments. The #?= stub is also improved to show the thread
from which it is displaying.
* gauche.vport: open-output-uvector now takes an option to make the
output buffer extendable.
* load searches .sld suffix as well, as some other R7RS implementations
do.
* Stack trace now works for threads (but you have to call report-error
within guard clauses explicitly, for by default unhandled error is
propagated to the thread that calls thread-join!).
* gauche.uvector: s8vector->string and u8vector->string now take
optional 'terminator' argument, convenient to extract NUL-terminated
string from fixed size buffer.
* gauche.net: More flexible port number selection in make-server-socket
and make-server-sockets.
* data.sparse: Allow default value per vector (a sparse vector returns
its default value when unset element is accessed).
* rfc.http: Handles ipv6-style server address spec, e.g. [::1]:8888.
* file.util: copy-file - Now takes :if-exists and :append keyword
arguments.
* crypt.bcrypt: Update bcrypt implementation and changed the default
from 2a to 2b.
* gauche.termios: Support mintty on MSYS.
* rfc.tls: Add basic server-side certificate support.
Changes that may alter the behavior of existing code
* gauche.generator: gtake - changed optional argument spec to match
srfi-121. Existing code that needs the old behavior can use a new
procedure gtake*.
* If a hygienic macro inserts a fresh toplevel identifier, that
identifier is renamed. E.g. if you say
(define-syntax define-x (syntax-rules () ((_) (define x #t))))
and then
(define-x)
the toplevel x is renamed and can't be referred to from outside. This
is not explicitly specified in R7RS, but renaming is consistent with
hygiene.
* U+180e Mongolian Vowel Separator is no longer treated as a whitespace
character, since Unicode 6.3.0 changed its category from Zs to Cf.
* when, unless - Now they require at least one expr in their body.
* require: Now loads a file into a special module, instead of #<module
gauche>. This may catch an error that was previously ignored. See the
manual entry for the details.
* include, include-ci: Now relative pathnames, including ones that begin
with ./ or ../, are taken relative to the includer file. Before, files
beginning with ./ and ../ are treated specially, just like load. But
it is less useful for include and just increases confusion.
Bug fixes
* Fixed numerous bugs in hygienic macro expander.
* When a module exports an inherited binding from renaming, it wasn't
searched properly.
* util.match: Fixed a bug that doesn't handle match expressions
generated by hygienic macros.
* Make -fcase-fold option affect REPL as well.
* fixnum-width: It returned a number one smaller than the correct value.
* Fixed a number reader bug handling very big or very small exponent.
* srfi-13: Fixed a bug in xsubstring when 'from' argument is negative.
* parameterize: Fixed a bug that failed to restore parameter values in
some edge cases.
switch the use of nops (most likely used to eliminate hazards too) to
ehb/ssnop. nop doesn't eliminate hazards on a superscalar MIPS CPU.
probably helps the report of vague problems on loongson2f.
comment for the patch.
note: the choice of o32 for this package is questionable, and defaulting
to n32 on gcc/config.gcc instead is probably the right thing, this package
won't run on platforms that use o32, and the n32 linker can't handle the
o32 objects apparently - it dies with "not enough GOT space for local GOT
entries" (PR toolchain/51521).
defaulting to n32 will allow deleting this patch, but I won't make the
transition because I can't get further in the build and hit a compile
assertion about MTYPE not matching CEXT (double float in my case), similar
to GCC bug #20633.
Some highlights of the release are:
- erts: Improved dirty scheduler support. A purge of a module will
- not have to wait for completion of all ongoing dirty NIF calls.
- erts: Improved accuracy of timeouts on MacOS X.
- kernel: Add net_kernel:setopts/2 and net_kernel:getopts/2 to
- control options for distribution sockets in runtime.
- asn1: Compiling multiple ASN.1 modules in the same directory with
- parallel make (make -j) should now be safe.
- httpd: support for PUT and DELETE in mod_esi
- ~30 contributions since 19.0
You can find the Release Notes with more detailed info at
http://www.erlang.org/download/otp_src_19.1.readme
on platforms which do not include driver-arm.o in gcc/config.host, and do
not have this function. such as netbsd/arm.
an alternative would be to add driver-arm.o for the netbsd/arm case too, but
it would be diverging from netbsd base gcc, and /proc/cpuinfo which is needed
for this function to do anything useful is empty at least on my machine.
(I still can't complete a build on ARM)
it was only a precaution to ensure we don't override other values as well.
append to the value rather than overwriting while adding an irrelevant
(and likely unset) variable. NFC
netbsd/mips gcc defaults to -mips1 which lacks ll/sc instructions
(or anything like them), and rejects the assembly code used here.
switch to mips3 (bare minimum for synchronization primitives) for
these instructions. this will result in runtime failures (illegal
instruction) on mips1, but we're unlikely to see any such users
(MIPS3 was released in 1992).
I'm not comfortable using the proper fix of switching to using
__sync_* because that seems to be a compiler builtin and gcc 4.1.2
might not have it.
Also, that change requires careful testing that this 'dumb' change
doesn't. Additionally, g95 is a dead end (upstream gone), so not
worth the effort.
PR pkg/44547: pkgsrc build failure for g95 on NetBSD/cobalt
No change for i386/amd64, but arm needs additional extra_objs to build.
Mistake was in a netbsd-specific part of configure as well.
Thanks to Richard Earnshaw and ktkachov at GCC for finding the problem.
it fails at configure as an unsupported language for powerpc, and is not
too useful.
not bumping pkgrevision as requested - it shouldn't matter to anyone who
already has the package, even on netbsd, and avoids an expensive rebuild.
- openssl: Remove support for loading dynamic third-party engine
modules. An attacker may be able to hide malicious code to be
inserted into Node.js at runtime by masquerading as one of the
dynamic engine modules.
- http: CVE-2016-5325 - Properly validate for allowable characters
in the reason argument in ServerResponse#writeHead().
- buffer: Zero-fill excess bytes in new Buffer objects created
with Buffer.concat() while providing a totalLength parameter
that exceeds the total length of the original Buffer objects
being concatenated.
- src: Fix regression where passing an empty password and/or salt
to crypto.pbkdf2() would cause a fatal error
- tls: CVE-2016-7099 - Fix invalid wildcard certificate validation
check whereby a TLS server may be able to serve an invalid
wildcard certificate for its hostname due to improper validation
of *. in the wildcard string.
- v8: Fix regression where a regex on a frozen object was broken
- openssl: Remove support for loading dynamic third-party engine
modules. An attacker may be able to hide malicious code to be
inserted into Node.js at runtime by masquerading as one of the
dynamic engine modules.
- http: CVE-2016-5325 - Properly validate for allowable characters
in the reason argument in ServerResponse#writeHead().
- buffer: Zero-fill excess bytes in new Buffer objects created
with Buffer.concat() while providing a totalLength parameter
that exceeds the total length of the original Buffer objects
being concatenated.
- tls: CVE-2016-7099 - Fix invalid wildcard certificate validation
check whereby a TLS server may be able to serve an invalid
wildcard certificate for its hostname due to improper validation
of *. in the wildcard string.
cint is no longer developed upstream and was replaced with cling in root.
Add the latest version available from https://root.cern.ch/download/
New HOMEPAGE ships an unversioned tarball as the latest release, but its
conent is unrecognized and very different from the known cint from the old
cern.ch site.
FreeBSD claims to ship with cint-5.18 and there are references to it, but
it's probably root version 5.18 with possibly extracted files for cint.
If there is a newer version somewhere it will be upgraded later accordingly.
pkgsrc changes:
- refactor configure & build & install stages
- install demo files
- add license
- update DESCR
- new HOMEPAGE
- new MASTER_SITES
- remove conflict with devel/man-pages
Upstream changelog
==================
* 5.16.2, July 14 2005
* 6.1.2, July 14 2005
* - , Convert most of the C source file from K&R C to Ansi C++
* - The files *.c were renamed v6_*.cxx. The interfaces are
* - kept backward compatible (extern "C")
*
* 5.16.3, November 11, 2005
* 6.1.3, November 11, 2005
* - , Port to windows visual C++ version 8
* - , Many bugs fixes (see CVS change log for details)
*
* 5.16.4 November 30, 2005
* 6.1.4 November 30, 2005
* - Add support for generating dictionary using the reflex API (makecint -c3)
* - See CVS Change log for other updates.
*
* 5.16.5 November 30, 2005
* 6.1.5 November 30, 2005
* - Improve support for generating dictionary using the reflex API (makecint -c3)
* - Extend ClassInfo to better support array allocation and deallocation
* - See CVS Change log for other updates.
*
* 5.16.6 January 9, 2006
* 6.1.6 January 9, 2006
* - Import and use the shadow class mechanism from ROOT. This allows the
* calculation of the data member offset even if they are protected/private.
* - See CVS Change log for other updates (http://root.cern.ch/root/ChangeLog-cint.phtml)
*
* 5.16.7 January 19, 2006
* 6.1.7 January 19, 2006
* - Many improvement to the shadow class generation.
* - See CVS Change log for other updates (http://root.cern.ch/root/ChangeLog-cint.phtml)
*
* 5.16.8 February 9, 2006
* 6.1.8 February 9, 2006
* - Update and streamline the handling operator new and delete
* - See CVS Change log for other updates (http://root.cern.ch/root/ChangeLog-cint.phtml)
*
* 5.16.9 March 3, 2006
* 6.1.9 March 3, 2006
* - Upgrade the support for operator new and delete in the dictionaries (improve usage
of user provided operator new).
* - Add a new command line option (-E) to insure exit on error.
* - Improve error message in case of missing symbols.
* - See CVS Change log for other updates (http://root.cern.ch/root/ChangeLog-cint.phtml)
*
* 5.16.10 March 30, 2006
* 6.1.10 March 30, 2006
* - Refresh of the port to icc and alpha cxx
* - Fix for comment parsing in the CPP parser.
* - See CVS Change log for other updates (http://root.cern.ch/root/ChangeLog-cint.phtml)
*
* 5.16.11 April 14, 2006
* 6.1.10 April 14, 2006
* - Improve template support
* - Port to MacOS on Intel
* - See CVS Change log for other updates (http://root.cern.ch/root/ChangeLog-cint.phtml)
*
* 5.16.12 May 16, 2006
* 6.1.12 May 16, 2006
* - Add support for variadic functions on AMD64 and EM64T.
* - See CVS Change log for other updates (http://root.cern.ch/root/ChangeLog-cint.phtml)
*
* 5.16.13 June 8, 2006
* 6.1.13 June 8, 2006
* - New build system based on the configure/make model. MAKEINFO is not longer used.
* - A few more function has been officially exported and/or added to the appropriate
* header files
* - See CVS Change log for other updates (http://root.cern.ch/root/ChangeLog-cint.phtml)
*
* 5.16.14 August 18, 2006
* 6.1.14 August 18, 2006
* - Clarification of the license (Now MIT License)
* - See CVS Change log for other updates (http://root.cern.ch/root/ChangeLog-cint.phtml)
*
* 5.16.15 September 21, 2006
* 6.1.15 September 21, 2006
* - Various bug fixes (include a couple of cint dlls cleanups)
* - See CVS Change log for other updates (http://root.cern.ch/root/ChangeLog-cint.phtml)
*
* 5.16.16 November 24, 2006
* 6.1.16 November 24, 2006
* - Some minor bug fixes: remove G__CINTVERSION from strm dict files, AMD64 vararg passing, long comments, extern "C" multiline issue
* - G__sizeof, G__getfunction now part of the API
* - respect system macros when generating dictionaries
* - Move public header files into inc/
* - Changes to achieve binary compatibility with cint7; some of these are temporary
* - Move C++ API into namespace Cint
* - added build support for linux x86_64
* - See CVS Change log for other updates (http://root.cern.ch/root/ChangeLog-cint.phtml)
*
* 5.16.17 December 12, 2006
* 6.1.17 December 12, 2006
* - Some previously publicly visibly types are now private. Please let us know if this
* causes problems for you!
* - G__MethodInfo::Get/SetUserParam() added
* - extend G__ClassInfo::AddMethod
* - the relevant platform macros are now known to CINT, except when interpreting where the
* compiler macros (e.g. __GNUC__) are hidden
* - Fix prec_stl for solarisgcc, cygwin (posix)
*
* 5.16.18 February 9, 2007
* 6.1.18 February 9, 2007
* - Fix a few bugs (fix arithmetics involving long double, "!",
* LL suffix for operators' long long args, quoting of default
* params,
* - Implement G__pop_tempobject_nodel() to "steal" temp object from CINT
* - modify algo.h's random_shuffle to use new Cint::G__long_random in new v6_random.cxx
* - make G__free_ifunc_table non-recursive
* - for ROOT, use R__HAVE_CONFIG, not HAVE_CONFIG
*
* 5.16.19 March 16, 2007
* 6.1.19 March 16, 2007
* - handle 1dim arrays properly (!= scalar)
* - more memory effient G__param and G__inherit
* - implement forward decl in dictionaries (e.g. if dict for "A* f()" is
* setup, lib containing A will not be loaded)
* - add a reference layer between API ifunc* and internal ifunc*, so
* reloading (scrupto of scripts) doesn't invalidate the external
* ptrs for dependent libs
* - update tagnums below scrupto limit if they are autoload entries
* - allow multiple shared lib init routines
* - bug fixes: fix decl locations in .so-s, distinguish "class*",
* "decl if unknown" in G__search_tagname
* - split Shadow.h off Api.h
* - remove temporary files on windows once they are unused (fixes problem
* with tmp file flooding)
*
configs for gcc on netbsd don't build -march=native support, but this
stray prototype was left, causing build errors:
gcc.o:(.rodata+0x58c4): undefined reference to
`host_detect_local_cpu(int, char const**)'
Notable changes
- crypto: Added crypto.timingSafeEqual().
- events: Made the "max event listeners" memory leak warning more
accessible.
- promises: Unhandled rejections now emit a process warning after
the first tick.
- repl: Added auto alignment for .editor mode.
- util: Some functionality has been added to util.inspect():
- Returning this from a custom inspect function now works.
- Added support for Symbol-based custom inspection methods.