Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.c > #91636

Re: Extending C with GC?

From David Brown <david.brown@hesbynett.no>
Newsgroups comp.lang.c
Subject Re: Extending C with GC?
Date 2016-08-04 10:57 +0200
Organization A noiseless patient Spider
Message-ID <nnv02k$dom$1@dont-email.me> (permalink)
References <60b33d17-71b7-4ecf-a821-dc641e2673ba@googlegroups.com> <lninvl5sjx.fsf@kst-u.example.com> <lnwpjx1obh.fsf@kst-u.example.com> <nnu9nh$nl8$1@dont-email.me>

Show all headers | View raw


On 04/08/16 04:36, James Kuyper wrote:
> On 08/03/2016 06:26 PM, Keith Thompson wrote:
> ...
>> A GC system that depends on scanning memory and registers looking
>> for in-use addresses can also get false positives.
>>
>> A GC-aware program might build, say, a large binary tree in memory.
>> Let's say the root node is allocated at (void*)0xdeadbeef, and
>> the rest of the tree is accessible only via the root.  The program
>> might then set its only copy of the root pointer to NULL with the
>> expectation that the whole tree will then be garbage-collected.
>> But if something that looks like the address of the root node happens
>> to be stored elsewhere, it might never be collected, resulting in
>> a memory leak.
> 
> It has always been my understanding that GC inherently involves
> non-deterministic deallocation, partly because you can't be sure how
> long it will be until the collector notices that there are no remaining
> references, but mainly because it necessarily can incorrectly identify
> things as references to allocated memory that actually aren't. I've
> assumed that GC is used only by people who are comfortable with
> non-deterministic deallocation.
> I personally prefer the greater control over deallocation that is
> provided by malloc/free.

malloc/free are also (in most implementations) non-deterministic in some
aspects.  In particular, their run times can be very hard to predict,
and you never know in advance if malloc will succeed or not.  You know
that when you call free, memory will in some sense be "freed" - but you
don't know whether or not you will be able to use that memory in the
next malloc.

GC adds more non-determinism - you have no idea when memory will be
freed, and it may never be freed at all.  (Cyclic references are a
killer.)  But it gives you extra convenience, and can often save time
(certainly saving developer time, perhaps saving run time).

For much of my work (small systems embedded programming), the
non-determinism of standard malloc/free is too much - dynamic memory
allocation is avoided whenever possible.  It is usually better to have
static allocation with the memory sized to suit the worst case, than to
have the risk of malloc failures or heap fragmentation problems.

> 
>> I'm fairly sure this is a well known issue.  Perhaps there are
>> solutions I don't know about.
> 
> I thought that the "solution" was simply to note that this is not likely
> to happen very often, and less often with larger memory spaces, and to
> decide that this low probability is acceptable.
> 

Back to comp.lang.c | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

