Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!cs.utexas.edu!uunet!bloom-beacon!think!kulla!barmar
From: barmar@kulla (Barry Margolin)
Newsgroups: comp.lang.c
Subject: Re: What is alloca()? [Generated by bison from flex]
Message-ID: <30149@news.Think.COM>
Date: 26 Sep 89 23:28:09 GMT
References: <3823.2518c141@uwovax.uwo.ca> <1989Sep24.050214.13898@utzoo.uucp> <6361@thor.acc.stolaf.edu> <1989Sep25.172824.18692@utzoo.uucp>
Sender: news@Think.COM
Organization: Thinking Machines Corporation, Cambridge MA, USA
Lines: 19

In article <1989Sep25.172824.18692@utzoo.uucp> henry@utzoo.uucp (Henry Spencer) writes:
>In article <6361@thor.acc.stolaf.edu> mike@stolaf.edu (Mike Haertel) writes:
>>I think alloca() originated in one of the early VAX BSD's.  My guess
>>would be that it was invented for use implementing Franz Lisp...
>It goes back farther than that.  The first occurrence I'm aware of was in
>PWB circa 1977.

It also exists in Multics, although I don't know whether it was in the
Multics design during the days when Bell Labs was part of the project.
On Multics it is called something like cu_$expand_stack_frame ("cu_$"
is the prefix for the "command utilities" library, which includes lots
of stack-frame-manipulation routines because it contains the
variable-argument routines that are used instead of argv[], and the
generate-call routines that are used in place of exec()).

Barry Margolin, Thinking Machines Corp.

barmar@think.com
{uunet,harvard}!think!barmar