1
0
mirror of https://git.FreeBSD.org/ports.git synced 2024-11-24 00:45:52 +00:00
freebsd-ports/lang/Makefile
Gerald Pfeifer 0032df7f14 Welcome GCC 9.1, the first release of the GCC 9 series!
https://gcc.gnu.org/gcc-9/changes.html has a comprehensive overview of
many improvements and changes and https://gcc.gnu.org/gcc-8/porting_to.html
addresses issues you may encounter porting to this new version, though
this release series should have fewer of those than previous ones.

To provide a brief overview of some of the more noticable changes:

GCC's diagnostics now print source code with a left margin showing line
numbers.  This is configurable via -fno-diagnostics-show-line-numbers.
Plus there have been lots of further improvements around diagnostic
messages in general as -fopt-info.

As usual a large number of improvements to code generation, including
but by far not limited to the following:
 - Switch expansion (into expressions).
 - Inliner defaults are tuned to better suit modern C++ codebases,
   especially when built with link time optimizations.
 - Hot/cold partitioning is now more precise and aggressive.
 - Improved scalability for very large translation units.
 - Link-time optimization improvements including faster compilation.

A new option -flive-patching=[inline-only-static|inline-clone] has
been introduced to provide a safe compilation for live-patching.

A new pair of profiling options -fprofile-filter-files and
-fprofile-exclude-files help filter which source files are instrumented.

New built-in functions __builtin_expect_with_probability,
__builtin_has_attribute, and __builtin_speculation_safe_value.

Significant effort has been put into refining existing compiler warnings
and adding additional diagnostics. One notable addition is -Wabsolute-value
which warns for calls to standard functions that compute the absolute value
of an argument when a more appropriate standard function is available. For
example, calling abs(3.14) warns because the appropriate function to
compute the absolute value of a double argument is fabs.

The spelling corrector now considers transposed letters, and the threshold
for similarity has been tightened, to avoid nonsensical suggestions.

A new option --completion provides better option completion in a shell
(such as bash).

OpenACC support in C, C++, and Fortran continues to be maintained and
improved. Most of the OpenACC 2.5 specification is implemented.

Version 5.0 of the OpenMP specification is now partially supported in
the C and C++ compilers.

There is now experimental support for the upcoming C2X revision of the
ISO C standard (via the -std=c2x and similar options).

The C++ front end has experimental support for some of the upcoming
C++2a draft features, enabled by the -std=c++2a or -std=gnu++2a options.
This includes range-based for statements with initializer, default
constructible and assignable stateless lambdas, lambdas in unevaluated
contexts, language support for empty data members, allowing pack expansion
in lambda init-capture, likely and unlikely attributes, class types in
non-type template parameters, allowing virtual function calls in constant
expressions, explicit(bool), std::is_constant_evaluated, nested inline
namespaces, etc.

The C++17 implementation is no longer experimental and parallel algorithms
and <execution> and <memory_resource> are available.  Using the types and
functions in <filesystem> does not require linking with -lstdc++fs any more.

On the Fortran side asynchronous I/O is now fully supported; FINDLOC and
IS_CONTIGUOUS and other intrinsics have been implemented.

The MAX and MIN intrinsics are no longer guaranteed to return any
particular value in case one of the arguments is a NaN. This conforms
with the Fortran standard and what other Fortran compilers do.

A new option -fdec-include, set also by -fdec, has been added for
compatibility with legacy code.  With this option, the INCLUDE directive
is parsed also as a statement, which allows it to be written on multiple
source lines with line continuations.

Support for the Cell Broadband Engine (SPU), and thus powerpcspe on
FreeBSD as well, has been removed for lack of upstream maintainership.

Also there's been a minor ABI change on arm* targets (that GCC warns
about by default, controlled by the -Wpsabi option).

Support for the D programming language has been added to GCC, implementing
version 2.076 of the language and run-time library, though this port does
not enable this yet.  Volunteers welcome to test and contribute.
2019-06-01 18:06:12 +00:00

388 lines
8.8 KiB
Makefile

