DDD-3.4.1 Debugger GUI released

2024-08-24 Thread Michael Eager

DDD, the DATA DISPLAY DEBUGGER, version 3.4.1 has been released.

DDD is a graphical front end for GDB (and other debuggers) with an
intuitive interface and an interactive graphical display for data.

DDD-3.4.1 includes the following enhancements:
 - Support for client-side fonts
 - Dark mode
 - Flexible line number width
 - Expanded UTF-8 support
 - Default source editors are gvim or emacs
 - Remove Make and Edit buttons from tool bar
 - Improved MacOS support
 - Eliminate external configuration files
 - Support parallel make for build
 - DDD Reference Manual available through HELP
 - Resolve 15+ bug reports

DDD's maintainers are Stefan Eickler and Michael Eager.  Please
send questions or comments to mailto:d...@gnu.org.

Information about DDD, including how to download and build DDD sources,
can be found on the DDD project page: https://www.gnu.org/software/ddd/

--
Michael Eager


value-range.cc:2165: ICE in invert

2024-08-24 Thread Georg-Johann Lay

Trying to use the value-range interface and functions I am running
into that ICE when using invert().

From what the sources suggest, invert() computes the complement of
the current set (the union of finitely many intervals).

For example, when I have a range of [-128, -1] for int8_t, invert()
runs into that ICE because that interval is undefined or varying.

Take for example, this code that wants to take the complement of
the complete interval (with respect to the complete interval given
by uint8_t):

  tree t = unsigned_intQI_type_node;
  int n_bits = TYPE_PRECISION (t);

  int_range<2, false /*resizable*/ > j(t);

  // j is undefined(?), thus set its bounds to the entire range.
  j.set (t, wi::to_wide (j.lbound()), wi::to_wide (j.ubound()));
  j.invert();
: internal compiler error: in invert, at value-range.cc:2165
0

This should just return the empty set; no?  And vice versa, the
complement of the empty set (with respect to the whole interval)
should be the whole interval provided by t, no?

If I understand correctly, the int_range<> implementation does not
implement a semi-group, and there are sets / intervals that are not
allowed, like the empty set or intervals that touch a boundary.

Does this mean that I have to test and special-case all these cases
and do them by hand?  Are there more invalid / disallowed intervals?

So I guess it is simpler when I write my own interval arithmetic
that handles these cases and behaves like a semi group.  As there
will be at most 3 sub-intervals, that's the way to go...?

Isn't there a knob to tell that complement is with respect to the
range as provided by type(), and not w.r.t. the integers?

Johann


gcc-14-20240824 is now available

2024-08-24 Thread GCC Administrator via Gcc
Snapshot gcc-14-20240824 is now available on
  https://gcc.gnu.org/pub/gcc/snapshots/14-20240824/
and on various mirrors, see https://gcc.gnu.org/mirrors.html for details.

This snapshot has been generated from the GCC 14 git branch
with the following options: git://gcc.gnu.org/git/gcc.git branch 
releases/gcc-14 revision 5b75e1c15f97b4a41ad0cf0876f07b5169e05940

You'll find:

 gcc-14-20240824.tar.xz   Complete GCC

  SHA256=4ef69ab28dbe1e2ceb6ed57c2270d5d03f5145ce7fcf9e83c135cf5b5b82d6d6
  SHA1=8c191a08ea6c76de4987236e194fbc7d1fa26670

Diffs from 14-20240817 are available in the diffs/ subdirectory.

When a particular snapshot is ready for public consumption the LATEST-14
link is updated and a message is sent to the gcc list.  Please do not use
a snapshot before it has been announced that way.