GNU Mes 0.26 released

2023-12-03 Thread Janneke Nieuwenhuizen
We are happy to announce the release of GNU Mes 0.26.

It's been only a month since the previous release mainly because most
this work has been waiting for 0.25 to be released.  This release
represents 194 commits over one year by two people.  This release brings
Guile module support and support for running Gash and Gash-Utils.

We are excited that the NLnet Foundation is sponsoring this work!

What's next?

Bringing the Full Source Bootstrap to NixOS.  Remove indirect Guile
dependencies (via Gash and Gash-Utils) from the Mes bootstrap in Guix.
Support for bootstrapping gcc-4.6.4, and a Full Source Bootstrap for
armhf-linux, and riscv64-linux.

Enjoy!

* About

  GNU Mes is a Scheme interpreter and C compiler for bootstrapping the
  GNU System.  It has helped to decimate the number and size of binary
  seeds that were used in the bootstrap of GNU Guix 1.0.  Recently,
  version 0.24.2 has realized the first Full Source Bootstrap for Guix
  
.
  The final goal is to help create a full source bootstrap as part of
  the bootstrappable builds effort  for any
  UNIX-like operating system.

  Mes + MesCC + Mes C Library can build a bootstrappable TinyCC
   that is self-hosting.  Using this
  bootstrappable-tcc and the Mes C library we can build an ancient
  version of the GNU tools triplet: glibc-2.2.5, binutils-2.20.1,
  gcc-2.95.3.  This is enough to bootstrap Guix for i686-linux,
  x86_64-linux, armhf-linux and aarch64-linux.

  Mes was inspired by The Maxwell Equations of Software: LISP-1.5 --
  John McCarthy page 13, Guix's source/binary packaging transparency and
  Jeremiah Orians's Stage0 , a
  ~500-byte self-hosting hex assembler.

* Download

  git clone git://git.savannah.gnu.org/mes.git

  Here are the compressed sources and a GPG detached signature[*]:
https://ftp.gnu.org/gnu/mes/mes-0.26.tar.gz
https://ftp.gnu.org/gnu/mes/mes-0.26.tar.gz.sig

  Use a mirror for higher download bandwidth:
https://ftpmirror.gnu.org/mes/mes-0.26.tar.gz
https://ftpmirror.gnu.org/mes/mes-0.26.tar.gz.sig

  Here are the SHA1 and SHA256 checksums:

581d7dba5f9749dd232a203d04175494ded0e77d  mes-0.26.tar.gz
0f2210ad5896249466a0fc9a509e86c9a16db2b722741c6dfb5e8f7b33e385d4  
mes-0.26.tar.gz

  [*] Use a .sig file to verify that the corresponding file (without the
  .sig suffix) is intact.  First, be sure to download both the .sig file
  and the corresponding tarball.  Then, run a command like this:

gpg --verify mes-0.26.tar.gz.sig

  The signature should match the fingerprint of the following key:

pub   rsa4096 2018-04-08 [SC]
  1A85 8392 E331 EAFD B8C2  7FFB F3C1 A0D9 C1D6 5273
uid   Jan (janneke) Nieuwenhuizen 

  If that command fails because you don't have the required public key,
  or that public key has expired, try the following commands to retrieve
  or refresh it, and then rerun the 'gpg --verify' command.

gpg --recv-keys 1A858392E331EAFDB8C27FFBF3C1A0D9C1D65273

  As a last resort to find the key, you can try the official GNU
  keyring:

wget -q https://ftp.gnu.org/gnu/gnu-keyring.gpg
gpg --keyring gnu-keyring.gpg --verify mes-0.26.tar.gz.sig

* Changes in 0.26 since 0.25.1

  ** Core
  *** Mes now has a Guile-compatible record interface.
  *** Mes now has a Guile-compatible hash-table interface.
  *** Mes now uses exceptions instead of asserts.
  *** Mes now supports Guile-compatible modules and variable lookup.
  *** The reader now supports `#\fs', `#\nl', and `#\np'.
  *** Mes now supports vectors in syntax-rules.
  *** Dynamic-wind was fully implemented.
  *** Mes now has regex support.
  *** Mes now supports functional record setters.
  *** simple-format now supports `~%'.
  *** Charsets can now be used in `string-index'.
  *** The (srfi srfi-14) module was completed.
   9 new modules
  (ice-9 ftw), (ice-9 i18n), (ice-9 receive), (ice-9 regex), (rnrs io
  ports), (rnrs bytevectors), (srfi srfi-2). (srfi srfi-11). (srfi srfi-37).
   46 new functions
  alist-cons, append-reverse!, call-with-port, call-with-input-file,
  call-with-input-string, call-with-output-file, chdir, clone-port,
  closedir, concatenate, drop, drop-while. environ, execle,
  file-system-fold, fold-matches, getpid, hash-clear!, hash-fold,
  hash-map->list, hash-remove!, hash-table?, link, list-matches,
  match-let, mkdir, opendir, partition, pipe, primitive-exit, readdir,
  reduce, rename-file, rmdir, seek, set-fields, span, sleep,
  string-concatenate-reverse, string-count, string-pad, string-pad-right,
  string>, string<, umask, uname, utimes, vector-fold.
  *** Mes now supports running Gash and Gash-Utils.
  ** MesCC
  *** MesCC now uses Guile-compatible modules.
  ** Noteworthy bug fixes
  *** Many bug-fixes to hygiene, string primitives, optional arguments.

