From: Brian Rogoff <bpr@bpr.best.vwh.net>
To: Markus Mottl <markus@oefai.at>
Cc: Scott Cyphers <cyphers@sls.lcs.mit.edu>,
Martin Jambon <m.jambon@ibcp.fr>, <caml-list@inria.fr>
Subject: Re: [Caml-list] Memory leak
Date: Wed, 17 Apr 2002 14:53:48 +0000 (GMT) [thread overview]
Message-ID: <Pine.BSF.4.40.0204171447001.22422-100000@bpr.best.vwh.net> (raw)
In-Reply-To: <20020417092252.GA20621@kiefer.ai.univie.ac.at>
On Wed, 17 Apr 2002, Markus Mottl wrote:
> On Tue, 16 Apr 2002, Scott Cyphers wrote:
> > > Sure. There was a great demo of this on the translator's list for the
> > > O'Reilly book; create a representation of stacks based on arrays with a
> > > top of stack index. Popping items off of the stack by moving the TOS
> > > pointer around won't free them. Could you be doing something like that?
> >
> > In that particular case, the stack implementation is a lot uglier when you
> > need to provide the ability to neutralize array elements of arbitrary type
> > as you pop the stack. Sometimes you get lulled into thinking the GC works
> > completely invisibly.
>
> In case you ever need such functionality (stacks based on arrays), you
> might want to try the library of resizable arrays called RES, which also
> handles resizable strings:
>
> http://www.ai.univie.ac.at/~markus/home/ocaml_sources.html
Hey, don't they say "Never use Obj.magic!"? ;-)
I thought the issue that Scott caught on the translator's list was nice,
and very easy to overlook. The safe way to do this without using magic is
to either change the interface to provide a value of the element type or
to use options underneath and add another level of packing and unpacking.
I don't know if that issue is FAQ worthy, but it belongs in some kind of
"gotcha" list for Caml programmers. Really anyone using a GCed language
with arrays may see that one...
-- Brian
-------------------
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
next prev parent reply other threads:[~2002-04-18 21:02 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-04-15 19:24 Martin Jambon
2002-04-16 13:22 ` Brian Rogoff
2002-04-16 22:41 ` Scott Cyphers
2002-04-17 9:22 ` Markus Mottl
2002-04-17 14:53 ` Brian Rogoff [this message]
2002-04-16 16:52 ` Martin Jambon
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=Pine.BSF.4.40.0204171447001.22422-100000@bpr.best.vwh.net \
--to=bpr@bpr.best.vwh.net \
--cc=caml-list@inria.fr \
--cc=cyphers@sls.lcs.mit.edu \
--cc=m.jambon@ibcp.fr \
--cc=markus@oefai.at \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).