guile: Add support for Guile 3.0.

gdb/ChangeLog
2020-06-28  Ludovic Courtès  <ludo@gnu.org>

	* guile/scm-math.c (vlscm_integer_fits_p): Use 'uintmax_t'
	and 'intmax_t' instead of 'scm_t_uintmax' and 'scm_t_intmax',
	which are deprecated in Guile 3.0.
	* configure.ac (try_guile_versions): Add "guile-3.0".
	* configure (try_guile_versions): Regenerate.
	* NEWS: Update entry.

gdb/testsuite/ChangeLog
2020-06-28  Ludovic Courtès  <ludo@gnu.org>

	* gdb.guile/source2.scm: Add #f first argument to 'format'.
	* gdb.guile/types-module.exp: Remove "ERROR:" from
	regexps since Guile 3.0 no longer prints that.

gdb/doc/ChangeLog
2020-06-28  Ludovic Courtès  <ludo@gnu.org>

	* doc/guile.texi (Guile Introduction): Mention Guile 3.0.

Change-Id: Iff116c2e40f334e4e0ca4e759a097bfd23634679
This commit is contained in:
Ludovic Courtès
2020-06-28 16:25:40 +02:00
committed by Simon Marchi
parent 68cf161c24
commit ae5369e773
10 changed files with 29 additions and 10 deletions

View File

@ -1,3 +1,12 @@
2020-07-20 Ludovic Courtès <ludo@gnu.org>
* guile/scm-math.c (vlscm_integer_fits_p): Use 'uintmax_t'
and 'intmax_t' instead of 'scm_t_uintmax' and 'scm_t_intmax',
which are deprecated in Guile 3.0.
* configure.ac (try_guile_versions): Add "guile-3.0".
* configure (try_guile_versions): Regenerate.
* NEWS: Update entry.
2020-07-20 Ludovic Courtès <ludo@gnu.org> 2020-07-20 Ludovic Courtès <ludo@gnu.org>
Doug Evans <dje@google.com> Doug Evans <dje@google.com>

View File

@ -132,7 +132,7 @@ GNU/Linux/RISC-V (gdbserver) riscv*-*-linux*
* Guile API * Guile API
** GDB can now be built with GNU Guile 2.2 in addition to 2.0. ** GDB can now be built with GNU Guile 3.0 and 2.2 in addition to 2.0.
** Procedures 'memory-port-read-buffer-size', ** Procedures 'memory-port-read-buffer-size',
'set-memory-port-read-buffer-size!', 'memory-port-write-buffer-size', 'set-memory-port-read-buffer-size!', 'memory-port-write-buffer-size',

2
gdb/configure vendored
View File

@ -10959,7 +10959,7 @@ fi
try_guile_versions="guile-2.2 guile-2.0" try_guile_versions="guile-3.0 guile-2.2 guile-2.0"
have_libguile=no have_libguile=no
case "${with_guile}" in case "${with_guile}" in
no) no)

View File

@ -1088,7 +1088,7 @@ AC_MSG_RESULT([$with_guile])
dnl We check guile with pkg-config. dnl We check guile with pkg-config.
AC_PATH_PROG(pkg_config_prog_path, pkg-config, missing) AC_PATH_PROG(pkg_config_prog_path, pkg-config, missing)
try_guile_versions="guile-2.2 guile-2.0" try_guile_versions="guile-3.0 guile-2.2 guile-2.0"
have_libguile=no have_libguile=no
case "${with_guile}" in case "${with_guile}" in
no) no)

View File

@ -1,3 +1,7 @@
2020-07-20 Ludovic Courtès <ludo@gnu.org>
* doc/guile.texi (Guile Introduction): Mention Guile 3.0.
2020-07-20 Ludovic Courtès <ludo@gnu.org> 2020-07-20 Ludovic Courtès <ludo@gnu.org>
* guile.texi (Memory Ports in Guile): Mark * guile.texi (Memory Ports in Guile): Mark

View File

@ -38,7 +38,7 @@ Guile support in @value{GDBN} follows the Python support in @value{GDBN}
reasonably closely, so concepts there should carry over. reasonably closely, so concepts there should carry over.
However, some things are done differently where it makes sense. However, some things are done differently where it makes sense.
@value{GDBN} requires Guile version 2.2 or 2.0. @value{GDBN} requires Guile version 3.0, 2.2, or 2.0.
@cindex guile scripts directory @cindex guile scripts directory
Guile scripts used by @value{GDBN} should be installed in Guile scripts used by @value{GDBN} should be installed in