See also 

GDB 14.1 released!

2023-12-03 Thread Joel Brobecker


GDB 14.1 released!

Release 14.1 of GDB, the GNU Debugger, is now available.  GDB is
a source-level debugger for Ada, C, C++, Fortran, Go, Rust, and many
other languages.  GDB can target (i.e., debug programs running on)
more than a dozen different processor architectures, and GDB itself
can run on most popular GNU/Linux, Unix and Microsoft Windows variants.
GDB is free (libre) software.

You can download GDB from the GNU HTTPS server in the directory:

https://ftp.gnu.org/gnu/gdb/?C=M;O=D

The vital stats:

  Size   sha256sum Name
  23MiB  d66df51276143451fcbff464cc8723d68f1e9df45a6a2d5635a54e71643edb80  
gdb-14.1.tar.xz
  40MiB  683e63182fb72bd5d8db32ab388143796370a8e3e71c26bc264effb487db7927  
gdb-14.1.tar.gz

There is a web page for GDB at:

https://www.gnu.org/software/gdb/

That page includes information about GDB mailing lists (an announcement
mailing list, developers discussion lists, etc.), details on how to
access GDB's source repository, locations for development snapshots,
preformatted documentation, and links to related information around
the net.  We will put errata notes and host-specific tips for this release
on-line as any problems come up.  All mailing lists archives are also
browsable via the web.

GDB 14.1 includes the following changes and enhancements:

* Removed features, removed configurations:

  ** GDB no longer support AiX 4.x, 5.x and 6.x. The minimum version
 supported is AiX 7.1.

  ** GDB/MI version 1 support has been removed

* Initial built-in support for Debugger Adapter Protocol (DAP)

* GDB now recognizes the NO_COLOR environment variable

* Initial support for integer types larger than 64 bits

* Breakpoints can now be inferior-specific

* New convenience function "$_shell", to execute a shell command and
  return its result.

* Python support

  ** New class gdb.Thread

  ** New class gdb.unwinder.FrameId

  ** New class gdb.ValuePrinter

  ** New gdb.Inferior.arguments attribute, holding the command-line
 arguments to the inferior, if known

  ** New gdb.Inferior.main_name attribute, holding the name of
 the inferior's 'main', if known.

  ** New gdb.Breakpoint.inferior attribute

  ** New gdb.Progspace.symbol_file attribute

  ** New gdb.Progspace.executable_filename attribute

  ** New function gdb.execute_mi(COMMAND, [ARG]...)

  ** New function gdb.block_signals()

  ** New method gdb.Frame.static_link

  ** New gdb.Inferior 'clear_env', 'set_env' and 'unset_env' methods

  ** New gdb.Type now has the 'is_array_like' and 'is_string_like'
 methods

  ** New gdb.Value 'assign' method

  ** New gdb.Value 'to_array' method

  ** New gdb.Progspace 'objfile_for_address' method

  ** New methods added to the gdb.PendingFrame class, with behavior
 which is the same as the corresponding methods on gdb.Frame.

  ** gdb.LazyString now implements the __str__ method

  ** New event gdb.ThreadExitedEvent

  ** New event gdb.ExecutableChangedEvent

  ** New event gdb.NewProgspaceEvent

  ** New event gdb.FreeProgspaceEvent

  ** The frame-id passed to gdb.PendingFrame.create_unwind_info
 now use either an integer or a gdb.Value object for each of its
 'sp', 'pc', and 'special' attributes.

  ** The Disassembler API from the gdb.disassembler module has been
 extended to include styling support

  ** gdb.parse_and_eval now has a new "global_context" parameter,
 allowing the request to only examine global symbols.

  ** The name argument passed to gdb.unwinder.Unwinder.__init__ must
 now be of type 'str' otherwise a TypeError will be raised.

  ** The gdb.unwinder.Unwinder.enabled attribute can now only accept
  values of type 'bool'.  Changing this attribute will now
  invalidate GDB's frame-cache.

  ** It is now no longer possible to sub-class the
 gdb.disassembler.DisassemblerResult type.

* Remote protocol

  ** Support for enabling or disabling individual remote target features

* GDB/MI support

  ** New 'no-history' stop reason

  ** Support for inferior-specific breakpoints

  ** The bkpt tuple, which appears in breakpoint-created notifications,
 and in the result of the -break-insert command can now include an
 optional 'inferior' field for both the main breakpoint, and each
 location, when the breakpoint is inferior-specific.

  ** Trying to create a thread-specific breakpoint using a non-existent
 thread ID now results in an error

  ** New "simple-values-ref-types" -list-feature value indicating how
 the --simple-values option in various commands take reference types
 into account.

* Enhanced AArch64 support

  ** Initial support for Scalable Matrix Extension (SME) and for Scalable
 Matrix Extension 2 (SME2)

  ** The 'org.gnu.gdb.aarch64.pauth' Pointer Authentication feature
 is now deprecated in favor of the 'org.gnu.gdb.aarch64.pauth_v2'
 feature string

* Enhanced Ada support

  ** Support for