14 |
|
|
15 |
---------------------------------------------------------------------- |
---------------------------------------------------------------------- |
16 |
Name: Matthias Blume (blume (at) tti - c (dot) org) |
Name: Matthias Blume (blume (at) tti - c (dot) org) |
17 |
|
Date: 2003/09/26 12:00:00 CDT |
18 |
|
Tag: blume-20030926-ppautoload |
19 |
|
Description: |
20 |
|
|
21 |
|
I modified the read-eval-print loop so that the autoloader gets |
22 |
|
invoked whenever the prettyprinter tries to look up a symbol that |
23 |
|
is not currently defined in the toplevel environment but which |
24 |
|
appears in CM's autoload registry. As a result, we see far fewer of |
25 |
|
those ?.Foo.Bar.xxx names in the prettyprinter's output. |
26 |
|
|
27 |
|
In addition to this I tried to clean up some pieces of the Basis |
28 |
|
implementation (e.g., Socket, Word8Array) in order to prevent other |
29 |
|
instances of these ?.Foo.Bar.xxx names from being printed. |
30 |
|
|
31 |
|
The mechanism that picks names for types still needs some work, though. |
32 |
|
(Right now it seems that if there is a type A.t which is defined to |
33 |
|
be B.y, but B is unavailable at toplevel, then A.t gets printed as |
34 |
|
"?.B.t" although the perhaps more sensible solution would be to use |
35 |
|
"A.t" in this case. In other words, the prettyprinter should follow |
36 |
|
a chain of DEFtycs not farther than there are corresponding toplevel |
37 |
|
names in the current environment.) |
38 |
|
|
39 |
|
---------------------------------------------------------------------- |
40 |
|
Name: Matthias Blume (blume (at) tti - c (dot) org) |
41 |
|
Date: 2003/09/24 16:31:00 CDT |
42 |
|
Tag: blume-20030924-installer |
43 |
|
Description: |
44 |
|
|
45 |
|
Another installer tweak: All the ML code for the installer is now |
46 |
|
compiled during CMB.make and put into a little library called |
47 |
|
$smlnj/installer.cm. The installation then simply invokes |
48 |
|
|
49 |
|
sml -m $smlnj/installer.cm |
50 |
|
|
51 |
|
and everything happens automagically. |
52 |
|
|
53 |
|
Win32: ML code senses value of environment variable SMLNJ_HOME. |
54 |
|
Unix: ML code senses values of environment variables ROOT, CONFIGDIR, |
55 |
|
and BINDIR. |
56 |
|
|
57 |
|
The new scheme guarantees that the ML code responsible for the installation |
58 |
|
is in sync with the APIs of the main system. Also, the installer is |
59 |
|
somewhat faster because the installer script is precompiled. |
60 |
|
|
61 |
|
---------------------------------------------------------------------- |
62 |
|
Name: Matthias Blume (blume (at) tti - c (dot) org) |
63 |
|
Date: 2003/09/24 15:35:00 CDT |
64 |
|
Tag: blume-20030924-synsock |
65 |
|
Description: |
66 |
|
|
67 |
|
Added a signature SYNCHRONOUS_SOCKET to basis.cm. This is like SOCKET |
68 |
|
but excludes all non-blocking operations. Defined SOCKET (in Basis) |
69 |
|
and CML_SOCKET in terms of SYNCHRONOUS_SOCKET. Removed superfluous |
70 |
|
implementations of non-blocking operations from CML's Socket |
71 |
|
structure. |
72 |
|
|
73 |
|
---------------------------------------------------------------------- |
74 |
|
Name: Matthias Blume (blume (at) tti - c (dot) org) |
75 |
|
Date: 2003/09/24 15:10:05 CDT |
76 |
|
Tag: blume-20030924-sockets |
77 |
|
Description: |
78 |
|
|
79 |
|
1. Fixed SOCKET API and implementation to match Basis spec. |
80 |
|
This required changing the internal representation of sockets to one |
81 |
|
that remembers (for each socket file descriptor) whether it is currently |
82 |
|
blocking or non-blocking. This state is maintained lazily (i.e., a system |
83 |
|
call is made only if the state actually needs to change). |
84 |
|
|
85 |
|
2. OS-specific details of sockets were moved into separate files, thus |
86 |
|
making it possible to unify the bulk of the socket implementations |
87 |
|
between Unix and Win32. |
88 |
|
|
89 |
|
3. CML's socket API changed accordingly. |
90 |
|
(Note that we need to remove non-blocking functions from this API |
91 |
|
since they are redundant in the case of CML!) |
92 |
|
|
93 |
|
4. CML's socket implementation now makes use of non-blocking functions |
94 |
|
provided by Basis, thus removing all OS-dependent code from this part |
95 |
|
of CML. |
96 |
|
|
97 |
|
5. Changed Real64.precision from 52 to 53. Minor cleanup in Real64 code. |
98 |
|
|
99 |
|
---------------------------------------------------------------------- |
100 |
|
Name: Matthias Blume (blume (at) tti - c (dot) org) |
101 |
Date: 2003/09/22 12:10:00 CDT |
Date: 2003/09/22 12:10:00 CDT |
102 |
Tag: blume-20030918-110_43_2 |
Tag: blume-20030922-110_43_2 |
103 |
Description: |
Description: |
104 |
|
|
105 |
Made a new interim version and bootfiles for developer's bootstrapping |
Made a new interim version and bootfiles for developer's bootstrapping |