Remove MI version 1
authorTom Tromey <tom@tromey.com>
Wed, 10 Aug 2022 20:42:22 +0000 (14:42 -0600)
committerTom Tromey <tom@tromey.com>
Mon, 19 Dec 2022 14:47:37 +0000 (07:47 -0700)
MI version 1 is long since obsolete.  Several years ago, I filed
PR mi/23170 for this.  I think it's finally time to remove this.
Any users of MI 1 can and should upgrade to a newer version.

Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=23170

gdb/NEWS
gdb/doc/gdb.texinfo
gdb/interps.h
gdb/main.c
gdb/mi/mi-cmd-env.c
gdb/mi/mi-cmd-var.c
gdb/mi/mi-interp.c
gdb/mi/mi-main.c
gdb/mi/mi-out.c
gdb/testsuite/gdb.base/interp.exp
gdb/testsuite/lib/mi-support.exp

index 3a3387c76c4d008529773e399b6703f23f030141..e61f06081de6125082df7037d9264b710351cecd 100644 (file)
--- a/gdb/NEWS
+++ b/gdb/NEWS
@@ -3,6 +3,8 @@
 
 *** Changes since GDB 13
 
+* MI version 1 has been removed.
+
 *** Changes in GDB 13
 
 * MI version 1 is deprecated, and will be removed in GDB 14.
index 755fbf72a7c42ea73c08f242a4592b95cf3fc318..bef63eb4e8e22591e3cb783fc90ba1b145297c90 100644 (file)
@@ -29150,10 +29150,6 @@ The @sc{gdb/mi} interface introduced in @value{GDBN} 9.1.
 @cindex mi2 interpreter
 The @sc{gdb/mi} interface introduced in @value{GDBN} 6.0.
 
-@item mi1
-@cindex mi1 interpreter
-The @sc{gdb/mi} interface introduced in @value{GDBN} 5.1.
-
 @end table
 
 @cindex invoke another interpreter
index cd5fb3521d8c45f4ced841c9a6c70f943aef4bd8..3efcd8006505219604031705416846b4ddedb403 100644 (file)
@@ -175,7 +175,6 @@ extern void interpreter_completer (struct cmd_list_element *ignore,
 
 /* well-known interpreters */
 #define INTERP_CONSOLE         "console"
-#define INTERP_MI1             "mi1"
 #define INTERP_MI2             "mi2"
 #define INTERP_MI3             "mi3"
 #define INTERP_MI4             "mi4"
index 8d2666ecc952d39c4590519ef8b29dfce1caf60c..08ae0696781a93a097ab811eec2c041191c0eba9 100644 (file)
@@ -1124,31 +1124,11 @@ captured_main_1 (struct captured_main_args *context)
       exit (0);
     }
 
-  /* FIXME: cagney/2003-02-03: The big hack (part 1 of 2) that lets
-     GDB retain the old MI1 interpreter startup behavior.  Output the
-     copyright message before the interpreter is installed.  That way
-     it isn't encapsulated in MI output.  */
-  if (!quiet && interpreter_p == INTERP_MI1)
-    {
-      /* Print all the junk at the top, with trailing "..." if we are
-        about to read a symbol file (possibly slowly).  */
-      print_gdb_version (gdb_stdout, true);
-      if (symarg)
-       gdb_printf ("..");
-      gdb_printf ("\n");
-      gdb_flush (gdb_stdout);  /* Force to screen during slow
-                                  operations.  */
-    }
-
   /* Install the default UI.  All the interpreters should have had a
      look at things by now.  Initialize the default interpreter.  */
   set_top_level_interpreter (interpreter_p.c_str ());
 
