Add a reference to SageMath that was forgotten for a patch added with
revision 537602.
Reviewed by: thierry
Approved by: olgeni (maintainer), gerald (mentor)
Differential Revision: https://reviews.freebsd.org/D25180
This release fixes numerous bugs, and makes a lot of improvements to the
standard library, using inline assembly to enhance performance and reduce
size.
PR: 246961
Submitted by: Charles Childers
This includes an upstream contribution of mine that defines __ILP32__
on all 32-bit x86 targets. [1]
It also adds Zeus support for aarch64 and two aarch64 fixes, plus two
for gcov, and one for the Fortran front end.
PR: 246288 [1]
Upstream switched to meson for their build system so do the same as
it will be easier to find problems sooner than later.
This also switch to python3, python is only used for the build.
There is more thing enabled by default (or auto-enabled based on some
configuration) so we need to disable a lot more things than with autotools.
This should be a non functional change.
Reviewed by: zeising (x11@)
Differential Revision: https:/reviews.freebsd.org/D25092
- Remove devel/cargo-tree since it is now integrated into cargo
- Add patch to fix build with LibreSSL 3.1.x and 3.2.0 [1]
- Force rebuild all consumers to catch regressions early
Changes: https://blog.rust-lang.org/2020/06/04/Rust-1.44.0.html
PR: 246332 [1]
Tested by: mikael, tobik
With hat: rust
Differential Revision: https://reviews.freebsd.org/D25099
20200531:
- The libraries tar.s7i, cpio.s7i and rpm.s7i have been improved such
that the file system functions follow symbolic links (inside of the
archive).
- The library zip.s7i has been improved to support the functions
setFileMode(), setMTime() and putFile().
- The library ar.s7i has been improved to allow UTF-8 file names and to
support the functions setFileMode(), setMTime(), putFile() and
removeFile().
- The library rpm.s7i has been improved to support a LZMA compressed
payload.
- The library cpio.s7i has been improved such that setFileMode(),
putFile() and mkdir() work correct.
- The library lzma.s7i has been fixed such that xz.s7i can handle
uncompressed chunks in an XZ archive. A bug in the function length()
has been fixed also.
- The new library fileutil.s7i has been added. This library supports
inserting and deleting areas in a file. The function copyFile, which
copies data between open files, has been moved from file.s7i to
fileutil.s7i.
- The function truncate(), which changes the length of a file, has been
added to file.s7i, external_file.s7i, clib_file.s7i, strifile.s7i and
utf16.s7i.
- The library iobuffer.s7i has been improved to allow switching between
reading and writing (and vice versa) as long as seek() is called in
between. The functions flush() and close() have been added and the
functions seek(), tell() and moveLeft() have been improved.
- The function deflate(), which deflates a string has been added to the
library deflate.s7i.
- The function moveLeft() has been improved in strifile.s7i and
stritext.s7i.
- The function timestamp1601 has been added to time.s7i.
- The bas7.sd7 (basic interpreter) example program has been improved.
Support for LINPUT statements, for the function RPT$ and for the
string concatenation operator & has been added. The predefined
subprogram CHAR has been improved. Now PRINT statemens allow a colon
(:) between strings to describe a line break. Now INPUT statements
allow a colon (:) between input prompt and variable list. A dummy
implementation of the predefined subprogram SOUND has been defined.
- In seed7_05.s7i the definition of ::= for the type void has been
changed to use the action ENU_CREATE instead of PRC_NOOP. This avoids
a strange interpreter message (loc not dumped) if a void value is
written.
- Tests in chkint.sd7 have been split into several functions.
- Documentation in the FAQ, the manual and s7c.1 has been improved.
- Interpreter and compiler have been improved to support the new action
FIL_TRUNCATE.
- The compiler has been improved (in comp/inline.s7i in the function
push_inline_func_param) to add a "const" for a parameter definition.
This avoids a compilation error with g++.
This brings five backports between aarch64 and x86, nine between c++
and libstdc++, and seven for Fortran.
Register a conflict with the new lang/gcc10 port (which already marks
a conflict with us).
Introduce a new option called SAGE and enabled by default in order to have
ecl working with sage.
Also:
- Move bohem-gc dependency from THREADS_LIB_DEPENDS_OFF to LIB_DEPENDS.
- Build with libatomic_ops from ports rather than with the bundled library.
- Replace explicit settings of CFLAGS and LDFLAGS by USES=localbase.
- Add USES+= autoreconf.
This work is based on https://reviews.freebsd.org/D24958 submitted by
thierry.
Submitted by: thierry (based on)
Reviewed by: thierry (original submitter)
Approved by: olgeni (maintainer), gerald (mentor)
Differential Revision: https://reviews.freebsd.org/D25096
https://gcc.gnu.org/gcc-10/changes.html has a comprehensive overview of
many improvements and changes and https://gcc.gnu.org/gcc-10/porting_to.html
highlights issues you may encounter porting to this version, though this
release series should not bring too many, -fno-common now being the default
probably is the one with the largest impact.
To give a brief overview of some of the more noticable changes:
Several new features from the upcoming C2X revision of the ISO C standard
are supported with -std=c2x and -std=gnu2x. Some of these are also supported
as extensions when compiling for older language versions.
Several C++20 features have been implemented and the libstdc++ runtime
library has improved experimental C++2a support.
Caveat: The ABI of passing and returning certain C++ classes by value
changed on targets including AArch64, ARM, PowerPC ELFv2 in -std=c++17
and -std=c++20 modes.
-fanalyzer enables a new static analysis pass and associated warnings,
which is more time-consuming, but detects various common errors such as
double-free bugs. This is still work in progress, yet definitely worth
a try!
Extended characters in identifiers may now be specified directly in the
input encoding (UTF-8 by default) for the C family of languages, so you
can write "const int naïve_π = 3;".
The __has_builtin built-in preprocessor operator can be used to query
support for built-in functions and __builtin_roundeven has been added.
On the Fortran side, the default buffer size for I/O using unformatted
files has been increased to 1048576 (and can now be set at run time),
mismatches between actual and dummy argument lists in a single file are
now rejected with an error (which can be disabled via the new optoins
-fallow-argument-mismatch), the handling of a BOZ literal constant has
been reworked to provide better conformance to the Fortran 2008 and 2018
standards, and more.
Optimization-wise, -fallocation-dce removes unneeded pairs of new and
delete operators and -fprofile-partial-training, -fprofile-reproducible,
and -fprofile-prefix-path allow for more control over the use of profiles.
The inter-procedural optimizers (IPO) have seen many improvements: The
inter-procedural scalar replacement of aggregates (IPA-SRA) pass now
operates at link time and can remove computing/returning unused return
values; -finline-functions is now enabled at -O2 and was retuned; inliner
heuristics and function cloning use value-range information to predict
the effectivity of individual transformations; and more.
Similarly many improvements around link-time optimizations (LTO): A new
binary lto-dump shows various information about LTO bytecode object files;
the parallel phase of LTO automatically detects a running make's jobserver;
LTO bytecode can be compressed with the zstd algorithm; profile maintenance
during compilation and hot/cold code partitioning has been improved.
Version 2.6 of the OpenACC specification is now supported by the C, C++ and
Fortran compilers. GCC 10 adds a number of newly implemented OpenMP 5.0
features on top of the GCC 9 release such as conditional lastprivate clause,
scan and loop directives, order(concurrent) and use_device_addr clauses
support, if clause on simd construct or partial support for the declare
variant directive, getting closer to full support of the OpenMP 5.0 standard.
A new warning -Wstring-compare, enabled by -Wextra, warns about equality
and inequality expressions between zero and the result of a call to either
strcmp and strncmp in some cases. -Wzero-length-bounds, enabled by
-Warray-bounds, warns about accesses to elements of zero-length arrays
that might overlap other members of the same object.
Numerous enhancements to existing warnings, e.g. -Warray-bounds detects
more out-of-bounds accesses to member arrays as well as accesses to elements
of zero-length arrays, -Wformat-overflow makes full use of string length
information computed by the strlen optimization pass, -Wrestrict detects
overlapping accesses to dynamically allocated objects, -Wreturn-local-addr
diagnoses more instances of return statements returning addresses of
automatic variables, -Wstringop-overflow detects more out-of-bounds stores
to member arrays including zero-length arrays, dynamically allocated
bjects and variable length arrays, as well as more instances of reads
of unterminated character arrays by string built-in functions,
-Warith-conversion re-enables warnings from -Wconversion, -Wfloat-conversion,
and -Wsign-conversion that are now off by default for an expression where the
result of an arithmetic operation will not fit in the target type due to
promotion, but the operands of the expression do fit in the target type.
All architectures have seen improvements, and aarch64 notably has seen
several related to the Scalable Vector Extension (SVE).
The automatic template instantiation at link time (-frepo) has been
removed (finally).
Offloading to Heterogeneous System Architecture Intermediate Language
(HSAIL) has been deprecated and will likely be removed in a future release.
PR: 246700
/usr/bin/as will soon be removed from the FreeBSD base system, for
FreeBSD 13.0.
Depend on as (not ${LOCALBASE}/bin/as) so that this will introduce no
change for existing 11.x and 12.x, which will continue to use the base
system GNU as 2.17.50.
PR: 205250 [exp-run]
Approved by: portmgr (blanket)
Sponsored by: The FreeBSD Foundation
/usr/bin/as will soon be removed from the FreeBSD base system, for
FreeBSD 13.0.
Depend on as (not ${LOCALBASE}/bin/as) so that this will introduce no
change for existing 11.x and 12.x, which will continue to use the base
system GNU as 2.17.50.
PR: 205250
Approved by: portmgr (blanket)
Sponsored by: The FreeBSD Foundation