Extending C with GC? luser droog <luser.droog@gmail.com> - 2016-07-31 15:31 -0700
  Re: Extending C with GC? Keith Thompson <kst-u@mib.org> - 2016-07-31 15:52 -0700
    Re: Extending C with GC? Tim Rentsch <txr@alumni.caltech.edu> - 2016-07-31 17:21 -0700
    Re: Extending C with GC? Jean-Marc Bourguet <jm@bourguet.org> - 2016-08-01 20:34 +0200
      Re: Extending C with GC? supercat@casperkitty.com - 2016-08-01 12:14 -0700
      Re: Extending C with GC? Keith Thompson <kst-u@mib.org> - 2016-08-01 12:46 -0700
        Re: Extending C with GC? "James R. Kuyper" <jameskuyper@verizon.net> - 2016-08-01 15:56 -0400
          Re: Extending C with GC? Keith Thompson <kst-u@mib.org> - 2016-08-01 14:28 -0700
        Re: Extending C with GC? Jean-Marc Bourguet <jm@bourguet.org> - 2016-08-01 23:37 +0200
          Re: Extending C with GC? Keith Thompson <kst-u@mib.org> - 2016-08-01 15:03 -0700
          Re: Extending C with GC? jacobnavia <jacob@jacob.remcomp.fr> - 2016-08-02 00:11 +0200
            Re: Extending C with GC? "James R. Kuyper" <jameskuyper@verizon.net> - 2016-08-01 18:19 -0400
              Re: Extending C with GC? BGB <cr88192@hotmail.com> - 2016-08-02 12:46 -0500
    Re: Extending C with GC? Keith Thompson <kst-u@mib.org> - 2016-08-03 15:26 -0700
      Re: Extending C with GC? "Rick C. Hodgin" <rick.c.hodgin@gmail.com> - 2016-08-03 15:49 -0700
        Re: Extending C with GC? Ian Collins <ian-news@hotmail.com> - 2016-08-04 14:07 +1200
          Re: Extending C with GC? "Rick C. Hodgin" <rick.c.hodgin@gmail.com> - 2016-08-03 19:26 -0700
            Re: Extending C with GC? Ian Collins <ian-news@hotmail.com> - 2016-08-04 14:55 +1200
          Re: Extending C with GC? Malcolm McLean <malcolm.mclean5@btinternet.com> - 2016-08-03 20:38 -0700
            Re: Extending C with GC? "Rick C. Hodgin" <rick.c.hodgin@gmail.com> - 2016-08-04 05:10 -0700
              Re: Extending C with GC? Siri Cruise <chine.bleu@yahoo.com> - 2016-08-04 05:57 -0700
                Re: Extending C with GC? "Rick C. Hodgin" <rick.c.hodgin@gmail.com> - 2016-08-04 06:13 -0700
              Re: Extending C with GC? Ian Collins <ian-news@hotmail.com> - 2016-08-05 07:24 +1200
                Re: Extending C with GC? "Rick C. Hodgin" <rick.c.hodgin@gmail.com> - 2016-08-04 12:47 -0700
                Re: Extending C with GC? Malcolm McLean <malcolm.mclean5@btinternet.com> - 2016-08-04 23:32 -0700
                Re: Extending C with GC? Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-08-05 10:09 +0100
                Re: Extending C with GC? Ian Collins <ian-news@hotmail.com> - 2016-08-05 20:32 +1200
                Re: Extending C with GC? "Rick C. Hodgin" <rick.c.hodgin@gmail.com> - 2016-08-05 06:14 -0700
                Re: Extending C with GC? "Rick C. Hodgin" <rick.c.hodgin@gmail.com> - 2016-08-06 04:14 -0700
                Re: Extending C with GC? Melzzzzz <mel@zzzzz.com> - 2016-08-06 13:23 +0200
                Re: Extending C with GC? "Rick C. Hodgin" <rick.c.hodgin@gmail.com> - 2016-08-06 04:38 -0700
                Re: Extending C with GC? Malcolm McLean <malcolm.mclean5@btinternet.com> - 2016-08-06 04:34 -0700
                Re: Extending C with GC? "Rick C. Hodgin" <rick.c.hodgin@gmail.com> - 2016-08-06 05:28 -0700
                Re: Extending C with GC? "Rick C. Hodgin" <rick.c.hodgin@gmail.com> - 2016-08-06 06:05 -0700
                Re: Extending C with GC? "Rick C. Hodgin" <rick.c.hodgin@gmail.com> - 2016-08-06 06:12 -0700
                Re: Extending C with GC? Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-08-06 14:02 +0100
                Re: Extending C with GC? Malcolm McLean <malcolm.mclean5@btinternet.com> - 2016-08-06 06:11 -0700
                Re: Extending C with GC? Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-08-06 14:50 +0100
                Re: Extending C with GC? Malcolm McLean <malcolm.mclean5@btinternet.com> - 2016-08-06 07:57 -0700
                Re: Extending C with GC? Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-08-06 17:02 +0100
                Re: Extending C with GC? jacobnavia <jacob@jacob.remcomp.fr> - 2016-08-06 19:20 +0200
                Re: Extending C with GC? BartC <bc@freeuk.com> - 2016-08-06 14:27 +0100
                Re: Extending C with GC? Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-08-06 14:45 +0100
                Re: Extending C with GC? "Rick C. Hodgin" <rick.c.hodgin@gmail.com> - 2016-08-06 09:59 -0700
                Re: Extending C with GC? BartC <bc@freeuk.com> - 2016-08-06 19:38 +0100
                Re: Extending C with GC? "Rick C. Hodgin" <rick.c.hodgin@gmail.com> - 2016-08-06 17:03 -0700
                Re: Extending C with GC? BartC <bc@freeuk.com> - 2016-08-07 09:54 +0100
                Re: Extending C with GC? Ian Collins <ian-news@hotmail.com> - 2016-08-07 21:53 +1200
                Re: Extending C with GC? BartC <bc@freeuk.com> - 2016-08-07 11:34 +0100
                Re: Extending C with GC? anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2016-08-07 12:06 +0000
                Re: Extending C with GC? Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-08-07 14:10 +0100
                Re: Extending C with GC? BartC <bc@freeuk.com> - 2016-08-07 15:38 +0100
                Re: Extending C with GC? Keith Thompson <kst-u@mib.org> - 2016-08-07 14:32 -0700
                Re: Extending C with GC? BartC <bc@freeuk.com> - 2016-08-07 23:44 +0100
                Re: Extending C with GC? Keith Thompson <kst-u@mib.org> - 2016-08-07 16:12 -0700
                Re: Extending C with GC? BartC <bc@freeuk.com> - 2016-08-08 01:42 +0100
                Re: Extending C with GC? Keith Thompson <kst-u@mib.org> - 2016-08-07 18:56 -0700
                Re: Extending C with GC? BartC <bc@freeuk.com> - 2016-08-08 10:20 +0100
                Re: Extending C with GC? Keith Thompson <kst-u@mib.org> - 2016-08-08 09:39 -0700
                Re: Extending C with GC? Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-08-08 02:30 +0100
                Re: Extending C with GC? BartC <bc@freeuk.com> - 2016-08-07 20:15 +0100
                Re: Extending C with GC? Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-08-08 01:24 +0100
                Re: Extending C with GC? BartC <bc@freeuk.com> - 2016-08-08 02:08 +0100
                Re: Extending C with GC? Keith Thompson <kst-u@mib.org> - 2016-08-07 18:49 -0700
                Re: Extending C with GC? Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-08-08 03:28 +0100
                Re: Extending C with GC? BartC <bc@freeuk.com> - 2016-08-08 12:14 +0100
                Re: Extending C with GC? Ian Collins <ian-news@hotmail.com> - 2016-08-08 07:37 +1200
                Re: Extending C with GC? BartC <bc@freeuk.com> - 2016-08-07 20:56 +0100
                Re: Extending C with GC? Ian Collins <ian-news@hotmail.com> - 2016-08-08 08:11 +1200
                Re: Extending C with GC? Melzzzzz <mel@zzzzz.com> - 2016-08-07 22:19 +0200
                Re: Extending C with GC? BartC <bc@freeuk.com> - 2016-08-07 22:23 +0100
                Re: Extending C with GC? "Rick C. Hodgin" <rick.c.hodgin@gmail.com> - 2016-08-07 14:29 -0700
                Re: Extending C with GC? BartC <bc@freeuk.com> - 2016-08-07 22:36 +0100
                Re: Extending C with GC? "Rick C. Hodgin" <rick.c.hodgin@gmail.com> - 2016-08-07 15:04 -0700
                Re: Extending C with GC? jameskuyper@verizon.net - 2016-08-07 15:19 -0700
                Re: Extending C with GC? BartC <bc@freeuk.com> - 2016-08-08 00:04 +0100
                Re: Extending C with GC? "Rick C. Hodgin" <rick.c.hodgin@gmail.com> - 2016-08-07 16:20 -0700
                Re: Extending C with GC? Ian Collins <ian-news@hotmail.com> - 2016-08-08 15:21 +1200
                Re: Extending C with GC? BartC <bc@freeuk.com> - 2016-08-08 10:35 +0100
                Re: Extending C with GC? Gareth Owen <gwowen@gmail.com> - 2016-08-08 18:13 +0100
                Re: Extending C with GC? supercat@casperkitty.com - 2016-08-08 11:53 -0700
                Re: Extending C with GC? raltbos@xs4all.nl (Richard Bos) - 2016-08-10 12:58 +0000
                Re: Extending C with GC? supercat@casperkitty.com - 2016-08-10 07:05 -0700
                Re: Extending C with GC? Ken Brody <kenbrody@spamcop.net> - 2016-08-10 12:29 -0400
                Re: Extending C with GC? BartC <bc@freeuk.com> - 2016-08-08 21:15 +0100
                Re: Extending C with GC? supercat@casperkitty.com - 2016-08-08 08:57 -0700
                Re: Extending C with GC? luser droog <luser.droog@gmail.com> - 2016-08-07 15:37 -0700
                Re: Extending C with GC? Keith Thompson <kst-u@mib.org> - 2016-08-07 14:58 -0700
                Re: Extending C with GC? Ian Collins <ian-news@hotmail.com> - 2016-08-08 15:26 +1200
                Re: Extending C with GC? jacobnavia <jacob@jacob.remcomp.fr> - 2016-08-08 10:26 +0200
                Re: Extending C with GC? Ian Collins <ian-news@hotmail.com> - 2016-08-08 21:13 +1200
                Re: Extending C with GC? BartC <bc@freeuk.com> - 2016-08-08 10:41 +0100
                Re: Extending C with GC? jacobnavia <jacob@jacob.remcomp.fr> - 2016-08-08 12:00 +0200
                Re: Extending C with GC? Ian Collins <ian-news@hotmail.com> - 2016-08-08 22:07 +1200
                Re: Extending C with GC? David Brown <david.brown@hesbynett.no> - 2016-08-08 12:57 +0200
                Re: Extending C with GC? Gareth Owen <gwowen@gmail.com> - 2016-08-08 18:12 +0100
                Re: Extending C with GC? Ian Collins <ian-news@hotmail.com> - 2016-08-08 21:25 +1200
                Re: Extending C with GC? Malcolm McLean <malcolm.mclean5@btinternet.com> - 2016-08-08 02:57 -0700
                Re: Extending C with GC? Keith Thompson <kst-u@mib.org> - 2016-08-07 13:28 -0700
                Re: Extending C with GC? "Rick C. Hodgin" <rick.c.hodgin@gmail.com> - 2016-08-07 05:42 -0700
                Re: Extending C with GC? Florian Weimer <fw@deneb.enyo.de> - 2016-08-07 11:49 +0200
                Re: Extending C with GC? jacobnavia <jacob@jacob.remcomp.fr> - 2016-08-06 19:18 +0200
                Re: Extending C with GC? Keith Thompson <kst-u@mib.org> - 2016-08-06 12:35 -0700
                Re: Extending C with GC? jacobnavia <jacob@jacob.remcomp.fr> - 2016-08-06 19:27 +0200
                Re: Extending C with GC? "Rick C. Hodgin" <rick.c.hodgin@gmail.com> - 2016-08-06 10:55 -0700
                Re: Extending C with GC? Keith Thompson <kst-u@mib.org> - 2016-08-06 12:31 -0700
      Re: Extending C with GC? James Kuyper <jameskuyper@verizon.net> - 2016-08-03 22:36 -0400
        Re: Extending C with GC? David Brown <david.brown@hesbynett.no> - 2016-08-04 10:57 +0200
          Re: Extending C with GC? Malcolm McLean <malcolm.mclean5@btinternet.com> - 2016-08-04 04:09 -0700
            Re: Extending C with GC? David Brown <david.brown@hesbynett.no> - 2016-08-04 14:01 +0200
        Re: Extending C with GC? supercat@casperkitty.com - 2016-08-04 07:52 -0700
      Re: Extending C with GC? Tim Rentsch <txr@alumni.caltech.edu> - 2016-08-04 08:57 -0700
        Re: Extending C with GC? supercat@casperkitty.com - 2016-08-04 09:19 -0700
          Re: Extending C with GC? Keith Thompson <kst-u@mib.org> - 2016-08-04 12:30 -0700
            Re: Extending C with GC? supercat@casperkitty.com - 2016-08-04 15:21 -0700
              Re: Extending C with GC? Keith Thompson <kst-u@mib.org> - 2016-08-04 16:50 -0700
                Re: Extending C with GC? supercat@casperkitty.com - 2016-08-05 07:31 -0700
          Re: Extending C with GC? Tim Rentsch <txr@alumni.caltech.edu> - 2016-08-05 16:01 -0700
        Re: Extending C with GC? jacobnavia <jacob@jacob.remcomp.fr> - 2016-08-04 21:00 +0200
          Re: Extending C with GC? Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-08-04 20:26 +0100
            Re: Extending C with GC? jacobnavia <jacob@jacob.remcomp.fr> - 2016-08-05 10:37 +0200
              Re: Extending C with GC? Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-08-05 15:52 +0100
              Re: Extending C with GC? antispam@math.uni.wroc.pl - 2016-08-21 00:09 +0000
                Re: Extending C with GC? Gareth Owen <gwowen@gmail.com> - 2016-08-21 08:58 +0100
                Re: Extending C with GC? jacobnavia <jacob@jacob.remcomp.fr> - 2016-08-21 10:48 +0200
                Re: Extending C with GC? "Pascal J. Bourguignon" <pjb@informatimago.com> - 2016-08-21 19:58 +0200
                Re: Extending C with GC? supercat@casperkitty.com - 2016-08-22 08:46 -0700
                Re: Extending C with GC? Öö Tiib <ootiib@hot.ee> - 2016-08-26 02:24 -0700
                Re: Extending C with GC? supercat@casperkitty.com - 2016-08-26 13:37 -0700
                Re: Extending C with GC? Melzzzzz <mel@zzzzz.com> - 2016-08-27 00:41 +0200
                Re: Extending C with GC? Öö Tiib <ootiib@hot.ee> - 2016-08-28 06:12 -0700
            Re: Extending C with GC? BartC <bc@freeuk.com> - 2016-08-05 10:06 +0100
              Re: Extending C with GC? Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-08-05 15:26 +0100
          Re: Extending C with GC? Tim Rentsch <txr@alumni.caltech.edu> - 2016-08-05 08:11 -0700
            Re: Extending C with GC? jacobnavia <jacob@jacob.remcomp.fr> - 2016-08-05 17:43 +0200
              Re: Extending C with GC? Tim Rentsch <txr@alumni.caltech.edu> - 2016-08-05 15:28 -0700
        Re: Extending C with GC? BGB <cr88192@hotmail.com> - 2016-08-04 17:11 -0500
  Re: Extending C with GC? Tim Rentsch <txr@alumni.caltech.edu> - 2016-07-31 17:35 -0700
  Re: Extending C with GC? jacobnavia <jacob@jacob.remcomp.fr> - 2016-08-01 07:45 +0200
    Re: Extending C with GC? Keith Thompson <kst-u@mib.org> - 2016-08-01 08:49 -0700
    Re: Extending C with GC? supercat@casperkitty.com - 2016-08-01 09:06 -0700
      Re: Extending C with GC? Aleksandar Kuktin <akuktin@gmail.com> - 2016-08-05 18:11 +0000
        Re: Extending C with GC? luser droog <luser.droog@gmail.com> - 2016-08-05 11:24 -0700
  Re: Extending C with GC? "Chris M. Thomasson" <invalid@invalid.invalid> - 2016-08-08 22:12 -0700

csiph-web