-  /* FIXME: cagney/2003-02-03: The big hack (part 2 of 2) that lets
-     GDB retain the old MI1 interpreter startup behavior.  Output the
-     copyright message after the interpreter is installed when it is
-     any sane interpreter.  */
-  if (!quiet && !current_interp_named_p (INTERP_MI1))
+  if (!quiet)
     {
       /* Print all the junk at the top, with trailing "..." if we are
         about to read a symbol file (possibly slowly).  */
index 0c75b8042ff861c4379e0e53e2e923f72ad68017..5b0779793527c04635b1569a819ca9314baaa2db 100644 (file)
@@ -65,14 +65,6 @@ mi_cmd_env_pwd (const char *command, char **argv, int argc)
   if (argc > 0)
     error (_("-environment-pwd: No arguments allowed"));
          
-  if (mi_version (uiout) < 2)
-    {
-      env_execute_cli_command ("pwd", NULL);
-      return;
-    }
-     
-  /* Otherwise the mi level is 2 or higher.  */
-
   gdb::unique_xmalloc_ptr<char> cwd (getcwd (NULL, 0));
   if (cwd == NULL)
     error (_("-environment-pwd: error finding name of working directory: %s"),
@@ -126,14 +118,6 @@ mi_cmd_env_path (const char *command, char **argv, int argc)
 
   dont_repeat ();
 
-  if (mi_version (uiout) < 2)
-    {
-      for (i = argc - 1; i >= 0; --i)
-       env_execute_cli_command ("path", argv[i]);
-      return;
-    }
-
-  /* Otherwise the mi level is 2 or higher.  */
   while (1)
     {
       int opt = mi_getopt ("-environment-path", argc, argv, opts,
@@ -199,14 +183,6 @@ mi_cmd_env_dir (const char *command, char **argv, int argc)
 
   dont_repeat ();
 
-  if (mi_version (uiout) < 2)
-    {
-      for (i = argc - 1; i >= 0; --i)
-       env_execute_cli_command ("dir", argv[i]);
-      return;
-    }
-
-  /* Otherwise mi level is 2 or higher.  */
   while (1)
     {
       int opt = mi_getopt ("-environment-directory", argc, argv, opts,
index 3db09cf7815654d2625a2efb32ba5019f184133f..e05866657e3753a80c390570aa05ce81f459ab92 100644 (file)
@@ -390,15 +390,7 @@ mi_cmd_var_list_children (const char *command, char **argv, int argc)
 
   if (from < to)
     {
-      /* For historical reasons this might emit a list or a tuple, so
-        we construct one or the other.  */
-      gdb::optional<ui_out_emit_tuple> tuple_emitter;
-      gdb::optional<ui_out_emit_list> list_emitter;
-
-      if (mi_version (uiout) == 1)
-       tuple_emitter.emplace (uiout, "children");
-      else
-       list_emitter.emplace (uiout, "children");
+      ui_out_emit_list list_emitter (uiout, "children");
       for (int ix = from; ix < to && ix < children.size (); ix++)
        {
          ui_out_emit_tuple child_emitter (uiout, "child");
@@ -633,15 +625,7 @@ mi_cmd_var_update (const char *command, char **argv, int argc)
   else
     print_values = PRINT_NO_VALUES;
 
-  /* For historical reasons this might emit a list or a tuple, so we
-     construct one or the other.  */
-  gdb::optional<ui_out_emit_tuple> tuple_emitter;
-  gdb::optional<ui_out_emit_list> list_emitter;
-
-  if (mi_version (uiout) <= 1)
-    tuple_emitter.emplace (uiout, "changelist");
-  else
-    list_emitter.emplace (uiout, "changelist");
+  ui_out_emit_list list_emitter (uiout, "changelist");
 
   /* Check if the parameter is a "*", which means that we want to
      update all variables.  */
@@ -680,9 +664,7 @@ varobj_update_one (struct varobj *var, enum print_values print_values,
     {
       int from, to;
 
-      gdb::optional<ui_out_emit_tuple> tuple_emitter;
-      if (mi_version (uiout) > 1)
-       tuple_emitter.emplace (uiout, nullptr);
+      ui_out_emit_tuple tuple_emitter (uiout, nullptr);
       uiout->field_string ("name", varobj_get_objname (r.varobj));
 
       switch (r.status)
index 3cc2462f67296333f3d5c8d4e1fad4f7c3fd8be6..cd6d1a803b4a3d39524be0f4cc573e0041f3b441 100644 (file)
@@ -1317,7 +1317,6 @@ void
 _initialize_mi_interp ()
 {
   /* The various interpreter levels.  */
-  interp_factory_register (INTERP_MI1, mi_interp_factory);
   interp_factory_register (INTERP_MI2, mi_interp_factory);
   interp_factory_register (INTERP_MI3, mi_interp_factory);
   interp_factory_register (INTERP_MI4, mi_interp_factory);
index e5b003ec99bd94ed1b912c021a01ac204ee7f8b6..1b9948c1f6db4efc1073bc55f5e3153356d8d538 100644 (file)
@@ -1856,7 +1856,6 @@ captured_mi_execute_command (struct ui_out *uiout, struct mi_parse *context)
 
        /* If we changed interpreters, DON'T print out anything.  */
        if (current_interp_named_p (INTERP_MI)
-           || current_interp_named_p (INTERP_MI1)
            || current_interp_named_p (INTERP_MI2)
            || current_interp_named_p (INTERP_MI3)
            || current_interp_named_p (INTERP_MI4))
index 725c1c6854670438e657da383f5be9f61d744d9a..b103aac206b3c9a3935fefcba9c9920345ba119c 100644 (file)
@@ -348,9 +348,6 @@ mi_out_new (const char *mi_version)
   if (streq (mi_version, INTERP_MI2))
     return new mi_ui_out (2);
 
-  if (streq (mi_version, INTERP_MI1))
-    return new mi_ui_out (1);
-
   return nullptr;
 }
 
index a42d4ae60ae5c069712d87a328aa00d45d900ab8..a77dace231971852dbcf5134d204b95a27177df1 100644 (file)
@@ -52,15 +52,6 @@ gdb_test_multiple "interpreter-exec mi \"-stack-info-frame\"" "" {
     }
 }
 
-gdb_test_multiple "interpreter-exec mi1 \"-break-insert main\"" "" {
-    -re ".done.bkpt=.number=.\[0-9\]\[^\n\]+\r\n$gdb_prompt " {
-       pass $gdb_test_name
-       gdb_expect 1 {
-           -re "\r\n$gdb_prompt $" { }
-       }
-    }
-}
-
 gdb_test_multiple "interpreter-exec mi2 \"-break-insert main\"" "" {
     -re ".done.bkpt=.number=.\[0-9\]\[^\n\]+\r\n$gdb_prompt " {
        pass $gdb_test_name
index 573a9b91d1a2ec487ec27c634cbcf992c4d94260..0249cb7e02e7c6027b933206f1e2948d14cd8c34 100644 (file)
@@ -264,27 +264,7 @@ proc default_mi_gdb_start { { flags {} } } {
 
     gdb_expect {
        -re "~\"GNU.*\r\n~\".*$mi_gdb_prompt$" {
-           # We have a new format mi startup prompt.  If we are
-           # running mi1, then this is an error as we should be
-           # using the old-style prompt.
-           if { $MIFLAGS == "-i=mi1" } {
-               perror "(mi startup) Got unexpected new mi prompt."
-               remote_close host
-               unset gdb_spawn_id
-               return -1
-           }
-           verbose "GDB initialized."
-       }
-       -re "\[^~\].*$mi_gdb_prompt$" {
-           # We have an old format mi startup prompt.  If we are
-           # not running mi1, then this is an error as we should be
-           # using the new-style prompt.
-           if { $MIFLAGS != "-i=mi1" } {
-               perror "(mi startup) Got unexpected old mi prompt."
-               remote_close host
-               unset gdb_spawn_id
-               return -1
-           }
+           # We have a new format mi startup prompt.
            verbose "GDB initialized."
        }
        -re ".*unrecognized option.*for a complete list of options." {
@@ -399,27 +379,11 @@ proc mi_gdb_reinitialize_dir { subdir } {
        return ""
     }
 
-    if { $MIFLAGS == "-i=mi1" } {
-      send_gdb "104-environment-directory\n"
-      gdb_expect 60 {
-       -re ".*Reinitialize source path to empty.*y or n. " {
-           warning "Got confirmation prompt for dir reinitialization."
-           send_gdb "y\n"
-           gdb_expect 60 {
-               -re "$mi_gdb_prompt$" {}
-               timeout {error "Dir reinitialization failed (timeout)"}
-           }
-       }
+    send_gdb "104-environment-directory -r\n"
+    gdb_expect 60 {
+       -re "104\\\^done,source-path=.*\r\n$mi_gdb_prompt$" {}
        -re "$mi_gdb_prompt$" {}
-         timeout {error "Dir reinitialization failed (timeout)"}
-      }
-    } else {
-       send_gdb "104-environment-directory -r\n"
-       gdb_expect 60 {
-           -re "104\\\^done,source-path=.*\r\n$mi_gdb_prompt$" {}
-           -re "$mi_gdb_prompt$" {}
-           timeout {error "Dir reinitialization failed (timeout)"}
-      }
+       timeout {error "Dir reinitialization failed (timeout)"}
     }
 
     send_gdb "105-environment-directory $subdir\n"