View File

@ -578,7 +578,7 @@ vlscm_integer_fits_p (SCM obj, struct type *type)
ULONGEST max; ULONGEST max;
/* If scm_is_unsigned_integer can't work with this type, just punt. */ /* If scm_is_unsigned_integer can't work with this type, just punt. */
if (TYPE_LENGTH (type) > sizeof (scm_t_uintmax)) if (TYPE_LENGTH (type) > sizeof (uintmax_t))
return 0; return 0;
get_unsigned_type_max (type, &max); get_unsigned_type_max (type, &max);
return scm_is_unsigned_integer (obj, 0, max); return scm_is_unsigned_integer (obj, 0, max);
@ -588,7 +588,7 @@ vlscm_integer_fits_p (SCM obj, struct type *type)
LONGEST min, max; LONGEST min, max;
/* If scm_is_signed_integer can't work with this type, just punt. */ /* If scm_is_signed_integer can't work with this type, just punt. */
if (TYPE_LENGTH (type) > sizeof (scm_t_intmax)) if (TYPE_LENGTH (type) > sizeof (intmax_t))
return 0; return 0;
get_signed_type_minmax (type, &min, &max); get_signed_type_minmax (type, &min, &max);
return scm_is_signed_integer (obj, min, max); return scm_is_signed_integer (obj, min, max);

View File

@ -1,3 +1,9 @@
2020-07-20 Ludovic Courtès <ludo@gnu.org>
* gdb.guile/source2.scm: Add #f first argument to 'format'.
* gdb.guile/types-module.exp: Remove "ERROR:" from
regexps since Guile 3.0 no longer prints that.
2020-07-20 Ludovic Courtès <ludo@gnu.org> 2020-07-20 Ludovic Courtès <ludo@gnu.org>
* gdb.guile/scm-error.exp ("source $remote_guile_file_1"): Relax * gdb.guile/scm-error.exp ("source $remote_guile_file_1"): Relax

View File

@ -15,5 +15,5 @@
;; You should have received a copy of the GNU General Public License ;; You should have received a copy of the GNU General Public License
;; along with this program. If not, see <http://www.gnu.org/licenses/>. ;; along with this program. If not, see <http://www.gnu.org/licenses/>.
(display (format "y~As" "e")) (display (format #f "y~As" "e"))
(newline) (newline)

View File

@ -44,7 +44,7 @@ gdb_test "guile (print (type-has-field-deep? d \"base_member\"))" \
"= #t" "type-has-field-deep? member in baseclass" "= #t" "type-has-field-deep? member in baseclass"
gdb_test "guile (print (type-has-field-deep? (lookup-type \"int\") \"base_member\"))" \ gdb_test "guile (print (type-has-field-deep? (lookup-type \"int\") \"base_member\"))" \
"ERROR: .*Wrong type argument in position 1 \\(expecting struct or union\\): #<gdb:type int>.*" \ "Wrong type argument in position 1 \\(expecting struct or union\\): #<gdb:type int>.*" \
"type-has-field-deep? from int" "type-has-field-deep? from int"
gdb_scm_test_silent_cmd "guile (define enum-htab (make-enum-hashtable (lookup-type \"enum_type\")))" \ gdb_scm_test_silent_cmd "guile (define enum-htab (make-enum-hashtable (lookup-type \"enum_type\")))" \
@ -54,9 +54,9 @@ gdb_test "guile (print (hash-ref enum-htab \"B\"))" \
"= 1" "verify make-enum-hashtable" "= 1" "verify make-enum-hashtable"
gdb_test "guile (define bad-enum-htab (make-enum-hashtable #f))" \ gdb_test "guile (define bad-enum-htab (make-enum-hashtable #f))" \
"ERROR: .*Wrong type argument in position 1 \\(expecting gdb:type\\): #f.*" \ "Wrong type argument in position 1 \\(expecting gdb:type\\): #f.*" \
"make-enum-hashtable from #f" "make-enum-hashtable from #f"
gdb_test "guile (define bad-enum-htab (make-enum-hashtable (lookup-type \"int\")))" \ gdb_test "guile (define bad-enum-htab (make-enum-hashtable (lookup-type \"int\")))" \
"ERROR: .*Wrong type argument in position 1 \\(expecting enum\\): #<gdb:type int>.*" \ "Wrong type argument in position 1 \\(expecting enum\\): #<gdb:type int>.*" \
"make-enum-hashtable from int" "make-enum-hashtable from int"