[m-rev.] For review: ensure proper initialisation of pretty_printer

Ralph Becket rafe at csse.unimelb.edu.au
Fri Apr 23 12:28:16 AEST 2010


Okay, here's an interdiff:

diff -u library/pretty_printer.m library/pretty_printer.m
--- library/pretty_printer.m	22 Apr 2010 05:39:14 -0000
+++ library/pretty_printer.m	23 Apr 2010 02:17:15 -0000
@@ -884,11 +884,13 @@
 %-----------------------------------------------------------------------------%
 % Convenience predicates.
 
-:- mutable(io_formatter_map, formatter_map, new_formatter_map, ground,
-    [attach_to_io_state, untrailed, thread_local]).
-
+    % This is where we keep the display parameters (line width etc.).
+    % The formatter map is handled separately because it *has* to
+    % be initialised immediately (i.e., before any other module's
+    % initialisation directive can update the default formatter map).
+    %
 :- mutable(io_pp_params, pp_params, pp_params(78, 100, triangular(100)),
-    ground, [attach_to_io_state, untrailed, thread_local]).
+    ground, [attach_to_io_state, untrailed]).
 
 %-----------------------------------------------------------------------------%
 
@@ -901,8 +903,13 @@
     %
 :- pragma foreign_decl("C",
 "
-    static MR_Bool pretty_printer_is_initialised = MR_FALSE;
-    static MR_Word pretty_printer_default_formatter_map = NULL;
+    extern MR_Bool pretty_printer_is_initialised;
+    extern MR_Word pretty_printer_default_formatter_map;
+").
+:- pragma foreign_code("C",
+"
+    MR_Bool pretty_printer_is_initialised = MR_FALSE;
+    MR_Word pretty_printer_default_formatter_map = NULL;
 ").
 
 %-----------------------------------------------------------------------------%

--------------------------------------------------------------------------
mercury-reviews mailing list
Post messages to:       mercury-reviews at csse.unimelb.edu.au
Administrative Queries: owner-mercury-reviews at csse.unimelb.edu.au
Subscriptions:          mercury-reviews-request at csse.unimelb.edu.au
--------------------------------------------------------------------------



More information about the reviews mailing list