caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
* Re: [Caml-list] The DLL-hell of O'Caml
@ 2002-03-11  4:28 Mark D. Anderson
  2002-03-11  7:12 ` Mattias Waldau
  2002-03-11 12:15 ` Gerd Stolpmann
  0 siblings, 2 replies; 38+ messages in thread
From: Mark D. Anderson @ 2002-03-11  4:28 UTC (permalink / raw)
  To: caml-list

If someone is going to work on this, I'd recommend they look even more deeply
at what perl and python do. It is more than just "download over http"; there
are also issues of versioning among others.

Some of the things both those languages have, to greater or lesser degrees:

- there is a web site for humans with search and list, such as search.cpan.org

- there is a command line which does search, list, and install, such as 
"perl -MCPAN -e shell" or "ppm"
(ppm is more an activestate thing; CPAN.pm is distributed)
The install can deal with recursive dependencies if you want.

- the install utility can handle pure language packages, mixed language packages
with C source, and mixed language packages with pre-compiled C source
for one architecture (ppm is less flexible but simpler).

- really obscene things can be done with the perl "Inline" module: http://search.cpan.org/search?dist=Inline

- a single language install tree can handle a mixture of binary modules that vary by
architecture (i686-linux vs. MSWin32-x86-multi-thread) or by language version (5.005 vs. 5.6).
pure-language modules can vary by language version.
This is useful for multiple developers sharing a single install over NFS, or for
a single developer that is trying out multiple configurations.

- the language runtime does best effort when a package is asked for by name,
taking the "best-fit" one;
this prevents you having to upgrade all packages just because the language is
upgraded.

-mda


-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners


^ permalink raw reply	[flat|nested] 38+ messages in thread
* RE: [Caml-list] The DLL-hell of O'Caml
@ 2002-03-22 10:24 Dave Berry
  0 siblings, 0 replies; 38+ messages in thread
From: Dave Berry @ 2002-03-22 10:24 UTC (permalink / raw)
  To: Xavier Leroy, Jeff Henrikson, caml-list

FWIW, we (KAL) maintain backwards compatibility in a whole host of DLLs
and OCXs on Windows NT, 2000, and XP.  You can drop a version of our
utilities DLL compiled last night into a distribution from two years
ago, and your distribution will carry on working as if nothing had
changed.  So it is possible, even on Microsoft systems, given sufficient
care on the part of the designers.

What would be nice would be a type system that could ensure this for us.
There's some opportunities for academic research here, surely?

-----Original Message-----
From: Xavier Leroy [mailto:xavier.leroy@inria.fr]
Sent: 21 March 2002 18:10
To: Jeff Henrikson
Cc: caml-list@inria.fr
Subject: Re: [Caml-list] The DLL-hell of O'Caml

What I think is futile is to expect users to pick independently-
compiled binary distributions of libraries and dynamically-linked
executables
left and right, and expect that the resulting system will work.  Try
to do this with a Linux system and it will break very quickly.

-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners


^ permalink raw reply	[flat|nested] 38+ messages in thread
* RE: [Caml-list] The DLL-hell of O'Caml
@ 2002-03-22 10:14 Dave Berry
  0 siblings, 0 replies; 38+ messages in thread
From: Dave Berry @ 2002-03-22 10:14 UTC (permalink / raw)
  To: Xavier Leroy, Christopher Quinn, caml-list

I don't have figures for this, unfortunately.  I believe the TIL folks
use this technique to keep the size of their type information
manageable; possibly they have some measurements.

I can offer two anecdotal examples.  Way back when the Edinburgh CS
department did all its teaching on one multi-user machine with about 8M
RAM, the Edinburgh ML implementation was quite unusable because the
top-level rapidly grew too large.  Hash-consing made it manageable, with
no appreciable loss of performance.

I believe Harlequin's implementation of Dylan also introduced
hash-consing to reduce the size of the program databases (among other
tricks).  This increased performance by reducing thrashing.

It's always hard to predict how much effect a given technique will have
in a given situation.  In practice someone would have to implement it
and measure the effect.



-----Original Message-----
From: Xavier Leroy [mailto:xavier.leroy@inria.fr]
Sent: 21 March 2002 18:13
To: Christopher Quinn
Cc: caml-list@inria.fr
Subject: Re: [Caml-list] The DLL-hell of O'Caml


> Any idea how much improvement would come from hash-consing, 
> as Dave Berry suggested? And only that part of a module's 
> signature which pertained to actual usage would need 
> inclusion, no? And only of those modules externally provided 
> upon which one's project depends, ie. the standard library, 
> not the internal project modules?

