Path: news.cs.au.dk!news.net.uni-c.dk!howland.erols.net!dispose.news.demon.net!demon!colt.net!news0.de.colt.net!news-fra1.dfn.de!news-koe1.dfn.de!news.uni-dortmund.de!Informatik.Uni-Dortmund.DE!news From: Holger Tuerk Newsgroups: comp.lang.beta Subject: Re: BetaEnv and SystemEnv Date: Mon, 14 Jun 1999 11:39:13 +0200 Organization: CS Department, University of Dortmund, Germany Message-ID: <3764CDC1.19E7@marvin.informatik.uni-dortmund.de> References: <376147B6.8138CB03@WtAl.dE> NNTP-Posting-Host: marvin.cs.uni-dortmund.de Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Mailer: Mozilla 3.0 (X11; I; SunOS 5.6 sun4u) Lines: 41 Xref: news.cs.au.dk comp.lang.beta:12001 Bastian wrote: > [...] > code1.bet: > ORIGIN '....betaenv'; > INCLUDE 'code2.bet' > -- program: descriptor-- > (# > ... > Method > #) > > ------------------------- > code2.bet: > ORIGIN '....systemenv' > -- lib: attributes -- > Method: systemenv (# ... #) > ... > > -------------------------- > > I compile Code1.bet. When the program comes to the point that METHOD > should be called, it says that 'Illegal use of SystemEnv. The PROGRAM > descriptor must be a subpattern of systemenv'. That is because the only valid approach to use systemenv is -- program: descriptor -- systemenv (# ... #) > I do not think that this is a problem of concurrency !? > Why does need my slot program be a subpattern of system ? BetaEnv is the > origin of both Systemenv and further basicsystemenv. Your program needs to be a specialization of systemenv to be able to use concurrent methods. These methods must be specializations of system (NOT systemENV) and should be started with fork. Remind that multithreading in the MBS currently is cooperative, so do not forget to insert enough SUSPEND-imperatives. >[...]