Path: news.cs.au.dk!news.net.uni-c.dk!newspeer.ebone.net!news1.ebone.net!news.ebone.net!skynet.be!poster!not-for-mail From: Atle Newsgroups: comp.lang.beta Subject: Re: More newbie questions ... Date: Tue, 30 May 2000 19:19:16 -0100 Organization: Belgacom Skynet SA/NV Lines: 83 Message-ID: <39342244.49C38422@skynet.be> References: <20000530105522.17371.qmail@noatun.mjolner.dk> <3933D308.6DFBD114@skynet.be> NNTP-Posting-Host: dialup46.charleroi.skynet.be Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Trace: news1.skynet.be 959706975 32393 195.238.7.46 (30 May 2000 17:16:15 GMT) X-Complaints-To: abuse@skynet.be NNTP-Posting-Date: 30 May 2000 17:16:15 GMT X-Mailer: Mozilla 4.51 [en] (X11; I; Linux 2.2.5-15 i686) X-Accept-Language: en Xref: news.cs.au.dk comp.lang.beta:12368 Flemming Gram Christensen wrote: > > > ORIGIN '~beta/basiclib/betaenv'; > INCLUDE '~beta/basiclib/formatio'; > --PROGRAM: descriptor-- It looks like INCLUDE provides the library as well ( -lformatio ). But what is ORIGIN? Is this like in Windows, they have something called WinMain() and LibMain()? Or was is DLLEnter() and DLLExit()? Will ORIGIN affect the startup code? I tried debugging with xxgdb, but (of course) this didn't quite work. Is there a special debugger, or is there a way to make xxdgb understand Beta (references to program lines?)? > (# > r:[8]^text; Declaring a dynamic reference (pointer?) to an 8-elm array of text (Y/N)? > singleText:^text; Declaring a dynref to the 'iterator' (BTW: Are there 'iterators')? > > (* > struct s { > char name[25]; > char addr[25]; > char tlf[25]; > }; *) > > (* I prefer Texts and not char arrays, this is not C! *) Would there be any reason to use a char array (except C-compatability)? > Person: > (# name,addr,phone:^text; > print: > (# > do 'Name: '->puttext; name[]->putline; > 'Addr: '->puttext; addr[]->putline; > 'Phone: '->puttext; phone[]->putline; > #); > #); > Atle:^Person; (* dynamic reference to Person *); > do (* build a repetition (array) of text objects *) > 'atle' -> r[1][]; > 'beta' -> r[2][]; > 'compiler'-> r[3][]; > 'debug' -> r[4][]; > 'error' -> r[5][]; > 'free' -> r[6][]; > 'group' -> r[7][]; > > (for i:r.range (* range = 8 *) repeat > r[i][]->putline; > for); > > (for i:r.range (* range = 8 *) repeat > r[i][]->singleText[]; > singleText[]->putline; > for); > > (* Instantiate (allocate) Person object *) > &Person[]->Atle[]; > 'Atle R.' -> Atle.name[]; > 'Norway' -> Atle.addr[]; > '12343241'->Atle.phone[]; > Atle.print; > #) Can Person be instantiated and initialized in one go? How would it look in the style of "&Person('Atle', 'Norway', '12345') -> Atle[];" Could a stack allocation happen by changing & to @? > > Please ask questions. Thanks! I love it when I can get questions answered like this. I can have things figured out in minutes that might take hours otherwise! > More advanded output are also available. Of course, the ultimate output will be to an X-window. I got the impression that there is no AWT-like interface, but I find this rather hard to believe. Will Beta be augmented with an AWT (or other GUI-tool), or will it be windowing system specific, like C/C++? I like the idea of an Abstract Windowing Toolkit, in most cases I will not need anything more than that, and Beta seems ideal for implementing it. I could also imagine something more advanced than X, taking up where NeXt left off and extending ideas from Java, having a 'Universal Terminal Interface', providing capabilities depending on the hardware it is running on, uploading as much as possible to the terminal, and thereby overcoming this artificial barrier between text 'mode' and graphics 'mode'. There is no need for a 'mode' - just that some hardware doesn't support some functions, all part of the View. In an MVC setup, only the View would change, and the rest of the application could be the same. Is this in line with the Beta philosophy?