caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
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


  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).