[comp.lang.modula3] Pkl question

nr@hart.Princeton.EDU (Norman Ramsey) (02/19/91)

The documentation for Pkl.i3 says ``procedures are preserved.'' Is
this true for different programs containing some of the same modules,
or true only for different invocations of the same program?  If true
for different programs, how is it done?

Since the documentation says methods are restored to the default, I
assume methods are so restored even for different programs.  Correct?
--
Norman Ramsey
nr@princeton.edu

gnelson (Greg Nelson) (02/19/91)

    The documentation for Pkl.i3 says ``procedures are preserved.''
    Is this true for different programs containing some of the same
    modules, or true only for different invocations of the same program?
    If true for different programs, how is it done?

When Pkl.Write encounters a procedure, it writes the procedure's
qualified name and signature into the pickle.  The program reading
the pickle must contain a procedure with the same qualified name and
signature, or else Pkl.Read will raise an exception.  Different programs
reading the pickle could have different compiled code for the procedure.
Methods are treated the same way.

nr@atomic.Princeton.EDU (Norman Ramsey) (02/21/91)

Suppose I have a procedure for saving a single copy of any TEXT:
  PROCEDURE Unique(s:TEXT):TEXT;
such that for all s, s1, s2
  Text.Equal(s,Unique(s));
and
  IF Text.Equal(s1,s2) THEN Unique(s1) = Unique(s2)

Is there a way for me to use this procedure with the Pkl interface to
guarantee that pickles I write won't contain more than one copy of any
TEXT? 
--
Norman Ramsey
nr@princeton.edu