# $FreeBSD$
#
COMMENT = Programming languages
SUBDIR += Gofer
SUBDIR += J
SUBDIR += abcl
SUBDIR += adacontrol
SUBDIR += afnix
SUBDIR += alchemist.el
SUBDIR += algol68g
SUBDIR += angelscript
SUBDIR += arena
SUBDIR += asis
SUBDIR += asn1c
SUBDIR += atlast
SUBDIR += awka
SUBDIR += bas2tap
SUBDIR += basic256
SUBDIR += beignet
SUBDIR += bf2c
SUBDIR += bsh
SUBDIR += bwbasic
SUBDIR += c
SUBDIR += cbmbasic
SUBDIR += ccl
SUBDIR += cdent
SUBDIR += ceylon
SUBDIR += cfortran
SUBDIR += chaiscript
SUBDIR += chez-scheme
SUBDIR += chibi-scheme
SUBDIR += chicken
SUBDIR += chicken5
SUBDIR += cim
SUBDIR += cint
SUBDIR += cjs
SUBDIR += cling
SUBDIR += clips
SUBDIR += clisp
SUBDIR += clojure
SUBDIR += clojure-mode.el
SUBDIR += clover
SUBDIR += cmucl
SUBDIR += cmucl-extra
SUBDIR += cocor
SUBDIR += coffeescript
SUBDIR += cparser
SUBDIR += crystal
SUBDIR += csharp-mode.el
SUBDIR += cython
SUBDIR += diveintopython
SUBDIR += dlang-tools
SUBDIR += dlv
SUBDIR += dmd1
SUBDIR += dmd2
SUBDIR += duktape
SUBDIR += duktape-lib
SUBDIR += ecl
SUBDIR += elan
SUBDIR += elixir
SUBDIR += elixir-mode.el
SUBDIR += elk
SUBDIR += emacs-lisp-intro
SUBDIR += erlang
SUBDIR += erlang-doc
SUBDIR += erlang-java
SUBDIR += erlang-man
SUBDIR += erlang-riak
SUBDIR += erlang-runtime15
SUBDIR += erlang-runtime16
SUBDIR += erlang-runtime17
SUBDIR += erlang-runtime18
SUBDIR += erlang-runtime19
SUBDIR += erlang-runtime20
SUBDIR += erlang-runtime21
SUBDIR += erlang-runtime22
SUBDIR += erlang-wx
SUBDIR += execline
SUBDIR += expect
SUBDIR += f2c
SUBDIR += fasm
SUBDIR += ferite
SUBDIR += ficl
SUBDIR += fpc
SUBDIR += fpc-base
SUBDIR += fpc-docs
SUBDIR += fpc-lua
SUBDIR += fpc-rexx
SUBDIR += fpc-rtl-console
SUBDIR += fpc-rtl-extra
SUBDIR += fpc-rtl-objpas
SUBDIR += fpc-rtl-unicode
SUBDIR += fpc-units
SUBDIR += fpc-utils
SUBDIR += fsharp
SUBDIR += fth
SUBDIR += gambit-c
SUBDIR += gauche
SUBDIR += gawk
SUBDIR += gcc
SUBDIR += gcc-ecj45
SUBDIR += gcc10-devel
SUBDIR += gcc48
SUBDIR += gcc5
SUBDIR += gcc6
SUBDIR += gcc6-aux
SUBDIR += gcc7
SUBDIR += gcc7-devel
SUBDIR += gcc8
SUBDIR += gcc8-devel
SUBDIR += gcc9
SUBDIR += gcc9-devel
SUBDIR += gforth
SUBDIR += ghc
SUBDIR += gjs
SUBDIR += gnat_util
SUBDIR += gnatcross-aarch64
SUBDIR += gnatcross-binutils-aarch64
SUBDIR += gnatcross-sysroot-aarch64
SUBDIR += gnatdroid-armv7
SUBDIR += gnatdroid-binutils
SUBDIR += gnatdroid-binutils-x86
SUBDIR += gnatdroid-sysroot
SUBDIR += gnatdroid-sysroot-x86
SUBDIR += gnatdroid-x86
SUBDIR += gnu-cobol
SUBDIR += gnustep-base
SUBDIR += go
SUBDIR += go14
SUBDIR += gomacro
SUBDIR += gprolog
SUBDIR += gravity
SUBDIR += groovy
SUBDIR += gscheme
SUBDIR += guile
SUBDIR += guile2
SUBDIR += harbour
SUBDIR += haskell-mode.el
SUBDIR += hla
SUBDIR += hope
SUBDIR += hs-brainfuck
SUBDIR += hs-unlambda
SUBDIR += huc
SUBDIR += hugs
SUBDIR += icc
SUBDIR += ici
SUBDIR += icon
SUBDIR += intercal
SUBDIR += io
SUBDIR += io-devel
SUBDIR += itcl
SUBDIR += itcl4
SUBDIR += jakarta-commons-jelly
SUBDIR += janet
SUBDIR += jimtcl
SUBDIR += jruby
SUBDIR += js_of_ocaml
SUBDIR += julia
SUBDIR += julia06
SUBDIR += julia07
SUBDIR += julia10
SUBDIR += julia11
SUBDIR += jython
SUBDIR += kawa
SUBDIR += kf5-kross
SUBDIR += kross-interpreters
SUBDIR += kturtle
SUBDIR += lafontaine
SUBDIR += lci
SUBDIR += ldc
SUBDIR += lfe
SUBDIR += libhx
SUBDIR += libobjc2
SUBDIR += librep
SUBDIR += libstdc++_stldoc_4.2.2
SUBDIR += linux-c6-tcl85
SUBDIR += linux-c7-tcl85
SUBDIR += linux-dotnet-cli
SUBDIR += linux-dotnet-runtime
SUBDIR += linux-dotnet-sdk
SUBDIR += linux-dotnet10-runtime
SUBDIR += linux-dotnet11-runtime
SUBDIR += linux-dotnet11-sdk
SUBDIR += linux-j
SUBDIR += lua-ada
SUBDIR += lua51
SUBDIR += lua52
SUBDIR += lua53
SUBDIR += luajit
SUBDIR += malbolge
SUBDIR += maude
SUBDIR += mawk
SUBDIR += mdk
SUBDIR += micropython
SUBDIR += mit-scheme
SUBDIR += mixal
SUBDIR += mlton
SUBDIR += mmix
SUBDIR += modula3
SUBDIR += mono
SUBDIR += mono-basic
SUBDIR += mosh
SUBDIR += mosml
SUBDIR += mtasc
SUBDIR += mujs
SUBDIR += munger
SUBDIR += myrddin
SUBDIR += nawk
SUBDIR += nbc
SUBDIR += nbfc
SUBDIR += neko
SUBDIR += nesasm
SUBDIR += newlisp
SUBDIR += newlisp-devel
SUBDIR += nhc98
SUBDIR += nickle
SUBDIR += nim
SUBDIR += nml
SUBDIR += nqc
SUBDIR += nwcc
SUBDIR += nx
SUBDIR += nyan
SUBDIR += ocaml
SUBDIR += ocaml-autoconf
SUBDIR += ocaml-camlidl
SUBDIR += ocaml-nox11
SUBDIR += ohugs
SUBDIR += onyx
SUBDIR += oo2c
SUBDIR += opencoarrays
SUBDIR += opendylan
SUBDIR += ott
SUBDIR += owl-lisp
SUBDIR += p2c
SUBDIR += p5-Data-JavaScript
SUBDIR += p5-Error
SUBDIR += p5-Expect
SUBDIR += p5-ExtUtils-F77
SUBDIR += p5-Interpolation
SUBDIR += p5-JSAN
SUBDIR += p5-JavaScript-SpiderMonkey
SUBDIR += p5-JavaScript-Squish
SUBDIR += p5-JavaScript-Value-Escape
SUBDIR += p5-List-MoreUtils
SUBDIR += p5-List-MoreUtils-XS
SUBDIR += p5-Marpa
SUBDIR += p5-Marpa-PP
SUBDIR += p5-Marpa-XS
SUBDIR += p5-Modern-Perl
SUBDIR += p5-Perl6-Subs
SUBDIR += p5-Promises
SUBDIR += p5-Pugs-Compiler-Rule
SUBDIR += p5-Quantum-Superpositions
SUBDIR += p5-Scalar-List-Utils
SUBDIR += p5-Switch
SUBDIR += p5-Tcl
SUBDIR += p5-Test-XPath
SUBDIR += p5-Try-Catch
SUBDIR += p5-Try-Tiny
SUBDIR += p5-Try-Tiny-Retry
SUBDIR += p5-TryCatch
SUBDIR += p5-ePerl
SUBDIR += p5-signatures
SUBDIR += p5-v6
SUBDIR += parrot
SUBDIR += pbasic
SUBDIR += pcc
SUBDIR += perl5-devel
SUBDIR += perl5.26
SUBDIR += perl5.28
SUBDIR += perl5.30
SUBDIR += petite-chez
SUBDIR += pfe
SUBDIR += phantomjs
SUBDIR += pharo
SUBDIR += phc
SUBDIR += php-mode.el
SUBDIR += php71
SUBDIR += php71-extensions
SUBDIR += php72
SUBDIR += php72-extensions
SUBDIR += php73
SUBDIR += php73-extensions
SUBDIR += picoc
SUBDIR += pocl
SUBDIR += polyml
SUBDIR += ponyc
SUBDIR += ptoc
SUBDIR += pure
SUBDIR += py-hy
SUBDIR += py-mx-base
SUBDIR += py-prolog
SUBDIR += py-qt5-qml
SUBDIR += pypy
SUBDIR += pypy3
SUBDIR += python
SUBDIR += python-doc-html
SUBDIR += python-doc-pdf-a4
SUBDIR += python-doc-pdf-letter
SUBDIR += python-doc-text
SUBDIR += python-mode.el
SUBDIR += python-tools
SUBDIR += python2
SUBDIR += python27
SUBDIR += python3
SUBDIR += python35
SUBDIR += python36
SUBDIR += python37
SUBDIR += qscheme
SUBDIR += quack
SUBDIR += racket
SUBDIR += racket-minimal
SUBDIR += ratfor
SUBDIR += referenceassemblies-pcl
SUBDIR += retro12
SUBDIR += rexx-imc
SUBDIR += rexx-regina
SUBDIR += rexx-regutil
SUBDIR += rexx-wrapper
SUBDIR += rhino
SUBDIR += rubinius
SUBDIR += ruby24
SUBDIR += ruby25
SUBDIR += ruby26
SUBDIR += runawk
SUBDIR += rust
SUBDIR += rust-nightly
SUBDIR += sagittarius-scheme
SUBDIR += sather-specification
SUBDIR += sather-tutorial
SUBDIR += sbcl
SUBDIR += scala
SUBDIR += scala-docs
SUBDIR += scheme48
SUBDIR += scm
SUBDIR += sdcc
SUBDIR += see
SUBDIR += seed7
SUBDIR += siod
SUBDIR += sisc
SUBDIR += sketchy
SUBDIR += slib
SUBDIR += slib-guile
SUBDIR += slib-guile2
SUBDIR += slisp
SUBDIR += smalltalk
SUBDIR += smlnj
SUBDIR += snobol4
SUBDIR += solidity
SUBDIR += spidermonkey17
SUBDIR += spidermonkey185
SUBDIR += spidermonkey24
SUBDIR += spidermonkey52
SUBDIR += spl
SUBDIR += squeak
SUBDIR += squirrel
SUBDIR += starlogo
SUBDIR += stldoc
SUBDIR += swi-pl
SUBDIR += swift
SUBDIR += tcbasic
SUBDIR += tcc
SUBDIR += tcl-manual
SUBDIR += tcl-wrapper
SUBDIR += tcl85
SUBDIR += tcl86
SUBDIR += tcl87
SUBDIR += tclX
SUBDIR += tinypy
SUBDIR += tolua
SUBDIR += tolua++
SUBDIR += tuareg-mode.el
SUBDIR += twelf
SUBDIR += ucc
SUBDIR += urweb
SUBDIR += v8
SUBDIR += vala
SUBDIR += visualworks
SUBDIR += yabasic
SUBDIR += yap
SUBDIR += yap-devel
SUBDIR += yorick
SUBDIR += ypsilon
.include <bsd.port.subdir.mk>