poke-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[COMMITTED] poke: support for --no-stdtypes


From: Jose E. Marchesi
Subject: [COMMITTED] poke: support for --no-stdtypes
Date: Tue, 25 Apr 2023 09:49:45 +0200
User-agent: Gnus/5.13 (Gnus v5.13)


This patch adds support for a new command line option --no-stdtypes to
the poke CLI.

2023-04-25  Jose E. Marchesi  <jemarch@gnu.org>

        * poke/poke.c (initialize): Use pk_compiler_new_with_flags.
        (NO_STDTYPES_ARG): Define.
        (parse_args_1): Handle NO_STDTYPES_ARG.
        (parse_args_2): Likewise.
        * poke/pk-hserver.pk: Do not use standard types.
        * poke/pk-settings.pk: Likewise.
        * poke/pk-dump.pk: Likewise.
        * poke/pk-copy.pk: Likewise.
        * poke/pk-save.pk: Likewise.
        * poke/pk-scrabble.pk: Likewise.
        * poke/pk-diff.pk: Likewise.
        * pickles/diff.pk: Likewise.
---
 ChangeLog           | 15 +++++++++++++++
 doc/poke.texi       |  4 ++++
 pickles/diff.pk     | 32 +++++++++++++++----------------
 poke/pk-copy.pk     | 10 +++++-----
 poke/pk-diff.pk     |  2 +-
 poke/pk-dump.pk     | 18 +++++++++---------
 poke/pk-hserver.pk  | 20 ++++++++++----------
 poke/pk-save.pk     | 10 +++++-----
 poke/pk-scrabble.pk | 18 +++++++++---------
 poke/pk-settings.pk | 46 ++++++++++++++++++++++-----------------------
 poke/poke.c         | 17 +++++++++++++++--
 11 files changed, 112 insertions(+), 80 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index cdad23fa..56fa9165 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,18 @@
+2023-04-25  Jose E. Marchesi  <jemarch@gnu.org>
+
+       * poke/poke.c (initialize): Use pk_compiler_new_with_flags.
+       (NO_STDTYPES_ARG): Define.
+       (parse_args_1): Handle NO_STDTYPES_ARG.
+       (parse_args_2): Likewise.
+       * poke/pk-hserver.pk: Do not use standard types.
+       * poke/pk-settings.pk: Likewise.
+       * poke/pk-dump.pk: Likewise.
+       * poke/pk-copy.pk: Likewise.
+       * poke/pk-save.pk: Likewise.
+       * poke/pk-scrabble.pk: Likewise.
+       * poke/pk-diff.pk: Likewise.
+       * pickles/diff.pk: Likewise.
+
 2023-04-24  Jose E. Marchesi  <jemarch@gnu.org>
 
        * pickles/bpf.pk: Do not use "standard" types.
diff --git a/doc/poke.texi b/doc/poke.texi
index d8918526..a971f9ef 100644
--- a/doc/poke.texi
+++ b/doc/poke.texi
@@ -554,6 +554,10 @@ Do not load map-files automatically when poke opens IO 
spaces.
 @item --no-hserver
 Do not run the terminal hyperlinks server.
 
+@item --no-stdtypes
+Do not define standard Poke types (such as @code{int}, @code{char},
+@i{etc}) in the Poke incremental compiler.
+
 @item --quiet
 Be as terse as possible.
 
diff --git a/pickles/diff.pk b/pickles/diff.pk
index 532d82cf..f23c250b 100644
--- a/pickles/diff.pk
+++ b/pickles/diff.pk
@@ -33,14 +33,14 @@ type Diff_Thunk =
     type Diff_Thunk_Line =
       struct
       {
-        int kind : kind in [DIFF_THUNK_ADD, DIFF_THUNK_REM];
+        int<32> kind : kind in [DIFF_THUNK_ADD, DIFF_THUNK_REM];
         string data;
         string name;
         string value;
       };
 
-    int emit_values_p;
-    offset<int,B> group_by = 1#B;
+    int<32> emit_values_p;
+    offset<int<32>,B> group_by = 1#B;
 
     var A = 0, B = 1;
     offset<uint<64>,B>[2] offset;
@@ -59,12 +59,12 @@ type Diff_Thunk =
       lines = Diff_Thunk_Line[]();
     }
 
