9fans - fans of the OS Plan 9 from Bell Labs
 help / color / mirror / Atom feed
From: erik quanstrom <quanstro@quanstro.net>
To: 9fans@cse.psu.edu
Subject: Re: [9fans] Google search of the day
Date: Fri, 15 Feb 2008 08:15:05 -0500	[thread overview]
Message-ID: <8acf684047f1930df45bba2b9208ea3e@quanstro.net> (raw)
In-Reply-To: <47B4A1C6.4208D94C@null.net>

believe it or not plan 9 does exactly the same thing, as was
discussed in august under the subject "plan 9 overcommits memory?".

fundamentally, i think the stack problem is an operating system
problem not a language problem.  (unless you're talking about
8 or 16-bit embedded things.)  the thread library, for example
does just fine requiring its threads to declare a stack size.

in the case of a memory-constrained app on an embedded system,
the solution might be to find/write an algorithm that doesn't need a stack. :-)

- erik

> (1) Linux had/has a "feature" where the storage reserved by
> malloc/sbrk may be over-committed, so that despite a "success"
> indication from the allocation, when the application gets around
> to using the storage it could suddenly fail due to there not
> being enough to satisfay all current processes.  I urged (but
> don't know whether anybody listened) that overcommitment should
> be disabled by default, with processes that want it (said to
> include "sparse array" programs, which sounds like bad design
> but that's another issue) being required to enable it by a
> specific request, or at least flagged as special in the
> executable object file.  I kludged around this in my portable
> malloc implementation by having a configuration flag which if
> set caused malloc to attempt to touch every page before
> reporting success, trapping SIGSEGV in order to maintain
> control.
>
> (2) C, as well as many other PLs, has always had a problem in
> that there is no clean, standard mechanism to handle the
> situation in which a function invocation finds insufficient
> stack remaining to complete the linkage (instance allocation).
> This is especially problematic in memory-constrained apps such
> as many embedded systems, when the algorithm is sufficiently
> dynamic that it is impossible to predict the maximum nesting
> depth.  At least with malloc failure, the program is informed
> when there is a problem and can take measures to cope with it.
>
> I hope people working on run-time environments will find ways
> to do better.


  parent reply	other threads:[~2008-02-15 13:15 UTC|newest]

Thread overview: 101+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-02-13 22:03 [9fans] quote " erik quanstrom
2008-02-13 23:08 ` Pietro Gagliardi
2008-02-13 23:24 ` [9fans] Google search " dave.l
2008-02-13 23:31   ` Pietro Gagliardi
2008-02-13 23:41     ` erik quanstrom
2008-02-13 23:49       ` Pietro Gagliardi
2008-02-13 23:59     ` john
2008-02-14  0:04       ` Pietro Gagliardi
2008-02-14  6:11         ` Anant Narayanan
2008-02-15 17:39         ` Skip Tavakkolian
2008-02-14 16:45       ` Douglas A. Gwyn
2008-02-14 17:09         ` john
2008-02-14 17:27           ` erik quanstrom
2008-02-15  9:50             ` Douglas A. Gwyn
2008-02-15 11:49               ` Alf
2008-02-15 13:15               ` erik quanstrom [this message]
2008-02-15 14:56                 ` Brantley Coile
2008-02-15 15:44                   ` Eris Discordia
2008-02-15 16:07                     ` erik quanstrom
2008-02-15 16:43                       ` maht
2008-02-15 17:35                         ` ron minnich
2008-02-15 18:14                           ` Iruata Souza
2008-02-15 18:37                           ` maht
2008-02-15 17:39                       ` Eris Discordia
2008-02-15 19:05                         ` maht
2008-02-15 20:11                           ` Eris Discordia
2008-02-15 20:18                             ` Pietro Gagliardi
2008-02-15 20:49                             ` maht
2008-02-16 23:32                               ` Eris Discordia
2008-02-15 23:37                         ` [9fans] Non-stack-based calling conventions Lyndon Nerenberg
2008-02-15 23:39                           ` Pietro Gagliardi
2008-02-15 23:47                             ` Paweł Lasek
2008-02-16  0:23                               ` Brantley Coile
2008-02-16 23:32                                 ` Eris Discordia
2008-02-16 23:41                                   ` Pietro Gagliardi
2008-02-16 23:49                                   ` Brantley Coile
2008-02-17  0:04                                   ` Brantley Coile
2008-02-17 13:30                                     ` Eris Discordia
2008-02-17 15:04                                       ` erik quanstrom
2008-02-17 21:43                                         ` Uriel
2008-02-17 23:58                                           ` erik quanstrom
2008-02-18  1:54                                             ` Bruce Ellis
2008-02-18  3:43                                               ` erik quanstrom
2008-02-18  4:31                                                 ` Bruce Ellis
2008-02-18  4:40                                                   ` Pietro Gagliardi
2008-02-18  6:22                                               ` Robert William Fuller
2008-02-18  7:23                                                 ` Bruce Ellis
2008-02-18  8:38                                                   ` Anant Narayanan
2008-02-22 10:02                                                     ` Douglas A. Gwyn
2008-02-22 19:35                                                       ` Anant Narayanan
2008-02-18  8:30                                                 ` Anant Narayanan
2008-02-18  8:44                                                   ` Bruce Ellis
2008-02-18 18:50                                                 ` Federico G. Benavento
2008-02-18 21:53                                                   ` Lorenzo Fernando Bivens de la Fuente
2008-02-18 22:55                                                     ` y i y u s
2008-02-18 23:46                                                       ` Uriel
2008-02-18 22:14                                                   ` Pietro Gagliardi
2008-02-18 22:16                                                     ` Pietro Gagliardi
2008-02-18 22:32                                                       ` Federico G. Benavento
2008-02-20 11:39                                                   ` maht
2008-02-20 17:19                                                     ` Bruce Ellis
2008-02-22 10:02                                                     ` Douglas A. Gwyn
2008-02-22 10:02                                                   ` Douglas A. Gwyn
2008-02-18 22:13                                                 ` LiteStar numnums
2008-02-18  4:44                                             ` Pietro Gagliardi
2008-02-18  4:46                                               ` Pietro Gagliardi
2008-02-18  5:03                                                 ` Uriel
2008-02-17 16:08                                       ` Anthony Sorace
2008-02-17 22:03                                         ` Charles Forsyth
2008-02-22 10:01                                       ` Douglas A. Gwyn
2008-02-22 14:07                                         ` Iruata Souza
2008-02-22 10:01                                     ` Douglas A. Gwyn
2008-02-22 10:01                                 ` Douglas A. Gwyn
2008-02-16  8:29                               ` Lluís Batlle
2008-02-17 23:09                                 ` Chad Dougherty
2008-02-18 21:50                                 ` Pietro Gagliardi
2008-02-22 10:02                                 ` Douglas A. Gwyn
2008-02-26 21:30                               ` Paweł Lasek
2008-02-26 22:00                                 ` maht
2008-02-26 22:32                                   ` Brantley Coile
2008-02-26 23:15                                     ` Uriel
2008-02-26 22:33                                   ` Brantley Coile
2008-02-26 22:46                                     ` Bruce Ellis
2008-02-27  4:26                                 ` lucio
2008-02-27  6:52                                   ` ron minnich
2008-02-27 17:57                                     ` lucio
2008-02-28  9:33                                     ` Bill Gunshannon
2008-02-28  9:58                                       ` Charles Forsyth
2008-02-28 14:15                                       ` Bill Gunshannon
2008-02-14 17:14         ` [9fans] Google search of the day Eris Discordia
2008-02-14 17:28           ` Fco. J. Ballesteros
2008-02-14 20:14             ` Eris Discordia
2008-02-14 20:30               ` Patrick Kristiansen
2008-02-14 20:38                 ` Eris Discordia
2008-02-14 22:09                   ` Pietro Gagliardi
2008-02-15  9:00                     ` Eris Discordia
2008-02-14 17:51           ` Iruata Souza
2008-02-15  9:31             ` sqweek
2008-02-18  9:48               ` Douglas A. Gwyn
2008-02-18  9:57                 ` Gorka Guardiola
2008-02-19  9:17                 ` sqweek

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=8acf684047f1930df45bba2b9208ea3e@quanstro.net \
    --to=quanstro@quanstro.net \
    --cc=9fans@cse.psu.edu \
    /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).