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