-    method append_line = (int kind,
-                          byte[] bytes,
+    method append_line = (int<32> kind,
+                          uint<8>[] bytes,
                           string name = "",
                           string value = "") void:
     {
-      fun format_bytes = (byte[] bytes) string:
+      fun format_bytes = (uint<8>[] bytes) string:
       {
         var x = 1#B;
         var s = "";
@@ -111,7 +111,7 @@ type Diff_Thunk =
 
     method change = (offset<uint<64>,B> aoff, offset<uint<64>,B> asiz,
                      offset<uint<64>,B> boff, offset<uint<64>,B> bsiz,
-                     byte[] abytes, byte[] bbytes,
+                     uint<8>[] abytes, uint<8>[] bbytes,
                      string aname = "", string bname = "",
                      string avalue = "", string bvalue = "") void:
     {
@@ -131,9 +131,9 @@ type Diff_Thunk =
       append_line (DIFF_THUNK_ADD, bbytes, bname, bvalue);
     }
 
-    method addrem = (int what,
+    method addrem = (int<32> what,
                      offset<uint<64>,B> off, offset<uint<64>,B> siz,
-                     byte[] bytes, string name = "", string value = "") void:
+                     uint<8>[] bytes, string name = "", string value = "") 
void:
     {
       var to = what == DIFF_THUNK_ADD ? B : A;
 
@@ -175,7 +175,7 @@ type Diff_Thunk =
 
 fun diff_structured = (any a, any b,
                        string prefix_a = "a", string prefix_b = "b",
-                       int values = 1, offset<int,B> group_by = 1#B) void:
+                       int<32> values = 1, offset<int<32>,B> group_by = 1#B) 
void:
 {
   var thunk = Diff_Thunk { emit_values_p = values,
                            group_by = group_by };
@@ -188,19 +188,19 @@ fun diff_structured = (any a, any b,
       return "." + ename;
   }
 
-  fun get_bytes = (any v) byte[]:
+  fun get_bytes = (any v) uint<8>[]:
   {
-    try return byte[v'size] @ v'ios : v'offset;
+    try return uint<8>[v'size] @ v'ios : v'offset;
     catch if E_constraint { raise E_inval; }
   }
 
-  fun get_elem_bytes = (any v, uint<64> idx) byte[]:
+  fun get_elem_bytes = (any v, uint<64> idx) uint<8>[]:
   {
-    try return byte[v'esize (idx)] @ v'ios : v'eoffset (idx);
+    try return uint<8>[v'esize (idx)] @ v'ios : v'eoffset (idx);
     catch if E_constraint { raise E_inval; }
   }
 
-  fun elem_simple_p = (any elem, uint<64> idx) int:
+  fun elem_simple_p = (any elem, uint<64> idx) int<32>:
   {
     try { elem'elem(idx)'elem (0); return 0; }
     catch (Exception e)
@@ -213,7 +213,7 @@ fun diff_structured = (any a, any b,
     return 1;
   }
 
-  fun sdiff_addrem = (int what, any val,
+  fun sdiff_addrem = (int<32> what, any val,
                       string prefix, uint<64> idx) void:
   {
     for (; idx < val'length; ++idx)
diff --git a/poke/pk-copy.pk b/poke/pk-copy.pk
index 7131caf6..0aec300f 100644
--- a/poke/pk-copy.pk
+++ b/poke/pk-copy.pk
@@ -62,11 +62,11 @@ See `.doc copy' for more information.",
                                 pk_copy_from, pk_copy_size)
          };
 
-fun copy = (int from_ios = get_ios,
-            int to_ios = get_ios,
-            off64 from = pk_copy_from,
-            off64 to = from,
-            off64 size = pk_copy_size) void:
+fun copy = (int<32> from_ios = get_ios,
+            int<32> to_ios = get_ios,
+            offset<int<64>,b> from = pk_copy_from,
+            offset<int<64>,b> to = from,
+            offset<int<64>,b> size = pk_copy_size) void:
 {
   ios_copy_bytes :from_ios from_ios :to_ios to_ios
                  :from from :to (to) :size size;
diff --git a/poke/pk-diff.pk b/poke/pk-diff.pk
index 461b25f3..8c9b1a9f 100644
--- a/poke/pk-diff.pk
+++ b/poke/pk-diff.pk
@@ -64,7 +64,7 @@ See `.doc sdiff' for more information.",
 fun sdiff = (any a, any b,
              string prefix_a = "a",
              string prefix_b = "b",
-             int values = pk_sdiff_print_values,
+             int<32> values = pk_sdiff_print_values,
              offset<uint<64>,B> group_by = pk_diff_group_by)
             void:
 {
diff --git a/poke/pk-dump.pk b/poke/pk-dump.pk
index aaeb7fbb..62eb8035 100644
--- a/poke/pk-dump.pk
+++ b/poke/pk-dump.pk
@@ -89,19 +89,19 @@ type Pk_Dump_Offset =
   struct
   {
     int<32> ios;
-    off64 offset;
+    offset<int<64>,b> offset;
   };
 
 var pk_dump_offsets = Pk_Dump_Offset[]();
 
-fun pk_dump_get_offset = (int<32> ios) off64:
+fun pk_dump_get_offset = (int<32> ios) offset<int<64>,b>:
 {
   for (e in pk_dump_offsets where e.ios == ios)
     return e.offset;
   return 0#B;
 }
 
-fun pk_dump_set_offset = (int<32> ios, off64 offset) void:
+fun pk_dump_set_offset = (int<32> ios, offset<int<64>,b> offset) void:
 {
   for (e in pk_dump_offsets where e.ios == ios)
     {
@@ -115,12 +115,12 @@ fun pk_dump_set_offset = (int<32> ios, off64 offset) void:
 /* And the command itself.  */
 
 fun dump = (int<32> ios = get_ios,
-            off64 from = pk_dump_get_offset (ios),
-            off64 size = pk_dump_size,
-            off64 group_by = pk_dump_group_by,
-            int cluster_by = pk_dump_cluster_by,
-            int ruler = pk_dump_ruler,
-            int ascii = pk_dump_ascii) void:
+            offset<int<64>,b> from = pk_dump_get_offset (ios),
+            offset<int<64>,b> size = pk_dump_size,
+            offset<int<64>,b> group_by = pk_dump_group_by,
+            int<32> cluster_by = pk_dump_cluster_by,
+            int<32> ruler = pk_dump_ruler,
+            int<32> ascii = pk_dump_ascii) void:
 {
   ios_dump_bytes :ios ios :from from :size size :group_by group_by
                  :cluster_by cluster_by :ruler_p ruler :ascii_p ascii
diff --git a/poke/pk-hserver.pk b/poke/pk-hserver.pk
index 0d5a2f21..fe1189b3 100644
--- a/poke/pk-hserver.pk
+++ b/poke/pk-hserver.pk
@@ -35,9 +35,9 @@ type HServer_Callback = ()void;
 type HServer_Token =
   struct
   {
-    int used_p;
-    int id;
-    char kind;
+    int<32> used_p;
+    int<32> id;
+    uint<8> kind;
     string cmd;
     HServer_Callback function;
   };
@@ -45,35 +45,35 @@ type HServer_Token =
 var hserver_tokens = HServer_Token[hserver_max_tokens]();
 
 /* Get the kind of a given token.  */
-fun hserver_token_kind = (int token) char:
+fun hserver_token_kind = (int<32> token) uint<8>:
 {
   var index = token % hserver_max_tokens;
   return hserver_tokens[index].kind;
 }
 
 /* Get the command associated with a given token.  */
-fun hserver_token_cmd = (int token) string:
+fun hserver_token_cmd = (int<32> token) string:
 {
   var index = token % hserver_max_tokens;
   return hserver_tokens[index].cmd;
 }
 
 /* Get the function associated with a given token.  */
-fun hserver_token_function = (int token) HServer_Callback:
+fun hserver_token_function = (int<32> token) HServer_Callback:
 {
   var index = token % hserver_max_tokens;
   return (hserver_tokens[index].function);
 }
 
 /* Determine whether a given token exists.  */
-fun hserver_token_p = (int token) int:
+fun hserver_token_p = (int<32> token) int<32>:
 {
   var index = token % hserver_max_tokens;
   return hserver_tokens[index].used_p;
 }
 
 /* Allocate and get a random token.  */
-fun hserver_get_token = uint:
+fun hserver_get_token = uint<32>:
 {
   var index = hserver_cur_token % hserver_max_tokens;
 
@@ -87,7 +87,7 @@ fun hserver_get_token = uint:
 
 /* Build a hserver hyperlink.  */
 
-fun hserver_make_hyperlink = (char kind,
+fun hserver_make_hyperlink = (uint<8> kind,
                               string cmd = "",
                               HServer_Callback function = lambda void: {}) 
string:
 {
@@ -111,7 +111,7 @@ fun hserver_make_hyperlink = (char kind,
 
 /* Print an hserver-served hyperlink.  */
 
-fun hserver_print_hl = (char kind, string str, string cmd,
+fun hserver_print_hl = (uint<8> kind, string str, string cmd,
                         HServer_Callback function = lambda void: {}) void:
 {
   var url = hserver_make_hyperlink (kind, cmd, (function));
diff --git a/poke/pk-save.pk b/poke/pk-save.pk
index f2f01d6e..ad80a0f3 100644
--- a/poke/pk-save.pk
+++ b/poke/pk-save.pk
@@ -68,12 +68,12 @@ See `.doc save' for more information.",
                                 pk_save_append, pk_save_verbose)
          };
 
-fun save = (int ios = get_ios,
+fun save = (int<32> ios = get_ios,
             string file = "",
-            off64 from = pk_save_from,
-            off64 size = pk_save_size,
-            int append = pk_save_append,
-            int verbose = pk_save_verbose) void:
+            offset<int<64>,b> from = pk_save_from,
+            offset<int<64>,b> size = pk_save_size,
+            int<32> append = pk_save_append,
+            int<32> verbose = pk_save_verbose) void:
 {
   if (file == "" || size == 0#B)
     return;
diff --git a/poke/pk-scrabble.pk b/poke/pk-scrabble.pk
index 92e6f8cb..c2dcbd76 100644
--- a/poke/pk-scrabble.pk
+++ b/poke/pk-scrabble.pk
@@ -72,15 +72,15 @@ See `.doc scrabble' for more information.",
                          pk_scrabble_ent_size)
          };
 
-fun scrabble = (off64 from = pk_scrabble_from,
-                off64 size = pk_scrabble_size,
+fun scrabble = (offset<int<64>,b> from = pk_scrabble_from,
+                offset<int<64>,b> size = pk_scrabble_size,
                 string from_pattern = pk_scrabble_from_pattern,
                 string to_pattern = from_pattern,
-                off64 ent_size = pk_scrabble_ent_size,
-                int from_ios = get_ios,
-                int to_ios = from_ios) void:
+                offset<int<64>,b> ent_size = pk_scrabble_ent_size,
+                int<32> from_ios = get_ios,
+                int<32> to_ios = from_ios) void:
 {
-  type Entity = struct { char code; bit[ent_size] value; };
+  type Entity = struct { uint<8> code; uint<1>[ent_size] value; };
 
   var ent = Entity {};
   var to = from + size;
@@ -94,7 +94,7 @@ fun scrabble = (off64 from = pk_scrabble_from,
     {
       collected = Entity[]();
 
-      fun lookup_entity = (char code) Entity:
+      fun lookup_entity = (uint<8> code) Entity:
       {
         for (ent in collected where ent.code == code)
           return ent;
@@ -103,14 +103,14 @@ fun scrabble = (off64 from = pk_scrabble_from,
 
       for (var i = 0; i < from_pattern'length; i++, from += ent_size)
         collected += [Entity { code = from_pattern[i],
-                               value = unmap bit[ent_size] @ from_ios : from}];
+                               value = unmap uint<1>[ent_size] @ from_ios : 
from}];
 
       for (var i = 0; i < to_pattern'length; i++)
         {
           ent = lookup_entity (to_pattern[i]);
           if (ent.code != '\0')
              {
-               bit[ent_size] @ to_ios : end = ent.value;
+               uint<1>[ent_size] @ to_ios : end = ent.value;
                end += ent_size;
              }
         }
diff --git a/poke/pk-settings.pk b/poke/pk-settings.pk
index a98dc23c..46420779 100644
--- a/poke/pk-settings.pk
+++ b/poke/pk-settings.pk
@@ -62,14 +62,14 @@ type Poke_Setting =
         = (string s) int<32>: { return strchr (s, '\n') == s'length; }
 
       string name;
-      int kind : kind in [POKE_SETTING_INT,
-                          POKE_SETTING_BOOL,
-                          POKE_SETTING_STR];
+      int<32> kind : kind in [POKE_SETTING_INT,
+                              POKE_SETTING_BOOL,
+                              POKE_SETTING_STR];
       string summary : is_line_p (summary);
       string usage : is_line_p (usage);
       string description;
       ()any getter;
-      (any)int setter;
+      (any)int<32> setter;
     };
 
 /* The global settings registry.  */
@@ -174,7 +174,7 @@ Pretty-printers are defined as methods named `_print'.",
              {
                return vm_opprint;
              },
-           setter = lambda (any val) int:
+           setter = lambda (any val) int<32>:
              {
                vm_set_opprint (val as int<32>);
                return 1;
@@ -204,7 +204,7 @@ The entry above makes poke to automatically load the maps 
`elf.map'
 and `dwarf.map' when opening any file whose name ends in `.o',
 provided `auto-map' is set to `yes'.",
       getter = lambda any: { return pk_auto_map_p; },
-      setter = lambda (any val) int:
+      setter = lambda (any val) int<32>:
         {
           pk_auto_map_p = val as int<32>;
           return 1;
@@ -237,7 +237,7 @@ Example of a prompt with prompt-commented, map information, 
and `prompt-maps' se
 
 ",
     getter = lambda any: { return pk_prompt_commented_p; },
-    setter = lambda (any val) int:
+    setter = lambda (any val) int<32>:
       {
         pk_prompt_commented_p = val as int<32>;
         return 1;
@@ -263,7 +263,7 @@ Example of a prompt with map information and `prompt-maps' 
set to
 Which indicates that the opening of the IO space `foo.o' resulted in
 the `elf.map' and `dwarf.map' maps to be automatically loaded.",
     getter = lambda any: { return pk_prompt_maps_p; },
-    setter = lambda (any val) int:
+    setter = lambda (any val) int<32>:
       {
         pk_prompt_maps_p = val as int<32>;
         return 1;
@@ -289,7 +289,7 @@ Example:
 
 This setting defaults to `no'.",
     getter = lambda any: { return vm_omaps; },
-    setter = lambda (any val) int:
+    setter = lambda (any val) int<32>:
       {
         vm_set_omaps (val as int<32>);
         return 1;
@@ -311,7 +311,7 @@ for hexadecimal.",
              {
                return vm_obase;
              },
-           setter = lambda (any v) int:
+           setter = lambda (any v) int<32>:
              {
                var obase = v as int<32>;
 
@@ -344,7 +344,7 @@ Example:
 
 The default value is 0, which means no limit.",
     getter = lambda any: { return vm_oacutoff; },
-    setter = lambda (any val) int:
+    setter = lambda (any val) int<32>:
       {
         vm_set_oacutoff (val as int<32>);
         return 1;
@@ -372,7 +372,7 @@ Example:
 
 The default value for `odepth' is 0, which means infinite depth.",
     getter = lambda any: { return vm_odepth; },
-    setter = lambda (any val) int:
+    setter = lambda (any val) int<32>:
       {
         vm_set_odepth (val as int<32>);
         return 1;
@@ -401,7 +401,7 @@ Example:
 This setting defaults to 2.
 See also \".help omode\".",
     getter = lambda any: { return vm_oindent; },
-    setter = lambda (any val) int:
+    setter = lambda (any val) int<32>:
       {
         vm_set_oindent (val as int<32>);
         return 1;
@@ -448,7 +448,7 @@ The default value of `omode' is `flat'.",
 
         assert (0, "this point shouldn't be reached");
       },
-    setter = lambda (any val) int:
+    setter = lambda (any val) int<32>:
       {
         var s = val as string;
 
@@ -489,7 +489,7 @@ order to communicate with the network.",
                else
                   return "little";
              },
-           setter = lambda (any v) int:
+           setter = lambda (any v) int<32>:
              {
                var s = v as string;
                var endian = ENDIAN_LITTLE;
@@ -528,7 +528,7 @@ text version of the user manual.
 
 See also \".help .doc\".",
     getter = lambda any: { return pk_doc_viewer; },
-    setter = lambda (any val) int:
+    setter = lambda (any val) int<32>:
       {
         var s = val as string;
 
@@ -552,7 +552,7 @@ be paged or not.  Each page will have the height of the 
terminal.
 
 This setting is `no' by default.",
     getter = lambda any: { return pk_pager_p; },
-    setter = lambda (any val) int:
+    setter = lambda (any val) int<32>:
       {
         pk_pager_p = val as int<32>;
         return 1;
@@ -578,7 +578,7 @@ disabled once the debugging is done.
 
 This setting is `no' by default.",
       getter = lambda any: { return pk_tracer_p; },
-      setter = lambda (any val) int:
+      setter = lambda (any val) int<32>:
         {
           pk_tracer_p = val as int<32>;
           return 1;
@@ -603,7 +603,7 @@ force the re-mapping of any given value, explicitly.
 
 This setting is `yes' by default.",
       getter = lambda any: { return vm_autoremap; },
-      setter = lambda (any val) int:
+      setter = lambda (any val) int<32>:
         {
           vm_set_autoremap (val as int<32>);
           return 1;
@@ -657,9 +657,9 @@ fun pk_settings_dump = void:
         table.column (setting.name, "",
                       hserver_make_hyperlink ('e', ".help " + setting.name));
         table.column (setting.kind == POKE_SETTING_INT
-                      ? format ("%i32d", setting.getter as int)
+                      ? format ("%i32d", setting.getter as int<32>)
                       : setting.kind == POKE_SETTING_BOOL
-                      ? setting.getter as int ? "yes" : "no"
+                      ? setting.getter as int<32> ? "yes" : "no"
                       : setting.kind == POKE_SETTING_STR
                       ? setting.getter as string
                       : "<unknown>",
@@ -681,11 +681,11 @@ fun pk_settings_dump = void:
             var setting_setter = (setting.setter);
             fun toggle_setting = void:
               {
-                var newval = !(setting_getter as int);
+                var newval = !(setting_getter as int<32>);
 
                 print ("Toggling setting " + setting_name
                        + " to " + (newval ? "`yes'" : "`no'") + "\n");
-                setting_setter (!(setting_getter as int));
+                setting_setter (!(setting_getter as int<32>));
               }
 
             table.column ("[toggle]", "",
diff --git a/poke/poke.c b/poke/poke.c
index 28cfbba8..5f33042c 100644
--- a/poke/poke.c
+++ b/poke/poke.c
@@ -107,6 +107,11 @@ int poke_default_auto_map_p = 1;
 
 int poke_no_hserver_arg = 0;
 
+/* The following global determines whether the user specified to not
+   load "standard" types in the Poke incremental compiler.  */
+
+int poke_no_stdtypes_arg = 0;
+
 /* This is used by commands to indicate to the REPL that it must
    exit.  */
 
@@ -138,7 +143,8 @@ enum
   STYLE_DARK_ARG,
   STYLE_BRIGHT_ARG,
   NO_AUTO_MAP_ARG,
-  NO_HSERVER_ARG
+  NO_HSERVER_ARG,
+  NO_STDTYPES_ARG
 };
 
 static const struct option long_options[] =
@@ -156,6 +162,7 @@ static const struct option long_options[] =
   {"style-bright", no_argument, NULL, STYLE_BRIGHT_ARG},
   {"no-auto-map", no_argument, NULL, NO_AUTO_MAP_ARG},
   {"no-hserver", no_argument, NULL, NO_HSERVER_ARG},
+  {"no-stdtypes", no_argument, NULL, NO_STDTYPES_ARG},
   {NULL, 0, NULL, 0},
 };
 
@@ -202,6 +209,7 @@ print_help (void)
 #if HAVE_HSERVER
   puts (_("      --no-hserver                    do not run the hyperlinks 
server"));
 #endif
+  puts (_("      --no-stdtypes                   do not define standard 
types"));
   puts (_("      --quiet                         be as terse as possible"));
   puts (_("      --help                          print a help message and 
exit"));
   puts (_("      --version                       show version and exit"));
@@ -391,6 +399,9 @@ parse_args_1 (int argc, char *argv[])
         case NO_HSERVER_ARG:
           poke_no_hserver_arg = 1;
           break;
+        case NO_STDTYPES_ARG:
+          poke_no_stdtypes_arg = 1;
+          break;
         case 'q':
         case NO_INIT_FILE_ARG:
           poke_load_init_file = 0;
@@ -494,6 +505,7 @@ parse_args_2 (int argc, char *argv[])
           }
         case NO_AUTO_MAP_ARG:
         case NO_HSERVER_ARG:
+        case NO_STDTYPES_ARG:
         case 'q':
         case NO_INIT_FILE_ARG:
           /* These are handled in parse_args_1.  */
@@ -599,7 +611,8 @@ initialize (int argc, char *argv[])
   pk_term_init (argc, argv);
 
   /* Initialize the poke incremental compiler.  */
-  poke_compiler = pk_compiler_new (&poke_term_if);
+  poke_compiler = pk_compiler_new_with_flags (&poke_term_if,
+                                              poke_no_stdtypes_arg ? 
PK_F_NOSTDTYPES : 0);
   if (poke_compiler == NULL)
     pk_fatal ("creating the incremental compiler");
 
-- 
2.30.2




reply via email to

[Prev in Thread] Current Thread [Next in Thread]