No idea.  It's certainly possible to reduce the size of the signature
information that has to be retained; how much and at what cost, I
don't know.

- Xavier Leroy
-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives:
http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ:
http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners
-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners


^ permalink raw reply	[flat|nested] 38+ messages in thread
* Re: [Caml-list] troubleshooting problem related to garbage collection
@ 2002-03-02  0:11 james woodyatt
  2002-03-02  7:57 ` [Caml-list] The DLL-hell of O'Caml Mattias Waldau
  0 siblings, 1 reply; 38+ messages in thread
From: james woodyatt @ 2002-03-02  0:11 UTC (permalink / raw)
  To: james woodyatt; +Cc: The Trade

On Friday, March 1, 2002, at 10:52 AM, james woodyatt wrote:
>
> Last night I spent a lot of time trying to figure out why an assertion 
> was failing in my code when I use it with large data sets.  I'm still 
> puzzled.
>
> This morning, I inserted the following at the beginning of my main 
> module:
>
>> Gc.set {
>>     (Gc.get ()) with
>>     Gc.major_heap_increment = 64000
>> }
>
> This made the problem go away.

Further investigation reveals that it does not make the problem go away, 
it changes the failure mode into one that only makes it look like the 
problem has gone away.  The process terminates prematurely (but there 
was no more output expected anyway).

> What's even more strange is that there are multiple failure modes to 
> choose from depending on which number I pick for the 
> major_heap_increment value.  The number I am using here just happens to 
> be the one that makes the code work.
>
> Can anyone advise me on how to find the bug here?

I've found the problem.  It was a function trying too hard not to blit a 
string.  The bug only manifested when writing to a non-blocking TCP 
socket would return a value less than the number of octets to send.

This makes me think that when similar problems arise-- i.e. when 
changing the parameters of the GC seems to make always-reproduceable 
misbehavior change in some remarkable way-- the first place to start 
looking for the cause is code that blits strings.


--
j h woodyatt <jhw@wetware.com>
"...the antidote to misinformation is more information, not less."
                                                      --vinton cerf

-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners


^ permalink raw reply	[flat|nested] 38+ messages in thread

end of thread, other threads:[~2002-03-22 10:27 UTC | newest]

Thread overview: 38+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2002-03-11  4:28 [Caml-list] The DLL-hell of O'Caml Mark D. Anderson
2002-03-11  7:12 ` Mattias Waldau
2002-03-11 12:15 ` Gerd Stolpmann
2002-03-12  0:19   ` Jeff Henrikson
2002-03-12 22:00     ` Gerd Stolpmann
2002-03-20 11:20       ` Fergus Henderson
2002-03-20 11:43         ` Jacques Garrigue
2002-03-20 17:16           ` Fergus Henderson
2002-03-20 12:53         ` Gerd Stolpmann
2002-03-20 13:05           ` Johan Georg Granström
2002-03-20 13:40             ` Gerd Stolpmann
2002-03-20 19:46               ` Alain Frisch
2002-03-20 20:39               ` Xavier Leroy
2002-03-20 21:16                 ` Markus Mottl
2002-03-21  9:07                 ` Warp
2002-03-21 10:18                 ` Christopher Quinn
2002-03-21 18:13                   ` Xavier Leroy
2002-03-21 14:13                 ` Jeff Henrikson
2002-03-21 14:13                   ` [Caml-list] Type-safe DLL's with OO (was DLL-hell of O'Caml) Tim Freeman
2002-03-21 18:10                   ` [Caml-list] The DLL-hell of O'Caml Xavier Leroy
2002-03-21 18:39                     ` Sven
2002-03-21 19:22                     ` james woodyatt
2002-03-21 19:43                     ` Jeff Henrikson
2002-03-22  2:02                     ` Brian Rogoff
2002-03-22 10:11                     ` Warp
2002-03-21 18:50                 ` Sven
  -- strict thread matches above, loose matches on Subject: below --
2002-03-22 10:24 Dave Berry
2002-03-22 10:14 Dave Berry
2002-03-02  0:11 [Caml-list] troubleshooting problem related to garbage collection james woodyatt
2002-03-02  7:57 ` [Caml-list] The DLL-hell of O'Caml Mattias Waldau
2002-03-02 11:56   ` Markus Mottl
2002-03-02 21:40     ` Alexander V. Voinov
2002-03-02 14:46   ` Alain Frisch
2002-03-02 19:00     ` Chris Hecker
2002-03-02 19:42       ` Mattias Waldau
2002-03-02 22:41         ` Chris Hecker
2002-03-03 15:56           ` Vitaly Lugovsky
2002-03-04  9:57         ` Sven
2002-03-04 12:20   ` Jacques Garrigue

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).