From avi at beta4.com Mon Sep 1 00:25:27 2003 From: avi at beta4.com (Avi Bryant) Date: Sat Jan 28 05:30:00 2012 Subject: package updates Message-ID: I've just posted a couple of things to SqueakMap - new snapshots of Seaside and Monticello, and a version of Comanche that will work in Squeak 3.6. All of these are in .mcz format, and need the MCInstaller to be loaded. For those that are interested: we're moving into dogfood mode with Monticello, and repositories for Seaside, Monticello, and a couple of other things are hosted at http://beta4.com/mc . Feel free to browse and grab recent snapshots, although no guarantees are made that they will work :). Pretty soon I intend to have a public repository system set up on modules.squeakfoundation.org, taking advantage of the public FTP directories that were set up back in 3.3 days. When this is solid, I'll probably move the beta4 repositories over there. Cheers, Avi From avi at beta4.com Mon Sep 1 01:26:43 2003 From: avi at beta4.com (avi@beta4.com) Date: Sat Jan 28 05:30:00 2012 Subject: [ENH] ExceptionDialogs-avi Message-ID: <0HKI00K48HCJEP@l-daemon> from preamble: "Change Set: ExceptionDialogs-avi Date: 31 August 2003 Author: Avi Bryant Adds Notifications for #inform:, #confirm:, and #confirm:orCancel:. By default these still use PopUpMenu, but they could be caught and dealt with more appropiately in different UI contexts."! -------------- next part -------------- A non-text attachment was scrubbed... Name: ExceptionDialogs-avi.cs.gz Type: application/octet-stream Size: 783 bytes Desc: not available Url : http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20030831/4ec9df6d/ExceptionDialogs-avi.cs.obj From avi at beta4.com Mon Sep 1 01:32:14 2003 From: avi at beta4.com (Avi Bryant) Date: Sat Jan 28 05:30:00 2012 Subject: [BUG][FIX][SM] SqueakMap error handling for loading bogus package In-Reply-To: <20030831122942.A1907@conch.msen.com> Message-ID: On Sun, 31 Aug 2003, David T. Lewis wrote: > Note: Most SM functions use #inform: to display warnings to the user. > I used #notify: in here because I am assuming that server instances > of SqueakMap may be running headless, and that a headless server could > handle Warning exceptions with no UI interaction. Ok, we really need to deal with that. I've just sent an extremely simplistic ENH to the list that introduces Notification classes for #inform: etc, and changes Object to use them instead of PopUpMenu directly. I can't think of any way this would break existing code, and it sure is nicer for headless servers and web apps. From dway at riskmetrics.com Mon Sep 1 03:16:49 2003 From: dway at riskmetrics.com (Doug Way) Date: Sat Jan 28 05:30:00 2012 Subject: [BUG] SMLoader not handling download errors (critical for 3.6full) In-Reply-To: <3F50B09B.3020706@isg.cs.uni-magdeburg.de> Message-ID: On Saturday, August 30, 2003, at 10:11 AM, Bert Freudenberg wrote: > While upgrading to the full 3.6 release: > > Error: error occured retrieving > http://www.ira.uka.de/~marcus/System-Benchmarking.st: > Server www.ira.uka.de is not responding > > Of course, this can happen. But the error should be caught and this > package should simply be skipped, perhaps with a notice afterwards > ("loading package ... failed, try again later by doing ..."). > > IMHO this is a critical error, as it will severely confuse someone who > tries to get a full image (who likely is no hard-core squeaker). I ran into this too yesterday (although that server seems to be fine right now). Actually, the error would need to be handled in SqueakMap itself (in SMSqueakMap), or in the load script. I could add handling to the load script, although it seems like it might be better if SMSqueakMap put up a notifier and then skipped that package. Then in this case the load script would proceed to the next package. I guess this will be less of an issue with SM2 since it will have a backup server for all packages. (I think?) - Doug From andreas.raab at gmx.de Mon Sep 1 03:28:32 2003 From: andreas.raab at gmx.de (Andreas Raab) Date: Sat Jan 28 05:30:00 2012 Subject: How to bind a listening socket to an address? In-Reply-To: Message-ID: <000101c37039$1f55f680$1cb8fea9@atlantis> The listening socket is always bound to the local network address (how could it be otherwise?) so I assume you mean that you only want to listen for connections coming from a specific host. If that is correct, you can simply accept connections from anywhere and check the remote address of the socket after accepting it. E.g., something like: myAddress := #(127 0 0 1) asByteArray. listener := Socket newTCP. listener listenOn: myPort backlogSize: 4. serverSocket := listener waitForAcceptFor: 100. serverSocket remoteAddress = myAddress ifFalse:[serverSocket destroy]. should work. Cheers, - Andreas > -----Original Message----- > From: squeak-dev-bounces@lists.squeakfoundation.org > [mailto:squeak-dev-bounces@lists.squeakfoundation.org] On > Behalf Of Markus Fritsche > Sent: Sunday, August 31, 2003 9:48 PM > To: squeak-dev@lists.squeakfoundation.org > Subject: How to bind a listening socket to an address? > > > Hi! > > As the subject says, I'd like to know how I could cause a socket to > listen only on a specific adress, say 127.0.0.1? > > Regards, Markus > > -- > http://reauktion.de/archer/ > > From andreas.raab at gmx.de Mon Sep 1 04:04:38 2003 From: andreas.raab at gmx.de (Andreas Raab) Date: Sat Jan 28 05:30:00 2012 Subject: [BUG][FIX][SM] SqueakMap error handling for loading bogus package In-Reply-To: Message-ID: <000901c3703e$2a431af0$1cb8fea9@atlantis> > > Note: Most SM functions use #inform: to display warnings to > > the user. I used #notify: in here because I am assuming that > > server instances of SqueakMap may be running headless, and that > > a headless server could handle Warning exceptions with no UI > > interaction. > > Ok, we really need to deal with that. Yes, but not in this way. It is not Object>>confirm: or Object>>inform: that is screwed up here. If you want to be able to suppress these notifications then you should do so explicitly. Neither #inform: nor #confirm: are exceptional in any sense of the word so it seems rather strange to handle them as exceptions. > I've just sent an extremely simplistic ENH to the list that introduces > Notification classes for #inform: etc, and changes Object to use them > instead of PopUpMenu directly. > > I can't think of any way this would break existing code, and > it sure is nicer for headless servers and web apps. I'm not at all convinced about this. You would have to randomly guess what the "right" response for a headless up would be under the circumstances and I would suspect that this breaks lots of code if ever run under headless conditions. In addition, the use of #inform: typically signifies a bit of important information to the user so suppressing it seems like a very stupid thing to do unless you know beforehand that it is of no importance (but how could you?). Cheers, - Andreas From avi at beta4.com Mon Sep 1 04:26:54 2003 From: avi at beta4.com (Avi Bryant) Date: Sat Jan 28 05:30:00 2012 Subject: [BUG][FIX][SM] SqueakMap error handling for loading bogus package In-Reply-To: <000901c3703e$2a431af0$1cb8fea9@atlantis> Message-ID: On Mon, 1 Sep 2003, Andreas Raab wrote: > Yes, but not in this way. It is not Object>>confirm: or Object>>inform: that > is screwed up here. If you want to be able to suppress these notifications > then you should do so explicitly. Neither #inform: nor #confirm: are > exceptional in any sense of the word so it seems rather strange to handle > them as exceptions. Exceptions are the most standard facility in Smalltalk for dealing with dynamic scope. These may not be "exceptional" conditions, but they are conditions that (IMO) require dynamic scoping - more on this below. Exceptions are thus the simplest implementation technique. If you would rather use a method of dynamic scoping without the connotations of exception handling, like Stephen's DynamicBindings package, that's fine. > I'm not at all convinced about this. You would have to randomly guess what > the "right" response for a headless up would be under the circumstances and > I would suspect that this breaks lots of code if ever run under headless > conditions. In addition, the use of #inform: typically signifies a bit of > important information to the user so suppressing it seems like a very stupid > thing to do unless you know beforehand that it is of no importance (but how > could you?). Why do you assume that "headless" equates to "no UI"? The #inform: or #confirm: might be handled by, depending on the context: - printing a message to stdout - showing a webpage to the user - sending an email or IM to the user and waiting for a reply - etc. THe point is that it often really is very useful to have, deep in some largely non-UI piece code, some potential interaction with the user; this is why #inform:, #confirm:, #notify: (which incidentally is already implemented through the exception system), and so on are so widely used. I don't think an appropiate answer is "never use those facilities" - that'll lead to much uglier code in the long run. But I'm also really tired of code that assumes there's a user looking at the morphic display and able to interact with it at all times. If we're going to have non-UI code that wants to interact with a user, it has to be able to discover the UI context it is operating in - Morphic, MVC, console, web, etc - and take appropiate action. Again, the simplest way I know of to discover which context you're in is to throw an exception and see who handles it. Other methods of searching up the stack could work as well; somewhat less nice would be some kind of per-process information. I don't really care how it works, but we need *something* more general than "Smalltalk isMorphic". From marcus at ira.uka.de Mon Sep 1 06:10:09 2003 From: marcus at ira.uka.de (Marcus Denker) Date: Sat Jan 28 05:30:00 2012 Subject: [BUG] SMLoader not handling download errors (critical for 3.6full) In-Reply-To: References: <3F50B09B.3020706@isg.cs.uni-magdeburg.de> Message-ID: <20030901061009.GA8451@ira.uka.de> On Sun, Aug 31, 2003 at 11:16:49PM -0400, Doug Way wrote: > > > > Error: error occured retrieving > >http://www.ira.uka.de/~marcus/System-Benchmarking.st: > > Server www.ira.uka.de is not responding > > > >Of course, this can happen. But the error should be caught and this > >package should simply be skipped, perhaps with a notice afterwards > >("loading package ... failed, try again later by doing ..."). > > > >IMHO this is a critical error, as it will severely confuse someone who > >tries to get a full image (who likely is no hard-core squeaker). > > I ran into this too yesterday (although that server seems to be fine > right now). We had a scheduled power maintanance this weekend... the servers are up and running again... Marcus -- Marcus Denker marcus@ira.uka.de -- Squeak! http://squeak.de From Fritsche.Markus at gmx.net Mon Sep 1 06:13:04 2003 From: Fritsche.Markus at gmx.net (Markus Fritsche) Date: Sat Jan 28 05:30:00 2012 Subject: Update-mechanism (was: Re: [BUG]TMethod(Object)>>error:) References: <20030831025953.6273gmx1@mx022-rz3.gmx.net> <000401c36fe3$5851a1b0$1cb8fea9@atlantis> Message-ID: Andreas Raab schrieb: > Given that the above claims that you are using a 3.5 based image it all > looks as if you've tried to load the latest (3.6) based VMMaker package on > top of a 3.5 based image. This will not work correctly. It all looks like > you have "left-over" methods in class Interpreter (like #returnValue:to:) > which were removed in the meantime. You're right, thank you. What leads me to another question: Why does the image say that there are no new updates if I want to update the code? Regards, Markus -- http://reauktion.de/archer/ From martin.drautzburg at web.de Mon Sep 1 07:47:29 2003 From: martin.drautzburg at web.de (Martin Drautzburg) Date: Sat Jan 28 05:30:00 2012 Subject: [Q][morphic] absolute and relative coordinates Message-ID: <87k78tlzla.fsf@web.de> I have constructed morph that consists of several submorphs (circles and lines) and embedded this morph into an owning morph. The circles and lines were create with ablsolute coordinates, i.e. as if the upperLeft corner of my morph was 0@0. Once my morph is embedded into its owner its upperLeft corner certainly is not 0@0 anymore and any *new* circles and lines I add then end up outside the morph's bounding rectangle. I can add topLeft to all coordinates and things appear where they should. What is the standard way of doing this, i.e. manipulationg a morph in-situ and contruction a morph ? From goran.krampe at bluefish.se Mon Sep 1 08:38:58 2003 From: goran.krampe at bluefish.se (goran.krampe@bluefish.se) Date: Sat Jan 28 05:30:00 2012 Subject: [BUG] SMLoader not handling download errors (critical for 3.6full) In-Reply-To: References: Message-ID: Doug Way wrote: [SNIP] > Actually, the error would need to be handled in SqueakMap itself (in > SMSqueakMap), or in the load script. I could add handling to the load > script, although it seems like it might be better if SMSqueakMap put up > a notifier and then skipped that package. Then in this case the load > script would proceed to the next package. Nah, we should fix it in SM of course. I also saw David posting some ENHs about UI interaction in SM. > I guess this will be less of an issue with SM2 since it will have a > backup server for all packages. (I think?) Yes, in SM2 we have a proper cache on the master - and also the ability to upload package releases to your "SM account" instead of finding your own publishing place. But we should of course still make sure that SMSqueakMap both handles network problems correctly AND uses some kind of neat interaction model so that it can handle running headless etc. So, two things to do: - Apply bandaids to SM1 so that we stay happy. Anybody volunteering to help me out here? - Make sure SM2 moves along. Would appreciate help with that too. And I am sorry, but if noone volunteers then it will just have to "take the time it takes". :) Time, time... > - Doug regards, Göran PS. I have lined up a few smaller things for a new SM1 release. Will try to do that today or tomorrow. From goran.krampe at bluefish.se Mon Sep 1 10:49:10 2003 From: goran.krampe at bluefish.se (goran.krampe@bluefish.se) Date: Sat Jan 28 05:30:01 2012 Subject: Documentation, more, more In-Reply-To: References: Message-ID: Hi.. leftie! :-) "leftie2100" wrote: > Considering the supposed emphasis on using Squeak as a teaching tool, Well, first of all - not all who use Squeak use it for that. Sure, the original reasons for the making of Squeak was as a tool to *build* such environments. Squeak itself was actually not meant for the kids - at least not immediately. > I guess I find these reasons to be a really poor excuse. What good is > a great tool to the public as a whole if the only people who can use > it are the developers? Excuse? I gave no excuses. I just tried to explain things. :-) Please refrain from talking in terms of blame, excuses etc - it is precisely the thing that ticks people off. We are all in this for fun! And there is not a single person in this community that owes anything to anyone. Noone here *needs* to do stuff. Noone here is *obligated* to do stuff. > The lead developers need to make development of good documentation > just as central to releases as the code itself. Until they demand that > documentation be completed and updated before software is released, it > won't be. The lead developers need to take charge of the documentation > process instead of allowing themselves to let others take this "chore" > off their hands. The attitude I'm seeing here that the documentation > is a necessary evil that must be "grinded out' sounds like it very > well could be a significant part of the problem. Writing can be fun to > do if you go about it in a light-hearted fashion and that type of > writing also engages the reader. I agree with you in all this. I was trying to be short and frank and perhaps it came out wrong. I was just trying to explain why *all efforts to this date* for various reasons have failed or at least not succeeded as planned. This doesn't mean that I want things to stay the way they are. Definitely not. As you may have noted I did try to be constructive. I too feel that we need to solve the issue. I just don't think it can be "solved" by simply effort. We need a better environment that accommodates the documentation naturally, and not just as a bunch of parallell stuff not in synch. We simply need better tools - and then, but not until then, I think that a change in *us* (how we work, what we produce) can come about. > Personally, I know a bit about writing, but I know nothing about > programming. I'm a programming newbie that would really like to learn > Squeak, but I'm pretty much kept from doing that because of your > current documentation situation. I read this list because I keep I note the word "your". Please say "our". :) Seriously, we are all in this together - newbies and everyone. > hoping I'll read some new focused learning resources have been > created. So when I read that many feel "coding is fun, documentation > is not" on the threads, it doesn't do much for my confidence that I'll > ever get the chance to use Squeak. You deliberately misunderstood me, or at least you chose to read my posting from the worst possible angle :-) But nevertheless it is a fact that many of us programmers like to build software and don't necessarily find much satisfaction in building parallell documentation. It is just a fact. And it has nothing to do with Squeakers - it is a known fact in general. And that is (again) the reasons for my proposal. I just acknowledge this fact and want us to produce a better environment that turns "documentation" into something naturally entwined with the development effort and thus something fun and also unavoidable ;-). So in fact - I am your best friend here - but you aren't seeing that. :-) > If you guys really want to be the Squeak evangalists you seem to all > claim you want to be, you're going to have to have a complete attitude > change about things like complete centralized documentation and the > creation of Squeak programming texts for those new to programming. Sigh. I do not claim to be a Squeak evangelist. :) And I don't believe in centralizing stuff, I rather like orderly decentralization thus getting the benefits of centralization AND decentralization. Like SqueakMap for example. And when it comes to Squeak tutorials etc I personally think there are TONS of it out there. But it hasn't been properly cataloged perhaps. I do think the Squeak Swiki has tons of links though, including to free professional books on Smalltalk. So I don't agree with the lack of tutorials etc. I *do* agree with you on the lack of good reference documentation - but I have already discussed that. regards, Göran From kosik at decef.elf.stuba.sk Mon Sep 1 10:58:37 2003 From: kosik at decef.elf.stuba.sk (Matej Kosik) Date: Sat Jan 28 05:30:01 2012 Subject: Documentation, more, more In-Reply-To: ; from leftie2100@yahoo.com on Sun, Aug 31, 2003 at 10:19:15PM -0000 References: Message-ID: <20030901125837.A15237@decef.elf.stuba.sk> On Sun, Aug 31, 2003 at 10:19:15PM -0000, leftie2100 wrote: > Considering the supposed emphasis on using Squeak as a teaching tool, > I guess I find these reasons to be a really poor excuse. What good is > a great tool to the public as a whole if the only people who can use > it are the developers? > > The lead developers need to make development of good documentation > just as central to releases as the code itself. Until they demand that > documentation be completed and updated before software is released, it > won't be. The lead developers need to take charge of the documentation > process instead of allowing themselves to let others take this "chore" > off their hands. The attitude I'm seeing here that the documentation > is a necessary evil that must be "grinded out' sounds like it very > well could be a significant part of the problem. Writing can be fun to > do if you go about it in a light-hearted fashion and that type of > writing also engages the reader. > > Personally, I know a bit about writing, but I know nothing about > programming. I'm a programming newbie that would really like to learn > Squeak, but I'm pretty much kept from doing that because of your > current documentation situation. I read this list because I keep > hoping I'll read some new focused learning resources have been > created. So when I read that many feel "coding is fun, documentation > is not" on the threads, it doesn't do much for my confidence that I'll > ever get the chance to use Squeak. > > If you guys really want to be the Squeak evangalists you seem to all > claim you want to be, you're going to have to have a complete attitude > change about things like complete centralized documentation and the > creation of Squeak programming texts for those new to programming. some sorces of information you might consider to check (in this order) -------------------- [1] Adele Goldberg: Smalltalk-80, The Language (Purple Book) not very funny, but convers the basics: + the language. + the fundamental classes one should be aware of (Numbers, Collections, ...) these things are there treated quite in detail. Those things are taken seriously there. Without this knowledge I would not be able to appreciate the Squeak (or any Smalltalk) appropriately. Try everything directly in Squeak. Look at the class comments. - You might perhaps consider to skip the following: - graphics (Squeak does the things differently) - Smalltalk implementation (byte code, object memory, virtual machine). -------------------- [2] Mark Guzdial wrote two books directly about Squeak. The draft of one can be find here: http://www.iam.unibe.ch/~ducasse/WebPages/FreeBooks/GuzdialBookDrafts/ The first and the second chapters are very good. -------------------- [3] Now, look at the wiki: http://minnow.cc.gatech.edu/squeak/ Try to find out what is there. It contains various stuff targeting on the particular problems. Here faq http://minnow.cc.gatech.edu/squeak/471 documentation: http://minnow.cc.gatech.edu/squeak/2983 documentation/morphic http://minnow.cc.gatech.edu/squeak/30 documentation/howto http://minnow.cc.gatech.edu/squeak/666 The button `Search' works also. Find the information, try out the demos. If there is is something what does not work - annonce it or repair or improve it directly if you are sure that you are right. If you find out something usefull and it is not already there - add it. Next try to look at various packages registered on squeakmap. If the author meant its creation seriously, there is usually some information about it. - it either has separate web-page which may help you to start up. - and/or there is "documentation" in the code (for example PlotMorph contains `example*' class methods which shows how to use the stuff. -------------------- VisualWorks contains also some usefull stuff. There some "lessons" you might want to review. There are various pdf file but mostly VW specific. Help / Lessons Browser -------------------- Other stuff: (various links - I didn't diged through everything) http://minnow.cc.gatech.edu/squeak/377 (table layout tutorial) http://map1.squeakfoundation.org/sm/package/9adc070c-3155-4d6b-ae1b-50f7f85b38bb (looks very well) http://www.iam.unibe.ch/~ducasse/WebPages/FreeBooks.html (very interesting) http://www.squeakland.org/school/HTML/essays/essays.html (hm and perhaps also this one) http://www.squeakland.org/sqmedia/books/squeakerbooks.html (HC) http://users.ipa.net/~dwighth/smalltalk/bluebook/bluebook_imp_toc.html -------------------- What do you want Squeak to use for? What information are you missing? -- Matej Kosik ICQ: 300133844 From diegogomezdeck at consultar.com Mon Sep 1 12:20:39 2003 From: diegogomezdeck at consultar.com (diegogomezdeck@consultar.com) Date: Sat Jan 28 05:30:01 2012 Subject: RFC: Babel at Work! Message-ID: <31548.217.162.67.169.1062418839.squirrel@www.consultar.com> Hi translators... The last days we (we=small-land) were working hard to translate Squeak to Spanish. As you know, Babel can translate Squeak to any language included in MacRoman character-set. We didn't finish a complete translation but a lot is already there (world menu and sub-menus, object catalog, flaps, file-list, properties dialogs, morphs names, etc). To try Babel with other language but Spanish follow these steps: - Get the small-land image from http://squeak.linex.org/W32/Squeak35- SmallLand-Imagen.zip - Change the language to English using World Menu >> help.. >> set language... >> English. (The small-land image is in Spanish by default). - Update the image to include all the changes we made pressing the button [actualizar] (actualizar means update in Spanish) in the Small-Land flap. - Create a new subclass of Language (use Spanish as an example) and implement the method #name. This name has to be the same symbol used in Vocabulary class>>initializeLanguageTable (#English #Deutsch #'Espa?ol' #Kiswahili #Nederlands #Norsk #Svenska) - Change the language to you own (World Menu >> help.. >> set language... >> YourOwnLanguage) - You can start to translate using the tool named "Language Editor" available from the Small-Land flap or from World Menu >> open... >> Language Editor - After translating the phrases used in flaps you can recreate them using the button in the Language-Editor. - Take in mind the option "debug" in the Language-Editor. This will show the translated phrases like "translated phrase (original phrase)". It's useful to validate the translation work. Comments, ideas, etc are ever welcome! Enjoy it, Diego Gomez Deck http://www.small-land.org From kosik at decef.elf.stuba.sk Mon Sep 1 11:23:42 2003 From: kosik at decef.elf.stuba.sk (Matej Kosik) Date: Sat Jan 28 05:30:01 2012 Subject: [Q][morphic] absolute and relative coordinates In-Reply-To: <87k78tlzla.fsf@web.de>; from martin.drautzburg@web.de on Mon, Sep 01, 2003 at 09:47:29AM +0200 References: <87k78tlzla.fsf@web.de> Message-ID: <20030901132342.B15237@decef.elf.stuba.sk> On Mon, Sep 01, 2003 at 09:47:29AM +0200, Martin Drautzburg wrote: > I have constructed morph that consists of several submorphs (circles > and lines) and embedded this morph into an owning morph. The circles > and lines were create with ablsolute coordinates, i.e. as if the > upperLeft corner of my morph was 0@0. > > Once my morph is embedded into its owner its upperLeft corner > certainly is not 0@0 anymore and any *new* circles and lines I add > then end up outside the morph's bounding rectangle. > > I can add topLeft to all coordinates and things appear where they > should. Yes, #addMorph: method lets you compose morphs together in the most simple way. You just first position the sumbmorph in a proper way and then simple add it to the supermorph. > > What is the standard way of doing this, i.e. manipulationg a morph > in-situ and contruction a morph ? Have you seen: http://minnow.cc.gatech.edu/squeak/2141 ? There are some examples. There is also a link to "MorphLayoutArticle" some time ago I tried to try it unfortunatelly some of the projects there didn't worked for me. This is perhaps due to changes in the current/recent squeak versions. But the examples work and are comprehensive (if you/anybody reindents the sample code (TODO)). Additionally, there is a TableLayoutTutorial project (as squeak map package). (I didn't see it, but it might be worth to check). -- Matej Kosik ICQ: 300133844 From gafisher at sprynet.com Mon Sep 1 11:21:58 2003 From: gafisher at sprynet.com (Gary Fisher) Date: Sat Jan 28 05:30:01 2012 Subject: Documentation, more, more References: Message-ID: <001c01c3707b$46788e20$3790b241@jameco> Hi, Leftie! (I happen to be profoundly sinistral myself, by the way, and quite happy about it. :-) One reason Squeak documentation can appear to be hard to find is that there are multiple versions or aspects (or perhaps viewpoints) of Squeak. Much of the Squeak-Dev view exists primarily to hone the cutting edge of Squeak; a good deal of what's here is experimental, even speculative, and may never get beyond that stage. A substantial portion of the Squeak-Dev view is more practical or explanatory, though it still leans more toward advancing the user than simply to plonking him or her down in a quiet spot. This list tends to have a headlong feel. For a viewpoint more suited to teaching (with) Squeak, you might find Squeakland (www.Squeakland.org) and the list available there more to your liking. The Squeakland site and list are devoted much more to practica, based on the most current "stable" version of Squeak rather than the development version du jour. If you're looking for the fastest way to get working with Squeak, however, you might find one or more of the published references best suited to your needs. Mark Guzdial's books, in particular, can take you from installation to coding to eventual understanding in what may well be the shortest possible time, though by necessity any printed text will be based on the version of Squeak available at the time of printing (included on the CD bound with each book), which will of course not be the most current version. Nevertheless, moving independently from a good working knowledge of an earlier Squeak to today's version will probably be easier than coming in directly from complete Newbiedom. I purchased my copies of Mark's books at a local book store (a good opportunity to encourage them to stock more Squeak and Smalltalk books) but a quick Amazon search will bring up both new and used copies at good prices. I hope that helps. Gary Fisher ----- Original Message ----- From: "leftie2100" To: "The general-purpose Squeak developers list" Sent: Sunday, August 31, 2003 6:19 PM Subject: Re: Documentation, more, more Considering the supposed emphasis on using Squeak as a teaching tool, I guess I find these reasons to be a really poor excuse. What good is a great tool to the public as a whole if the only people who can use it are the developers? The lead developers need to make development of good documentation just as central to releases as the code itself. Until they demand that documentation be completed and updated before software is released, it won't be. The lead developers need to take charge of the documentation process instead of allowing themselves to let others take this "chore" off their hands. The attitude I'm seeing here that the documentation is a necessary evil that must be "grinded out' sounds like it very well could be a significant part of the problem. Writing can be fun to do if you go about it in a light-hearted fashion and that type of writing also engages the reader. Personally, I know a bit about writing, but I know nothing about programming. I'm a programming newbie that would really like to learn Squeak, but I'm pretty much kept from doing that because of your current documentation situation. I read this list because I keep hoping I'll read some new focused learning resources have been created. So when I read that many feel "coding is fun, documentation is not" on the threads, it doesn't do much for my confidence that I'll ever get the chance to use Squeak. If you guys really want to be the Squeak evangalists you seem to all claim you want to be, you're going to have to have a complete attitude change about things like complete centralized documentation and the creation of Squeak programming texts for those new to programming. --- In squeak@yahoogroups.com, goran.krampe@b... wrote: > Hi David! > > David wrote: > [SNIP of ramblings :-) about documentation] > > I'll apologize again for asking stupid questions like the ones above, > > and now I'll sit down and be quiet. > > Those of us who have been in the community for some time, and I am not > sure how long you have been here, tend to feel that people asking the > community to "change" or to "Hey, you should do *this*!" don't really > understand how this community works and generally gets little attention > and might even piss people off. ;-) > > Let me be very frank and very disillusioned for a few seconds: > > 1. There have been A LOT of efforts starting to document Squeak. They > all seem to "fade away". Nothing wrong with trying though - just don't > think it hasn't been done before! Really. I am not kidding. > > 2. People do what they like to do. Coding is fun. Documentation is not. > > 3. Even though it is a harsh and perhaps annoying mantra - the "Ok, then > why don't *you* do it?" logic still applies. Talking doesn't count for > much. > > > Ok, given the above - what can then be done that will actually have a > slight chance to *succeed*? My take on this (which of course may be > totally off) is: > > - Whatever you try to do, do it *yourself*. Don't try to talk others > into it. "If you build it, they will come". This is at least my > experience with SM. > > - Documentation is all about keeping it fresh. I have earlier proposed > to try to bind documentation with the Unit tests. I still think it is a > great idea (check archives to see what I mean). In other words, the docs > must be tied to the image and tha packages, it can't live on its own. SM > is of course a pillar to lean on in this case. IMHO class comments > belong with the class - not on a swiki. > > - As with most things accepted in the community it very often comes down > to good tools. SM is successful, but didn't render much interest until > the Morphic package tool came onto the scene. BFAV has been successful > becuase of similar reasons. The Magic Book concept (see Swiki - and how > ironic? :-)) I sketched on earlier is based on this idea. > > So... in short: > > If *you* build *The Magic Book* tool and incorporate ideas to tie stuff > with Unit tests or similar mechanisms that ensure things don't get stale > - *then* something might happen. :-) > > My 2 cents, G?ran From tschwarzkopf at t-online.de Mon Sep 1 09:09:20 2003 From: tschwarzkopf at t-online.de (Thomas Schwarzkopf) Date: Sat Jan 28 05:30:01 2012 Subject: Fonts in Squeak Message-ID: <200309011109.20375.tschwarzkopf@t-online.de> Hello, I'd like to use Squeak to learn Smalltalk. This is probably not a good idea but since Squeak runs on some exotic platforms I am interested in I'll try it anyway ;-) I installed Squeak 3.5 on my FreeBSD box. Squeak seems to run ok but the default fonts look very ugly. It's hard to read them. I don't know if this is a FreeBSD or Unix/X11 specific problem or if Squeak always looks like that. I googled a bit to find information on how to get better fonts for Squeak but the information I found was quite confusing. There seem to be different projects in various stages of development for different versions of Squeak on different operating systems to make it possible to use Truetype fonts or Freetype fonts. So my question is, what is the recommended way to install better fonts for Squeak 3.5 on my platform? Truetype and Freetype fonts are already installed on my system and they work very well with all other applications. Thanks Thomas From leftie2100 at yahoo.com Mon Sep 1 10:52:57 2003 From: leftie2100 at yahoo.com (leftie2100) Date: Sat Jan 28 05:30:01 2012 Subject: Documentation, more, more In-Reply-To: Message-ID: Hi Goran, I didn't necessarily mean that you in particular were guilty of anything mentioned in particular. More that the general atmosphere and attitude indicated what I was describing. Sorry if it came across differently. While you yourself may not wish to be a Squeak "evangelist," many do, and they wonder why lots of people don't simply immediately understand Squeak is great and just start using it. Well, people (especially newbies) need to have their hand held and be nursed through the process of starting to something new. One cannot act like a tech snob toward those who are less knowledgeable than themselves and still have a chance at converting new users. Having some tutorials scattered all over the net that people may or may not find in the right order to properly learn the language is not a system that is conductive to learning. There needs to be a centralized place where people find the files they need, as well as a downloadable text/s specifically directed toward the current release that introduces Squeak and carries the new user to a minimum level of competancy. From edoneel at sdf.lonestar.org Mon Sep 1 11:59:39 2003 From: edoneel at sdf.lonestar.org (Bruce ONeel) Date: Sat Jan 28 05:30:01 2012 Subject: [UPDATES] 9 for 3.6beta Message-ID: <0HKJ00CX5AX110@mbx.unige.ch> Hi, These updates are in: ftp://st.cs.uiuc.edu/pub/Smalltalk/Squeak/3.6beta/Squeak3.6b-5411.zip I'll note that st.cs.uiuc.edu seems to have a very slow connection today. cheers bruce Doug Way wrote: > > The latest approved fixes for 3.6beta. There will be one last round of > fixes in a few days, then it's on to 3.6gamma & 3.7alpha. > > - Doug > > > ---------------- > > 5403MVCDebuggerFix-ajh -- Anthony Hannan -- 6 August 2003 > Forked process that opens the debugger needed to > searchForActiveController before terminating" > > 5404EditorEscFix-bg -- Boris Gaertner -- 1 June 2003 > When you press the Esc button in an MVC workspace, you get a walkback > 'offerMenuFromEsc: not understand'. In Morphic, the context menu is > offered when the Esc button is presssed. This change set adds the same > feature for MVC. " > > 5405KCP98SystemNavFix -- stephane and daniel -- 23 August 2003 > Move all implementations of systemNavigation into > Object>*system-support" > > 5406KCP99SingletonSysNav -- Stef and Daniel -- 23 August 2003 > Introduce a singleton for SystemNavigation > Change Object>>systemNavigation to use it." > > 5407KCP100FixSingletonRefs -- Stef and Daniel -- 23 August 2003 > Fix all the references to SystemNavigation new to use the > Object>>systemNavigation" > > 5408KCP101ReintroduceDepr -- Stef and Daniel -- 23 August 2003 > reintroduce nicely the methods #allCallsOn:, > #allUnsentMessages, and #allUnreferencedClassVariables in > ClassDescription. > Note that the following methods are not reintroduced as they are > dealing with UI stuff. > #browseAllAccessTo: > #browseAllCallsOn: > #browseAllStoresInto: > > 5409FFICleanup -- Adam Spitz -- 25 August 2003 > Just recategorizes a bunch of ByteArray methods, so that FFI will be a > nice well-behaved PackageInfo package (more or less)." > ByteArray organization renameCategory: 'external access' toBe: '*FFI'. > ByteArray organization classifyAll: { #asExternalPointer } under: > '*FFI'. > > 5410IntlChars-ar-dgd -- Andreas Raab -- 24 August 2003 > Enable the use of international characters such as Umlauts. > Most of the work done by Andreas. Some small fixes by Diego Gomez Deck > Diego's work: > - call to String initialize in the postscript. > - some small fixes in Character class>>initializeClassificationTable > for Spanish letters > These pairs of upper/lower letters need checking from > non-spanish/non-german/non-english speakers. > ($? $?) ($? $?) ($? $?) ($? $?) > ($? $?) ($? $?) > ($? $?) ($? $?) ($? $?) ($? $?) ($? $?) > WARNING: Change set has been manually re-arranged. > Take care when trying to file it out again. The definition of > Character class>>initialize, Character > class>>initializeClassificationTable and an evaluation of 'Character > initialize' have to be the first steps after the Character class > redefinition. > > 5411FCB-browseSenders-bkv -- Brent Vukmer -- 14 > August 2003 > This fixes the browse-senders function in the FileContentsBrowser by > removing an unnecessary 'new'. > I'm puzzled, though; why do 9 different classes implement > #systemNavigation, since all 9 use the same implementation?" From karl.ramberg at chello.se Mon Sep 1 12:32:32 2003 From: karl.ramberg at chello.se (Karl Ramberg) Date: Sat Jan 28 05:30:01 2012 Subject: Update-mechanism (was: Re: [BUG]TMethod(Object)>>error:) References: <20030831025953.6273gmx1@mx022-rz3.gmx.net> Message-ID: <3F533C5E.DE0D87B8@chello.se> Markus Fritsche wrote: > > Andreas Raab schrieb: > > > Given that the above claims that you are using a 3.5 based image it all > > looks as if you've tried to load the latest (3.6) based VMMaker package on > > top of a 3.5 based image. This will not work correctly. It all looks like > > you have "left-over" methods in class Interpreter (like #returnValue:to:) > > which were removed in the meantime. > > You're right, thank you. What leads me to another question: Why does > the image say that there are no new updates if I want to update the > code? Because there are no new updates to 3.5. If you want the 3.6 updates you must tell your image that: SystemVersion newVersion:'Squeak3.6alpha' The swiki page was very outdated, reffering to 2.7 and EtoyVersion command, now updated: http://minnow.cc.gatech.edu/squeak/1585 Karl From Fritsche.Markus at gmx.net Mon Sep 1 12:25:03 2003 From: Fritsche.Markus at gmx.net (Markus Fritsche) Date: Sat Jan 28 05:30:01 2012 Subject: Font editing Message-ID: Hi! I'd like to know if there is something like a FontEditor- or CharacterEditorMorph? I think I've used something like that before, but can't remember where it was. TIA, Markus -- http://reauktion.de/archer/ From goran.krampe at bluefish.se Mon Sep 1 13:50:46 2003 From: goran.krampe at bluefish.se (goran.krampe@bluefish.se) Date: Sat Jan 28 05:30:01 2012 Subject: Documentation, more, more In-Reply-To: References: Message-ID: Hi! "leftie2100" wrote: > Hi Goran, > > I didn't necessarily mean that you in particular were guilty of > anything mentioned in particular. More that the general atmosphere and > attitude indicated what I was describing. Sorry if it came across > differently. No problem. :) But I disagree about the "general atmosphere". Just the fact that this issue is being discussed a LOT on this list tells me that the community cares. It is just that these things are *hard*. Squeak is evolving at a fast pace and a successful effort in this area really *must* handle the problem with stuff going stale. If you want to do a difference in this area I think there are many others listening. But I have seen so many efforts start out, work furiously, fade away... Don't repeat that mistake. We must learn from these earlier failures and come up with something that *scales*. The Magic Book idea is *one* idea that I formulated that I felt could have some chance of success. SM is also an enabler in this area. In fact - we can easily register other things in SM than packages. That was the idea from the start at least. On the other hand we already have a rather good meta-place - the Squeak Swiki. It wouldn't be good to have those two mechanisms fighting each other. > While you yourself may not wish to be a Squeak "evangelist," many do, > and they wonder why lots of people don't simply immediately understand > Squeak is great and just start using it. Well, people (especially Indeed. :-) No, seriously - Squeak/Smalltalk is great but I agree that it is hard to get into it quickly. And we can always do better in that department. On the other hand I think that one of the free books (see below) will get you into it quickly enough. But this problem is not only because lacking or rather perhaps "dispersed" documentation but also because Smalltalk is rather different to many other things out there. > newbies) need to have their hand held and be nursed through the > process of starting to something new. One cannot act like a tech snob > toward those who are less knowledgeable than themselves and still have > a chance at converting new users. Having some tutorials scattered all I promise that there are no tech snobs here. Really. But I agree with that of course. > over the net that people may or may not find in the right order to > properly learn the language is not a system that is conductive to > learning. There needs to be a centralized place where people find the > files they need, as well as a downloadable text/s specifically > directed toward the current release that introduces Squeak and carries > the new user to a minimum level of competancy. Yes, I agree with these goals. It is just that... it is not so easy to accomplish. :-) And believe me (not sure how long you have been here) when I say that this list is one of the friendliest lists that... Well, friendliest period. :-) Newbies are very welcome, and if you read the archives etc you can see that newbie questions are almost always answered abundantly. And hopefully newbies feel that the community is in fact trying hard to hold hands. One "issue" with Squeak is that Squeak is a Smalltalk. In fact, it is a direct descendant of Smalltalk-80. This means that all the stuff out there covering Smalltalk more or less applies to Squeak too. This is similar to say Lisp. There is no One Single Place for learning Lisp either. Because there are numerous Lisp implementations and communities. So it may seem as confusing as Squeak I think. Finally - personally I would recommend one of the free books as a starter. These are professionally written books available as PDFs that cover Smalltalk in full detail. There can hardly be a better way to start with Smalltalk/Squeak IMHO. Here is the url again: http://www.iam.unibe.ch/~ducasse/WebPages/FreeBooks.html And frankly - how many other programming languages out there have such a wealth of *free good books* available as pdfs? regards, Göran From martin.drautzburg at web.de Mon Sep 1 13:37:37 2003 From: martin.drautzburg at web.de (Martin Drautzburg) Date: Sat Jan 28 05:30:01 2012 Subject: [Q] handling complex selection Message-ID: <87he3wbpem.fsf@web.de> This is a general model/view question. SearchResultView (model: SearchResult) AddressView (Address) AddressItemView (AddressItem) I have a view (SearchResultView) that displays addresses. Each address is displayed by an AddressView (with Address as model) and each Address cosists of AddressItems (aStreet, aCity etc). Each AddressItem is displayed by an AddressItemView. So an AddressView has AddressItemViews as submorphs. When the mouse hovers over an AddressView and/or an AddressItemView the View shall be selected/highlighted. No problem so far. Now I have *another* View (CategoryView) that should respond to the currently selected AddressView and/or AddressItemView. I have a hard time registering CategoryView as dependent of each Address/ItemView. Think: anAddress might want to add another AddressItem; it would then have to register the CategoryView as dependent of the new AddressItem (or its view). This is clearly none of its business. What is the best way the get the information that a view is selected out of a deeply nested submorph hierarchy ? From martin.drautzburg at web.de Mon Sep 1 13:43:58 2003 From: martin.drautzburg at web.de (Martin Drautzburg) Date: Sat Jan 28 05:30:01 2012 Subject: Documentation, more, more In-Reply-To: References: Message-ID: <87d6ekbp41.fsf@web.de> goran.krampe@bluefish.se writes: > Indeed. :-) No, seriously - Squeak/Smalltalk is great but I agree that > it is hard to get into it quickly. It is still a lot easier to get into Squeak than to get out of it again :-). From martin.drautzburg at web.de Mon Sep 1 13:58:17 2003 From: martin.drautzburg at web.de (Martin Drautzburg) Date: Sat Jan 28 05:30:01 2012 Subject: Fonts in Squeak In-Reply-To: <200309011109.20375.tschwarzkopf@t-online.de> References: <200309011109.20375.tschwarzkopf@t-online.de> Message-ID: <878yp8bog6.fsf@web.de> tschwarzkopf@t-online.de (Thomas Schwarzkopf) writes: > I installed Squeak 3.5 on my FreeBSD box. > Squeak seems to run ok but the default fonts look > very ugly. It's hard to read them. try the following (1) Change fonts via the appearence/system fonts World menu. (2) If none of the fonts suit your need get Accufonts (3) if you still don't like the fonts get TrueTypeTextStyle. (3) will enable you to use TrueType fonts. AFAIK (3) is alrady part of the stock 3.6 image. From karl.ramberg at chello.se Mon Sep 1 14:00:35 2003 From: karl.ramberg at chello.se (Karl Ramberg) Date: Sat Jan 28 05:30:01 2012 Subject: Fonts in Squeak References: <200309011109.20375.tschwarzkopf@t-online.de> <878yp8bog6.fsf@web.de> Message-ID: <3F5350FB.F61564C8@chello.se> Martin Drautzburg wrote: > > tschwarzkopf@t-online.de (Thomas Schwarzkopf) writes: > > > I installed Squeak 3.5 on my FreeBSD box. > > Squeak seems to run ok but the default fonts look > > very ugly. It's hard to read them. > > try the following > > (1) Change fonts via the appearence/system fonts World menu. > (2) If none of the fonts suit your need get Accufonts > (3) if you still don't like the fonts get TrueTypeTextStyle. > > (3) will enable you to use TrueType fonts. AFAIK (3) is alrady part of > the stock 3.6 image. Yup, and latest 3.6 pretty stable. Karl From joel at ikestrel.com Mon Sep 1 16:00:28 2003 From: joel at ikestrel.com (Joel Shellman) Date: Sat Jan 28 05:30:01 2012 Subject: Documentation, more, more In-Reply-To: References: Message-ID: <3F536D1C.8080709@ikestrel.com> goran.krampe@bluefish.se wrote: > "leftie2100" wrote: >>Personally, I know a bit about writing, but I know nothing about >>programming. I'm a programming newbie that would really like to learn >>Squeak, but I'm pretty much kept from doing that because of your >>current documentation situation. I read this list because I keep Sounds to me like you are a perfect candidate for writing some beginner documentation. You're most likely to put in all the detail and trouble spots that you run into in your quest to learn Squeak and that would be very useful to all the others new to squeak that follow in your footsteps. Documentation written by the experts often skip over the little nitpicky details that they had to fight with years ago but that can cause trouble for beginners. -joel From bert at isg.cs.uni-magdeburg.de Mon Sep 1 16:12:06 2003 From: bert at isg.cs.uni-magdeburg.de (Bert Freudenberg) Date: Sat Jan 28 05:30:01 2012 Subject: How to bind a listening socket to an address? In-Reply-To: <000101c37039$1f55f680$1cb8fea9@atlantis> References: <000101c37039$1f55f680$1cb8fea9@atlantis> Message-ID: <3F536FD6.1040106@isg.cs.uni-magdeburg.de> Andreas Raab wrote: > The listening socket is always bound to the local network address (how could > it be otherwise?) No, a socket is always bound to a network interface (how could it be otherwise?). Each network interface has its own IP address. 127.0.0.1 is the local loop-back interface, while each network adapter has a different IP. If I bind a socket to 127.0.0.1, it will not be reachable from the outside. This is a Good Thing, like for a printer demon, font server etc. (*) Squeak does unfortunately not support this. In the plain VM, a listening socket is always bound to _all_ network interfaces. I think there have been hacks to bind to specific interfaces, but I do not remember where exactly I saw this. -- Bert (*) For example, at home I'm running a router / print server / wlan access point all on one machine, which has 4 network interfaces: external, LAN, WLAN, loopback. The DNS daemon, print server, Samba etc. are of course only bound to the internal interfaces and not accessible from the outside. From Boris.Gaertner at gmx.net Mon Sep 1 16:28:09 2003 From: Boris.Gaertner at gmx.net (Boris Gaertner) Date: Sat Jan 28 05:30:01 2012 Subject: Font editing References: Message-ID: <001f01c370a6$0cf3eb60$fc00b850@Standard> Markus Fritsche wrote: > Hi! > > I'd like to know if there is something like a FontEditor- or > CharacterEditorMorph? I think I've used something like that before, > but can't remember where it was. > Hi Markus, You can have my font editor, please look at http://bgaertner.gmxhome.de for additional information and downloadable files. The editor is a MVC-application. It does not work in a morphic project, but in a mvc-project it works fine (and it is almost three years old and some users were friendly enough to find some bugs. I think it is now usable without a high risk :-) ) Greetings, Boris From zeppy at australia.edu Mon Sep 1 17:09:49 2003 From: zeppy at australia.edu (Gary McGovern) Date: Sat Jan 28 05:30:02 2012 Subject: Dynabook Usability Message-ID: <3f545455.2cf9.0@australia.edu> I think I have to go with Doug and Stephen's idea of wireless pages that are detachable from a book (and my idea). Multi-views simultaneously. Doug's idea of cards spread out struck me right away but it took a while for it sink in fully. Thanks! Gary >Jecel Assumpcao Jr wrote: > >>On Thursday 28 August 2003 13:54, Doug Way wrote: >> >> >>>Speaking of hardware innovations, though, one idea I've thought would >>>be interesting: If you had a truly flexible screen technology, you >>>could have a dynabook with the form factor of a scroll. When rolled >>>up, you'd have a very portable (say) 6" long stick, which you could >>>then unroll into a 12"x6" screen. It could have a little brace which >>>unfolds to hold the screen in place. I'd think that a flexible, >>>rollable screen technology will be available before a screen which >>>can be perfectly folded with no gaps. I suppose this is more >>>interesting from a portability perspective than a usability >>>perspective, though. >>> >>> >> >>Check out the TV series "Earth: Final Conflict" or the movie "Red >>Planet" for very nice visualizations of your idea. >> >>http://members.aol.com/nokomiss/Palmcorder.gif >> >>I would prefer it if the scroll were slightly conical, so when you >>unroll it you would get something similar to the attached picture. >> >>-- Jecel >> > >If these flexible displays had wireless capability, then they wouldn't >need to be physically attached to the computer. I could imagine that in >your home, you'd have a number of 8.5 x 11 displays that you could >spread out on a desktop, or hang on a wall. You could also throw a few >in a folder or your luggage to carry with you. Displays of a smaller >dimension could roll up into a cylinder for even more portability. > >- Stephen > > > From ajh18 at cornell.edu Mon Sep 1 17:30:06 2003 From: ajh18 at cornell.edu (Anthony Hannan) Date: Sat Jan 28 05:30:02 2012 Subject: Debugger woes Message-ID: <200309011733.h81HX6JI021502@gatech.edu> Hi Andreas (and thanks Doug for forwarding this to me. For some reason I did not get this mail although I've been getting other mailing list posts), Andreas Raab wrote: > I'm having some serious trouble with some of the recent changes to > debugging Squeak processes. One of the things that we absolutely > needed in Croquet includes a faithful process debugging ability, e.g., > a way to debug expressions like "Processor activeProcess" and friends. > I've recently hacked up a pretty good first-order approximation for > this in Croquet and while looking at 3.6 (in order to port this forward) > I ran into great trouble. > > What's the deal? It is essentially that the operations for context > simulations are intertwined with the "regular" operations on > processes. All the simulation behavior is in the 'changing suspended state' protocol in Process. So it is not too intertwinded. Maybe it would be better to rename this 'simulation'. > My little hack was based upon running the context simulation itself from > the process we're debugging (by inserting the context simulation into the > process and simulate from there) which cannot work if the simulation > modifies the process itself (which it does in 3.6). You have to modify the process because you are executing it even if its one step at a time. > While some arguments > (in terms of code reuse) can be made for inserting much of the simulation > facilities into class Process itself it seems to me that we really > need a separation between "running" a process and "simulating" its > execution. Simulating a process IS running a process. It is just that Smalltalk code (in 'changing suspended state') is updating the process and context state instead of the VM. Although to speed things up the simulate code in #complete: hands off execution to the VM until a specified context completes than the simulation takes over again (old #quickStep). We could add a preference here to do it all in simulation (slowly) if desired. An implementation issue with the fast #complete is that instead of resuming the suspended process (the process being debugged) to get the VM to run it, the UI process (the process executing the suspended process) swaps suspendedContexts with the suspended process, so it just continues executing in the VM but really is executing the suspended processes stack. This is tricky. I would like to switch it so it just resumes the suspended process, while the UI process waits. > I've long thought that the debugger (model) really ought to be a tool > which establishes the means for simulating a process "from the outside" > rather than being tied to the UI controlling it. Looking at the changes in > 3.6 it almost feels as if there is a similar intent in the changes done, > except that what I think is a debugger responsility has been moved inside > class Process itself (e.g., methods like #completeStep: etc). Naturally, this > leads to big trouble if any of the assumptions about what is called by the > debugger and what is called by the regular execution machinery goes > wrong. I agree. What you call the non-UI debugger, I call the simulator. In my VI4 implementation I did have a Simulator. But when trying to adapt my changes to the current Squeak I tried not to change too much (my mistake). So your right, it would be better to have all the 'changing suspended state' code in a separate "Simulator" class (and not in ContextPart because we are manipulating the whole execution stack (process), not a single context). > So here's my question: Has anyone ever seen a good model for separating > the three aspects of a) running a process (e.g., what should be in class > Process), b) simulating it (e.g., what should be in a debugger that has > no UI responsibilities at all), and c) providing the interface to the UI (e.g., > what we have today in class Debugger)? Yes just move the 'changing suspended state' code to a new Simulator class and have the debugger interact with it. > I'd be willing to give this a shot since we _really_ need this (I don't > think we can move Croquet forward to 3.6 without it) and I think it'd > be valuable for other applications as well. Any pointers, ideas, thoughts, > comments are welcome. Moving the simulation code out into a simulator, is just an organization (asthetics) issue. The simulator is there, just in Process 'changing suspended state'. So this should not hold you back. The fast #complete: is probably the real problem your running into. It would be cleaner to to resume the suspended process directly instead of swapping contexts (see #jump). Also, you probably want the option to disable the fast #complete: all together and simulate the entire call. Let me know if you want to make this change to #complete:. Or if you want me too. Cheers, Anthony From ian.piumarta at inria.fr Mon Sep 1 17:38:19 2003 From: ian.piumarta at inria.fr (Ian Piumarta) Date: Sat Jan 28 05:30:02 2012 Subject: How to bind a listening socket to an address? In-Reply-To: <3F536FD6.1040106@isg.cs.uni-magdeburg.de> Message-ID: On Mon, 1 Sep 2003, Bert Freudenberg wrote: > Andreas Raab wrote: > > > The listening socket is always bound to the local network address (how could > > it be otherwise?) > > No, a socket is always bound to a network interface (how could it be > otherwise?). No, a socket can be bound to an object in the filesystem too. (But I digress... ;) Since an interface (ignoring complications from ppp etc.) tends always to have an assigned IP host address, the two statements are near enough equivalent. For a listening stream socket there is always an address component (the port number). The situation with dgram sockets is a little more complex, since in addition to bind()ing the socket to a local i/f address (using listenOnPort with a backlog of 0) you can also (reversibly) connect() it to an address -- which will cause it to send/recv only to/from the "connected" address. (The VM doesn't actually do this, but it does an equivalent thing in sqSocketConnectToPort(), which is legal for a dgram socket, replacing the initial peer address INADDR_ANY:0 with the specified peer address. The use of recvfrom() and sendto() to read/write data does the rest. The end effect is the same.) > Squeak does unfortunately not support this. In the plain VM, a listening > socket is always bound to _all_ network interfaces. I think there have > been hacks to bind to specific interfaces, but I do not remember where > exactly I saw this. In the VM the change needed to allow binding either a stream or a dgram socket to an arbitrary interface address is utterly trivial (and backwards compatible): replace the constant INADDR_ANY at line 20 of sqListenOnPortBacklogSize() with the address of the interface to which you want to bind. We'd need to pass this address in as an extra parameter, meaning a new primitive, but this isn't so bad because the original primitive would become a one-liner (punting immediately to the "extended" primitive, adding INADDR_ANY as the additional i/f address argument). Total VM support code upheaval: 2 lines modified and 3 added. Ciao, Ian From jlonglan at uwo.ca Mon Sep 1 17:52:50 2003 From: jlonglan at uwo.ca (Jeff Longland) Date: Sat Jan 28 05:30:02 2012 Subject: Squeaklets References: <20030827013941.GA5735@vincent><001b01c36cb2$698f8de0$c47ba8c0@lndn.phub.net.cable.rogers.com> <3F50B37A.8030204@bike-nomad.com> Message-ID: <00c601c370b1$dce010a0$c47ba8c0@lndn.phub.net.cable.rogers.com> I can understand how SARs would be convenient for existing Squeak users - but what about those who have never used Squeak? Up to this point, I've found that saving my work as a project and loading the file from squeakland.org/project.jsp has been the best for reaching non-Squeak users. That said, if there were changes I wanted to make to the image - how would I go about creating a loader similar to that of Squeakland? Thanks, Jeff > If you're just trying to make a package that includes code, other resources, and > maybe projects as well, and will be loading it into a regular Squeak image, you > should probably use a SAR. You can now put projects into SARs. > From sqrmax at comcast.net Mon Sep 1 17:53:31 2003 From: sqrmax at comcast.net (Andres Valloud) Date: Sat Jan 28 05:30:02 2012 Subject: [UPDATES] 9 for 3.6beta References: <0HKJ00CX5AX110@mbx.unige.ch> Message-ID: <3F53879B.EC751B86@comcast.net> Hi. > > WARNING: Change set has been manually re-arranged. > > Take care when trying to file it out again. The definition of > > Character class>>initialize, Character > > class>>initializeClassificationTable and an evaluation of 'Character > > initialize' have to be the first steps after the Character class > > redefinition. This problem can be avoided by making more than 1 changeset. Each changeset contains the atomic change operations that need to happen. By naming changesets such as New Symbol Table 1 New Symbol Table 2 New Symbol Table 3 New Symbol Table 4 New Symbol Table 5 New Symbol Table 6 New Symbol Table 7 the proper order is maintained. It's also easier to manage. Just my 2 cents, Andres. From andreas.raab at gmx.de Mon Sep 1 17:56:14 2003 From: andreas.raab at gmx.de (Andreas Raab) Date: Sat Jan 28 05:30:02 2012 Subject: How to bind a listening socket to an address? In-Reply-To: Message-ID: <000401c370b2$566bf0b0$1cb8fea9@atlantis> > Total VM support code upheaval: 2 lines modified and 3 added. Let's do it. Any contrary opinions? Cheers, - Andreas > -----Original Message----- > From: squeak-dev-bounces@lists.squeakfoundation.org > [mailto:squeak-dev-bounces@lists.squeakfoundation.org] On > Behalf Of Ian Piumarta > Sent: Monday, September 01, 2003 7:38 PM > To: squeak-dev@lists.squeakfoundation.org > Subject: Re: How to bind a listening socket to an address? > > > On Mon, 1 Sep 2003, Bert Freudenberg wrote: > > > Andreas Raab wrote: > > > > > The listening socket is always bound to the local network > address (how could > > > it be otherwise?) > > > > No, a socket is always bound to a network interface (how > could it be > > otherwise?). > > No, a socket can be bound to an object in the filesystem too. (But I > digress... ;) > > Since an interface (ignoring complications from ppp etc.) > tends always to > have an assigned IP host address, the two statements are near enough > equivalent. For a listening stream socket there is always an address > component (the port number). > > The situation with dgram sockets is a little more complex, since in > addition to bind()ing the socket to a local i/f address (using > listenOnPort with a backlog of 0) you can also (reversibly) > connect() it > to an address -- which will cause it to send/recv only to/from the > "connected" address. (The VM doesn't actually do this, but it does an > equivalent thing in sqSocketConnectToPort(), which is legal > for a dgram > socket, replacing the initial peer address INADDR_ANY:0 with > the specified > peer address. The use of recvfrom() and sendto() to > read/write data does > the rest. The end effect is the same.) > > > Squeak does unfortunately not support this. In the plain > VM, a listening > > socket is always bound to _all_ network interfaces. I think > there have > > been hacks to bind to specific interfaces, but I do not > remember where > > exactly I saw this. > > In the VM the change needed to allow binding either a stream > or a dgram > socket to an arbitrary interface address is utterly trivial > (and backwards > compatible): replace the constant INADDR_ANY at line 20 of > sqListenOnPortBacklogSize() with the address of the interface > to which you > want to bind. We'd need to pass this address in as an extra > parameter, > meaning a new primitive, but this isn't so bad because the original > primitive would become a one-liner (punting immediately to > the "extended" > primitive, adding INADDR_ANY as the additional i/f address argument). > > Total VM support code upheaval: 2 lines modified and 3 added. > > Ciao, > Ian > > From diegogomezdeck at consultar.com Mon Sep 1 19:12:59 2003 From: diegogomezdeck at consultar.com (diegogomezdeck@consultar.com) Date: Sat Jan 28 05:30:02 2012 Subject: [Q] Buoyancy project doesn't work Message-ID: <31594.217.162.67.169.1062443579.squirrel@www.consultar.com> Hi... I tried to load Buoyancy (http://209.143.91.36/super.221) in a 3.5 image without sucess. The error says that BouyancyAtom class is not present. Anyone know where I can get a running version? TIA, Diego From joel at ikestrel.com Mon Sep 1 17:56:58 2003 From: joel at ikestrel.com (Joel Shellman) Date: Sat Jan 28 05:30:02 2012 Subject: Trying to go through plugin tutorial In-Reply-To: References: <20030826173200.15466.qmail@web40903.mail.yahoo.com> <3F4C6672.3060702@ikestrel.com> Message-ID: <3F53886A.9070000@ikestrel.com> Thanks a lot for your help. I'm very familiar with the wiki concept, but before I go messing around with it, is their any extra etiquette required in the Squeak Swiki? I'd be happy to go through that tutorial and rewrite it where necessary incorporating my experiences (and integrating the VMMaker part to replace the obselete steps). Especially considering the current discussion about documentation, I think the wiki is the best documentation tool we could ask for. In fact, at work, I tried to get any new member on the team's first responsibility to go through the ramp up documents and update them if they are out of date. I would think the same approach could be very effective at keeping Squeak documentation up to date and useful. -joel Tim Rowledge wrote: > Joel Shellman wrote: > > >>And I have FooPlugin.dll and I've placed that into the same directory as >>Squeak.exe. However, it doesn't appear to be running my primitive. I put >>a Transcript#show in the compiled plugin and then changed it in my code >>so I could see which one it's running. It appears to be running the >>interpreted code. >> >>Is putting FooPlugin.dll in the same directory as squeak.exe sufficient >>on Windows (I notice the tutorial is for Mac)? I also tried putting it >>in the same directory as the image, and that didn't work either. >> >>Also, is there a requirement for the name of the dll? Does it have to >>match the moduleName? > > Yes, the dll must be name _exactly_ as the plugin is used in the calling > methods. Note that in the tutorial in step 5 Andrew used the method > #moduleName to set the plugin's name to Foo rather than FooPlugin (there > have been assorted discussions about the right ways to name plugins) and > so the dll would have become 'Foo' rather than 'FooPlugin'. > > Given that you have compiled your code already, the simplest thing to do > is to go back to the calling methods and change the lines 'wibble' module: 'Foo' > to > and try again. Guess the tutorial needs some tweaking. > > Oh, you can't simply change the name of the dll since there is an > internal record of the name used to create the code that is checked at > load time. > > > tim > -- > Tim Rowledge, tim@sumeru.stanford.edu, http://sumeru.stanford.edu/tim > "My name is Inigo Montoya. You killed my parent process. Prepare to vi!" > > From dfarber at numenor.com Mon Sep 1 18:01:12 2003 From: dfarber at numenor.com (David Farber) Date: Sat Jan 28 05:30:02 2012 Subject: How to bind a listening socket to an address? In-Reply-To: References: <3F536FD6.1040106@isg.cs.uni-magdeburg.de> Message-ID: <3.0.6.32.20030901120112.01337eb8@mail.frii.com> At 07:38 PM 9/1/2003 +0200, Ian Piumarta wrote: >Total VM support code upheaval: 2 lines modified and 3 added. Could we /please/ get this into the stock VMs?! david -- David Farber dfarber@numenor.com From Fritsche.Markus at gmx.net Mon Sep 1 18:17:36 2003 From: Fritsche.Markus at gmx.net (Markus Fritsche) Date: Sat Jan 28 05:30:02 2012 Subject: Font editing In-Reply-To: <001f01c370a6$0cf3eb60$fc00b850@Standard> References: <001f01c370a6$0cf3eb60$fc00b850@Standard> Message-ID: Boris Gaertner wrote: > The editor is a MVC-application. It does not work in a morphic project, > but in a mvc-project it works fine (and it is almost three years old and > some users were friendly enough to find some bugs. I think it is now > usable without a high risk :-) ) Unfortunately it doesn't start in my 3.6 image, the method "for:" is missing. I just wanted to change the underscore of the helvetica font to a leftarrow - got used to it :-) Regards, Markus -- http://reauktion.de/archer/ From Fritsche.Markus at gmx.net Mon Sep 1 18:26:37 2003 From: Fritsche.Markus at gmx.net (Markus Fritsche) Date: Sat Jan 28 05:30:02 2012 Subject: How to bind a listening socket to an address? References: <3F536FD6.1040106@isg.cs.uni-magdeburg.de> Message-ID: Ian Piumarta schrieb: > In the VM the change needed to allow binding either a stream or a dgram > socket to an arbitrary interface address is utterly trivial (and backwards > compatible): replace the constant INADDR_ANY at line 20 of > sqListenOnPortBacklogSize() with the address of the interface to which you > want to bind. I have to admit that I don't know how to do it - but if I knew it, I would do it immediately :-) I want to use it for a little server project; the server is called by a php script. BOFHs are very sensitive when seeing open ports - even if the listening software denies connections by itself... Regards, Markus -- http://reauktion.de/archer/ From afunkyobject at yahoo.com Mon Sep 1 19:33:20 2003 From: afunkyobject at yahoo.com (Chris Muller) Date: Sat Jan 28 05:30:02 2012 Subject: [Q] How do I reclaim memory used by MethodContexts? Message-ID: <20030901193320.47852.qmail@web12203.mail.yahoo.com> I have a program that references Blocks from instance variables, and passes Blocks as arguments to methods. When my program ends, I notice that objects that were referenced in variables used inside my code Block are still referenced by its MethodContext. I think this is what's preventing them from being garbage collected. I've never had this problem before, what can I do? Thanks.. __________________________________ Do you Yahoo!? Yahoo! SiteBuilder - Free, easy-to-use web site design software http://sitebuilder.yahoo.com From ian.piumarta at inria.fr Mon Sep 1 19:41:02 2003 From: ian.piumarta at inria.fr (Ian Piumarta) Date: Sat Jan 28 05:30:02 2012 Subject: How to bind a listening socket to an address? In-Reply-To: Message-ID: Andreas Raab wrote: > > Total VM support code upheaval: 2 lines modified and 3 added. > Let's do it. Any contrary opinions? David Farber wrote: > >Total VM support code upheaval: 2 lines modified and 3 added. > Could we /please/ get this into the stock VMs?! Markus Fritsche wrote: > I have to admit that I don't know how to do it - but if I knew it, I > would do it immediately :-) The required primitive is now in my 3.6-beta9 Unix VMs, source and binaries, usual place. (Sq-vm-powerpc.deb and Sq-full.dmg archives will arrive in a little while: the first requires I reboot my Mac into Debian and the latter requires 15 minutes of upload time on my DSL line.) Attached: changesets for [Old]Socket (for some imagey person to look at and fiddle with), SocketPlugin (for TPR's VMM plugins package), and a one-liner diff to platforms/Cross/plugins/SocketPlugin.h (which I will commit to SF within the next couple of hours, along with the Unix support changes, unless JMM and/or AR asks me not to -- in any case, the extra declaration doesn't hurt even if the function behind it is absent, assuming your compiler and linker aren't totally broken). It seems to work, although I could only test this code with OldSocket using a modifed version of my Socket class>>remoteTestServerTCP method, from local vs. remote telnet sessions... :( (Read: Some tests/examples in this new-fangled Socket class would be a Really Great Thing, g{uy,al}s, given that trivial mods of the old examples methods don't seem to give good results). Ian -------------- next part -------------- *** SF/platforms/Cross/plugins/SocketPlugin/SocketPlugin.h Tue Jan 29 06:19:04 2002 --- devel/platforms/Cross/plugins/SocketPlugin/SocketPlugin.h Mon Sep 1 20:24:06 2003 *************** *** 47,52 **** --- 47,53 ---- Note: If accept() calls are not supported simply make the calls fail and the old connection style will be used */ void sqSocketListenOnPortBacklogSize(SocketPtr s, int port, int backlogSize); + void sqSocketListenOnPortBacklogSizeInterface(SocketPtr s, int port, int backlogSize, int addr); void sqSocketAcceptFromRecvBytesSendBytesSemaID( SocketPtr s, SocketPtr serverSocket, int recvBufSize, int sendBufSize, int semaIndex); -------------- next part -------------- 'From Squeak3.6beta of ''4 July 2003'' [latest update: #5373] on 1 September 2003 at 9:00:38 pm'! !OldSocket methodsFor: 'connection open/close' stamp: 'ikp 9/1/2003 20:47'! listenOn: portNumber backlogSize: backlog interface: ifAddr "Listen for a connection on the given port. If this method succeeds, #accept may be used to establish a new connection" | status | status _ self primSocketConnectionStatus: socketHandle. (status == Unconnected) ifFalse: [self error: 'Socket status must Unconnected before listening for a new connection']. self primSocket: socketHandle listenOn: portNumber backlogSize: backlog interface: ifAddr. ! ! !OldSocket methodsFor: 'primitives' stamp: 'ikp 9/1/2003 20:55'! primSocket: aHandle listenOn: portNumber backlogSize: backlog interface: ifAddr "Primitive. Set up the socket to listen on the given port. Will be used in conjunction with #accept only." self destroy. "Accept not supported so clean up"! ! !OldSocket class methodsFor: 'examples' stamp: 'ikp 9/1/2003 20:59'! remoteTestServerTCP "See remoteTestClientTCP for instructions on running this method." "OldSocket remoteTestServerTCP" | socket client buffer n | Transcript show: 'initializing network ... '. Socket initializeNetwork. Transcript show:'ok';cr. socket _ OldSocket newTCP. socket listenOn: 54321 backlogSize: 5 interface: (NetNameResolver addressFromString: '127.0.0.1'). "or: 0.0.0.0" Transcript show: 'server endpoint created -- run client test in other image'; cr. buffer _ String new: 4000. socket waitForConnectionUntil: self standardDeadline. client _ socket accept. [client isConnected] whileTrue: [ client dataAvailable ifTrue: [n _ client receiveDataInto: buffer. client sendData: buffer count: n]]. client closeAndDestroy. socket closeAndDestroy. Transcript cr; show: 'server endpoint destroyed'; cr. ^socket! ! !Socket methodsFor: 'connection open/close' stamp: 'ikp 9/1/2003 20:32'! listenOn: portNumber backlogSize: backlog interface: ifAddr "Listen for a connection on the given port. If this method succeeds, #accept may be used to establish a new connection" | status | status _ self primSocketConnectionStatus: socketHandle. (status == Unconnected) ifFalse: [InvalidSocketStatusException signal: 'Socket status must Unconnected before listening for a new connection']. self primSocket: socketHandle listenOn: portNumber backlogSize: backlog interface: ifAddr. ! ! !Socket methodsFor: 'primitives' stamp: 'ikp 9/1/2003 20:33'! primSocket: aHandle listenOn: portNumber backlogSize: backlog interface: ifAddr "Primitive. Set up the socket to listen on the given port. Will be used in conjunction with #accept only." self destroy. "Accept not supported so clean up"! ! -------------- next part -------------- 'From Squeak3.6beta of ''4 July 2003'' [latest update: #5373] on 1 September 2003 at 9:00:34 pm'! !SocketPlugin methodsFor: 'primitives' stamp: 'ikp 9/1/2003 20:21'! primitiveSocket: socket listenOnPort: port backlogSize: backlog interface: ifAddr "Bind a socket to the given port and interface address with no more than backlog pending connections. The socket can be UDP, in which case the backlog should be specified as zero." | s okToListen addr | self var: #s declareC: 'SocketPtr s'. self primitive: 'primitiveSocketListenOnPortBacklogInterface' parameters: #(#Oop #SmallInteger #SmallInteger #ByteArray). s _ self socketValueOf: socket. "If the security plugin can be loaded, use it to check for permission. If not, assume it's ok" sCCLOPfn ~= 0 ifTrue: [okToListen _ self cCode: ' ((int (*) (SocketPtr, int)) sCCLOPfn)(s, port)'. okToListen ifFalse: [^ interpreterProxy primitiveFail]]. addr _ self netAddressToInt: (self cCoerce: ifAddr to: 'unsigned char *'). self sqSocket: s ListenOnPort: port BacklogSize: backlog Interface: addr! ! From andreas.raab at gmx.de Mon Sep 1 19:48:24 2003 From: andreas.raab at gmx.de (Andreas Raab) Date: Sat Jan 28 05:30:02 2012 Subject: How to bind a listening socket to an address? In-Reply-To: Message-ID: <001301c370c2$02af11e0$1cb8fea9@atlantis> > unless JMM and/or AR asks me not to Go for it and thanks! Cheers, - Andreas > -----Original Message----- > From: squeak-dev-bounces@lists.squeakfoundation.org > [mailto:squeak-dev-bounces@lists.squeakfoundation.org] On > Behalf Of Ian Piumarta > Sent: Monday, September 01, 2003 9:41 PM > To: The general-purpose Squeak developers list > Subject: Re: How to bind a listening socket to an address? > > > Andreas Raab wrote: > > > Total VM support code upheaval: 2 lines modified and 3 added. > > Let's do it. Any contrary opinions? > > David Farber wrote: > > >Total VM support code upheaval: 2 lines modified and 3 added. > > Could we /please/ get this into the stock VMs?! > > Markus Fritsche wrote: > > I have to admit that I don't know how to do it - but if I knew it, I > > would do it immediately :-) > > The required primitive is now in my 3.6-beta9 Unix VMs, source and > binaries, usual place. (Sq-vm-powerpc.deb and Sq-full.dmg > archives will > arrive in a little while: the first requires I reboot my Mac > into Debian > and the latter requires 15 minutes of upload time on my DSL line.) > > Attached: changesets for [Old]Socket (for some imagey person > to look at > and fiddle with), SocketPlugin (for TPR's VMM plugins package), and a > one-liner diff to platforms/Cross/plugins/SocketPlugin.h (which I will > commit to SF within the next couple of hours, along with the > Unix support > changes, unless JMM and/or AR asks me not to -- in any case, the extra > declaration doesn't hurt even if the function behind it is absent, > assuming your compiler and linker aren't totally broken). > > It seems to work, although I could only test this code with OldSocket > using a modifed version of my Socket > class>>remoteTestServerTCP method, > from local vs. remote telnet sessions... :( > > (Read: Some tests/examples in this new-fangled Socket class would be a > Really Great Thing, g{uy,al}s, given that trivial mods of the > old examples > methods don't seem to give good results). > > Ian > From MartinKuball at web.de Mon Sep 1 19:53:35 2003 From: MartinKuball at web.de (Martin Kuball) Date: Sat Jan 28 05:30:02 2012 Subject: Wrong color format in B3DPrimitiveVertex? In-Reply-To: <000501c36fe3$7caeb6b0$1cb8fea9@atlantis> References: <000501c36fe3$7caeb6b0$1cb8fea9@atlantis> Message-ID: Let's try. I had to make some small modifications to exhibit the problem and you need the B3D tutorial demo stuff. If you file in the change set you will get the following. A new example in class B3DDemoBlockWorld (example3), a change in B3DHardwareEngine to prohibit the setting of a material and a new class B3DTestObj. If you start the example: B3DDemoBlockWorld example3 you see a scene with a green cube and a blue line pointing to the right (the x-axis). *But* I specified a red color for the line. The cube itself is green because no lighting is enabled. To do this reenable the setting of material properties. Now the cube is black except it's right face. I somewhat expected this because I specified a directional light with (100@0@0). But actually I would have expected the left face to be green. What's wrong this time? Martin Am Sonntag, 31. August 2003 19:15 schrieben Sie: > Do you have an example for testing this? > > Cheers, > - Andreas > > > -----Original Message----- > > From: squeak-dev-bounces@lists.squeakfoundation.org > > [mailto:squeak-dev-bounces@lists.squeakfoundation.org] On > > Behalf Of Martin Kuball > > Sent: Saturday, August 30, 2003 7:47 PM > > To: squeak-dev@lists.squeakfoundation.org > > Subject: Wrong color format in B3DPrimitiveVertex? > > > > > > Hi! > > > > The B3DPrimitiveVertex stores a Color value as a word in the > > format ARGB, > > where A is the most significant byte. On my Linux system > > using an nvidia > > driver this does not seem to be what OpenGL expects. It > > should rather be ABGR. > > > > Martin -------------- next part -------------- A non-text attachment was scrubbed... Name: test.2.cs Type: text/x-c++ Size: 6780 bytes Desc: not available Url : http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20030901/ac4d5280/test.2.bin From rpboland at math.uwaterloo.ca Mon Sep 1 19:52:59 2003 From: rpboland at math.uwaterloo.ca (Ralph P. Boland) Date: Sat Jan 28 05:30:02 2012 Subject: installing squeak on Debian Woody Message-ID: <3F53A39B.5090207@math.uwaterloo.ca> I tried installing Squeak 3.4 on a PC running Debian Woody but without success. I tried installing squeak on a PC running Linux (Debian Wood7) but failed. I created a subdirectory of my home directory. Then I downloaded the software there and did an install (as root). I then did a man squeak which worked. I did a "which squeak" which finds squeak and a "which inisqueak" which DOES NOT FIND inisqueak. Though I have root privaliges I almost never use it because I know almost nothing about linux except as a user. However, I will buy my first computer in a couple of days and the first thing I want to do is install linux (Debian or Redhat) and then squeak. Though I haven't used Smalltalk in years I am planning a major project to be done using squeak. Can anybody suggest what I am doing wrong; something simple I'm sure. Also, is there a standard place to install squeak? If so, that is where I will put it on my new system. How large a system do I need to run squeak efficiently? Also, how slow is it? I will be building an application that will scale up to some large problems both in terms of memory used and time consumed. Ralph Boland From rpboland at math.uwaterloo.ca Mon Sep 1 20:12:30 2003 From: rpboland at math.uwaterloo.ca (Ralph P. Boland) Date: Sat Jan 28 05:30:02 2012 Subject: parser generator tools Message-ID: <3F53A82E.80102@math.uwaterloo.ca> I am about to begin development of a new parser generator tool (as if we didn't have enough of them already). My tool will be designed to parse complex grammars (much more complex than LR(1) grammars) quickly based upon an algorithm I have been developing for years. I refer to the parsing technowledgy as "Meta-Reduction Parsing" because the algorithm does "multiple reductions to an entire subtree at a time". At the moment I am planning to develop it in Smalltalk (Squeak) since the algorithm is quite complex and Java is painful to use. Though the parsers the tool builds are fast (amost as fast as LR(1) parsers, the algorithm to build them is complex and costly both in terms of time and space. Because of this I may have to eventually port the tool to C (at least in part) but for now I will use Squeak. I am wondering what Smalltalk based parser generator tools already exist. I am aware of TGen-2.1 and SmaCC which is based upon TGen-2.1. Are there others? I intend to build the main parser builder engine but I am open to others working on other aspects of the tool, for example GUIs, applications, etc. I would be interested in talking with anyone who wants to build these components. I am also interested in hearing from anyone who wants to use my parser generator and what you intent to use it for. I would appreciate hearing from anyone interested in my project. Thanks Ralph Boland From ian.piumarta at inria.fr Mon Sep 1 20:22:54 2003 From: ian.piumarta at inria.fr (Ian Piumarta) Date: Sat Jan 28 05:30:02 2012 Subject: installing squeak on Debian Woody In-Reply-To: <3F53A39B.5090207@math.uwaterloo.ca> Message-ID: On Mon, 1 Sep 2003, Ralph P. Boland wrote: > I tried installing Squeak 3.4 on a PC running Debian Woody but > without success. Did you get this from Lex's archives?. If so he can probably help you out better than I can't. > I created a subdirectory of my home directory. Then I downloaded the > software there and did an install (as root). I then did a man squeak > which worked. > > I did a "which squeak" which finds squeak > and a "which inisqueak" which DOES NOT FIND inisqueak. I think Lex bundles inisqueak into a seperate archive. Look for one called "inisqueak_3.4-x_i386.deb". In contrast, the .debs (and .rpms) on my Squeak page include it along with the image (e.g., squeak-image_3.6b-5402_all.deb) since its principal function is to install a local copy of the image for first-time users. > Though I have root privaliges I almost never use it You are living a Very Honourable Life, sir. (You can recognise a Really Good Sysadmin by the fact that they jump through hoops of real fire to avoid ever having to become root. ;) > thing I want to do is install linux (Debian or Redhat) and then squeak. Debian is aimed more towards Linux-savvy users, although it's getting more and more user-friendly every day (and the online documentation is excellent). RedHat is billed as plug-and-play for absolutely anyone. OTOH, in my experience, Debian has _much_ better support than RedHat for up-to-the-minute hardware in the "testing" distribution (which, despite the name, has given me nothing but 100% reliable, rock-solid service on both Pentium and PPC). > Also, is there a standard place to install squeak? The .rpms and .debs all install into /usr/bin, /usr/lib, /usr[/share/]man and /usr[/share]/doc. The tarballs (or a "make install" from a default configuration of the sources) install into /usr/local/{bin,lib,doc,man}. Either way the end result (other than the path) is identical. Which you prefer is a matter of choice, although I'd advise against mixing the two. > How large a system do I need to run squeak efficiently? Depends on what you're trying to do. Many people here (e.g., myself) have been using it just fine since the days of 133MHz 386s with 32 MB RAM. With a 1GHz pentium there's nothing that feels sluggish. On a 3+ GHz pentium it screams and blows... For most purposes it fits just fine into 24 MB of memory. > Also, how slow is it? Depending on what you're doing, expect around 10-15% +/-epsilon the speed of C code. OTOH, it's _far_ easier to write much more advanced/intelligent algorithms in Smalltalk than it is in most other languages. > I will be building an application that > will scale up to some large problems both in terms of memory used > and time consumed. The Unix VM has options to tune memory usage. By default it will happily let your image grow to 1 GByte (or 75% of your available physical memory, whichever is smaller). If this isn't appropriate, RTFM for the relevant command-line options. Ian From andreas.raab at gmx.de Mon Sep 1 21:23:32 2003 From: andreas.raab at gmx.de (Andreas Raab) Date: Sat Jan 28 05:30:02 2012 Subject: Wrong color format in B3DPrimitiveVertex? In-Reply-To: Message-ID: <001801c370cf$4c4a1310$1cb8fea9@atlantis> Hi, Something is funky here ... when I run your example, I get an "all black" box with no colors whatsoever but rather a nicely long Squeak3D.log complaining about GL_INVALID_ENUM in some pretty obscure place. If I run it either D3D or simulated all works fine. I'll have to investigate further what's going on here. Cheers, - Andreas > -----Original Message----- > From: squeak-dev-bounces@lists.squeakfoundation.org > [mailto:squeak-dev-bounces@lists.squeakfoundation.org] On > Behalf Of Martin Kuball > Sent: Monday, September 01, 2003 9:54 PM > To: The general-purpose Squeak developers list > Subject: Re: Wrong color format in B3DPrimitiveVertex? > > > Let's try. I had to make some small modifications to exhibit > the problem and > you need the B3D tutorial demo stuff. > > If you file in the change set you will get the following. A > new example in > class B3DDemoBlockWorld (example3), a change in > B3DHardwareEngine to prohibit > the setting of a material and a new class B3DTestObj. If you > start the > example: B3DDemoBlockWorld example3 you see a scene with a > green cube and a > blue line pointing to the right (the x-axis). *But* I > specified a red color > for the line. The cube itself is green because no lighting is enabled. > To do this reenable the setting of material properties. Now > the cube is black > except it's right face. I somewhat expected this because I > specified a > directional light with (100@0@0). But actually I would have > expected the left > face to be green. What's wrong this time? > > Martin > > > > Am Sonntag, 31. August 2003 19:15 schrieben Sie: > > Do you have an example for testing this? > > > > Cheers, > > - Andreas > > > > > -----Original Message----- > > > From: squeak-dev-bounces@lists.squeakfoundation.org > > > [mailto:squeak-dev-bounces@lists.squeakfoundation.org] On > > > Behalf Of Martin Kuball > > > Sent: Saturday, August 30, 2003 7:47 PM > > > To: squeak-dev@lists.squeakfoundation.org > > > Subject: Wrong color format in B3DPrimitiveVertex? > > > > > > > > > Hi! > > > > > > The B3DPrimitiveVertex stores a Color value as a word in the > > > format ARGB, > > > where A is the most significant byte. On my Linux system > > > using an nvidia > > > driver this does not seem to be what OpenGL expects. It > > > should rather be ABGR. > > > > > > Martin > > > From arning at charm.net Mon Sep 1 21:26:51 2003 From: arning at charm.net (Bob Arning) Date: Sat Jan 28 05:30:02 2012 Subject: Wrong color format in B3DPrimitiveVertex? Message-ID: <200309012126.h81LQpDG064510@hampden.charm.net> Andreas, It may be related to the odd coloring of the cube in the B3DSceneExplorerMorph. When I get one out and turn on acceleration (3.5 image, 3.4 Mac VM), the colors change. Here are the expected (and correctly drawn with acceleration off) colors and what they look like with acceleration on: (TranslucentColor r: 1.0 g: 0.0 b: 0.0 alpha: 0.498) should be red, but looks like (Color r: 0.498 g: 1.0 b: 0) when accelerated (TranslucentColor r: 0.0 g: 1.0 b: 0.0 alpha: 0.498) should be green, but looks like (Color r: 0.498 g: 0.0 b: 1.0) when accelerated (TranslucentColor r: 0.0 g: 0.0 b: 1.0 alpha: 0.498) should be blue, but looks like (Color r: 0.498 g: 0.0 b: 0) when accelerated (TranslucentColor r: 1.0 g: 1.0 b: 0.0 alpha: 0.498) should be yellow, but looks like (Color r: 0.498 g: 1.0 b: 1.0) when accelerated (TranslucentColor r: 0.5 g: 0.5 b: 0.5 alpha: 0.498) should be gray AND IS! (TranslucentColor r: 0.0 g: 1.0 b: 1.0 alpha: 0.498)) should be cyan, but looks like (Color r: 0.498 g: 0.0 b: 1.0) when accelerated Looks very much like some mismatch between ARGB and RGBA. Cheers, Bob On Sun, 31 Aug 2003 19:15:31 +0200 "Andreas Raab" wrote: >Do you have an example for testing this? > >Cheers, > - Andreas > >> -----Original Message----- >> From: squeak-dev-bounces@lists.squeakfoundation.org >> [mailto:squeak-dev-bounces@lists.squeakfoundation.org] On >> Behalf Of Martin Kuball >> Sent: Saturday, August 30, 2003 7:47 PM >> To: squeak-dev@lists.squeakfoundation.org >> Subject: Wrong color format in B3DPrimitiveVertex? >> >> >> Hi! >> >> The B3DPrimitiveVertex stores a Color value as a word in the >> format ARGB, >> where A is the most significant byte. On my Linux system >> using an nvidia >> driver this does not seem to be what OpenGL expects. It >> should rather be ABGR. From cg at cdegroot.com Mon Sep 1 21:38:48 2003 From: cg at cdegroot.com (cg@cdegroot.com) Date: Sat Jan 28 05:30:02 2012 Subject: How to bind a listening socket to an address? References: <000401c370b2$566bf0b0$1cb8fea9@atlantis> Message-ID: <8sqc21-d9t.ln1@home.cdegroot.com> Andreas Raab said: >> Total VM support code upheaval: 2 lines modified and 3 added. > >Let's do it. Any contrary opinions? > Yes, please let's do it. (suppress mumble that I've been planning to take this up for ~2 years now...) -- Cees de Groot http://www.cdegroot.com GnuPG 1024D/E0989E8B 0016 F679 F38D 5946 4ECD 1986 F303 937F E098 9E8B Cogito ergo evigilo From rpboland at math.uwaterloo.ca Mon Sep 1 22:33:36 2003 From: rpboland at math.uwaterloo.ca (Ralph P. Boland) Date: Sat Jan 28 05:30:02 2012 Subject: installing squeak on Debian Woody References: Message-ID: <3F53C940.70600@math.uwaterloo.ca> Ian Piumarta wrote: >On Mon, 1 Sep 2003, Ralph P. Boland wrote: > > > >>I tried installing Squeak 3.4 on a PC running Debian Woody but >>without success. >> >> > >Did you get this from Lex's archives?. If so he can probably help you out >better than I can't. > ... Not I picked it up from a website that I assumed is the standard home of Squeak. I picked up the linux version for the PC. It was not specific to Debian. >Ralph > > > > From andreas.raab at gmx.de Mon Sep 1 22:44:37 2003 From: andreas.raab at gmx.de (Andreas Raab) Date: Sat Jan 28 05:30:02 2012 Subject: Debugger woes In-Reply-To: <200309011733.h81HX6JI021502@gatech.edu> Message-ID: <001c01c370da$9ffc9d60$1cb8fea9@atlantis> Hi Anthony, > Hi Andreas (and thanks Doug for forwarding this to me. For > some reason I did not get this mail although I've been getting > other mailing list posts) In this case let me cc you directly ;-) > All the simulation behavior is in the 'changing suspended state' > protocol in Process. So it is not too intertwinded. Maybe > it would be better to rename this 'simulation'. Okay, I went over the methods and yes, it all looks as if they are used exclusively for simulation. All but one (very important) place - Process>>terminate invokes (if not the active process) the full simulation machinery via popTo: and friends. Can you explain why process termination has to go to this particular length? It looks as if you've got something specific in mind here but I don't see why we can't terminate the process "just the way it used to be" (that is: merely unwind the stack and be done with it). > You have to modify the process because you are executing it > even if its one step at a time. That is almost (but not quite) correct. You only have to modify the process "inplace" if you wish to preserve a strict mapping between the "debugged" and the "real" process state (e.g., so that the process' suspended context maps exactly to the simulation state). I am not sure if that is either required or a Good Idea; as a matter of fact I am more leaning towards that it's not a good idea (considering some of the mechanisms required to debug something like Croquet's real-time scheduled processes). One of the changes that I've thought about for the purpose of debugging processes was to essentially associate a debugger with a process (via instVar) which - if present - handles attempts to do things with the process where potentially "incorrect" state (such as suspendedContext) is involved. The places which come to mind immediately are (for example) #suspend, #resume, and #terminate but there may be others. In the context of a debug session, we may indeed forward these requests to the debugger which could then provide us with the "right" means for handling them. I think what's really important here is to distinguish between the state a process is in when it is debugged (simulated) and when it is run by the VM. Since we can't really simulate the process (as it isn't active) it seems as if some clear distinction between debugging and running might be rather helpful. The old (pre 3.6) debugger had that distinction - it might get "out of sync" at times but for enabling certain kinds of debug facilities that's exactly what you need. > Simulating a process IS running a process. It is just that Smalltalk > code (in 'changing suspended state') is updating the process > and context state instead of the VM. Although to speed things up the > simulate code in #complete: hands off execution to the VM until > a specified context completes than the simulation takes over again > (old #quickStep). BTW, where exactly does this happen? I have done some pretty weird things with contexts myself but _that_ method is really beyound me ;-) > I agree. What you call the non-UI debugger, I call the simulator. > In my VI4 implementation I did have a Simulator. But when > trying to adapt my changes to the current Squeak I tried not to > change too much (my mistake). To the contrary! Discussions like these lay the grounds for people understanding changes like these, why they were made, what the background is etc. I think it's important to make them explicit by discussing them and come up with a common understanding how to do certain things. It is likely that "just" looking at the simulator would have given me a much harder time than without this discussion. > Yes just move the 'changing suspended state' code to a new Simulator > class and have the debugger interact with it. Will see what can be done here. If you can give me a bit of help regarding #popTo: it would be greatly appreciated. > Moving the simulation code out into a simulator, is just an > organization (asthetics) issue. The simulator is there, just in > Process 'changing suspended state'. So this should not hold you > back. The fast #complete: is probably the real problem your > running into. Yes, certainly so given that I don't even understand what exactly it does ;-) > It would be cleaner to to resume the suspended process directly > instead of swapping contexts (see #jump). Also, you probably want > the option to disable the fast #complete: all together and simulate > the entire call. Probably not ;-) I rather like the quickStep facility. > Let me know if you want to make this change to #complete:. Or if you > want me too. Well it would greatly help me if you could answer the above questions. We'll see how it goes from there. Cheers, - Andreas From schwa at cc.gatech.edu Mon Sep 1 22:45:30 2003 From: schwa at cc.gatech.edu (Joshua 'Schwa' Gargus) Date: Sat Jan 28 05:30:02 2012 Subject: installing squeak on Debian Woody In-Reply-To: <3F53C940.70600@math.uwaterloo.ca> References: <3F53C940.70600@math.uwaterloo.ca> Message-ID: <20030901224530.GA14734@cc.gatech.edu> On Mon, Sep 01, 2003 at 06:33:36PM -0400, Ralph P. Boland wrote: > > > Ian Piumarta wrote: > > >On Mon, 1 Sep 2003, Ralph P. Boland wrote: > > > > > > > >>I tried installing Squeak 3.4 on a PC running Debian Woody but > >>without success. > >> > >> > > > >Did you get this from Lex's archives?. If so he can probably help you out > >better than I can't. > > > ... > > Not I picked it up from a website that I assumed is the standard home of > Squeak. Could you be a little more specific? What is the URL of the file you downloaded? Joshua > I picked up the linux version for the PC. It was not specific to Debian. > > >Ralph > > > > > > > > > > From andreas.raab at gmx.de Mon Sep 1 23:08:00 2003 From: andreas.raab at gmx.de (Andreas Raab) Date: Sat Jan 28 05:30:02 2012 Subject: Wrong color format in B3DPrimitiveVertex? In-Reply-To: <200309012126.h81LQpDG064510@hampden.charm.net> Message-ID: <002301c370dd$e4218070$1cb8fea9@atlantis> Hi Bob, Thanks for the info - I investigated the problem and it turns out that you're exactly right. We're passing in ARGB but GL expects RGBA (ho hum). I just fixed the renderer code @ sf so this will be fixed in the next round of VMs coming along. Cheers, - Andreas > -----Original Message----- > From: squeak-dev-bounces@lists.squeakfoundation.org > [mailto:squeak-dev-bounces@lists.squeakfoundation.org] On > Behalf Of Bob Arning > Sent: Monday, September 01, 2003 11:27 PM > To: squeak-dev@lists.squeakfoundation.org > Subject: Re: RE: Wrong color format in B3DPrimitiveVertex? > > > Andreas, > > It may be related to the odd coloring of the cube in the > B3DSceneExplorerMorph. When I get one out and turn on > acceleration (3.5 image, 3.4 Mac VM), the colors change. Here > are the expected (and correctly drawn with acceleration off) > colors and what they look like with acceleration on: > > > (TranslucentColor r: 1.0 g: 0.0 b: 0.0 alpha: 0.498) should be red, > but looks like (Color r: 0.498 g: 1.0 b: 0) when accelerated > > (TranslucentColor r: 0.0 g: 1.0 b: 0.0 alpha: 0.498) should be green, > but looks like (Color r: 0.498 g: 0.0 b: 1.0) when accelerated > > (TranslucentColor r: 0.0 g: 0.0 b: 1.0 alpha: 0.498) should be blue, > but looks like (Color r: 0.498 g: 0.0 b: 0) when accelerated > > (TranslucentColor r: 1.0 g: 1.0 b: 0.0 alpha: 0.498) should be yellow, > but looks like (Color r: 0.498 g: 1.0 b: 1.0) when accelerated > > (TranslucentColor r: 0.5 g: 0.5 b: 0.5 alpha: 0.498) should > be gray AND IS! > > (TranslucentColor r: 0.0 g: 1.0 b: 1.0 alpha: 0.498)) should be cyan, > but looks like (Color r: 0.498 g: 0.0 b: 1.0) when accelerated > > Looks very much like some mismatch between ARGB and RGBA. > > Cheers, > Bob > > > On Sun, 31 Aug 2003 19:15:31 +0200 "Andreas Raab" > wrote: > >Do you have an example for testing this? > > > >Cheers, > > - Andreas > > > >> -----Original Message----- > >> From: squeak-dev-bounces@lists.squeakfoundation.org > >> [mailto:squeak-dev-bounces@lists.squeakfoundation.org] On > >> Behalf Of Martin Kuball > >> Sent: Saturday, August 30, 2003 7:47 PM > >> To: squeak-dev@lists.squeakfoundation.org > >> Subject: Wrong color format in B3DPrimitiveVertex? > >> > >> > >> Hi! > >> > >> The B3DPrimitiveVertex stores a Color value as a word in the > >> format ARGB, > >> where A is the most significant byte. On my Linux system > >> using an nvidia > >> driver this does not seem to be what OpenGL expects. It > >> should rather be ABGR. > > From johnmci at smalltalkconsulting.com Mon Sep 1 23:53:25 2003 From: johnmci at smalltalkconsulting.com (John M McIntosh) Date: Sat Jan 28 05:30:02 2012 Subject: How to bind a listening socket to an address? In-Reply-To: Message-ID: <79E0BF4C-DCD7-11D7-8483-00306540A296@smalltalkconsulting.com> On Monday, September 1, 2003, at 12:41 PM, Ian Piumarta wrote: > Attached: changesets for [Old]Socket (for some imagey person to look at > and fiddle with), SocketPlugin (for TPR's VMM plugins package), and a > one-liner diff to platforms/Cross/plugins/SocketPlugin.h (which I will > commit to SF within the next couple of hours, along with the Unix > support > changes, unless JMM and/or AR asks me not to -- in any case, the extra > declaration doesn't hurt even if the function behind it is absent, > assuming your compiler and linker aren't totally broken).-- This seems ok, afterall the os-x carbon vm is using the unix socket source code. I'm not sure it's supported back in os-9, since support for that version of mac os is slowly being left behind. I do recall some notes about binding to different interfaces etc in Open Transport, so I'll look around, if it's not easily doable it might not get in the classic version, but I don't think it's a big issue on that platform. ======================================================================== === John M. McIntosh 1-800-477-2659 Corporate Smalltalk Consulting Ltd. http://www.smalltalkconsulting.com ======================================================================== === From bparsia at email.unc.edu Tue Sep 2 00:39:46 2003 From: bparsia at email.unc.edu (Bijan Parsia) Date: Sat Jan 28 05:30:02 2012 Subject: parser generator tool In-Reply-To: <3F53A82E.80102@math.uwaterloo.ca> Message-ID: On Mon, 1 Sep 2003, Ralph P. Boland wrote: > I am about to begin development of a new parser generator tool > (as if we didn't have enough of them already). > > My tool will be designed to parse complex grammars > (much more complex than LR(1) grammars) quickly based > upon an algorithm I have been developing for years. > I refer to the parsing technowledgy as "Meta-Reduction Parsing" because > the algorithm does "multiple reductions to an entire subtree at a time". Sounds interesting. > I am wondering what Smalltalk based parser generator tools already exist. > I am aware of TGen-2.1 and SmaCC which is based upon TGen-2.1. > Are there others? THere's a Parser generator kit bundled with VisualWorks, which I believe someone ported to Squeak (Stephane?). As I recall, it doesn't separate the grammars from regular methods as much as TGen and SmaCC do. [snip] I'm interested in the project, fwiw. Cheers, Bijan Parsia. From schwa at cc.gatech.edu Tue Sep 2 02:58:12 2003 From: schwa at cc.gatech.edu (Joshua 'Schwa' Gargus) Date: Sat Jan 28 05:30:02 2012 Subject: [BUG] #removeLinefeeds missing? Message-ID: <20030902025812.GA7289@cc.gatech.edu> Hi, The file list menu item for removing linefeeds from a file seems to have been broken somewhere between updates 5169 and 5235 (possibly 5200?). I'm not digging deeper right now because I'm not too familiar with that code, and I'm in the middle of something else. Best, Joshua From vinfoley at iquebec.com Tue Sep 2 03:20:14 2003 From: vinfoley at iquebec.com (Vincent Foley) Date: Sat Jan 28 05:30:02 2012 Subject: Inputting passwords Message-ID: <20030902032014.GA1869@vincent> Hi, is there a Morphic widget to input passwords? If there's not, is there a method to hash the contents of a PluggableTextMorph with stars or something? Thank you very much, Vince. -- Vincent Foley-Bourgon Email: vinfoley@iquebec.com Homepage: http://darkhost.mine.nu:81 From j.jansson at qut.edu.au Tue Sep 2 03:58:34 2003 From: j.jansson at qut.edu.au (Johannes Jansson) Date: Sat Jan 28 05:30:02 2012 Subject: Math in Squeak Message-ID: <200309020349.AKW98842@mail-router01.qut.edu.au> Hello! I'm looking for some good math functionalities in Squeak for educational purposes (University). I searched Squeakmap, but found only the PlotMorph which can plot functions. On a search on the homepage I found two more interesting pages, 'Math Pack1' which was very good, and the 'MathMorphs', which seemed to be a bit out of date. What's up with these packages? And is there anything more available for Squeak? Thanks! Johannes. From schwa at cc.gatech.edu Tue Sep 2 04:18:57 2003 From: schwa at cc.gatech.edu (Joshua 'Schwa' Gargus) Date: Sat Jan 28 05:30:02 2012 Subject: Math in Squeak In-Reply-To: <200309020349.AKW98842@mail-router01.qut.edu.au> References: <200309020349.AKW98842@mail-router01.qut.edu.au> Message-ID: <20030902041856.GB12547@cc.gatech.edu> You missed 'DHB Numerical Analysis' on SqueakMap. It consists of the Smalltalk code from "Object-Oriented Implementation of Numerical Methods"; there's a lot of good stuff in there. I've also hacked some support for LAPACK routines, but it's not all nice and pretty for release. Can you be more specific about what you are looking for? Joshua On Tue, Sep 02, 2003 at 01:58:34PM +1000, Johannes Jansson wrote: > Hello! > > I'm looking for some good math functionalities in Squeak for educational > purposes (University). I searched Squeakmap, but found only the PlotMorph > which can plot functions. On a search on the homepage I found two more > interesting pages, 'Math Pack1' which was very good, and the 'MathMorphs', > which seemed to be a bit out of date. What's up with these packages? And is > there anything more available for Squeak? > > Thanks! > Johannes. From scott.wallace at squeakland.org Tue Sep 2 04:55:42 2003 From: scott.wallace at squeakland.org (Scott Wallace) Date: Sat Jan 28 05:30:03 2012 Subject: Font editing In-Reply-To: References: <001f01c370a6$0cf3eb60$fc00b850@Standard> Message-ID: Hi, Markus, Here's an old technique for bit-editing StrikeFont glyphs that we used in ancient days to create the custom left-arrow and up-arrow glyphs for the Comic fonts. I just tried using it in a modern image and it still seems to work: In an mvc project, evaluate the following: (StrikeFont familyName: 'Helvetica' size: 10) edit: $_ Use the resulting bit-editor to edit the underbar glyph. Choose "accept" from the bit-editor's yellow-button menu when you're done. Then do likewise for the other sizes. (You'll probably want to do this for the "^" glyphs as well.) Cheers, -- Scott At 8:17 PM +0200 9/1/03, Markus Fritsche wrote: > >... I just wanted to change the underscore of the helvetica font to a >leftarrow - got used to it :-) > >Regards, Markus From ok at cs.otago.ac.nz Tue Sep 2 05:01:31 2003 From: ok at cs.otago.ac.nz (Richard A. O'Keefe) Date: Sat Jan 28 05:30:03 2012 Subject: [OT] substring indexing Message-ID: <200309020501.h8251V9Z286927@atlas.otago.ac.nz> Martin Drautzburg asked: Does anybody know a good way to index a large set of strings (so) searching for strings that contain a given substring can be done fast? Is there a way to map strings to integers (i.e. indexing without a tree) so that the substring search can be mapped to examining a range of these integers and their associated strings . Or is this theoretically impossible ? If anyone answered this question, they did so privately. My understanding of the question is this: Given a fixed or slowly changing set S of strings is there a data structure that can be used so that q(x) = { s in S | exist a,z such that s = a++x++z } can be computed cheaply? There are several such data structures. Look for "suffix tree", "suffix array", and "directed acyclic word graph". For example, the Compact DAWG of a text with n characters can be stored in 6n integers (even, if I've understood the relevant articles correctly, for wide (Unicode) characters). Not only is the space cost linear in the amount of text to be stored, the time to construct the index is too. http://www.nist.gov/dads/HTML/directedAcyclicWordGraph.html is one place to start. There are several books that discuss these matters as well. By the way, this is not necessarily a good way to do Information Retrieval: these methods consider _all_ characters on an equal basis and have no interest in or awareness of words. From Fritsche.Markus at gmx.net Tue Sep 2 06:02:59 2003 From: Fritsche.Markus at gmx.net (Markus Fritsche) Date: Sat Jan 28 05:30:03 2012 Subject: Font editing References: <001f01c370a6$0cf3eb60$fc00b850@Standard> Message-ID: Scott Wallace schrieb: > In an mvc project, evaluate the following: > > (StrikeFont familyName: 'Helvetica' size: 10) edit: $_ > > Use the resulting bit-editor to edit the underbar glyph. Choose > "accept" from the bit-editor's yellow-button menu when you're done. Thank you, that worked. The next challenge is now: how do I get the new Character to be used by morphic? I have the package "DeclarativePools" installed. Markus -- http://reauktion.de/archer/ From ducasse at iam.unibe.ch Tue Sep 2 06:46:14 2003 From: ducasse at iam.unibe.ch (Stephane Ducasse) Date: Sat Jan 28 05:30:03 2012 Subject: parser generator tool In-Reply-To: Message-ID: <2546F9B6-DD11-11D7-AA4B-000393B2AA24@iam.unibe.ch> On Tuesday, September 2, 2003, at 02:39 AM, Bijan Parsia wrote: > On Mon, 1 Sep 2003, Ralph P. Boland wrote: > >> I am about to begin development of a new parser generator tool >> (as if we didn't have enough of them already). >> >> My tool will be designed to parse complex grammars >> (much more complex than LR(1) grammars) quickly based >> upon an algorithm I have been developing for years. >> I refer to the parsing technowledgy as "Meta-Reduction Parsing" >> because >> the algorithm does "multiple reductions to an entire subtree at a >> time". > > Sounds interesting. > >> I am wondering what Smalltalk based parser generator tools already >> exist. >> I am aware of TGen-2.1 and SmaCC which is based upon TGen-2.1. >> Are there others? > > THere's a Parser generator kit bundled with VisualWorks, which I > believe > someone ported to Squeak (Stephane?). As I recall, it doesn't separate > the > grammars from regular methods as much as TGen and SmaCC do. > [snip] Roel ported the Parser Generator of VW Contact him > > I'm interested in the project, fwiw. > > Cheers, > Bijan Parsia. > > From ducasse at iam.unibe.ch Tue Sep 2 06:48:31 2003 From: ducasse at iam.unibe.ch (Stephane Ducasse) Date: Sat Jan 28 05:30:03 2012 Subject: Math in Squeak In-Reply-To: <20030902041856.GB12547@cc.gatech.edu> Message-ID: <76EBBB80-DD11-11D7-AA4B-000393B2AA24@iam.unibe.ch> About "Object-Oriented Implementation of Numerical Methods" Note that there is a camp smalltalk around the numerical method package, therfore do not use the code provided with the ook but use the camp one as they improved it. Then the book is quite good (even if didier deliberately never wanted to advertise it for deonthological reason ;)). On Tuesday, September 2, 2003, at 06:18 AM, Joshua 'Schwa' Gargus wrote: > You missed 'DHB Numerical Analysis' on SqueakMap. It consists of the > Smalltalk > code from "Object-Oriented Implementation of Numerical Methods"; > there's a lot > of good stuff in there. > > I've also hacked some support for LAPACK routines, but it's not all > nice > and pretty for release. > > Can you be more specific about what you are looking for? > Joshua > > > On Tue, Sep 02, 2003 at 01:58:34PM +1000, Johannes Jansson wrote: >> Hello! >> >> I'm looking for some good math functionalities in Squeak for >> educational >> purposes (University). I searched Squeakmap, but found only the >> PlotMorph >> which can plot functions. On a search on the homepage I found two more >> interesting pages, 'Math Pack1' which was very good, and the >> 'MathMorphs', >> which seemed to be a bit out of date. What's up with these packages? >> And is >> there anything more available for Squeak? >> >> Thanks! >> Johannes. > From ajh18 at cornell.edu Tue Sep 2 06:58:51 2003 From: ajh18 at cornell.edu (Anthony Hannan) Date: Sat Jan 28 05:30:03 2012 Subject: Debugger woes Message-ID: <200309020658.h826wlJI011739@gatech.edu> "Andreas Raab" wrote: > > All the simulation behavior is in the 'changing suspended state' > > protocol in Process. So it is not too intertwinded. Maybe > > it would be better to rename this 'simulation'. > > Okay, I went over the methods and yes, it all looks as if they are used > exclusively for simulation. All but one (very important) place - > Process>>terminate invokes (if not the active process) the full simulation > machinery via popTo: and friends. Can you explain why process termination > has to go to this particular length? It looks as if you've got something > specific in mind here but I don't see why we can't terminate the process > "just the way it used to be" (that is: merely unwind the stack and be done > with it). I wanted to execute the unwind blocks in the context of the terminating process and not the calling process. Meaning if an unwind block raises an exception, an exception handler in the terminating process will handle it and not one in the calling process. To do this I resume (simulate) the terminating process but with a "bottomContext return" on top causing the process to return to its bottom context while executing unwind blocks on the way. > > You have to modify the process because you are executing it > > even if its one step at a time. > > That is almost (but not quite) correct. You only have to modify the process > "inplace" if you wish to preserve a strict mapping between the "debugged" > and the "real" process state (e.g., so that the process' suspended context > maps exactly to the simulation state). I am not sure if that is either > required or a Good Idea; as a matter of fact I am more leaning towards that > it's not a good idea (considering some of the mechanisms required to debug > something like Croquet's real-time scheduled processes). It sounds like you want to keep a copy of the process (a continuation), so you can abort what you did in the debugger. > One of the changes that I've thought about for the purpose of debugging > processes was to essentially associate a debugger with a process (via > instVar) which - if present - handles attempts to do things with the process > where potentially "incorrect" state (such as suspendedContext) is involved. > The places which come to mind immediately are (for example) #suspend, > #resume, and #terminate but there may be others. In the context of a debug > session, we may indeed forward these requests to the debugger which could > then provide us with the "right" means for handling them. Are you talking about locking the process while mainpulating it, so it is not inadvertently resumed before you are done manipulating it? > I think what's really important here is to distinguish between the state a > process is in when it is debugged (simulated) and when it is run by the VM. > Since we can't really simulate the process (as it isn't active) it seems as > if some clear distinction between debugging and running might be rather > helpful. I still don't see the difference between running and simulating. You are going through the same execution steps, its just one is written in Smalltalk and the other is written in Slang. In Smalltalk you have one Smalltalk process executing another Smalltalk process. In Slang (VM), you have a native process executing a Smalltalk process. Maybe you want to keep an original copy (a continuation) around. > The old (pre 3.6) debugger had that distinction. Maybe the old debugger didn't change the suspendedContext but it did change the temps in the contexts you stepped through, effectively changing the process. > - it might get "out of sync" at times but for enabling certain kinds of debug facilities that's > exactly what you need. I not sure what facilities you mean. > > To speed things up the > > simulate code in #complete: hands off execution to the VM until > > a specified context completes than the simulation takes over again > > (old #quickStep). > > where exactly does this happen? I have done some pretty weird things > with contexts myself but _that_ method is really beyound me ;-) Yes, sorry context swapping (#jump) is a little perverse plus it wasn't commented well enough. Attached is a new version that does normal process resuming instead of context swapping and is better commented. The gist of it is to resume the suspended process but have it suspend itself when a certain context is popped. This is done by inserting an #ensure context under the certain context with an unwind block that will re-suspend the current process when reached. Again, we want to run in the suspended process so the correct exception handlers are active. > If you can give me a bit of help regarding > #popTo: it would be greatly appreciated. #popTo: calls #complete: for the same reason: we want the suspended process's exception handlers active when unwinding. > > Let me know if you want to make this change to #complete:. Or if you > > want me too. The version attached addresses the changes I was referring to except for adding a don't-quickStep preference which you said you don't want. Cheers, Anthony -------------- next part -------------- A non-text attachment was scrubbed... Name: RewriteProcComplete-ajh.cs Type: application/octet-stream Size: 3110 bytes Desc: not available Url : http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20030902/f366b60e/RewriteProcComplete-ajh.obj From schwa at cc.gatech.edu Tue Sep 2 07:13:31 2003 From: schwa at cc.gatech.edu (Joshua 'Schwa' Gargus) Date: Sat Jan 28 05:30:03 2012 Subject: Math in Squeak In-Reply-To: <76EBBB80-DD11-11D7-AA4B-000393B2AA24@iam.unibe.ch> References: <20030902041856.GB12547@cc.gatech.edu> <76EBBB80-DD11-11D7-AA4B-000393B2AA24@iam.unibe.ch> Message-ID: <20030902071331.GB21410@cc.gatech.edu> I believe that the version I put on SqueakMap is the Camp Smalltalk version. Joshua On Tue, Sep 02, 2003 at 08:48:31AM +0200, Stephane Ducasse wrote: > About "Object-Oriented Implementation of Numerical Methods" > Note that there is a camp smalltalk around the numerical method > package, therfore do not use the code provided with the ook but use the > camp one as they improved it. Then the book is quite good (even if > didier deliberately never wanted to advertise it for deonthological > reason ;)). > > > > On Tuesday, September 2, 2003, at 06:18 AM, Joshua 'Schwa' Gargus wrote: > > >You missed 'DHB Numerical Analysis' on SqueakMap. It consists of the > >Smalltalk > >code from "Object-Oriented Implementation of Numerical Methods"; > >there's a lot > >of good stuff in there. > > > >I've also hacked some support for LAPACK routines, but it's not all > >nice > >and pretty for release. > > > >Can you be more specific about what you are looking for? > >Joshua > > > > > >On Tue, Sep 02, 2003 at 01:58:34PM +1000, Johannes Jansson wrote: > >>Hello! > >> > >>I'm looking for some good math functionalities in Squeak for > >>educational > >>purposes (University). I searched Squeakmap, but found only the > >>PlotMorph > >>which can plot functions. On a search on the homepage I found two more > >>interesting pages, 'Math Pack1' which was very good, and the > >>'MathMorphs', > >>which seemed to be a bit out of date. What's up with these packages? > >>And is > >>there anything more available for Squeak? > >> > >>Thanks! > >>Johannes. > > > From scott.wallace at squeakland.org Tue Sep 2 07:16:35 2003 From: scott.wallace at squeakland.org (Scott Wallace) Date: Sat Jan 28 05:30:03 2012 Subject: Font editing In-Reply-To: References: <001f01c370a6$0cf3eb60$fc00b850@Standard> Message-ID: Hi, Markus, In 3.4/5, at least, once you've edited a StrikeFont glyph using the bit-editor in mvc, the result will automatically be reflected in text using that font whether it's seen in morphic or in mvc. Any text-bearing pane that is set up to use the given font/size that you've edited will reflect your edits. As for how the DeclarativePools work might affect this, if at all, perhaps someone else can answer that. Cheers, -- Scott At 8:02 AM +0200 9/2/03, Markus Fritsche wrote: >Scott Wallace schrieb: > >> In an mvc project, evaluate the following: >> > > (StrikeFont familyName: 'Helvetica' size: 10) edit: $_ >> >> Use the resulting bit-editor to edit the underbar glyph. Choose >> "accept" from the bit-editor's yellow-button menu when you're done. > >Thank you, that worked. The next challenge is now: how do I get the >new Character to be used by morphic? > >I have the package "DeclarativePools" installed. > >Markus From d.varvello at quinary.com Tue Sep 2 06:32:37 2003 From: d.varvello at quinary.com (Davide Varvello) Date: Sat Jan 28 05:30:03 2012 Subject: Problems with plugin and 3D graphics In-Reply-To: <3F4F5D4B.8040803@squeakland.org> Message-ID: On 8/29/03 4:03 PM, "Michael Rueger" wrote: > > The current plugin version does not include the Alice/Wonderland classes. > > Michael > > > Thank you all, so I'll try to include Alice classes in my project , any hint on how to do it? :-) Davide From ducasse at iam.unibe.ch Tue Sep 2 08:18:13 2003 From: ducasse at iam.unibe.ch (Stephane Ducasse) Date: Sat Jan 28 05:30:03 2012 Subject: Documentation, more, more In-Reply-To: <001c01c3707b$46788e20$3790b241@jameco> Message-ID: Hi all I think that the best, more efficient way of providing documentation about Squeak is to write simple tests representing scenario. We cannot afford having people write documentation that will get obsolete as soon as we change something. because Squeak is not a frozen framework but something that is moving fast. So all your effort to externalize documentations in non executable way are doomed to fail and frustrate you. Tests are the only way to go, sorry if this is hurting. But tests are coooooooool, they provide you this guts feelings, "YES it works. I'm sure it works". You have to experience that by yourself because this is personal but this is a so good feeling. With test - your documentation is always in sync with the code. Just press the button and if it is green you are sure, - this way we can change the system without fear to breaking something that would stay not identified, - tests represent your trust in the system, - Everybody even newbies can write tests - If you write tests lot of people will enjoy review them and include the into squeak Tests are like solar energy, they ensure that we will be able to fix stuff in the future. Ok they cost a bit more at the beginning but they provide a lot more . Developing without test is fun but like nuclear energy it endangers our future. Look at the tests provided for the UUID to understand what I mean. - daniel wrote a small tests to show how easy is to write tests. Daniel will post that soon after his trip back from ESUG - If you want to know more about tests - browse my emails in the archive - read the tutorial on SUnit available at: http://www.iam.unibe.ch/~ducasse/WebPages/Books.html Stef Just a real story that happens to me yesterday. I was coding something and nearly there without any tests because I'm lazy and this was trivial when I realized that a special case could break everything I did. This was boring, frustrating and too complex after a day of work. So I started to write 4 tests. It took me around one hour really slowly to pay attention to have a simple scenario for each of my cases. Then I recoded everything running the tests in 15 minutes. At the end all the tests passed green and I was done. DONE with the feeling YES it works I can go home coooool and sure that I did it right. During the night I run my application to extract a big db and it worked. Now if it happens that I still have a bug, I will start first writing a test and fix it. On Monday, September 1, 2003, at 01:21 PM, Gary Fisher wrote: > Hi, Leftie! > > (I happen to be profoundly sinistral myself, by the way, and quite > happy > about it. :-) > > One reason Squeak documentation can appear to be hard to find is that > there > are multiple versions or aspects (or perhaps viewpoints) of Squeak. > Much of > the Squeak-Dev view exists primarily to hone the cutting edge of > Squeak; a > good deal of what's here is experimental, even speculative, and may > never > get beyond that stage. A substantial portion of the Squeak-Dev view > is more > practical or explanatory, though it still leans more toward advancing > the > user than simply to plonking him or her down in a quiet spot. This > list > tends to have a headlong feel. > > For a viewpoint more suited to teaching (with) Squeak, you might find > Squeakland (www.Squeakland.org) and the list available there more to > your > liking. The Squeakland site and list are devoted much more to > practica, > based on the most current "stable" version of Squeak rather than the > development version du jour. > > If you're looking for the fastest way to get working with Squeak, > however, > you might find one or more of the published references best suited to > your > needs. Mark Guzdial's books, in particular, can take you from > installation > to coding to eventual understanding in what may well be the shortest > possible time, though by necessity any printed text will be based on > the > version of Squeak available at the time of printing (included on the CD > bound with each book), which will of course not be the most current > version. > Nevertheless, moving independently from a good working knowledge of an > earlier Squeak to today's version will probably be easier than coming > in > directly from complete Newbiedom. I purchased my copies of Mark's > books at > a local book store (a good opportunity to encourage them to stock more > Squeak and Smalltalk books) but a quick Amazon search will bring up > both new > and used copies at good prices. > > I hope that helps. > > Gary Fisher > > ----- Original Message ----- > From: "leftie2100" > To: "The general-purpose Squeak developers list" > > Sent: Sunday, August 31, 2003 6:19 PM > Subject: Re: Documentation, more, more > > > Considering the supposed emphasis on using Squeak as a teaching tool, > I guess I find these reasons to be a really poor excuse. What good is > a great tool to the public as a whole if the only people who can use > it are the developers? > > The lead developers need to make development of good documentation > just as central to releases as the code itself. Until they demand that > documentation be completed and updated before software is released, it > won't be. The lead developers need to take charge of the documentation > process instead of allowing themselves to let others take this "chore" > off their hands. The attitude I'm seeing here that the documentation > is a necessary evil that must be "grinded out' sounds like it very > well could be a significant part of the problem. Writing can be fun to > do if you go about it in a light-hearted fashion and that type of > writing also engages the reader. > > Personally, I know a bit about writing, but I know nothing about > programming. I'm a programming newbie that would really like to learn > Squeak, but I'm pretty much kept from doing that because of your > current documentation situation. I read this list because I keep > hoping I'll read some new focused learning resources have been > created. So when I read that many feel "coding is fun, documentation > is not" on the threads, it doesn't do much for my confidence that I'll > ever get the chance to use Squeak. > > If you guys really want to be the Squeak evangalists you seem to all > claim you want to be, you're going to have to have a complete attitude > change about things like complete centralized documentation and the > creation of Squeak programming texts for those new to programming. > > > > > > > --- In squeak@yahoogroups.com, goran.krampe@b... wrote: >> Hi David! >> >> David wrote: >> [SNIP of ramblings :-) about documentation] >>> I'll apologize again for asking stupid questions like the ones above, >>> and now I'll sit down and be quiet. >> >> Those of us who have been in the community for some time, and I am not >> sure how long you have been here, tend to feel that people asking the >> community to "change" or to "Hey, you should do *this*!" don't really >> understand how this community works and generally gets little >> attention >> and might even piss people off. ;-) >> >> Let me be very frank and very disillusioned for a few seconds: >> >> 1. There have been A LOT of efforts starting to document Squeak. They >> all seem to "fade away". Nothing wrong with trying though - just don't >> think it hasn't been done before! Really. I am not kidding. >> >> 2. People do what they like to do. Coding is fun. Documentation is >> not. >> >> 3. Even though it is a harsh and perhaps annoying mantra - the "Ok, >> then >> why don't *you* do it?" logic still applies. Talking doesn't count for >> much. >> >> >> Ok, given the above - what can then be done that will actually have a >> slight chance to *succeed*? My take on this (which of course may be >> totally off) is: >> >> - Whatever you try to do, do it *yourself*. Don't try to talk others >> into it. "If you build it, they will come". This is at least my >> experience with SM. >> >> - Documentation is all about keeping it fresh. I have earlier proposed >> to try to bind documentation with the Unit tests. I still think it is >> a >> great idea (check archives to see what I mean). In other words, the >> docs >> must be tied to the image and tha packages, it can't live on its own. >> SM >> is of course a pillar to lean on in this case. IMHO class comments >> belong with the class - not on a swiki. >> >> - As with most things accepted in the community it very often comes >> down >> to good tools. SM is successful, but didn't render much interest until >> the Morphic package tool came onto the scene. BFAV has been successful >> becuase of similar reasons. The Magic Book concept (see Swiki - and >> how >> ironic? :-)) I sketched on earlier is based on this idea. >> >> So... in short: >> >> If *you* build *The Magic Book* tool and incorporate ideas to tie >> stuff >> with Unit tests or similar mechanisms that ensure things don't get >> stale >> - *then* something might happen. :-) >> >> My 2 cents, G?ran > > > From goran.krampe at bluefish.se Tue Sep 2 09:40:19 2003 From: goran.krampe at bluefish.se (goran.krampe@bluefish.se) Date: Sat Jan 28 05:30:03 2012 Subject: Documentation, more, more In-Reply-To: References: Message-ID: Hi all! Just wanted to say that I wholeheartedly agree with Stephane and also think that "externalized documentation" (that might be nicer to read than code for some people) could also benefit from tests by being tied to the tests in the manner I explained in the Magic Book discussion. A short recap: The idea was to simply link each "chapter" (or other granularity) of documentation to one or more SUnit tests. The idea is that if the documentation is focused on "black box use" (as it probably should be in most cases) then it is highly likely that the documentation follows the same lifecycle as the tests and NOT the same lifecycle as the code itself. So... whenever any of the linked unit tests either change or turn red then the documentation also turns "red" meaning that it needs to be checked again to make sure it is correct. This means that the code can evolve as long as it doesn't change it's "external contract". Like bugfixes or internal refactorings or whatever. As long as the unit tests are the same and are green then the "external contract" should also be the same and thus the documentation is still valid. Of course - adding more unit test methods could also signify something - but now we are talking details... :-) Anyway, I think it is a good idea but not sure yet how we can try it out "for real". regards, Göran From trost at cloud.rain.com Tue Sep 2 00:30:15 2003 From: trost at cloud.rain.com (Bill Trost) Date: Sat Jan 28 05:30:03 2012 Subject: problems with Squeak on a Compaq Aero 2100-series running WinCE Message-ID: <26146.1062462615@cloud.rain.com> I'm trying to install Squeak on a Compaq Aero 2130 I got cheap, and it's not going very well. I downloaded http://www.is.titech.ac.jp/~ohshima/squeak/iPAQ/SqueakVM-alpha6-HPC-ARM.zip and the TinySqueak image and changes file from http://www.reasonability.net/ipaq/. I put the .exe in the "Start Menu" directory, and the image and changes in the root directory. Almost all the time, I get the CE hourglass for a while, and then an apparent hang. Eventually, I can bring up the Start menu and select Squeak from the programs menu again, which leads me to a WinCE dialog saying, "Fatal error: Cannot create device bitmap." Also in the mix is a dialog titled "Squeak" that says, "Quit Squeak without saving [Yes] [No]." Selecting No causes Squeak to exit anyhow. I tried installing gx.dll for MIPS in \windows, to no avail. The frustrating thing is that, in one try out of dozens, I actually did have Squeak working for a bit, albeit slowly, but haven't managed to repeat the voodoo since. Does anyone have any suggestions? Thanks, Bill From vanjulio at cc.gatech.edu Tue Sep 2 05:22:12 2003 From: vanjulio at cc.gatech.edu (Webb McDonald) Date: Sat Jan 28 05:30:03 2012 Subject: [Q] VM Command Line Options Message-ID: hello- I have a question about sending command line options to the image, via the VM invocation. I need to send command line options but I cannot depend on the existence of a .st "startup script" file. what I want: >squeak.exe bot.image arg1 arg2 what seems to be required: >squeak.exe bot.image startup.st arg1 arg2 Is there any simple way to get around this weird requirement? I do not have any such .st I want to read, and really cannot depend on one existing in the directory. Thanks- _____________ Webb McDonald vanjulio@cc.gatech.edu "He who fights monsters should look to it that he himself does not become a monster." -Nietzsche From avi at beta4.com Tue Sep 2 09:17:39 2003 From: avi at beta4.com (Avi Bryant) Date: Sat Jan 28 05:30:03 2012 Subject: [Q] VM Command Line Options In-Reply-To: Message-ID: On Tue, 2 Sep 2003, Webb McDonald wrote: > what seems to be required: > >squeak.exe bot.image startup.st arg1 arg2 > > Is there any simple way to get around this weird requirement? I believe you can simply disable the #readDocumentAtStartup preference. From gafisher at sprynet.com Tue Sep 2 09:40:53 2003 From: gafisher at sprynet.com (Gary Fisher) Date: Sat Jan 28 05:30:03 2012 Subject: problems with Squeak on a Compaq Aero 2100-series running WinCE References: <26146.1062462615@cloud.rain.com> Message-ID: <001e01c37136$4f7a65a0$a091b241@jameco> >> "Quit Squeak without saving [Yes] [No]." Selecting No causes Squeak to exit anyhow." Bill; Selecting [No] doesn't abort the quit, it just saves the image on the way out (answering [Yes] will quit *without* saving the image). If your image was somehow corrupted before you got this dialog, answering [No] would have saved the corrupted image, including any problems which may have existed at the time. Since you haven't done any serious work with this image yet (except sweat over it :-) you may just want to reload a new image and start over. Gary ----- Original Message ----- From: "Bill Trost" To: Sent: Monday, September 01, 2003 8:30 PM Subject: problems with Squeak on a Compaq Aero 2100-series running WinCE > I'm trying to install Squeak on a Compaq Aero 2130 I got cheap, and it's > not going very well. I downloaded > http://www.is.titech.ac.jp/~ohshima/squeak/iPAQ/SqueakVM-alpha6-HPC-ARM.zip > and the TinySqueak image and changes file from > http://www.reasonability.net/ipaq/. I put the .exe in the "Start Menu" > directory, and the image and changes in the root directory. > > Almost all the time, I get the CE hourglass for a while, and then an > apparent hang. Eventually, I can bring up the Start menu and select > Squeak from the programs menu again, which leads me to a WinCE dialog > saying, "Fatal error: Cannot create device bitmap." Also in the mix is > a dialog titled "Squeak" that says, "Quit Squeak without saving [Yes] > [No]." Selecting No causes Squeak to exit anyhow. I tried installing > gx.dll for MIPS in \windows, to no avail. > > The frustrating thing is that, in one try out of dozens, I actually did > have Squeak working for a bit, albeit slowly, but haven't managed to > repeat the voodoo since. > > Does anyone have any suggestions? > > Thanks, > Bill > From lewis at mail.msen.com Tue Sep 2 09:44:54 2003 From: lewis at mail.msen.com (David T. Lewis) Date: Sat Jan 28 05:30:04 2012 Subject: [Q] VM Command Line Options In-Reply-To: ; from vanjulio@cc.gatech.edu on Tue, Sep 02, 2003 at 01:22:12AM -0400 References: Message-ID: <20030902054454.A3794@conch.msen.com> On Tue, Sep 02, 2003 at 01:22:12AM -0400, Webb McDonald wrote: > hello- > > I have a question about sending command line options to the image, > via the VM invocation. I need to send command line options but I > cannot depend on the existence of a .st "startup script" file. > > what I want: > >squeak.exe bot.image arg1 arg2 > > what seems to be required: > >squeak.exe bot.image startup.st arg1 arg2 > > Is there any simple way to get around this weird requirement? > I do not have any such .st I want to read, and really cannot depend on one > existing in the directory. There is now a preference to control this: world menu -> appearance... -> preferences -> general -> readDocumentAtStartup Dave From rvaitk at soften.ktu.lt Tue Sep 2 10:26:11 2003 From: rvaitk at soften.ktu.lt (Raimundas Vaitkevitcius) Date: Sat Jan 28 05:30:04 2012 Subject: squeak.org site not accessible Message-ID: Hi, the webmaster of the squek.org site, sorry for trouble, but what happened to the site? When going in there, I receive message "This site has expired. If you are the webmaster of this site, click here to renew your account." Raimundas Vaitkevicius From martin.drautzburg at web.de Tue Sep 2 09:54:36 2003 From: martin.drautzburg at web.de (Martin Drautzburg) Date: Sat Jan 28 05:30:04 2012 Subject: MessageNotUnderstood: MtTrait>>mouseDown: In-Reply-To: <87ekz4wbnf.fsf@web.de> References: <87ekz4wbnf.fsf@web.de> Message-ID: <87u17vwm5f.fsf@web.de> Martin Drautzburg writes: > This happens in > mouseDown: evt > evt shiftPressed not & evt yellowButtonPressed > ifTrue: [^ self invokeMenu: evt]. > (super respondsTo: #mouseDown:) > ifTrue: [super mouseDown: evt] > > the #mouseDown: methon in inherited from a Trait. The class in > question is a subclass of SystemWindow which *does* respond to > #mouseDown. > > What is happening here ? For some reason everything is back to normal if a accept #mouseDown: in the Trait class again. From andreas.raab at gmx.de Tue Sep 2 12:01:53 2003 From: andreas.raab at gmx.de (Andreas Raab) Date: Sat Jan 28 05:30:04 2012 Subject: Debugger woes In-Reply-To: <200309020658.h826wlJI011739@gatech.edu> Message-ID: <003901c3714a$0032e580$1cb8fea9@atlantis> Hi Anthony, > I wanted to execute the unwind blocks in the context of the > terminating process and not the calling process. Meaning if > an unwind block raises an exception, an exception handler in > the terminating process will handle it and not one in the > calling process. Ah, I see. Is this the "standard" semantics? E.g., what do other systems do when you have something like p := [[ [Processor activeProcess suspend] ensure:[4/0] ] on: ZeroDivide do:[:ex| ex resume: 'oh no']. ] fork. p terminate. > It sounds like you want to keep a copy of the process (a > continuation), so you can abort what you did in the debugger. I didn't think about it this way, but yes, I guess that's what I'm after. The reason being that for debugging something like Croquet processes I _think_ we'll have to a little more than "just" simulating the process itself - turns out that the environmental factors (such as the real-time clock) plays an important role which we can't really ignore when we debug such processes. > > One of the changes that I've thought about for the purpose > > of debugging processes was to essentially associate a debugger > > with a process (via instVar) which - if present - handles > > attempts to do things with the process where potentially > > "incorrect" state (such as suspendedContext) is involved. > > The places which come to mind immediately are (for example) > > #suspend, #resume, and #terminate but there may be others. > > In the context of a debug session, we may indeed forward > > these requests to the debugger which could > > then provide us with the "right" means for handling them. > > Are you talking about locking the process while mainpulating it, so it > is not inadvertently resumed before you are done manipulating it? Yes, exactly. The point being that the "locked" process really has a few more constraints when we debug it. I'll give a simple example from Croquet: Each process has an associated deadline by which to deliver it's associated "payload". When this deadline expires the process will be terminated as it has been unable to deliver its payload in a timely fashion. Now, typically the deadline is tightly bound to real-time and you can imagine what kind of "interesting" behavior you get if the deadline kicks in while you try to debug this process ;-) So one of the things I'd like to do is to arbitrarily expand the deadline for the purpose of a debug session. Note that while this _sounds_ simple (just change the deadline) it actually isn't. The "realtime deadline" needs to abort just the way it would in normal execution but the process needs to be debugged "as if" the realtime hasn't been reached. Kinda tricky, and I'd like to have this model represented explicitly somewhere (e.g., in the simulator/debugger). > I still don't see the difference between running and simulating. You > are going through the same execution steps, its just one is written in > Smalltalk and the other is written in Slang. If you exclude environmental factors, yes. But see above - I don't really see how you could debug a process with croquet semantics without distinguishing between "real" and "simulated" execution (btw, perhaps as a final note for the above - if we resume a debugged Croquet process _before_ its deadline expires we should naturally be able to complete it "in time" ;) > > where exactly does this happen? I have done some pretty weird things > > with contexts myself but _that_ method is really beyound me ;-) > > Yes, sorry context swapping (#jump) is a little perverse plus > it wasn't > commented well enough. Attached is a new version that does normal > process resuming instead of context swapping and is better commented. Thanks, I'll check it out. > The version attached addresses the changes I was referring to except > for adding a don't-quickStep preference which you said you don't want. Yup, that's fine. One more question because I'm sure you must have thought about it: Do you have any idea about an idiom that can be used for retrieving the active process in the context of a debug session? Most of what's happening could be solved by "somehow" making sure that a simulated "Processor activeProcess" answers the process being debugged instead of the one debugging it. For example, I have thought about something where a process which runs for some reason another one (such as in process unwind) might remember the process being simulated and answer this process. For example, Processor>>activeProcess ^activeProcess runningProcess Process>>runningProcess "Answer the process we are currently running. If the receiver is for some reason simulating the execution of another process, the simulated process will be stored in the simulatedProcess instance variable." ^simulatedProcess ifNil:[self] would give us the basics. However, this still won't be complete as then it is questionable how the simulation of "Processor activeProcess suspend" should work. This is why I'd like to have a lightweight debugger/simulator associated with the process which captures requests like those. For example Process>>runningProcess ^debugger ifNil:[self] ifNotNil:[debugger runningProcess] Process>>suspend debugger ifNotNil:[ debugger runningProcess == self ifTrue:[debugger suspendProcess: self]. ]. Debugger>>suspendProcess: aProcess "Simulate suspension of the currently running process" SuspendDebuggerProcess signal. "will be caught by the simulation somewhere up" etc. Of course, the _really_ interesting question here is what's going to happen in a case like [ ["..."] ensure:[Processor activeProcess suspend]] ensure:[Transcript show: 'been here, done that']] but that's too obscure to even think about it ;-) Cheers, - Andreas From Laurence.Rozier at knowledgearchitects.net Tue Sep 2 12:25:23 2003 From: Laurence.Rozier at knowledgearchitects.net (Laurence.Rozier@knowledgearchitects.net) Date: Sat Jan 28 05:30:04 2012 Subject: [ANN]Morph Transitions and Effects Message-ID: Add more "liveness" to your Morphs! This changeset gives Morphs the ability to scroll vertically, fade in and out, cloak and decloak. Registered on SqueakMap and downloadable from: http://www.knowledgearchitects.net/.1dd28a32 From Laurence.Rozier at knowledgearchitects.net Tue Sep 2 12:44:45 2003 From: Laurence.Rozier at knowledgearchitects.net (Laurence.Rozier@knowledgearchitects.net) Date: Sat Jan 28 05:30:04 2012 Subject: Your Input Is Needed Message-ID: Hi, In the interest of broadening the Squeak community, I've set up some polls to see how folks are using Squeak. You can find the polls at: http://www.knowledgearchitects.net/Worlds/KnowledgeArchitects/TechnologyCenter/SqueakLabs/Polls as well as in the sidebars in various places if you prefer to take them one at a time. Cheers, Laurence From wuyts at iam.unibe.ch Tue Sep 2 13:15:21 2003 From: wuyts at iam.unibe.ch (Roel Wuyts) Date: Sat Jan 28 05:30:04 2012 Subject: parser generator tool In-Reply-To: <2546F9B6-DD11-11D7-AA4B-000393B2AA24@iam.unibe.ch> Message-ID: <813A87D6-DD47-11D7-B9DF-003065CC9F36@iam.unibe.ch> Yes, I ported the VisualWorks ParserGenerator to Squeak many years ago. Becuase I was not sure about the licensing, I never put it out officially, but it is unofficially available on-demand by sending me a simple mail. So if anybody is interested, just drop me a mail and I'll go on my attick, kill some monster spiders and try to retrieve the code :-) PS: I also have it lying around somewhere for VisualAge, btw. Not that I think that anybody could be interested by that... On Tuesday, Sep 2, 2003, at 08:46 Europe/Zurich, Stephane Ducasse wrote: > > On Tuesday, September 2, 2003, at 02:39 AM, Bijan Parsia wrote: > >> On Mon, 1 Sep 2003, Ralph P. Boland wrote: >> >>> I am about to begin development of a new parser generator tool >>> (as if we didn't have enough of them already). >>> >>> My tool will be designed to parse complex grammars >>> (much more complex than LR(1) grammars) quickly based >>> upon an algorithm I have been developing for years. >>> I refer to the parsing technowledgy as "Meta-Reduction Parsing" >>> because >>> the algorithm does "multiple reductions to an entire subtree at a >>> time". >> >> Sounds interesting. >> >>> I am wondering what Smalltalk based parser generator tools already >>> exist. >>> I am aware of TGen-2.1 and SmaCC which is based upon TGen-2.1. >>> Are there others? >> >> THere's a Parser generator kit bundled with VisualWorks, which I >> believe >> someone ported to Squeak (Stephane?). As I recall, it doesn't >> separate the >> grammars from regular methods as much as TGen and SmaCC do. >> [snip] > > Roel ported the Parser Generator of VW > Contact him >> >> I'm interested in the project, fwiw. >> >> Cheers, >> Bijan Parsia. >> >> > > Roel Wuyts Software Composition Group roel.wuyts@iam.unibe.ch University of Bern, Switzerland http://www.iam.unibe.ch/~wuyts/ Board Member of the European Smalltalk User Group: www.esug.org From mpiel at etu.info.unicaen.fr Tue Sep 2 14:12:22 2003 From: mpiel at etu.info.unicaen.fr (=?ISO-8859-1?B?TWljaGHrbA==?= Piel) Date: Sat Jan 28 05:30:04 2012 Subject: squeak.org unavailable In-Reply-To: References: Message-ID: <20030902161223.56ce9755.mpiel@etu.info.unicaen.fr> Hi all, The site http://www.squeak.org has suddenly become unavailable, which is annoying. if you try to display the page you will be redirected to another page saying : This site has expired. Has somebody further informations ? Micha?l Piel University of Caen From mdrs at akasta.com Tue Sep 2 14:56:13 2003 From: mdrs at akasta.com (Mike Rutenberg) Date: Sat Jan 28 05:30:04 2012 Subject: [FIX] BlockArgumentDescriptionFix ( do not accept ) In-Reply-To: <200308241807.h7OI7aRx029326@luxator.cs.uni-magdeburg.de> References: <200308241807.h7OI7aRx029326@luxator.cs.uni-magdeburg.de> Message-ID: <200309021456.h82EuD432113@q7.q7.com> Introduces an error, mistakenly reporting the number of arguments passed rather than the number required. Test case: [ :i | 1] valueWithArguments: #(1 2) < I'm a bug-fixing machine! > This post brought to you by the BugFixArchiveViewer, a handy tool that makes it easy to comment on proposed fixes and enhancements for Squeak. For more information, check out the Web page for the BugFixArchiveViewer project: http://minnow.cc.gatech.edu/squeak/3214 < I'm a bug-fixing machine! > From mdrs at akasta.com Tue Sep 2 15:20:10 2003 From: mdrs at akasta.com (Mike Rutenberg) Date: Sat Jan 28 05:30:04 2012 Subject: [FIX] pathForFileFix ( [et][er][sm] recommend inclusion ) In-Reply-To: <200308061255.h76CtDfQ025560@obelix.spectraweb.ch> References: <200308061255.h76CtDfQ025560@obelix.spectraweb.ch> Message-ID: <200309021520.h82FK9402215@q7.q7.com> This is a small change that works. Recommend inclusion Tested using 'file:/foo/bar' asUrl pathForFile 'file:foo/bar' asUrl pathForFile < I'm a bug-fixing machine! > This post brought to you by the BugFixArchiveViewer, a handy tool that makes it easy to comment on proposed fixes and enhancements for Squeak. For more information, check out the Web page for the BugFixArchiveViewer project: http://minnow.cc.gatech.edu/squeak/3214 < I'm a bug-fixing machine! > From dave_faught at yahoo.com Tue Sep 2 15:41:00 2003 From: dave_faught at yahoo.com (David Faught) Date: Sat Jan 28 05:30:04 2012 Subject: [BUG] Hidden Information/HyperText, alt-6 in GeeMail Message-ID: <20030902154100.42113.qmail@web40906.mail.yahoo.com> In the TextPlus area of a GeeMail morph, the alt-6 menu comes up, but does not work properly. Specifically, entering: A Link selecting all that text, doing alt-6 (on Windows), and selecting "be a Web URL Link" from the menu gives the following result: A Link[No hidden info] and no link is inserted. This is in a 3.5 image. __________________________________ Do you Yahoo!? Yahoo! SiteBuilder - Free, easy-to-use web site design software http://sitebuilder.yahoo.com From mdrs at akasta.com Tue Sep 2 15:44:06 2003 From: mdrs at akasta.com (Mike Rutenberg) Date: Sat Jan 28 05:30:04 2012 Subject: [FIX] ErrorReportOnFix-ajh ( [er][sm][et] recommend to include ) In-Reply-To: <200308041742.h74Hguvc004366@luxator.cs.uni-magdeburg.de> References: <200308041742.h74Hguvc004366@luxator.cs.uni-magdeburg.de> Message-ID: <200309021544.h82Fi5404211@q7.q7.com> Recommend to include. Small change. If possible another reviewer should look at this because this is a central mechanism in the system, but I am happy to have it go in my system as is. mike Tested with: [Transcript show: 'ab'. self halt. Transcript show: 'cd'] fork. < I'm a bug-fixing machine! > This post brought to you by the BugFixArchiveViewer, a handy tool that makes it easy to comment on proposed fixes and enhancements for Squeak. For more information, check out the Web page for the BugFixArchiveViewer project: http://minnow.cc.gatech.edu/squeak/3214 < I'm a bug-fixing machine! > From mike at mjr104.co.uk Tue Sep 2 16:04:44 2003 From: mike at mjr104.co.uk (Mike Roberts) Date: Sat Jan 28 05:30:04 2012 Subject: [FIX] BlockArgumentDescriptionFix ( do not accept ) In-Reply-To: <200309021456.h82EuD432113@q7.q7.com>; from mdrs@akasta.com on Tue, Sep 02, 2003 at 07:56:13AM -0700 References: <200308241807.h7OI7aRx029326@luxator.cs.uni-magdeburg.de> <200309021456.h82EuD432113@q7.q7.com> Message-ID: <20030902160444.B3149@mjr104.co.uk> On Tue, Sep 02, 2003 at 07:56:13AM -0700, Mike Rutenberg wrote: > > Introduces an error, mistakenly reporting the number of arguments passed > rather than the number required. > > Test case: > [ :i | 1] valueWithArguments: #(1 2) Err yes, how clueless! sorry about that. I guess I got the wrong end of the stick. I always thought the error text for this was incorrect |c| c _ OrderedCollection new. c add: 'hello'. c do:[1 + 2] Because the error you get is "This block requires 0 arguments" and I think, no it doesn't it needs 1. This is one of the newbie things I do all the time. I think I now see that the intent of the error, had I read the method comment correctly, is that the block you have given doesn't expect any arguments. I always read the error as you don't need any arguments for the operation, and you do, you need 1 - but only do: knows this. So my intent was that it would tell you how many you needed for the operation to work correctly - that's what I assumed it would mean. But my assumption is wrong here, because only the block knows how many it needs from how it has been written, not how many it is being passed. So sorry for making a mess of that. Thanks for reviewing it anyway. The bugs in the related bug post aren't bugs then - so I'm afraid they're going to need to be ignored as well. Sorry, Cheers Mike From afunkyobject at yahoo.com Tue Sep 2 16:06:26 2003 From: afunkyobject at yahoo.com (Chris Muller) Date: Sat Jan 28 05:30:04 2012 Subject: [Magma] leftover sessions and more Message-ID: <20030902160626.79629.qmail@web12202.mail.yahoo.com> --- Chris Muller wrote: > Date: Fri, 29 Aug 2003 13:15:11 -0700 (PDT) > From: Chris Muller > Subject: Re: [Magma] leftover sessions and more > To: Martin Drautzburg > > > They're not dangling. It's just that gc hasn't run yet. YOu can force it: > > Smalltalk garbageCollect > > and you'll see they go away. > > They should also go away on their own after a period of time. > > - Chris > > --- Martin Drautzburg wrote: > > Chris, > > > > I verfied that two dangling sessions are created by > > newDatabase > > ^ MagmaRepositoryController create: self databaseFile root: Dictionary new > > > __________________________________ > Do you Yahoo!? > Yahoo! SiteBuilder - Free, easy-to-use web site design software > http://sitebuilder.yahoo.com > __________________________________ Do you Yahoo!? Yahoo! SiteBuilder - Free, easy-to-use web site design software http://sitebuilder.yahoo.com From afunkyobject at yahoo.com Tue Sep 2 16:22:51 2003 From: afunkyobject at yahoo.com (Chris Muller) Date: Sat Jan 28 05:30:04 2012 Subject: [Q]Populating magma with a large tree In-Reply-To: Message-ID: <20030902162251.18113.qmail@web12207.mail.yahoo.com> --- afunkyobject wrote: > --- In squeak@yahoogroups.com, Martin Drautzburg > wrote: > These are probably simple ones, but I could not quite figure them out. > > But I want the magma database to be much larger than what I ever want > to hold in memory. How can that be done ? You only reference the portion of the tree that you need at any given time. > Another related issue I don't quite understand is the following: if I > want an index on the tree nodes I have to add them to a > MagmaCollection, right ? Right, unless you have another indexing mechanism. However, you can also access objects by oid, but I wouldn't recommend it (poor practice). > Suppose I have the database built and no > object is currently in memory. Then i manage to materialize one tree > node (assume it is a leaf) and delete it. By "delete" I assume you mean to remove it from that tree.. > I will have to remove it > from the MagmaCollection too, right ? If you wish the MagmaCollection to be "in-sync" with the Tree, yes. > But is it in there at all ? I > could have materialized the leaf object by traersing the tree from the > root object without ever using the index. A MagmaCollection is just like any other Collection in terms of referencing objects, so yes, it is in there. If you added your node to an OrderedCollection then it would be in your Tree as well as the OrderedCollection. Removing the node from your Tree would not remove it from the OrderedCollection, and it would not be gc'd, since it is still referenced by the OrderedCollection. Sharing objects. No problem. - Chris __________________________________ Do you Yahoo!? Yahoo! SiteBuilder - Free, easy-to-use web site design software http://sitebuilder.yahoo.com From mdrs at akasta.com Tue Sep 2 16:22:55 2003 From: mdrs at akasta.com (Mike Rutenberg) Date: Sat Jan 28 05:30:04 2012 Subject: [FIX] PackageInfo-externalClassSpeedup ( [er][sm] recommend to include ) In-Reply-To: <0HK300I7ATIRQ2@l-daemon> References: <0HK300I7ATIRQ2@l-daemon> Message-ID: <200309021622.h82GMt408119@q7.q7.com> This is a very small local change, converting a returned Array into a Set before using it for testing. I have not run the code, but it looks fine. Recommend to include. < I'm a bug-fixing machine! > This post brought to you by the BugFixArchiveViewer, a handy tool that makes it easy to comment on proposed fixes and enhancements for Squeak. For more information, check out the Web page for the BugFixArchiveViewer project: http://minnow.cc.gatech.edu/squeak/3214 < I'm a bug-fixing machine! > From MartinKuball at web.de Tue Sep 2 16:25:53 2003 From: MartinKuball at web.de (Martin Kuball) Date: Sat Jan 28 05:30:04 2012 Subject: Wrong color format in B3DPrimitiveVertex? In-Reply-To: <001801c370cf$4c4a1310$1cb8fea9@atlantis> References: <001801c370cf$4c4a1310$1cb8fea9@atlantis> Message-ID: I think it's time to install Squeak on my notebook and try it there, too. Martin Am Montag, 1. September 2003 23:23 schrieben Sie: > Hi, > > Something is funky here ... when I run your example, I get an "all black" > box with no colors whatsoever but rather a nicely long Squeak3D.log > complaining about GL_INVALID_ENUM in some pretty obscure place. If I run it > either D3D or simulated all works fine. I'll have to investigate further > what's going on here. > > Cheers, > - Andreas > > > -----Original Message----- > > From: squeak-dev-bounces@lists.squeakfoundation.org > > [mailto:squeak-dev-bounces@lists.squeakfoundation.org] On > > Behalf Of Martin Kuball > > Sent: Monday, September 01, 2003 9:54 PM > > To: The general-purpose Squeak developers list > > Subject: Re: Wrong color format in B3DPrimitiveVertex? > > > > > > Let's try. I had to make some small modifications to exhibit > > the problem and > > you need the B3D tutorial demo stuff. > > > > If you file in the change set you will get the following. A > > new example in > > class B3DDemoBlockWorld (example3), a change in > > B3DHardwareEngine to prohibit > > the setting of a material and a new class B3DTestObj. If you > > start the > > example: B3DDemoBlockWorld example3 you see a scene with a > > green cube and a > > blue line pointing to the right (the x-axis). *But* I > > specified a red color > > for the line. The cube itself is green because no lighting is enabled. > > To do this reenable the setting of material properties. Now > > the cube is black > > except it's right face. I somewhat expected this because I > > specified a > > directional light with (100@0@0). But actually I would have > > expected the left > > face to be green. What's wrong this time? > > > > Martin > > > > Am Sonntag, 31. August 2003 19:15 schrieben Sie: > > > Do you have an example for testing this? > > > > > > Cheers, > > > - Andreas > > > > > > > -----Original Message----- > > > > From: squeak-dev-bounces@lists.squeakfoundation.org > > > > [mailto:squeak-dev-bounces@lists.squeakfoundation.org] On > > > > Behalf Of Martin Kuball > > > > Sent: Saturday, August 30, 2003 7:47 PM > > > > To: squeak-dev@lists.squeakfoundation.org > > > > Subject: Wrong color format in B3DPrimitiveVertex? > > > > > > > > > > > > Hi! > > > > > > > > The B3DPrimitiveVertex stores a Color value as a word in the > > > > format ARGB, > > > > where A is the most significant byte. On my Linux system > > > > using an nvidia > > > > driver this does not seem to be what OpenGL expects. It > > > > should rather be ABGR. > > > > > > > > Martin From mdrs at akasta.com Tue Sep 2 16:40:48 2003 From: mdrs at akasta.com (Mike Rutenberg) Date: Sat Jan 28 05:30:04 2012 Subject: [ENH] Zippier Streams & Decompression ( [et][er][sm] recommend inclusion ) In-Reply-To: <000201c360e2$da8b1810$1f00a8c0@atlantis> References: <000201c360e2$da8b1810$1f00a8c0@atlantis> Message-ID: <200309021640.h82Gel410031@q7.q7.com> This is a relatively simple change and is faster. I do not understand the insides of the ZipArchive well enough to see why the additions to RWBinaryOrTextStream are included, but it seems fine. Recommend that this be included. < I'm a bug-fixing machine! > This post brought to you by the BugFixArchiveViewer, a handy tool that makes it easy to comment on proposed fixes and enhancements for Squeak. For more information, check out the Web page for the BugFixArchiveViewer project: http://minnow.cc.gatech.edu/squeak/3214 < I'm a bug-fixing machine! > From alr.dev at free.fr Tue Sep 2 16:44:01 2003 From: alr.dev at free.fr (ALR) Date: Sat Jan 28 05:30:04 2012 Subject: squeak license References: <004501c36efc$f7460140$1cb8fea9@atlantis> Message-ID: Hi Andreas, I agree with that. Suppose I write the first (exit hook to squeak handler), how do I proceed to submit the code ? do I send you the C code + .changeset, or to this group ? regards Alain "Andreas Raab" a écrit dans le message de news: 004501c36efc$f7460140$1cb8fea9@atlantis... > > I agree that all those modifications could or should be in > > the standard vm, but actually they are not. > > Someone has to write them first ;-) > > Cheers, > - Andreas > > > -----Original Message----- > > From: squeak-dev-bounces@lists.squeakfoundation.org > > [mailto:squeak-dev-bounces@lists.squeakfoundation.org] On > > Behalf Of ALR > > Sent: Friday, August 29, 2003 5:11 PM > > To: squeak-dev@lists.squeakfoundation.org > > Subject: Re: squeak license > > > > > > Thank you for your responses > > > > Well, in fact the vm will certainly not be the vm as it is today. > > The list of modification I would like to do (not complete of > > course, and in > > a very early stage) > > if anybody have ideas or comments about it: > > - the icons will be the application icons, not squeak icon > > ...not too hard I > > believe ;-) > > - the vm preference system menu should disappear > > - I would like to have a different exit handling code to let > > the application > > handle exit, > > and not the standard window proc message handling with 'Quit > > Squeak without > > savig' > > - I want to add primitives for GDI printing support under windows, > > like StartDoc/EndDoc, StartPage etc > > and probably modify the one I found (primitive 232, ioFormPrint > > I think it was just for testing purpose by A.Raab- BTW it works :-) - > > although bitmap > > printing can lead to problems ) > > - probably adding help handling primitives (don't know today > > how to do it, > > windows help api > > html or ?) > > ... > > I agree that all those modifications could or should be in > > the standard vm, > > but actually they are not. > > > > regards > > > > Alain > > > > > > > > > > > From andreas.raab at gmx.de Tue Sep 2 16:53:07 2003 From: andreas.raab at gmx.de (Andreas Raab) Date: Sat Jan 28 05:30:04 2012 Subject: squeak license In-Reply-To: Message-ID: <001a01c37172$af1ba1e0$1f00a8c0@atlantis> Hi, Send it to group - this way others can have a look and play with it too. Cheers, - Andreas > -----Original Message----- > From: squeak-dev-bounces@lists.squeakfoundation.org > [mailto:squeak-dev-bounces@lists.squeakfoundation.org] On > Behalf Of ALR > Sent: Tuesday, September 02, 2003 6:44 PM > To: squeak-dev@lists.squeakfoundation.org > Subject: Re: squeak license > > > Hi Andreas, > > I agree with that. > Suppose I write the first (exit hook to squeak handler), how > do I proceed to > submit the code ? > do I send you the C code + .changeset, or to this group ? > > regards > > Alain > > "Andreas Raab" a ?crit dans le message de news: > 004501c36efc$f7460140$1cb8fea9@atlantis... > > > I agree that all those modifications could or should be in > > > the standard vm, but actually they are not. > > > > Someone has to write them first ;-) > > > > Cheers, > > - Andreas > > > > > -----Original Message----- > > > From: squeak-dev-bounces@lists.squeakfoundation.org > > > [mailto:squeak-dev-bounces@lists.squeakfoundation.org] On > > > Behalf Of ALR > > > Sent: Friday, August 29, 2003 5:11 PM > > > To: squeak-dev@lists.squeakfoundation.org > > > Subject: Re: squeak license > > > > > > > > > Thank you for your responses > > > > > > Well, in fact the vm will certainly not be the vm as it is today. > > > The list of modification I would like to do (not complete of > > > course, and in > > > a very early stage) > > > if anybody have ideas or comments about it: > > > - the icons will be the application icons, not squeak icon > > > ...not too hard I > > > believe ;-) > > > - the vm preference system menu should disappear > > > - I would like to have a different exit handling code to let > > > the application > > > handle exit, > > > and not the standard window proc message handling with 'Quit > > > Squeak without > > > savig' > > > - I want to add primitives for GDI printing support under windows, > > > like StartDoc/EndDoc, StartPage etc > > > and probably modify the one I found (primitive 232, ioFormPrint > > > I think it was just for testing purpose by A.Raab- BTW it > works :-) - > > > although bitmap > > > printing can lead to problems ) > > > - probably adding help handling primitives (don't know today > > > how to do it, > > > windows help api > > > html or ?) > > > ... > > > I agree that all those modifications could or should be in > > > the standard vm, > > > but actually they are not. > > > > > > regards > > > > > > Alain > > > > > > > > > > > > > > > > > > > > > > From alr.dev at free.fr Tue Sep 2 16:54:00 2003 From: alr.dev at free.fr (ALR) Date: Sat Jan 28 05:30:04 2012 Subject: [BUG] EventSensor initialize does not work in 3.6-5402 Message-ID: Due to a change of EventSensorConstants from Dictionary to SharedPool, EventSensor intialize does not work in 3.6-5402 image. (work fine in 3.4-5170). I would like to add some new event types, but I don't know how to fix it. regards, Alain From andreas.raab at gmx.de Tue Sep 2 18:16:20 2003 From: andreas.raab at gmx.de (Andreas Raab) Date: Sat Jan 28 05:30:04 2012 Subject: [BUG][FIX] EventSensor initialize does not work in 3.6-5402 In-Reply-To: Message-ID: <000201c3717e$4ff52630$1cb8fea9@atlantis> The attached CS removes the initialization code which is now obsolete. Have a look at EventSensorConstants definition/initialization code instead. Cheers, - Andreas > -----Original Message----- > From: squeak-dev-bounces@lists.squeakfoundation.org > [mailto:squeak-dev-bounces@lists.squeakfoundation.org] On > Behalf Of ALR > Sent: Tuesday, September 02, 2003 6:54 PM > To: squeak-dev@lists.squeakfoundation.org > Subject: [BUG] EventSensor initialize does not work in 3.6-5402 > > > Due to a change of EventSensorConstants from Dictionary to SharedPool, > EventSensor intialize does not work in 3.6-5402 image. > (work fine in 3.4-5170). > > I would like to add some new event types, but I don't know > how to fix it. > > regards, > > Alain > > > > -------------- next part -------------- A non-text attachment was scrubbed... Name: EventSensorCleanup.cs Type: application/octet-stream Size: 657 bytes Desc: not available Url : http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20030902/731b6bec/EventSensorCleanup.obj From alr.dev at free.fr Tue Sep 2 18:50:01 2003 From: alr.dev at free.fr (ALR) Date: Sat Jan 28 05:30:05 2012 Subject: squeak exit handler Message-ID: Hi, Here is the code for having squeak code to handle the windows close message. Actually the only message handled is windows close, but it could be interesting to have other system notifications like iconify, sleep etc. The modifications are of 2 types : 1) modifications to the vm source (windows version 3.4.3, should be easy to add to unix vm), the modifications are tagged between lines //ALR> and //BXQJR0B16'U <<'9,G2]F<[>"O/Y@4@G1B?\=/.FDNO%F,0*_D MG^E$*XY\)B?PSVP\7,)5NCC>Y;"TV;72N<$J]L* UHSH[#19^9S2OW=8^9N^ MC^_7) OB8/$J-^@`@:X_+P[R.V<5XU V]K5X=[#XNO"9^#:,^$S@#$S-`I?/ M0&PF)(H5$=NQYS"K==4<2>G\^9>7S#)^L*I?_VD9_;IV5OD;#^#.*Y7#S\NQ MPSW0P(!'MJ_EV^6.;T_/S@#Z'[K-01/O;6CCQ[ZG,!\LHZ M2Z6.LRA%"= .PCXP@LXHU7\+N91`+H9XW\\BI)5/$3V!?.SG9.M!7=N M6F&"GW=#O.$;)W1Y87*6^+[I1*"R%[Y=Q PLXU';$RM0[#$IN3ACP.J.8#&H M;P?1KB(._S(W1)- "\A*$##9ZT2\?HH\W<4%#RPBI]M9V6 ?`GL)XU(%Z+I@ MCU[STICTFSUC8G9^,EBO^<-DV+2N*A5G84<201^6_:PGOFG\Z R%DH/ALK!ID=Q$1O^-.$B,G,TS26EA>[&?H?CG3<@WHU@L[9F(1)K[+UF"Q MY=4"9MH@QH6OZ:XVOPUH=IOF50[NP*')^T')1,PACR5W&*[]=.X!;_)1MP)(U0X*912EU9);')P5(LPXATPGW<, M=\ -9BP(@_W?>!02/SGA$!H6EB(PX!D..A"^+,-$\&$HR";!E0.&E?K$X)I\ M&\X\#.G6>R&-2H2*$"817 .!L!A7=Y TMH8!4CQE"%/P:1+'86#&Z*N))[B& M<*@I4I/4)PL"7"_ E1-0Y8G\23&!!*&-"-L#EGR>SGW,SO] M.5[D)&"Y89,9&!--O@2_Y+$B75XH\A-N M,@";Q;R8+_&#A$3-`^_C%MZ9U^0E*F)!7G$DR+9E&0""/2NN 5HRYU&1^3:=O6LU^RV"+#NB9'3C\ M[$E^%T^-XB'5CE$2!*06L+PU'IF#$7-DK DAIPBCE\ <7*X&<5)@N"D-#AQW MNM&H$,6PV34LRP";Z?,XUMOG2% 3K+JDJ&O*61* 3+HU7-X=7&H$>WXX']I^ MBD MAU'/L?T4318+X/KSCM5K#CO]BP';FRZ]1G'[!D;",E#&OT"9@2&S<,?" MY\6%SQ^]\+OBPN\>O;#Q;?ZDC6\?O?#D.+]01OOW+!P,NFPF94F\^.=9+E " MB6J"60-'HL4!^$DI&1J$OO4Z6W]EBXO02:3:Y-9;4<+1<"A;A4H;K'5#/!9XRC6M=A2$5)K7VDR&0.YNIA]W"`&>%-)$!+2'8 MB= !Q\6D]!TY8B[B<-;P_%88)BR34E$ M``P@("(#D-<[UG:"<]NYF4<00KKYO>]!(9T#VGRB)X]R+'B;(AU3X9+DM(FM MZ'%RLS(\3-<-5CRX[.8$I;!.S=Z*`]8^:>>7#B,O!(.].0]#$=..%373."=_ MU2-7I_ 6#H;C-FMHOR9](J:B(-.Y0YT\#@^X'9^=W(\,I1F\,$3\*Q:NY$7K M/4!3P&F!9Q"=I;S'+2Z KK&%`GJ=6SA*`I-'MY[#"TI67 CZ!9&'D'"TNGT] M&+69N^[Q)42E&"^5=?0*"R:)LV!+`E&Z`:?*[WXNW4H/LHOR^I*-`$=GP^>I M]D22)U?-?KMK0"R:!,;VGA' ^2K:HN,62TT4# QUK*:H4% MW6 _7&>.6BV;00Z7!@+:ZDCK?99=B;9&.\\L5?,'73)*#ZTC$75L#'Y:OH=L MSDZ-40SEDK %1LHMFUS2RRD)NH^LKP^A.>H.Q:53&&'+/)]<]^9FFTB!N M=-L]98T7+U[L'SW?;[R0Q2G0+S)R=*L<[)N4%C!ZW&=@]>7!LH(&C FG6'=0 ML6-$:039#9++:L^\9'M+,8><)9N'Y'P:VI'[`(BY$1"E2@`<=62IJG;V526? MMT\W,3?75$I#L%HAJ8>[AR VMD+I!UC=C1<>^)1K=.O:7"\3/_;VXP4F4P"!Y2.P#. - M;"P;5U(JT8@%/(;L\P:7$1SFDV 1EI[KH=(N/8P21+9FC1&5CQGY/ "?62IR M@%&XI8I>FD&#T^_,X%I5222$I#2W/U(HV)S'(BMXR4P#(ZX0L$<*BL71!HD$ M:RNW+AXC3P.0*%..A7V+SGT5A6 HEP=4()!5;0KO9)Z3X2E[*,#CHPD1X9)3 M%<8%@\DATA)UH &C6O)P-I5BD,8,E1N"I<$H"P,)O*%MY'AAX"K 8M&QL/9 M"I\_69Z+* .H>QDB[IK$B=3]7L/1J+I!A@87TZ=:Y7=?L="$Z1C\#")V*_A M5&*16X+-%O=1FE%Y5KG7Y4,$3@Y?I:\,K8>TJ(780:- &8:\G=NB>*:1'"/: MMPY#BV&[!&RNYM3[RE]D9GK*<0VC4$O$8WZ^C)E!3TJ5+ RA[)BB*2IC@2K' M#&09LW@*.[**V2HC?,F=A1UX8DDRJV(`36)A)24AWD157.#U$E0ZGLRF8*Z"2S;PH/1P-8)RR?3JT M1GP_?[X#UK(#JHX@5W7QV8&\GFR@IAAI4]Q111@R/)(7!PR2L%GBTZ7(XV-2 M#B9K[0FJ: -^X XZ?;)2]C2$#!FIM![$L'S+X6"TR MJ$:[PW!UKS11I5.G1U+$:CIJFFIEF#!!OB=8)O(@*,['Q$='I\*RD]DW5WESBK@%I =0,S1LD;= M_?'J$,-2N25#E8,\Y;C@J^WQNZ!0AC. M]OAM3"B+XWLU5HHD%7X&-BS>?Q5O5FB6:-:"O_7B(A"$WF9L+S&)R9DS.5& MQ-)R2Z;6577,5^RHQEZSDR-VRDX:!6BJP"MPH@!V;P&&`I"N\V.1"9^_`>;< MBPL@@(9'M]QM`$AAX%CJ* *^9]R'.]+L*[XQ?/M7/?K?O[>@\I*0Y&`R#(D#>U!KU>L]\^S8WJ(<452KJ66 23DLB>L:.[BXN+HU0BT:KOL_%NT[0R2;V"R,3G]);?XT&"2-(S3R&"O%$7 MA#K.GLJ'&+[T3XXGURVCEM\=U-!L37H0?_4Z/QG9)C!=K$C5J!8I"P%5 M71&H,_-ZY*A^C>2Z9*%:R4;L/0'=!(>'V*;0-*!RDU1V8 MN5/(8)(*E3%DB6!PP8LY?BAX/@:03[/^AE%1\?"PV1V]^BH-L0"_TL_S\"X[ MN7Q^_)\$'+^I'V,@,P&'*.Q;K/A]7:M79(U(@DHH&.V=3WXTS/Z@QI[B%5-B=\;E.R^N-C#[WSO\*KNQW0;NJ]1I;=<2)-X6CRUKT$?KE[(P<>.2Q_3.4B6I2@4&5=50=-7YI*]%/M:Z>)NK?VI?=0_*,,A'@( ML8L?8MNF$FKH^Y#]QL)SN:9KYUT]*$CCX0XQ*@[V M\H.?)$(J$=:D2?'1&;,\NF;&?X@`?0(3[Y&YCQ(YS?,2M[?NIU)B'SX`J/ZS M&\C5L'(GBF;WC?%CV?A Y),;+9\9O'#AZ:'&*H74X^-#@L?)3+&$ODML`(^* MPH!&B!@[C MP="&I ]M_].G^M1PCV/]`"SO)GT/KM,+ICI4;CU!/5N)S,2+6)742)\/!%@T]7^V9,U^+65.(@JGAUM6#7 MM>4/4XL6_J!NIC32V48Y+(U5GW:$4B.`?G8IOHL MHZ]62-S@5 ZUGD3V6CTRW4'^YBTA*@TQ%U7]R5C93\N[:A=6>BW'=M'1V-!2 MBVVZA>YF#%YDLP&@6MHWH*MO>X2SN)?&_WZW&&(S8ZJ_R%'4W"P&R!VNZ?Z: MB'A'BU%V`I ;^M@1C9HB=0W=&%/E!]DTE.5&MU9EV-P*QC+\E@U+%^G/0' MHUZS6RM4);%Z56@+^[.;-,]!B,I;Y8W P\4V:L4*_A%C1!#,N7XYQLY8:FK" M@@R+(S PLI&R96@!PRA"`BI+6+@(T[!D$V[JK6ZPHZG0D9M+3JK%Y ^L) M#W!GR6:M\N2^\JUY-;A.K_(\`L67DU9HA:MRNEJH]!V=Y2JT3Q\HT<*T; )> M8.EZJ[@'4GPQ:(U->=WYEN'&V2=7%M,4I=/MWH/]Z-.QPV'MQ(]3`1T'Z2MG M]IZW!&F=YMX_T[K.CL81^=Y*;2Y;C\">H*^7H(M070E(, 19.*P1T)=/J$&Z M7GS]UE_+% DU,6#LL\G1E E9>=]:)EC5O:W)#Z09M31'_A-W^+Z2?[-\_Y(MWLB9T\J)G499MV#-6UQRI877E8 M%E)##\+H'G=,*>LDHQBG1S %TD=;H4C*+W#3UZC#X*#,.];T14B-% _2IB2W MKKJEY&ZR05CF<@=?HJ%%-:#HGFD2D"&'",(]*\[1N3MMV>$X\3%^$SV3.\K> MR+;%M'V!H%N09F <1GZ+)9;$4)=="DE/S.OIOF/!H^Q3(_OS6/J!_(;??(,J MM/,[HI*6][EO#'^_7$KWAU\DUJV5R8IHJ=8JOU-XLSNZ*7!#8OX;!0`//=MA MQVFK.3095K9E7\0./&1[D$?@4]O\%D&KSVA%';_+%\(D?JA1K?6HEK,S9SL0 M$NS!6G[N>4$.O\R]::):6+8;L[IDQ(DO^;J-K+!29UY/BI><#2,+)D,#(LQV MI\7^R UJ\9A"O M,Z5_^3VW:/;-.$J<6'VU1*W03?Y;T&G #K#9]Q%+0$$/:V3J>TY;<_;=O7,7 M4;B\=](*[YO"`&6P#LADZE!8=W'->.PL="3(VL;;WJ!M',)O_-*Z*>W@ M^+75=G/4GK0&W<'(U"Y8"S:1;&"W9%5^<]O%-F/9O>S*/^;X717YYQ1XC0KP MO^U]>W<:QY;OW]):YSNT/1,'9%!H]#:6LQ @FXE>!Z38OHE'JP4MJ6^ )C18 MTCGQ?/:[7_7J;D!VG&1F[O$Y"M#U[*I=NW;MVONW/8]]2,NOQ@$(H0.JX"6.8"N0!'LT2-+***JB'S,:!@P M%@SS`O/%(!BV^;H/?4*$;3]F%8U%;>%CW [KN]M;6QY7X4R1GH[A85 MUFB1/ E&R3B8B--]N@Z0N_!?Q?W@.JX&L,F3F3T;D??[=*D,@R0=1!FV:GJ< M5W]U01_C#R_K?58$:68N]J'N;B[OG;>J.9=]_ MHHZ4J3(FLUV4R_ *R2NUG1YI:R1HD>05VDDW917J/03Y+>VFQ]SJWT.(B$2Y MQ?;20V&UA3V-UT/[A@=5%!:*.Z MN;6S[7YPP8U%!8&B-BM[6WON!Q?<6E00.K>YYV_Y[@<7W%Y4$$9S:V=C<\/] MX(([5L&%1+R;)F(ULKGK?G WH8J-ZOPW1!*%8=QV/Z1H=6%1;&?;W]QT/Z3HQL*B>WBS M4]VLN!]2=&M1T2IFKE9W=]T/*;J]L"A2[.;&QK;[(45W%A8%FO5W-S=2'U)T M;V%1H!JWJ0;K0XHNG)PJKLC= M[9VJ^R%%-Q<6!6K:J.S@'-D?4G3QO.(&L;F+*\[^D**+)P>H:6-[=WO#_9"B MNXN*;F 7=_>0E]D?4G3AO&X@&P'18,?]$/ZW<'*0?C:W*EM;[H<47;CH-I ' M[OB5U(<473BO&T $6[Z_M^=^2-&%DX.[RM9&=7/'_9"B"Q<=+K.MK>K>EOLA M11?.ZP:VL[>QY[L?4G3QY. F"JM[S_V0/6;AHJ/,0'L[[H<4=>:56?DYF4+@ M;4E?0'B(TS,N%BLE4$'.3WNS*P$B3*)[.,>%8_%%Q8TB#. 4ATZJ:,I ^=>] MDW@:LNL3W]!/1B@OD^\IVAI@=;Q5<#7C2?@QBF>)[#\EO%>"IH;C`5JZ).+A M24 0WE4XO4-QI_/Z0&U7()]S/5IFQR,+^IFOPWM&B?T6():.$I4,NP:J0>/9 MS2U*V>NKZN3E61X(DY)W`STB:9G?N# A>(2)]]+;AH_GSY6FGQ)O*/&&$V\P M<86>7]'S*WY^1<^QF1753K2/W7GN%8#Z0-Z?H.A?P&]7^ W=V5>4`4CDO<+^ M%AD-I?!4\)A@T&"()Z1OCD;.C/;BX7A&RN>GJJ+4.:\$KP6-L?P%AR>@^<)- M^L&5\X!K^D07#7C2%HR@?:\Q@:D-S_AW@8\@Y"Q.I'=#>(.0T4#KO&G5FZU. MH@4-A@ZRD#8Y!8%[T)/'%%PKDI4)')U\I=(TB71X,DV@_8E=!-S M`LT4HOU*+7I9K46*Q+2WD*J&9C#Y*?JP/KFYXA-V[G%7#N"UA>75B7MN#91A M<1UR`I];!::;JU"8ZLVY4[WYF5/M;\^?Z\TOF>O-)7.].7>N-_-S+)]K?SMW MLC=_YV1O?H7)WOP*D[T[=[)W/W==;RV8[=TOF>W=);.].W>V=_-S/&)E;^5/ M]^[OG.[=KS#=NU]AN@57+9>/;W_FA&^:Z:9+.\/&M[^(CV\O8^3;\SGY]IP\ MF1F'U@_;K:-F%PL4N./PIJ8HCV_QIPHB;RRVC8BY#X_+VI-DXJG>[WEU/W3OTZ)1 4#6N:P"1N#;RU^<)M.1%'X!* MJ5+R2WY1U7,2RQ DB/Z+-N=W-@Z3@]RGL19LU+]GS[PG!JC3S +DO.NM)],' M0JAL="]/\2UJ[!6-UJAW04*]3N =\#A9*XNF$XH-QM<:60.8(Y0\ZYPVBA;@ M1HTS]JX:@Z1U/YT$RFB#'D*F],.Y-[R4UB,^=10'??I:T#E*WG']AU;[Y+S3 MZIY>=!JM0I5G%8N)C:L"@N&'5Q,'SA(M,J=Q[Q<&(()W>=,^;UT>="ZZ;U0] M@W'R#[371))Q*\.4QB!($DFR*4]Y3T/J4SV=S1EA`#(: M\Y+AGZW[PMLNU'M9/SM[VT:_9^\WCY^<_MCJ','C5I,32JLK@LLX?Z+FY'GB MI$#UZ;JYT<91^ZSQIGW4[+1.K/R5.=\;;]&866[Z'_&<_ #F_C1KPLU"9&QQ M3=X/8$\*4K#/Z\K>,X7;*4::\R>@\C5'EL;OBX;3,JX&EMU+"MWCR\:[;J/3 M:IT4E^5[G\WG$.$7CONG!6@Z6=Q)M2*X2;&H+Y>.?TZ.BX^_IIT6-Q M-A>1QP(KF6^=QU:?>0:?SM*$&8;]DQW1A^B9E(#PL*J!\9(AN4(A7PZNR9\1 MJ4,YD3BDU84NJ;?2FRP;>;<;IRQH(@/1+CQUU[$>/WBVP\M\+1 M(;A"O(C#OPKO"JLI]%,;!_UMJ/! R#M=S%9GI$/6;A=+S1=S6LA=+2LRJZUF M^UR6@'JD?[JKX0"$XE9'C $I\0W0+! #)_^H?[2ZE\? .-I'[9.6U%1)?68Y M3/XS/4G\4U/^2HKJ5Q3%+S5%%'@=]/-\8/*Q/"NNR9CH`?WK+ QD3^E<74_L MM( JSPYA$^7=/0N08BW%9N?T3! %)\$-QX*9Q&-"O$P$SPSI'.&81VC\4A8I M^2I(HD1?4\S&32A>'_6;4+A@0MG8+;41*+=]U2:T$NM M]CST122,73Q5"MX"*<:GZ!QYYTF3%.QB\"#&?G/M/\5O@0#CTBO /1U05O/SXX1$D+V-WCL<@Y*"_3QH#6TO2KAQBU]$F::V/Q4'8 M41LI$SA>8Z3"C;"IL.O?X'SX"Z)[+UU>0 MA,!C*NF%H'SI^@OR36>4WYQ1F@SNG285:FP`Y",+@'@%^8 @#FO2'EW'!:][ MUKY\W3I_>]KYH0YB)EE1/U-TAZP?>Z((#7NMTMBEU2N;!X/P>BJYWZBNZT3V MC+6S3^,QGZ32X_%R7S<(:^E[,RSJ:>[@<"EN& =)CY%^2JWIM7<6VUZBD+*R MPJZB]+6@VBK?<3^^\ZI6$E=8OI763**L4/JNEBG]Z+X]@[/"_U';$/Y$>"\6 M@/41Y[5H%GJ,`DZ31V%7%#>RP+5HIH.>A-,9R.WO/*]9=BJTF .:7.HYG.C) MLSD&9=$3-^$98RZL>],<201^BS; M?:NI/+H?TDHYP]&X]/-]JTZ+/-3S='ZDFPRQ>4@VGTUKWCQB^^]+:XZ:;YZC MP1^MZ%,0&"0]< "(OUC1AY8/'".1@BJ@E8.R+8 UB)$2._$03N:PUL:W"V/WC[9*:-QI-H@XMFDQMH.P=_:(&)=G1H68#!C ;9"$)?VBIA"9':"V$II!H<+2-ED-0`5H+;J(M M4 7M@>"OBL8]\(?60FBM@_8[:(BSB^8W)6\;+4LAWS::!F] !=MD@PM_D'$; MK670] 8R[D#&'$@HM7B'F3<@XQ[>R6$C/ K M/OQ52V@AY5_BY4ZIB#V"P MJI"YNHG/H#)XYRI45L6>P+O[\,H^O/*J#^]?>!7*M I3ZFTWM0[MJJN[ M;G*G_?K-N96\YR9?G'EVRQL5-QGAZ^SD5-OLGF7&;,."VD-"@NUV$H\G44! M2$DL*.DAQJ#P+N'P?4E33!$2;8 I:0'F0->M9\CJP9:=RO-CI?J^G4P39*=6 M[52<'RMQTTZ#R;'+V4DX,U9:===.Q(FQ$_?L1)H6*W6C8J>RQZ)*--893 M%PR)Y&CK<5Q9' MF.)!M[$)",.#D>FC8:@N9I-?36E$5YC&)9R><*15<<%@BN@TT35\]*:308G= M**\(:X2=H^3*_PDU;)8FGM0I<@N\'>Q-! ]?@-5\W#JY*))*:[?"?GY4/3H2 M)C?E5QHN_?B'R^Z;-O,;;#DO0^/TY+QS>L2!5_IY.00P1_KH1 6T9AZC?H3? M)AX!LP5X,$*0/4'K??CVEY%!Y,%V?LMIZ-@T-#]3Q\YTQ29IXF$F,V) K)XX MH0=59ZF0YRWK@*YT41<<8XOY%7<>5['5_B<>;1P%M$^@JO$+%X97459%,L*W M\0AMX4UT`@-,@R2$19$";(A*"54I8^C;"$4("H_T@L6@>$XI_1)6.3'[HW4B M\&A)U$N4*S:F)I)MB([T.BHB ZZ^(G![)P.^3D)HKXW@IZL2 O MTAQDY3![;FX44 9A,,)['!48P^ZX'3W#JCX50V/1[1&*D;R+4'QH#<$.5$VS MK["=& ],8^,K*@=F>R"EB3S/)T$T*+C!CDR$G<\E*"72LGL-)%4,&E4BKP-]T'"%]V_J[Y;JO M2L,TEB,)L*V@ZWDHU4L0)H6M-[%D%6I,7AORBW M?C&N>?,;-_C;N4#G8@$[#5^84SZJ[YC688$$B:,V.STY>F_ =Z'7NJ\@R6T4 M4\JD_ [;(;&L'BM,1^\11452G(1#..81.WE>'TP%YIWPN$<4AE-P"7Z159GH M?5Q)IY9P*N0OJBI>7Y7:,K'TL\*4+0U1EN'MCA";#DDF8Z^3[!&S>$@.U\SC MI9_%>!?S_&SFN8S_<[ER?CPTXD=(Q,I$%X:&4= %5@($>"9F$Q. -8-"B$., M78\@B[W@:O"@/8:AC$7]R;IW2 $S$;G^3NQ_M3MJ2.;6Z?H]/-;:`075#+GL M`VE1\TXV9-$GX\4MZ%A\F;U'S+^SM)D?04\74+N6QPTNCFN7Q@C]FP[@M3QZ M-L?&2GZUTKGQOZW^S5Y:5GK>POK;O)7%Y3PKPWRI2>>1SGG[JIN4I%_Q;ZM6 M)*Z_L6 0Q=V0S<5T/(=4\%Z:S)R(#VAHI#+ERAQ1#-NQ?M]"1HDG-7^&DBV* M)3XM52("XZ='5^*&\V-[S[6,&O$GMZ(/*2UBKOKM^5SEVY^)0=NUHF?\];IF M0P,F,H? @!GQD0)^D#B9F5H1HSAN+MH0C_'\.+IQKD5PXJ$:F B9<_Y!TRU# M7_9K`F\NO5!:5A 5,*Z?F!6ISJ@J?M+5?A"9CW_MVPV*UA7D(9AQBN$@'!T' MG381:(?PT=!LP8IS229/UP,TH] *8M-!@@=4>XE5#-HNJ'ZB[=\62[:'NT7O M-Z]@UX^/=^R(TF:L]>H\"\-?_C=,S>\>[C$,!.ZPTS]LP%E*XM*VJ3BTR-I MAPZT5OQMLQ&D;AHI4N'C:"F92IPO7N'S')6$X^7^\IH#D;..AITSN[3+:KB-7 M,>967K5!)DWUQZWSNE/]IT=Y)G'D.*=Q-9!YS9LA31<[SA;3D2+<*]1L;3(2 M3H)SE0E'\2J

N2CA:YA[ Y.EOGD(8>54A0.V73%NCN1ZM_$=ZAC MHD@921@.$[8^NXVFXI 9)6JOH3UB##/!FTQ],"VC`DPJ>ANRS0.&,;0]T]%' M8A(/S#1%UWE=Y$JL,,:%VYBMT+$[H_@J[C]X=W@M.)-PZU1!F2KX3K<"8W<5 ML:*TF!Z__Y0(4,JG/H!M\Y8=U=BWWC(LA^E/>.\F^3>\%FP^C)Q%'4?=(EGE MJ6CO!=>Y/ACA,UL,DO$EQ1<7"/OW=HN2$VGQJ]N_!;^"_%+3=. MLSC49=8*ZU>DZOHP(3WM/9L:5NT_J3@`4C6^7OWH7 ^U>*^ZTZ2(>SD+0F7? M$A;"$NNJOVT?692WM8[KUG [FO,:B/FZ+;LCM9::'[(/Z M!W5P7M^VU/@)'R9Y[(4WH!NM21CR\3?04=B%3]8X!.:FG:PX::1.[,[!UVIZ MR4DWI?$[,'EMI0+BCH3]62]LG%U=8>6< ;!$NBPFUA;$]>V7AC M"8<1;>S9##&P9G@?]F8T%?&UXMMJ(7I>F3D5!?KDN%G(.V,U?C*ARW);4JTR M56#C"FA.@7# `#Z@$H'T\5O0T;"G4#B)ETWH5;W>> ;3%?2]_FQ"!N=P!J*@ M*<*EK9A[V6$GNH7A42T^026.\IE_1@7_O-6N$00ID5T.OBY@DJ%ZYD0.9LJ@SAQ73F 010WNV M`F_0&X?\3Z*5F:R4330JF-?-JD+O:*L%^QI/RY)K0UCET1HL^]ARY'%N_,P( M??$+SWL[N\=N5SOA(!K].HN26UFF\017./9*]17C14+WX8GN/IX=@LG-#&,A MZ%=97A4IR*FF+C] ^ A^WSM\WUF"=^X@G!DO*,9K2!1V5*(BJWT^9D]^"G.'CNMTG.(GX%0QW_7=$L#HB(\SBG L3%5X7>DU@XKP3 MH 5(XH73WKHS)W8C]GV-4ZG:%<5,W]K4* PTMW"F02^6@[[Q`G9 ?Q#H3<>P M5]'M$]:W(K71ML4O9.T@)=X'&!'HCM#BT"HU&#WP3%%4>$(.H;CP=R%)TT"$ M:@R@-J;F9&K%F'3&7 M#>@59UBQ:WGBAAE?X:6N@-H(BPF%"+/"#?C BMN?)_LIQ"&8?7C5,PI1I+,5 MTX'-5T0X(L$C&Q!6&@\\?D6W>0$1P^NVZ".ZN8T1) Y(OQ=.$$)![=_3F*B( MHR5]"_LU/!_H.I1S(G;1,H\3["=E$:8B&I,U7'X:&K"E4HX7E#J>6ZJSH%1G M?EO*QAI25F15DC6_L>!?US;Y)@<:MAJS?3M'.A*\FD-;:'LFU90\G\J 2#/- M0&MYUM#R#Z611_"LH].3UP7=WY+N5U&AZ']B"/R53ZLZF/4H&8"4:2\C3>S- M*!D',*$YB2X*6L:D'2&?M$D[,TZ6FAE?$(@260S1I8E-#%0;7R'5*VO+YFPX MSC%M-QA)W%C[6C0R"D,3L0HU@ _?\HA22QX"X293E,RGCKF4@Y(':RZ%%?3/ MU73@[12:4%')6UI =AF>PIG,*DM9CB#P+ 10$722#)\0ZQ^#"F6=LV1346!- M2W&3TI!#M1Q\))?Q&%X#C"=W;%R<%Q=M3\!>' \D[B$"@$8].WJYYNX+4&/$ M3)*A43*'"<$^67"BT.M%HBW[/NC,D$%*A=8=.,"9:&(^."0$#!JQ11V\0\WXBY2F* MZ[[OGK>.,8 MXKV=B\DH].\(ZR'9])DDV,U#)1]A1SF/F;8IG\GVR3)P8ZC7 MMR"H' ?)+VS(1X\.8";;)L8C/\0\UL/X^AJDR7?VC_<+H^.N?/=E1R^\93D= MP7X9CT+I"A*=-"%(:XW6^GHJ`#:6*_ I*U+O4)Q[9'Q1+IAR7]1/S1]<+(0U MD'-PZ/8KI;5['L5]-N0W7L"]>TCM/>!_J)O(+#B3B0RYA-6HB[\GTAQJ@)Y( M>S#V_V25SC2<#-'3F6XE>"B1&ZZO(A@A7:^?CA#2C>X\4, DU"52TR#J'NXB MP>2A),!OE[U@=(E%!;B9:Z2P/@;E!NM/ULTE2SR2VP;H`Y7E;I 6YRJ4JF#7 M!LG!>]L^.L)^>0SO?IG'KT MT5CT?@U*?N?MJE0ULCHXI\FN:Y 1GYM'(<5=HU*:;(H(+E &0=NRLWJL(33; M#-&2X8%_IA*)-H;A$)9?03I8JMQ?7Y=2#4L6Z5\)X>#36;AA>Z7+48",+\([ MKR'S2_=HUP^,'R^Q4),7JT9U@\_A'QJ%>W3LA!.E2:ZXG^W=2GZ6'#.$T8T"""Y?GJE5?=%/NXP]K\>OW/KQ>5<^EZ M/WWNZPE!.*]7R.^'WA7FOE_1^T^OD!FP8FU^>_X7M&?>.Z\]WV[ODS;7478> MIX.^T/$+[S_0!6F(FA/0Y2-86_U\^E@^3OIH34B[ M-O_02+O"7 Q";5EM\/+E?:EW#WM423$9M;?4ON>Q.(#W,4JBJP&8+([X4@1_1@ M6:)XI[9'_48_[U FNMKIRE4KGT^J*[.]9Z.45-VI&C3K2_G;(R(/W`5E=D):;#_TH M(4OW#'0778"3;H(0RS$1)2 V[6BWO#(!$9*I!?%!OC!'N-:D1,42#'".D(.W ML=>#?5J'M5A9@AR-Z772=N6D'> %G6!1Q^?QV$FTPZ^X()HXU)?GIV?'IWC1 M5K'^S^B7J%(2[,N34S2]EA\H/BH@3.I[>B[2TV=XIF98G("\UW3H]=NCR^[Y M^Z-6"?'$ST[/+LZR./PVUYM72>N=J<:.S&#*WL9WJ7'$EZ8W.ZZ_:Q_#RS:+ M-6/2.)_ES:M.:CLY[1S776#RQ769178X"&Y<"!"+C2]9>?->L-/JGI]V6DL' M`K%.'S/29IR7!Z3X/3,W-Z9&ME*'QBOZ?TMH.H7U>MBI'[<:;^HGKUM-G:/3 M:G;JIL6%W.T*)1^Z($LSN,=S*+5H'DLZCR'#.416<4++X67*+%'O(#Q0\28- M!;^(77F9/=0T^6<[K3G_*(J#=_5 H840@#$8_,D`:=$UJJ&/NP>79.^P^F^B M?O$.WI^W+KMOZV<%(*4[\QPU]/9SQ9..5!5TO^S9QNN7KT\N&I>79 FF'[[; MW;XD_H @V8V&]IQ-O#4T-(-#]AK#"=!U6^ -HBG&X[H-!V-N(;>CEY=!,KR\ M+#R]2NZ"L??--V%P_]1[X3W=IR^8!7ZH[T6K&N>]=#43V&R]?T<4W,^HJMMI M7)ZUWP%[>^U!/86GWX1)]-3.T>R>IW/T.8<:SA.0`V!8OG_BO0T'`[1@_3;Q M'C" %AH@D_?]@F&X(SALM// `PAZ<]S)@0$-\LB/0Y[":6*W:*7]YO%#*#=O M<*CR@@73CP^-28D%WX\)?%RA5U-\0Q&$"D+$FLL#0WF/K3&5%]Q ML*DT(9M>4IRS2UQKB>XB\L0UKY],2Y[]R%M+)CV*Y*%UT"4[7 /=$ZSAW:RR MTT(\.+R^*S'T0(DT0"5O]#:>]!.)RE#R'AZ4-6.Y7/:Z9ZU&NW[DO:DW?O . M3SL>[R%=K]&B=+,\'3,-ZYWPO*'8)?!_473#)ET43RP[EV_,-R08!ARI1#U' M*X[B#$R]X$[%'9KB7&PN/*=& MGAJ,<8JERMR"AJE'5 ;J65DRRA!+J9>VCQK[9OU3$'G@58&1>8,X'AL,/ X? MQ$.PY@%QG47W9].)3 M/T<=#"5!RB>QJBB7HZ)[6% 7<"3]V*O!UC[^3QZ#1PQ!#I!$#I^]PRX67*;Z M%_#9?_&D_T]XTJ/7W>>N.NU"ZBP]?LKK[S&KSPA0>NWEKSQE*95>?G.772\> M/WS1FM/O]:]U]]77W=QEEUYM-?NI)HC_R8M)R,193-*&6DS#<(B1C746JP9% M4FN;B^C^WV9T-M ;FGJ@5YEZX!P4^)%]3/BCS_I-,73!FU2ZXT!-[%\7$27X?;*"_ND`XG-.C#=?RR#;;5K)F]GD M72MY-YOL;]NU;V30:+;B#)N@5Z$R0R->D!\)25>?<`./(D"BQX M%^M\A388^M>F\VO7^>5O.S\WJL4,1@;K3A:T5G:K+*?J+.=5ZC@;F"LG>>MC MBOMM^#U^5?&F4CL"*LH2K9L3,Z!YK@-L>86JBV@X'H1H! ^;3CSR.%:B.GZ: MF(C96Z[$NN72Z?-N89@R'W$;ID[(C[A?$N@%?,6+;DNL,R_?.;=ITDFR*W?' MQPHJ' _Q"BR:]#V.4?F.(ER743,6WO<&LP3!JH:HX;+,C*?(>]656CHB_4,\ MPQNU$0K:I!652ZMHB@Y3`6J([FX?--H=;E^DW"7^`UU@6Q[K+@\-.%WWJ=2] M9(5-^<]Q8.+K:XL:](;&[Y:B+:.]3P6X%,I2M\5SM<^9@,-S[W'RU-2++E0L MW?,GHQA.;,6PF<^:N6HT#^=:MR+?0,,#:VKOMHK*L[Q:7XL1@[#R!?'\BYE'JZ2[FZ91JRD/!?R+N/X M_LU$4>[-$I?,S&YK5-AF3Y2(PF@/&$\P:B""IO:1_[M<5I;PV-,3'ATJE37>/4@./:KGG$*:$J[W&/DG-E=FO91JLMY MO<1U5^*'^0O^4[ZQ#PS9\ S%;I)UT :LWN]/G)/N',FG'\^N\+*I>=;6/S[2 M#\PTP)!CO6 KTSXY;W4L MS]+XOD#K@RVLK!$JGYQ2[J=%26,3<_AY?'!Y^@-CKJ)3ZQD'\N%,Y"SUX[&A M",NKEPX[ZQC1QUXNR:R'IL:%ZP!X0:Y)@^FWW"4W6S\>GS9A1?6'1OP[BJV!P%/=^ M*5"I'U%?E*S?-B6+\810#]QPU^FY.XD]:1TO>*ZCFQDL4SU=UKY&4V76&\WCTTX;P66/ZB?-;J-^AA'P]$/T M1NS4V^>U=*6'43CH$WY(\_B2,]?/VRH>#[Z!3#LJ1H@0UHJ>31SD9<+&A\U& M03(_5SG*K^Z:$UAXDU,RZBMYJ^F#>UX)%N13U&$>:Q81S,0J0'8)0$X_)!8V(:'TIZ2#@"AW3;=4#G[H5Z4)Z M.BA\NO5&/"!8(.2;W_1MIH/FH2*++NM'/UKO79$S`/W;)U>&^+H@7(277K0^ M&"?_:,8]'"#(8R]EC_KD_4=\]=3.S+/FF9,I811/IE")YY''T;,^*W3I\1D: M?Q3(Q8@'I_P*_O,F#/HPGE>1$TZ[EI[K(T8!8PGH.!C3(0!?XOCX\@VLJ]='[>X;>AMADSH( MDU+?HKOX>L7[CC92R:G[S%G%U\S*B_NLI^.GRZT2JU/96H:<_:^-TPIO$X9Y M*]G8>F+)Q];3C*!LI64D9LMCD_2.G=:/K4ZW?L2D*Q3YTMNH>D5U?+&T0$5- MD-E+,M<:H6@)*O-3V#]?I!41+)Z9[A<-O%]NPVP%\<W+B:?V5%7265[8$,*53, M;U*V]&[1^CCQQ@1Z\C'T'LK!?93DU2=D73+-WN5G4ZVJ;+=YV=R72":]_)?( M9GO(RW:G>J:SY?9-"9LF6V[?Z"CAS#,B;CD7V^8?<)?L%,'L779>'UPV3H]. M.]UL>K?3:)R>O2\6\XW]'1JPK?T_BPO\:XU^K37:&O5I=_)D?Z(GM(V9)\T0 MOGE6.PJ6 \NN^@`?WK2I0,SBUX'=&@"`:Q([F?\ M$&$QU*X%0L<]:4OA(=2AS]4$PP"#PMZ/T!X>!E)U\OF@-.?VTSX3TKJ XQV2 M)>SN&H6F$1!@/33<1=2'>.183+WA$XIW>S6T[T^,LAOO&9OBEES)25/;:5Z: MWD#M1.HG=]/6F\-[#L-ALS'GU/1(D8R#[%R!C*7 #'C1'@9X0@UQ&;_PE@AF MJE8!DN5\3_:MD?CM-_%'EZ<\!O!41 1YS*_ORJCV<&J/<960(R2II(R$)>QM MB1R6FTLW4W;;P;<%.BBBJ36N%\;>H4R!`5'D=2E[R5-OK8!_F#9942;N]^F%KP(.&8U'LT'KFK"VTH4TQ?-*52R* MVV<'+,.7TNS',U$\4 4LVBB^'83O/.A+E4=D6D':(')P"OM')>=GQ_UY[OX\ MP#M8H[_(6;3$!Z(1'U;I1W(E75WD&)9257-&W2?8%75W<L2)OG$\(9#GJ]V7 V M4!=>2NK3CF:LM>Q@7TY@>!QV(FG644+WK9;-PF<+W<^<'.JV,FYZO<@8L)E:!!5< `9?H] M>E/3>9?,@;QHQ$R+N&6T$^Q-"^//%*S!=5PN^4Z+X,Q@R$KMN*D3M7OJE>"FB_71JA+$Z$J1;@Y5.$(>LDD((J!"CK:OT?&W M.WZ]8"0W(0C=`'(R(F,'K&7G#!@W!H'N.=R<`K"A0XCEO^I9#/45,[RB>4V1 M(,I^+97Y`#(S6S2Y#Y2\4E9&(M@.W1D0PAPL?:0#XD_X%+E0F6_8W&/$&EOX M]R9!T\]SNY_QG?7LJSV;NC7/9:[\Y:G?8Q*J"/Y!$# M^>G]6HFKL/LJ"Q636-3 1661:9V0(&GAY4MA>!00C]R"HZD.D@_PPI+<25J' MG(R)&D'Q9*]_`A"[:"^:(//D4_UYS&KP0K'XY6 \#,?#[#%UYO'LXP[;0,[! MBQ))66FZ/1:*"T\Y:U&K'Z0:5]35HB:*Y^X96XDV+)\7->!RQ])>N(S'\CJ7 M"V%U6:B=-=TC)E5YUCD];!^U+@]:K]LG!?6KV>Z>'=7?6][NWA.+U,CWSN@_ MR)\@I?Y8>9SN0^2Y]&,MZ1F1+J6"L/:6VNH*;78KC]-Z?)TF;11*?/^,Z72! MJE6-I=I@4?41]3MSU#II%N H_DL"Y^N.N'BJ*9*/Q=/)U4(/#@93HKG5E:R( M6K+5HBL9^=32ATIZ(QSW@LFJR[I/2CU]R#[%RVR"P?^^)H1=\6K62OB+3%@0RC&T>;#2AI6J\P;'Q$%FO(T>'H@[=V M%/H!R(X$?QN<,AW5ST(P968GP>#HJ%6.YXE+G60 A5)8OC 5WZKDCZ]F.8L9!C%A'1J_#'.5ECL*& M4IX_-S;<"_FGQQ(BDR^3LF]!0OFT':_8]];D/99S7V*,PN5]E4.:[6"6Q^X) MUG[>KJ[%Q=75^;+F/ :7?P6>'H;TIIJQA:+UN/]-O\3\&K_A.^Y_\PZ:A_^B M29:<%ZSM12O@%<\6L?C3OT3(_S$BY)R+^Z71*/\:J"-<4Q3.T7O\OS_ _9&\ MI557' 3X-_63YE'+(XZ0PG@&"4K?LX6C$H@1UB6;?C$T^0VF=24#%!J'E[A$ MBT4W5/(U9?,DU;CBNSYJIR +Z)KGW^"!F,:2O,[;#*:!;IK,`"8]UU*7^?> M/)TP\7M$8X2?!7(K?L'5HL;JXY'G[Y0KFV5_;V^7%\%1'/-;-"9'UUZ"5U"C MGKI2@W%!$UZ&TV+?=7A4+NO%7,"11$=W8(/WE3Y'!5RC#M*30"/70R7E&(!D9,;&ODNFMEGWLDH6CJ.^=6<,KREW%R3]:X(4]PK]X.T$Y,'#23RL ML]- #T,;\0TMKOKZ9!(\6%BAM%L*H/)",D(W?)N6@O[_;7#5-D4]2HD8 M.73@I0BA:1'"$WI2UX2@JD,`!47M1!)UPM]^?=S"8",_MNH'1^BW0[^;S5;W M3;W3*G&OGOO/52ULITO `9D%\65O3YK=H8K'CF'8._$0;XUBKPXU>4ZEDW MVEV%I;7;_9/E@)O9`(:!6QO XD(3> MCDCT!$F!,=K46<]E#672N G'",9C.6\M8$&\J2+WH7&Z#B>I*K&+1K,OWD$( M_A<@E66840>$]S;D_LJ\"/$_<#:L?>V_SYX&_?K\E?@';80HNT..5SSR1\3JW\];_7GL7JX\)C&;1]'1ZQK#9 =B-- #PHI0 MAN,G(*HN1)^&!G74(M*DIFF*8D<+E6WB?;XD4$ZI-HPC; M9:/U<%UL4!ZTJLZ1PB2.$/LJ.CT,,8;H>!(#]0W7'\/>G)]?D:W],I>K?9&, M\J=BC)Y-XNMH\'C@D3\$8Y2.BG*R$1X7!A/NFO9C-6ST$^7ISX;C5)94#N(" M^@7G9HK'B_(HK^H_94Y8!?,=.DT>PGMY)\'P$5/S!QV&/@[/@NFM?1*R2%7X M(>RI<@LOFJVJN"#Y:C( M(O_;D,-(3&.*/!Y./K(K>3@MU2 MZ=N??_Y6W7M"@A4/*5VI%@B@'H0MTV11LBO,M>(4)+R\RMRN1=E^J1!_NG./ M[4+*TM4VQX7<(!\1*9EK``F0)0?W-*64/1R>R$;>U3#?IQ'4Q ,BG\5?CN#G7CU*2P'D'X?%<#\Z^_CS!KP\*,[TJ7U M2:R*X4%65%A;BBM\J]1X-W*"1N Q.!F3SQ!]3"AP.<'MXV:EL2E.N^M>>X3A M:Z=1#X5HN4_%"U?%E&&%7H44_Y9,W#@0=L+!1F:]6PPO1U;@R&'B:P3,B-B7 M'$LI._!UKQ$/AVC52J<2!*>.1UQ)CP!-KO! PX8P'- .(:L##*T\&*ROKM B M@Y>.*#IQ!;B= 6UPVG05.^@NG3C/QY+RY6RW;923@5F/;BC"B_BD^K@ M; *-31XP$.CT81P:EBAM\(T%(6^O(;3;FXE&]()"<2^J 8X ML#1:W>YI)[>B3:K(!L81NUDQ?9"J:.=?*]H.&#]R/HMS/7VJI0X]@"3W6:O8 M%?SR5GR_:*3 &RL==4B6`!/UYRN1E,A@B3&3'MVL$EPM?8'SDA9$($MR'A^# MF"O^A)R=]3$Y'53BC!3R]BV]B\*T0"VQG>>5TZMT>27(*&@'ZJ5G)*[4:V)& MO!K85SU]GGX)TM5XTB%8`>&HKUJ6,="Z!T'W=0"(G-K^Q+,^'2<)5F(V_@LO MV2PD*@EV/KW]SI(J88.97?7)5PRULPZ?5((;$6E"L7#QK9#O%@2RYUI^LZ M M,539'D&"^0WL\P>?%XU BNM7/0. -/%:1V!B*3LR\ZP!XEWC ,*-XQ] >:2/!V6D5G20CP<^(EO=L0I#AX)RH9 M1F1\Q^96RA?'[#6R\;/$C;./X6'C"15%@X,8#CGCF$WR@*I%6B#8F3YL-C&= M0M@1E+"3D%J2.KJN`ZM#+;A0C1R=R/?"DJ Q&XQEK+9X(^02'V(I>>#(Z%3D MXO*@WOBA>U3OOOE)@F#**0++D 97D%>U%?&<^WCJ^RK"W2E"Q[O'LSA!=-*' M+E*03?TX9AS3W;QNIU))?9"U1C>(S[NUA^Z1Y MV:R?UV'\1Z1<)Y MOF' 1V^ Z@8AG=E>4VA$).6FHN2":JC$?66-O&K&'F+S M?G/&^(DN5GQ$#8M*\^I6@M-U^O"+H<]'V@]L=WU#W1!!2B] _R8T"Y0U3D5( MA%@KZ";0TFG?\!&2H2IY%5365#F?'T=7ASE\>4Y(:,V8I!!5BNP9$K5!R "HC)%%<^:&ZVI8N:X;'55UVD1 M$Q];,%A:/ 4JL:)IF_,_#C5=3E@C:1VQZ7($XYC"A&&,*>LB)$,RV3&P*J(Y MD*J:4)-]7Z("&V!?3L)[GG73'6O2Z0Y MY%&]&;S:JM79%ZMS1F(YDUZ\CI EI9923@ZSDO)7FN:@GV3O>,R^)YO!<)RG M7.1$O?6]==--!#Y]=B8IC98&(B6:2(X%="3GXT4Y;UZ4G0_86"6I":AR!H31"IDP) H5*W/1Q72Y MT%G,(*-2KJ*P9(S=KO!?YT1$?#'H2T\EHK-&U,"W(78NE3ZC;"5O$U$/Y5VI M@YE*H:LR"\,`=B]+=83-H?$)VZ(4J,8BNHJG$O",W[V#W0%(@S.95GC 5%._ M1&.$?B/T?V_+K[+]S2V9R3L#7-['Y-JB88/T.0,'*?^[ALZ))S&'YC-G=(?8 M54WVE9Z^2R]:[=/6^?O):R]?/S3OO@XKQUR?CNUE*"H92>S),Y'?,EM3H7<01F M!=I6)/,T-?I_XIV&J(\PR"K0Y_5LU&,-\I^N0T(YC@:/YIVAH+KF1)'1EI! MHN*FHSU3BGNW%9,GJ;%D+CS-7:?>MB1(#'*AQ MAF#^)@^/D9IR#AMYMW[$1=(T06$3LW$1'0:\@A!,\>>*?/NY@EH]G;I&*6L_5YYFZL0F6=Y3*:/CX%X2 ME)#H%**[6(.1_/>+5OV'%]X9>47)8&((!&M1XK%:58& W^@(=GJ(C/GLZ+1# MD<_Q)X[=\47WG/BU/,-H\,CF3T^.WCN]:(;7K?NI[H8LF)H%U1Z&X\+QP66[ M<7K2/3\]T]<-3T"80A-5K6Y^1K/AL/;%1"HB\U]V'7V![X>"K4BO?YWZGT,A MS*@_I!T&V1V.MLBN8\;''H0?X0RB-/V4G[I?X!LH2.3%(P''^(D=<*SR@GD8 M^FB:>V*YUOQN/LP"M?)"0:W\)/>C'[R7D5JZKRP0\TPDLA?*/$3>;E%3WR3 MJO/$D-R>?!R>JK[HKG@_1>:>-_GP\PC=^>;7J*MXL3C?S],R&M!$/6B^RU^( ML_V,1N9P6("W$Q(*$N_DW)/,Q:6UH@Q-QL$_3Z$N#GMBK (FLY&GHMWZ14YWG^>M>DV*#(P;43D;6>?4H"!38&=AO=:[ZR+IL+3./ M_7]02P,$% `"``@`&)@B+\5NSY-A`0``,0,```X```!S<5=I;C,R4')E9G,N M:&V276N#,!2&[P7_0Z$WVY5:]\G&(,:C#8W&YH.N5U*F@FPXZ+JQG[\T&<78 MWI[G/6_>@76_<07; M$A4$CQUN'0&'5&' E5("Y59PYPCB1$G)RH(I8?']-#Y25)H4P(W@X6P`1"G# M2!*=PB@>+T1($%[EG*DRU6&,"CFJ:)HC<7,0#ECO0?<;BMWM9X0"PAB$#9 Z MO:30HV\XD=88W/QFM:/>S'4^?8'6K(Z"* S=JR!,6V\3QNQA1)/#T/.P"LJ< M&K@(?<_W@@!1_C+SQSIX)5*L%2#[2FR$T_.CZ/\1?2=!\*Q=?,_[^>R;F=SO MWMZK?=M]%>WP?76L73]9A/?M[M!>9LO=T'R,6#\<-/+F[=#TG?<'4$L#!!0` M`@`(``^8(B\D*]?!:0L``%LQ```.````[1X?X6?Z5]A%"O;__':KIUY'Q98.\6S:,X1>,H M1E=!>/P6E;LN.B37__ZE0M\_:[6M.OQ%R1?Z1B_&X^3 I\^:=M>UND"+#.(8 MASY.T,P+O1L\PV%:8HC&P+VP^T##"$EU,![A,1 ?]OK6F=6WNDW+*=U%P0@U@8T44X8[ M.%R4R6 %_?W(GKJQY]^N>G@!0DR%J4&8TH>O\33!)0`-_>EBA-%O]T$XBNZ3 M@\F[?' O^7(PV9/N!=7!DU+IA8 MW0&ZFV52G*#E#^;/18^#AV0&L+55VQSNH^(O=W60(?33( H3]/R/DOL>GG/5 MM"37>0V#L'+0.4Z;BSB)XEZ4E.=@_GWZ_RF:18L$PV! 6#_)WK^*`^)LP1WU MN8A8P4G)\BM[M:KWMNH=5[U_5.!]6(K!N,3\S,&I2=01X]%@/H*997"S$@2& M"?9OB=LV/C8M#L=HVNB_Z'2JU?EL4P4 M_4Y>:EY8S4O+1'5R,^CRVPJPA)Y@?C \;]L-HUUUK0]N>8\29E3W*E7 >D6, M4\0;#.TN(,&?L[.JY,F ]YA+[TRB^R9X0#1=3W3GPKZ"J.G8;4LON4#P>;&# M<;F57-$E7$Y2=E&IH!*1B1#BCWQ&C]U5D8+A7%&N``"N+EJFM9E&!6*B1F4, MHL[ZL\HT'R .!/XF^C0_=HU.J_FD2F6RVW0FB;#D3RKD>@KHX]'"Q\W>8)# M%KJ6`OJ6.6A:9(ICG*]0@$QVBPJ0"8L**$!NJ(!6V(#M[2:.%N%H`STTC.;E M>=\>=$V@\8PR1(COH1.1OE8U"@/K:>BXL4C3*.R0(+Z68HX;`]>UNQU[X*QP M#Y'D%A4ADA7E5^#6C;2U306O/2MX[?L(7ELA>.UE@@\2; 8Q]E-G[<5@MOJ0 MXCMD'>@EEVEN47:9L"A]`7)=^8WI-+H_`T3#AV0O64L!I&@QFI .Z?.+(+KP M$HGD,QI0V2'E":9*68N=5@=B\U6_Y5HKV&EZ(:5&Z6[.CA/YMW"YOGX<&TBY MSVE((;L^4V3S)XSY'DV/U\Z,C';;;AIN"W;SU=F10'@#EL!Y(]#P0R.*DG0M MAGK]E@TF^]BP;(JDNB*BT@%7'<--8[-#[ `$WN.P_/V6N)#U+1[ M5O>\O3*",&);%%OF4@D>&=K3,N^4=DJ'AT:[_VZ'26]]#5+6ZN!B0]+<`8>& MA=:(OF9I,V?AST60+CLC]T$ZB18I2KP[8/9WX ?QE)<^A_M.8_C1V> M@L[@NK)38O5>C--%')Z06Q,G:1P]J'DZ?8:!NW*-7#\2OG\#QG>XV=J1-Q+Z M*N5*B7 /-2G84RI_62T8ZHI!D#8$`8+_XI,2FSSS;G%>9M.Z^]I+\ A%(3"# M_45*RGCA*5!': H2^/.'LJ3N*A3G7.V(8D!Q25Z]HC?,'9O0-: !$6!HW$)O/6(+EQDPGF#528CR%L'A'&RGO.VA$=]LH?F J(K^E#009!1.2 M7YF\$ON36'AG,"1IM=,VG N0J5*A7**CY13%\MF\BO+"5HT#CD/(YC9"/_,! MU52O'H&-1\&=6,L+I4$ZU?K2NGRR9>P2,AI.[_.G3SE2J=A\.&7U>X&-5I@^ MWDU,&;B*:MK16".DBE\MP`4E_-*@2?A)0J MNI<@ZVI&/7D='U*!@39A0%>R2.1T<,,810KS,]IH0DWK @WTE MP6D*D3%A<5/3"SYAPU*3E(^IO3X^K'; U&&Y+\2?RCT1/EC3#:JU-!\NE)CB MN%CKB>-R=22(*E4^?%PI/_BHFI;G.?N*LQ^8QHY%)C1/G]-C$>*I] J\A<^+ MY@LZPI",.= ?T7LZ6H4XY9/-P;;8A>S9SJ4\\$X9L M0O"+SWN5U62MGM$W7+M/:'4'[39]\V_B1(PU=OR KJEQLI,;`CEY2@0);:(3 M(BLZD*;[PZ5:RE7+\%D$>AG$\5,0Q\]",)TA!:-G]P:]*J(G=HP)A3 +MQUO M/H>EQ^D^*CI.((\GWO9-^D6KI"]T6!0.Z>I@"95'5\=J!3^-(;9-M!BL,K@G M:Y."O !#[H1H41*ZT)^0Y866=)96TX!GT MUBQKU^JO!M5O:QKL%^*,Q M:+LGP/#Y?2U#OL45)6^( F MWAU&_L0+;V 'I\&0H6414#I2<7N=8=LZPTAO8E7[37$/-O3P1D,>NJEW3?5IVB766(D5K1/M!@"%L$ MAY ;FKOB?4:\T(30<2]M"TO^U1[FKC*4\Z_I:6A0Y'R,HQ3:EKO*4(:B:Y%H M4,3JE&-(#3N"( YD](O=%+V=A6RF+EC06TQ3GLP\HP$I5U35H+12=_5/BDHI M-H@T^+6B;FJJ;FHZW=36TDU>1W'B2AN1D)>',@!=@TH#D5??#&$81#!9Z&#M M%CYQJ&08VFZ7!B0OOT40H1VV6_AP00%16V>ZQ2S4WR*,U%W;U7R.H$ 5NW$K M(H>0B@G10_RH8!E!A#$IBA3Z>SH?D#*N^JH\[IX$59JWT"7#A'!2'OV$#&PU M`,FQF"!S0J()F95#$JN5K$DE$U>!W%HG"I!&,O$U;4P-0E;EY^[/:WON^>PN MHUIL@VK)YHE G9VRBT?[)SO"I!V:^<$FJM1-V<$XV:[_#U!+`P04``(`" !O MER(OXFSB(*,5````/P``! ```'-Q+FC-.VMO&S>VGVW _X%-%[>2*]NRTQ8+ MNWA1Q,'Q>(&2.(A#P]Y MW@_2![M_XI_M72'$S>WUWX>#NV,Q,&EJ,J&S*"EC17/GHXOA,?PO[(?]&8T, MKJ_NAE<`O'DZNL#E]'4[&(_.\.LOH_B8 M$/8>Q>'^M^*HWS\ZZ+\\Z'\G#OO'AR^/O^V+>U6XB1@^Y>(ON-%6__#@Z*\' M_:.M.YT*&<>%2<>NT-GT.E<9K-Z268SS M=T691=(IC_#H`+<6?[^\%-%,9E,ES&3RW@EG`+A4\N%Z,K'*(=J[10ZK#K:_ M]-P1WZ?2S?9G?VN,6!=KLS*4Z/OE,3Q9>\SI5.%(/?3"?AB8;*(!\$5K](TN M7"F32QG-=*9P=OM+8 /\+%Q1*G%8?4YD8I7H5]]9F22B+\3!KB@M'$&\P)$7 MP.M(E@"9Z41H*_)"\8(85$'Z&A_)O0$*+? B7@?-[4J MF -B>006`#_:# =,3A6I!3TGWIQ>C4=B[.!TLHA!R*"KA2RTLOM-QM@/(R0' MS8 <@MA=-S5(C%6=25>L_)E$?FK=,K30#C+J"@RWA^)3'L7$K)E:A^+&6(VR M7]U\XE22;-CX5LFXD[NB)^RO/1!*F;F>( R38OW4.BQCI1XZDY[(C5W:'#Q' M-=43X^'PI_?CX=U:)&\+[=3:LTSF&Z;6GL7)PEV82#(SB$;8O^:@U;\B<_O> MDEFA]F(%?(Y5!EXT,=+!'IE7GG7:/58P#Z9;3,L4UZ2E=:BN4CR"YI"U9[19 M9ARHO5!/X$\L8ONBA><<][*HD6PKJ*8RFW9^]/ M+T8_7%U"I.R*WWY;"P%_A[<@2#@S3(N5*>05'>1>6K#=R.0+,==N1N3F>!", M>IG)]@*WB%'(Y2^!P* ?Z'.(V:=N`G&QHWM,U!M9H%9TQ;^VMW8[Z(#%;E=T M=%=\+?I=\;^B'OR?3GO%U^*P>[)NW>''UO6[)\W#392+9OYPL,9\Y'#K\+4V M#*W_M09 -X5\A5P:N8^W^K"*94:IC,5F8S+:KZ@PS4R9$ M,V1J4:'O><<:WL.MWP95B>"OQR!-*@%00.C_$:7-9:0PXB'())%3S-ZA7D'Z ML!3H4MI)`1HYIYXBH)Y3:6*VYT'L#[&/.&$;80"DX'AZ#):0?>7$PI0BQA!- MK"-^IIC+0JJD_#D15*-IWFB4(WR7D[*Q$H$^0K M3W FS%4"=VJ.`)3Q=_3 QL M6Y3@2B ;Y$02^!3W...L> @_U/4K'"@S)@>ZBE#D5;56(Q/U/FI=%4=Z7.F$ MYQ>IQ #5DO2B8PH]K?7Y'L?NS"W#@F8U9C=JBTX2;3EWAW(L>MA4N8ZI\2'> M7(82%2T<(L@$* 0\M!8"1IGYM ;V(0:!:F=3]H98[6.$-!D<5IM+*!ELI]M# MSI66E:XR?G&F$DG\0>[=(><;1QW@;F]D4BK&#.PQ24FRH@H6LWL$80>+I:T/ MY*N@6#% VJ8C?]2:A'UQSC3$!L=1EMS/3T]E> M0^!V89U*/0\\V\@$@RY"<(.PC)W.$G,.4TYGPL!6X)ZX24*:!4D^59><$,XI MQPA=)>"[A30?;5AF+J%:L[2D&.CC*IF2@B""QO$T]:9636%)1IAVLMY6M(.J MZ@SC:B^U:U-NE#C.1T` M@B?@W1.0$.I#!Y4O;(XXL.C'75,%_""VE5-(H%R=%M9'M8(+*'2YM0$3JU(D MPEN,C$ \,@)B00V0%R0G1,7UNG:^04=-+N]CRPRS2339VO;L?M>W`MCSH?;. ML"WG10]V&6EJ>#C#BF\>-62+? "G/-=0O'"L#"1!N8VVF!JALE*NIL!SHBI0 MS&'$R]H#7 R*HCG?0TN1G$O5IE2QA'A7:>V^>+4(Z5,/X[;WSFU;;W7\$ G' MIJI+6[&>DN/EWM^B%A.A[7#B=@KE3^5&/2+OEM!N"AU#E/GC$*>SFA1J[9[X MH:;2MR8:"NW'JSA9\61KJ],Y[/?[8C>O#3^/W-\/;]>#CH-I:U M+.R9:YL&]DE+J<+T=Q+4+3B L)Y9:F(3$_>!L<)0?8)ZN^#,/8"0T?CE5:!= MRM,L@D]]84/Z*<$QH4L!'8QD;LN$DQVTOO_: 6X#FG_H7+DZC MF2RH- 6T4-EC@8HPO^,_" =K?R%,_]K^G;C'*1UEW`^4TUS@`[!Q\0BA?Z#+E7F'/T$ 002Y, MG+]>$GN4%V9[($G-41&=L?=0U+).RJG.R+2N02BB0-2;^OPD.AG-ZAL0]@LA M<'#1E'!L\D?8%TOR#5=?U!<&/G-?V- %5Y?*1:*7(E^X;2+NIA"[0U8+QR@2 M#>>E3^W=3>9OXZ!:;-Z0O5A'S N^2,D@5P.O"_^"FCI,PB'WKH!AWL,#[047D/I\#"G#;$0J M7QZ]TFX$E$U5X5=.0$G.M 6Y+5[G,7*_Z>"0@3*!I'U4LZ/"#0G^>*8GK@+V M($T,5<9T+G72G,#41"9CE4*A!*'E+7B*$=0!3QU&!3\%P#+"$H6NWTY(-#$? M%Z];0&=[XD$M[B%+A925RZ(#*B[90;]2*F^[[.&3=NT1R*TCM9D'.)_>@-6Y M#CN5>PC?R%=FZES';L8_0ODVG3G^&>H:& :?P/RE"8]Q:= -R@+VI8TB^A%TS)(LF3XVX'?-CY]7 MUZ,"7$K[L!D/#R+,)R.?F;F7JQ<=JLX2VH_(C^P&JI;(@7EY,_*?M^W/N_;G MJ^H8/TKK3\% A+DVL.A\]E@CZ8$E87G'0-NB>!6)/!DDR9>QU7@,[ MX-T703 `"RWF\='DRF3_4(7QF%YCU:^8XG:90A8A/-!>:%QW>C-JAFZ38-5)%VA6 MA+S?`&&\R(-1SLBL_4&Y5Z5S)AN[%>\!<OU0(AP=YE^06N:(*S,\WGUC@ M"#ZGN,(LM+\Z3E)K/&&I)G[R84@W/YM!_[' MSD[H!F3&4;7.!!\#XS,HRP2]30"Y@OO5DX78644_YO7?(,+O`?,.<1GB(EUL M>Q/"'"V$RDV$`PT#S&CZ*\-G6!\>K@R_SH%]+^5=360WX(_) !PON*; M:OAGA7*N9VK.O4I*58\?? MEX&>^?&_TJ[DZ73DU=7;7:V'L#]J$UZ/@\&6D"?!>Z*JP6 ESW?OWB'BK3+#-(F:0]07P?<3:'IZ:G6Z !?O07;L,*K8@`/]V&'!%[=CE%I5Z+[%X'H)O31QZ!_;_'T M)'@/=A7/D$MP@1\13>4IGR\=K+<&D",QN^!#1EBATZS'6P0KJ[' !P^$IK+TTCTIL7IL:/"TF4B"FM0@N M%/8[-R)(U,2M7XB!=/]G^#DGFD569D2 M900-'_<8\29>%_$J`]N),@I>Y7F6]/M:/I]L[VSO5%E6$-9;4AMZ!901)QLGC="])@\4!P&P7AF"\$X["N^T MP_!..P[OM /Q#G&N0>I)2!ZW.7O$\@N?2=A%%LT*DX$R^%!@0].&^S2A;^OU MJZIH*W,I4QOX.3K1Y?/]^821]=MT7@8KJ*RH"Y^(?.&N 8R MNZ46,QVU78["'+W^73/E6PHTPR^$_?27_L'H:'R*#]O&P\'KV]'=S_7CL94M MN^A\6[.-39O].Y=\^):Z4=-6RC6E"IJ?P>.S'7H]ZQI3#,^M MI< P?&;+;YH!#7J=\+9A[%&LO3\[_"06_,"3]Z%-Z0OWW= M?WTW/%ZJBQM%/40^OJZFBU1_"<"N$CP':+Z^QSO11;-4VD@`O@:WW4\B<-*S MO3Y?042)SCFCZT2E.Z![I%R":^D&CE40R[I<3:" 1A"A?8_;/R.O^MA%(1<- MW299C1IMX@H/*00>^S,042%;F#FV)_!70_;POL,WA4+?'\='&?6,\2T(/G+! M"]Y6TYM 1I!<^?N!RKY;`%?HYA?8"_%@J<4V7F,7\*+$<-QH=8/QK'1X;;LZ ML^Y@?WBIX:^O[A>D,AIOBQN_$!-(WQ42N4>O7:XGQ%T:N#9Y^Q["7S$T`>$O M@WE,]'J4A&$FU_0HDIO<6)PV^[LT14TRNK+P_?/Z[>FS5A,,+O4'_*RM^4%K M31D-U"S(34[#V0@B:VBWYZ4->P9N5 RJ+D1^!8SC.^()ZN^@_7M&8C>Z<8$( M\FQ+1&!N30@_3@T/+1V"GF4!-IWXLHG-2LGBAD9;&AB7:;YFF*SI)B!ISYA\ M98)\-><\TD$N`-6SJJ)2-4(N@PX4?:7 M)BXQ&'B"MH7O]#/D4@K1'.8%/;\@)31+X/7@12OW,*\ST.!X:>OGHT':`DU( MBW=JS5/V..?:S>ENN>$0\:Z&G=EIDO!)EBZ:FH<,E_1_&@'>2YL+;=VK4B<0 MX?Q.]8(0(YJP2+**-X*"_MR%S-;-#:G+^?F(7*]6]@O1::H-W:VWU$9:,5=) MTFWKSY\BJ/$BO3?)JNIUGJ=OC8U^Q,?YP8_49-/SG]IBJF=YR_;R[N=_!,-H M6 W&K ;1Q]M;^$'/D?";T[A86RCHM]Z>WEZ-KGXXY@<"_A>U4#'P9F,W4_-= MOVI?G-&+<;HR`B^CTIR>@T%FA*@3$BK6T4VD&;Y,6;K.[OI^1D_@VV;_TDOT MM]>(J[-&\9FZ<]AUV26,,J 4)]JOTN@Y39V9\GLV[M\V9?"9QV[<9ZT_DZ:AS-F<-X@?,(#8*YGA1^.4-1W26A-I>C8_^[..7FW<^0/=]'VD\$N$_DE) MG1S-P?3XBK/Z)8=&W8CM%._)&HO>,+*3[?\#4$L!`A8+% `"``@`8I7 ``6DL!``\``````````0`@`("!`````'-Q5VEN,S)7:6YD;W6)O87)D1F]C=7,@979E;G1,:7-T96YE M4-U3H@)TUO7-T96U%=F5N=$AA;F1L97(-"6EN3H@)TUO2!N97==+@T)(R@- M"0DH4F5D0G5T=&]N0FET(#0I#0D)*$)L=65"=71T;VY":70@,BD-"0DH665L M;&]W0G5T=&]N0FET(#$I#0T)"2A3:&EF=$ME>4)I=" Q*0T)"2A#=')L2V5Y M0FET(#(I#0D)*$]P=&EO;DME>4)I=" T*0T)"2A#;VUM86YD2V5Y0FET(#@I M#0T)"2)4>7!E7!E36]U7!E2V5Y8F]A7!E1')A9T1R;W!&:6QE7-T96T@ M(#0I#0T)"2)04-H87(@,"D-"0DH179E;G1+97E$;W=N(#$I#0D)*$5V96YT2V5Y M57 @,BD-#0D)(E-Y7-T96U%=F5N=$AA;F1L97(@7R!3 M>7-T96U%=F5N=$AA;F1L97(@;F5W72XA("$-#2%(86YD36]R<&@@;65T:&]D M7!E(&EF06)S96YT M.ELP72D@*R Q+@T-"65V="!I4%T.B H,$!O9G,I("L@*&5V M="!I6)O87)D(&EF5')U93I;,$ S,%T@:69&86QS93I;,$ P72DN#0ES M96QF(&ME>6)O87)D1F]C=7,@<')I;G13=')I;F<@9&ES<&QA>4%T.B H,$!O M9G,I*R@P0#0U*2X-72X-"2).;W1I9GD@;&ES=&5N97)S(@T)7-T96U%=F5N=#H@979T+B!=+@T-"2)#:&5C:R!F;W(@<&5N9&EN M9R!D6YT:&5T:6,@;6]V92!E=F5N="!I9B!W92=R92!N;W0@ M870@=&AE('!O41O=VX@:694 M7!E(%\@(VME>41O=VY=+@T)<')E7!E(#T@179E;G1+97E5 M<"!I9E1R=64Z6W1Y<&4@7R C:V5Y57!=+@T)<')E7!E(#T@179E;G1+ M97E#:&%R(&EF5')U93I;='EP92!?("-K97ES=')O:V5=+@T);6]D:69I97)S M(%\@979T0G5F(&%T.B U+@T)8G5T=&]N7!E(%\@979T0G5F(&%T.B S+@T)7E-Y7!E M(&AA9$%N>2!\#0E!8W1I=F5%=F5N="!I9DYO=$YI;#I;#0D)(DUE86YI;F<@ M=&AA="!W92!W97)E(&EN=F]K960@9G)O;2!W:71H:6X@86X@979E;G0@'1%=F5N="D@/3T@;FEL72!W:&EL949A;'-E.EL-"0EE=G0@7R!N M:6PN(")F;W(@=6YK;F]W;B!E=F5N="!T>7!E7!E(%\@979T0G5F M(&%T.B Q+@T)"2AT>7!E(#T@179E;G14>7!E36]U6)O87)D179E;G0Z(&5V=$)U9ETN#0D)*'1Y<&4@/2!% M=F5N=%1Y<&5$7!E('X]($5V96YT5'EP941R86=$2!M;W5S92!E M=F5N=',B#0DH;6]UBUO9F%L7-T96U%=F5N= T)7G1R=64N(2 A#0TA M4WES=&5M179E;G0@;65T:&]D65T('5N8VQA7-T96U%=F5N="!R96UO=F5396QE8W1O a écrit dans le message de news: 000201c3717e$4ff52630$1cb8fea9@atlantis... > The attached CS removes the initialization code which is now obsolete. Have > a look at EventSensorConstants definition/initialization code instead. > > Cheers, > - Andreas > > > -----Original Message----- > > From: squeak-dev-bounces@lists.squeakfoundation.org > > [mailto:squeak-dev-bounces@lists.squeakfoundation.org] On > > Behalf Of ALR > > Sent: Tuesday, September 02, 2003 6:54 PM > > To: squeak-dev@lists.squeakfoundation.org > > Subject: [BUG] EventSensor initialize does not work in 3.6-5402 > > > > > > Due to a change of EventSensorConstants from Dictionary to SharedPool, > > EventSensor intialize does not work in 3.6-5402 image. > > (work fine in 3.4-5170). > > > > I would like to add some new event types, but I don't know > > how to fix it. > > > > regards, > > > > Alain > > > > > > > > > ---------------------------------------------------------------------------- ---- > > From ducasse at iam.unibe.ch Tue Sep 2 19:25:41 2003 From: ducasse at iam.unibe.ch (Stephane Ducasse) Date: Sat Jan 28 05:30:05 2012 Subject: squeak exit handler In-Reply-To: Message-ID: <3D555297-DD7B-11D7-9127-000393B2AA24@iam.unibe.ch> Alain if you want to have some code executed when you load a file you can - use the postscript in the changeset (changeset sorter) Experiment a bit I got confused the last time to know if you should add " or ' or not around the expression. - you can also add the expression at the end of the file terminated by !! (check with the class fileout). This is that way that classes get initialize. If you write a class method initialize and file it out, then the late expression of the files will be MyClass initialize. Stef PS: Once we should meet when I will come at Lyon to see my friends there (excellent food :)) On Tuesday, September 2, 2003, at 08:50 PM, ALR wrote: > Hi, > > Here is the code for having squeak code to handle the windows close > message. > Actually the only message handled is windows close, but it could be > interesting to have other system notifications like iconify, sleep etc. > > The modifications are of 2 types : > 1) modifications to the vm source (windows version 3.4.3, should be > easy to > add to unix vm), the modifications are tagged between lines //ALR> and > // 2) The second part is the changeset that add the exit handler classes > to the > squeak run-time. > I also added a new option to the system menu that exit like before, to > give > the user a possibility to exit when squeak is hung. > After having filed in the change set, in a workspace, you have to do a > 'EventSensor initialize' to define some additional constants used by > the > code - this is mandatory. > > The window close message follows the standard event handling (queuing > by vm, > io process, dequeuing and handling by HandMorph), and the squeak > handler > code is run in the UI process, like in any other windows applications. > The > application can then decide if it is safe to exit. > Actually the handler only ask exit with save : yes/no/cancel. > > This changeset works fine with a 3.4 but DOES NOT WORK in 3.6 image > because > of changes in EventSensorConstants. > > regards, > > Alain > > > > > From Yoshiki.Ohshima at acm.org Tue Sep 2 19:29:38 2003 From: Yoshiki.Ohshima at acm.org (Yoshiki Ohshima) Date: Sat Jan 28 05:30:05 2012 Subject: problems with Squeak on a Compaq Aero 2100-series running WinCE In-Reply-To: <26146.1062462615@cloud.rain.com> References: <26146.1062462615@cloud.rain.com> Message-ID: Bill, I've got an impression that Compaq Aero 2130 is a PocketPC device. The VM to try is: http://www.is.titech.ac.jp/~ohshima/squeak/WinCE/030206/SqueakVM-alpha6-030206-PPC-ARM.zip or probably http://www.is.titech.ac.jp/~ohshima/squeak/WinCE/030206/SqueakVM-alpha6-030206-PPC-ARM-noGAPI.zip Sorry for this confusion. -- Yoshiki From Jim.Gettys at hp.com Tue Sep 2 19:32:57 2003 From: Jim.Gettys at hp.com (Jim Gettys) Date: Sat Jan 28 05:30:05 2012 Subject: problems with Squeak on a Compaq Aero 2100-series running WinCE In-Reply-To: References: <26146.1062462615@cloud.rain.com> Message-ID: <1062531177.3509.7.camel@laptop.gettys.org> No, I think the Aero predate the iPAQs, and are not ARM.... All the iPAQ's are ARM's of one flavor or another. - Jim On Tue, 2003-09-02 at 15:29, Yoshiki Ohshima wrote: > Bill, > > I've got an impression that Compaq Aero 2130 is a PocketPC device. > The VM to try is: > > http://www.is.titech.ac.jp/~ohshima/squeak/WinCE/030206/SqueakVM-alpha6-030206-PPC-ARM.zip > > or probably > > http://www.is.titech.ac.jp/~ohshima/squeak/WinCE/030206/SqueakVM-alpha6-030206-PPC-ARM-noGAPI.zip > > Sorry for this confusion. > > -- Yoshiki From Yoshiki.Ohshima at acm.org Tue Sep 2 19:49:18 2003 From: Yoshiki.Ohshima at acm.org (Yoshiki Ohshima) Date: Sat Jan 28 05:30:05 2012 Subject: problems with Squeak on a Compaq Aero 2100-series running WinCE In-Reply-To: <1062531177.3509.7.camel@laptop.gettys.org> References: <26146.1062462615@cloud.rain.com> <1062531177.3509.7.camel@laptop.gettys.org> Message-ID: Jim and Bill, You're right. It seems that Aero 2130 is a MIPS device. http://www.is.titech.ac.jp/~ohshima/squeak/WinCE/030206/SqueakVM-alpha6-030206-HPC-MIPS.zip or http://www.is.titech.ac.jp/~ohshima/squeak/WinCE/030206/SqueakVM-alpha6-030206-PalmSizePC-MIPS.zip would be the one to use (Probably the latter). -- Yoshiki From ned at bike-nomad.com Tue Sep 2 20:22:19 2003 From: ned at bike-nomad.com (Ned Konz) Date: Sat Jan 28 05:30:05 2012 Subject: Documentation, more, more In-Reply-To: References: Message-ID: <200309021322.19934@ned.bike-nomad.com> On Sunday 31 August 2003 03:19 pm, leftie2100 wrote: > Considering the supposed emphasis on using Squeak as a teaching > tool, I guess I find these reasons to be a really poor excuse. What > good is a great tool to the public as a whole if the only people > who can use it are the developers? > > The lead developers need to make development of good documentation > just as central to releases as the code itself. The Squeak distribution that is aimed squarely at education is distributed at Squeakland.org, and they are trying to keep their tutorials up to date with the image. However, some of the tutorials until very recently had been broken by later changes to the Squeakland plugin image. The difficulty of keeping documentation, tutorials, etc. up to date is not unique to Squeak. This is a role that a number of people in the Squeak community could help with. Even if you're new to Squeak, you can help: * try out existing documentation and point out its problems * you can tell the community what documentation you think needs to exist * you can update the Swiki to make sure that documentation can be found -- Ned Konz http://bike-nomad.com GPG key ID: BEEA7EFE From ned at bike-nomad.com Tue Sep 2 20:28:57 2003 From: ned at bike-nomad.com (Ned Konz) Date: Sat Jan 28 05:30:05 2012 Subject: [Q][morphic] absolute and relative coordinates In-Reply-To: <87k78tlzla.fsf@web.de> References: <87k78tlzla.fsf@web.de> Message-ID: <200309021328.57559@ned.bike-nomad.com> On Monday 01 September 2003 12:47 am, Martin Drautzburg wrote: > I have constructed morph that consists of several submorphs > (circles and lines) and embedded this morph into an owning morph. > The circles and lines were create with ablsolute coordinates, i.e. > as if the upperLeft corner of my morph was 0@0. > > Once my morph is embedded into its owner its upperLeft corner > certainly is not 0@0 anymore and any *new* circles and lines I add > then end up outside the morph's bounding rectangle. > > I can add topLeft to all coordinates and things appear where they > should. > > What is the standard way of doing this, i.e. manipulationg a morph > in-situ and contruction a morph ? It depends on what kind of layout management you need. Assuming that your morph isn't locked down to a particular size, you probably need to deal with changes to its size. You can either provide your own layout method, or you can use an existing LayoutPolicy subclass if it fits your needs. The current ones include: * TableLayout -- for laying things out in rows and columns, possibly with wrapping. Good to use when you have a list of submorphs that is dynamic. * ProportionalLayout -- for laying things out relative to the parent morph bounds. You can provide fractional bounds and optional offsets to position your objects. Remember, though, that this layout is done with respect to the position (the upper left corner) of the parent and submorphs. -- Ned Konz http://bike-nomad.com GPG key ID: BEEA7EFE From ned at bike-nomad.com Tue Sep 2 20:32:13 2003 From: ned at bike-nomad.com (Ned Konz) Date: Sat Jan 28 05:30:05 2012 Subject: [Q] handling complex selection In-Reply-To: <87he3wbpem.fsf@web.de> References: <87he3wbpem.fsf@web.de> Message-ID: <200309021332.13959@ned.bike-nomad.com> On Monday 01 September 2003 06:37 am, Martin Drautzburg wrote: > This is a general model/view question. > > SearchResultView (model: SearchResult) > AddressView (Address) > AddressItemView (AddressItem) [clip] > What is the best way the get the information that a view is > selected out of a deeply nested submorph hierarchy ? By providing an object that can broadcast such a change and can still be found. Perhaps the root morph of the hierarchy. Or you could have a notification manager handling such subscriptions. -- Ned Konz http://bike-nomad.com GPG key ID: BEEA7EFE From ned at bike-nomad.com Tue Sep 2 20:43:28 2003 From: ned at bike-nomad.com (Ned Konz) Date: Sat Jan 28 05:30:05 2012 Subject: installing squeak on Debian Woody In-Reply-To: <3F53A39B.5090207@math.uwaterloo.ca> References: <3F53A39B.5090207@math.uwaterloo.ca> Message-ID: <200309021343.28993@ned.bike-nomad.com> On Monday 01 September 2003 12:52 pm, Ralph P. Boland wrote: > I tried installing Squeak 3.4 on a PC running Debian Woody but > without success. > > I tried installing squeak on a PC running Linux (Debian Wood7) > but failed. > > I created a subdirectory of my home directory. > Then I downloaded the software there and > did an install (as root). > I then did a man squeak which worked. > > I did a "which squeak" which finds squeak > and a "which inisqueak" which DOES NOT FIND inisqueak. Inisqueak does not install with the debian VM package, as I recall. I believe it's in the Image package. Please try the Debian VM and image packages from Ian Piumarta's site: http://www-sor.inria.fr/~piumarta/squeak/ http://www-sor.inria.fr/~piumarta/squeak/devel/dist/squeak-vm_3.6-beta10_i386.deb http://www-sor.inria.fr/~piumarta/squeak/devel/dist/squeak-image_3.6b-5402_all.deb http://www-sor.inria.fr/~piumarta/squeak/unix/release/squeak-sources_3_all.deb You will need all three .deb packages unless you already have the SqueakV3.sources file. > Though I have root privaliges I almost never use it because I know > almost nothing about linux except as a user. > > However, I will buy my first computer in a couple of days and the > first thing I want to do is install linux (Debian or Redhat) and > then squeak. Though I haven't used Smalltalk in years I am planning > a major project to be done using squeak. > > Can anybody suggest what I am doing wrong; something simple I'm > sure. > > Also, is there a standard place to install squeak? > If so, that is where I will put it on my new system. > > How large a system do I need to run squeak efficiently? Not very. You need to have enough memory to run Squeak, and to hold whatever images, changes, and sources files you're using. Memory usage is dynamic, but I find that things work fine with a resident memory usage of less than 40Mb. > Also, how slow is it? I get about 1 message send per 10 clock cycles: that is, on a 1200 MHz Duron I get about 120 000 000 bytecodes per second: '114285714 bytecodes/sec; 4011617 sends/sec' > I will be building an application that > will scale up to some large problems both in terms of memory used > and time consumed. -- Ned Konz http://bike-nomad.com GPG key ID: BEEA7EFE From ned at bike-nomad.com Tue Sep 2 20:58:53 2003 From: ned at bike-nomad.com (Ned Konz) Date: Sat Jan 28 05:30:05 2012 Subject: [BUG] #removeLinefeeds missing? In-Reply-To: <20030902025812.GA7289@cc.gatech.edu> References: <20030902025812.GA7289@cc.gatech.edu> Message-ID: <200309021358.53380@ned.bike-nomad.com> On Monday 01 September 2003 07:58 pm, Joshua 'Schwa' Gargus wrote: > The file list menu item for removing linefeeds from a file seems to > have been broken somewhere between updates 5169 and 5235 (possibly > 5200?). I'm not digging deeper right now because I'm not too > familiar with that code, and I'm in the middle of something else. I believe that I fixed that. BrowseServerCode-nk FileListCleanup-nk also: BFAVStreamCompatibilty-nk If you'd like to get this fixed, could you review these packages and comment on them? Thanks, -- Ned Konz http://bike-nomad.com GPG key ID: BEEA7EFE From ned at bike-nomad.com Tue Sep 2 21:02:00 2003 From: ned at bike-nomad.com (Ned Konz) Date: Sat Jan 28 05:30:05 2012 Subject: Inputting passwords In-Reply-To: <20030902032014.GA1869@vincent> References: <20030902032014.GA1869@vincent> Message-ID: <200309021402.00457@ned.bike-nomad.com> On Monday 01 September 2003 08:20 pm, Vincent Foley wrote: > is there a Morphic widget to input passwords? If there's not, is > there a method to hash the contents of a PluggableTextMorph with > stars or something? > There is FillInTheBlank requestPassword: 'Password?' Or you can use the PasswordFont with any text morphs. Just set their font to something like: StrikeFont passwordFontSize: 12. -- Ned Konz http://bike-nomad.com GPG key ID: BEEA7EFE From andreas.raab at gmx.de Tue Sep 2 21:05:19 2003 From: andreas.raab at gmx.de (Andreas Raab) Date: Sat Jan 28 05:30:05 2012 Subject: [Q][morphic] absolute and relative coordinates In-Reply-To: <87k78tlzla.fsf@web.de> Message-ID: <002d01c37195$ead94840$1cb8fea9@atlantis> > I have constructed morph that consists of several submorphs (circles > and lines) and embedded this morph into an owning morph. The circles > and lines were create with ablsolute coordinates, i.e. as if the > upperLeft corner of my morph was 0@0. If you assume that the upper left corner is 0@0 then it's a relative (not absolute) coordinate as the screen position will be obtained relatively to the position of the owner morph. Morphic generally (but not always) uses global coordinates, so that when a morph is within another one its coordinates change when its owner coordinates change. Here is an example: | m1 m2 m3 | m1 := Morph new. m1 extent: 400@400. m1 openInWorld. m2 := Morph new. m2 position: 200@200. "the second morph is now roughly at the center of the first one" m1 addMorphFront: m2. "now let's move the first morph and add a third one" m1 position: m1 position+100. m3 := Morph new. m3 position: 200@200. m1 addMorph: m3. The third morph will be positioned at a different place than the second one due to using global coordinates. > Once my morph is embedded into its owner its upperLeft corner > certainly is not 0@0 anymore and any *new* circles and lines I add > then end up outside the morph's bounding rectangle. Yes, this is essentially the same as what you see in the above. If the morph's position is different than adding new morphs will put them at different relative (but the same global) position. At least in most cases. > I can add topLeft to all coordinates and things appear where they > should. > > What is the standard way of doing this, i.e. manipulationg a morph > in-situ and contruction a morph ? What you are doing is correct. You have to add the topLeft corner to the relative position of the morph. Cheers, - Andreas From tschwarzkopf at t-online.de Tue Sep 2 09:53:07 2003 From: tschwarzkopf at t-online.de (Thomas Schwarzkopf) Date: Sat Jan 28 05:30:05 2012 Subject: UnixOSProcessPlugin Message-ID: <200309021153.07993.tschwarzkopf@t-online.de> Hi, I try to install UnixOSProcessPlugin on my FreeBSD-5.1-CURRENT box for Squeak-3.4-1. I used the VMMaker tool to generate the C source code as an external plugin. The relevant file named UnixOSProcessPlugin.c is placed in ~/Squeak-3.4-1/src/plugins/UnixOSProcessPlugin. I followed the instructions given in ~/Squeak-3.4-1/platforms/unix/doc/HowToBuildFromSource.pdf . I created a builddirectory, ran configure and tried to make the plugin inside ~/Squeak-3.4-1/blddir/UnixOSProcessPlugin but i got several errors: ..k-3.4-1/blddir/UnixOSProcessPlugin => make /bin/sh /usr/home/thomas/Squeak-3.4-1/blddir/libtool --mode=compile gcc -I/usr/X11R6/include -g -O2 -fomit-frame-pointer -DLSB_FIRST=1 -DHAVE_CONFIG_H -I/usr/home/thomas/Squeak-3.4-1/blddir -I/usr/home/thomas/Squeak-3.4-1/platforms/unix/vm -I/usr/home/thomas/Squeak-3.4-1/platforms/Cross/vm -I/usr/X11R6/include -l/usr/home/thomas/test/Squeak-3.4-1/platforms/Cross/plugins/SocketPlugin/ -I/usr/home/thomas/Squeak-3.4-1/platforms/Cross/plugins/FilePlugin -I/usr/home/thomas/Squeak-3.4-1/platforms/Cross/plugins/SocketPlugin -c -o UnixOSProcessPlugin.lo /usr/home/thomas/Squeak-3.4-1/src/plugins/UnixOSProcessPlugin/UnixOSProcessPlugin.c gcc -I/usr/X11R6/include -g -O2 -fomit-frame-pointer -DLSB_FIRST=1 -DHAVE_CONFIG_H -I/usr/home/thomas/Squeak-3.4-1/blddir -I/usr/home/thomas/Squeak-3.4-1/platforms/unix/vm -I/usr/home/thomas/Squeak-3.4-1/platforms/Cross/vm -I/usr/X11R6/include -l/usr/home/thomas/test/Squeak-3.4-1/platforms/Cross/plugins/SocketPlugin/ -I/usr/home/thomas/Squeak-3.4-1/platforms/Cross/plugins/FilePlugin -I/usr/home/thomas/Squeak-3.4-1/platforms/Cross/plugins/SocketPlugin -c /usr/home/thomas/Squeak-3.4-1/src/plugins/UnixOSProcessPlugin/UnixOSProcessPlugin.c -fPIC -DPIC -o UnixOSProcessPlugin.lo /usr/home/thomas/Squeak-3.4-1/src/plugins/UnixOSProcessPlugin/UnixOSProcessPlugin.c:41:26: SocketPlugin.h: No such file or directory /usr/home/thomas/Squeak-3.4-1/src/plugins/UnixOSProcessPlugin/UnixOSProcessPlugin.c:218: error: syntax error before '*' token /usr/home/thomas/Squeak-3.4-1/src/plugins/UnixOSProcessPlugin/UnixOSProcessPlugin.c:218: warning: data definition has no type or storage class /usr/home/thomas/Squeak-3.4-1/src/plugins/UnixOSProcessPlugin/UnixOSProcessPlugin.c: In function `socketRecordSize': /usr/home/thomas/Squeak-3.4-1/src/plugins/UnixOSProcessPlugin/UnixOSProcessPlugin.c:2933: error: `SQSocket' undeclared (first use in this function) /usr/home/thomas/Squeak-3.4-1/src/plugins/UnixOSProcessPlugin/UnixOSProcessPlugin.c:2933: error: (Each undeclared identifier is reported only once /usr/home/thomas/Squeak-3.4-1/src/plugins/UnixOSProcessPlugin/UnixOSProcessPlugin.c:2933: error: for each function it appears in.) /usr/home/thomas/Squeak-3.4-1/src/plugins/UnixOSProcessPlugin/UnixOSProcessPlugin.c: At top level: /usr/home/thomas/Squeak-3.4-1/src/plugins/UnixOSProcessPlugin/UnixOSProcessPlugin.c:2940: error: syntax error before '*' token *** Error code 1 Stop in /usr/home/thomas/Squeak-3.4-1/blddir/UnixOSProcessPlugin. There is a file named SocketPlugin.h in ~/Squeak-3.4-1/platforms/Cross/plugins/SocketPlugin/ but I don't know if this is the missing one. There are also syntax errors and other errors in UnixOSProcessPlugin.c. See attachment. Can anyone tell me where I made a mistake and what I can do to make the plugin compile? Thanks Thomas -------------- next part -------------- A non-text attachment was scrubbed... Name: UnixOSProcessPlugin.c Type: text/x-csrc Size: 104895 bytes Desc: not available Url : http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20030902/aa5dee6d/UnixOSProcessPlugin.c From leftie2100 at yahoo.com Tue Sep 2 10:58:08 2003 From: leftie2100 at yahoo.com (leftie2100) Date: Sat Jan 28 05:30:05 2012 Subject: Documentation, more, more In-Reply-To: Message-ID: Stephane, Without intending it, I do believe you just proved everything I was attempting to describe about the way the squeak developer community acts toward educating new users to squeak. Now, I personally don't know enough about "tests" to know if they are a good educational tool or not. However, to find out if they are, you expect me to search the entire squeak mailing list archive, find a tutorial on a web page that seems to house books, not tutorials (the particular tutorial might be located in the pages of one of the books...I'm not sure... I would have to learn French to find out for sure), and then once I know what tests are and how to use them, guess which ones I should learn in what order to learn squeak properly. That's not a user-friendly educational environment. I pretty much have to already know whatever subject I need to learn to have enough background to figure out how to just find the necessary resources I would need. Why are python and ruby growing like weeds right now? In a large part, because they reach out to new users and try to help them become educated in using those tools in the most "newbie-proof" manner possible. They both have full intro textbooks that can be downloaded as an introduction to the language. You don't have to have the "most up-to-date" version of squeak making a intro text obsolete... just have links to the version used in the text next to the links where you get the text. The intro to a newbie doesn't have to have all the bells and whistles. The text would only have to be updated every couple of years that way. It doesn't have to be a textbook,either. It could be the equivalent of a big help file or tutorial software. However, it does need to be structured in a way that a person moved from one subject they need to learn to the next until they were capable of programming at a minimum level of competancy. --- In squeak@yahoogroups.com, Stephane Ducasse wrote: > Hi all > > I think that the best, more efficient way of providing documentation > about Squeak is to write simple tests representing scenario. We cannot > afford having people write documentation that will get obsolete as soon > as we change something. because Squeak is not a frozen framework but > something that is moving fast. So all your effort to externalize > documentations in non executable way are doomed to fail and frustrate > you. > > Tests are the only way to go, sorry if this is hurting. But tests are > coooooooool, they provide you this guts feelings, "YES it works. I'm > sure it works". You have to experience that by yourself because this > is personal but this is a so good feeling. > > With test > - your documentation is always in sync with the code. Just press the > button and if it is green you are sure, > - this way we can change the system without fear to breaking something > that would stay not identified, > - tests represent your trust in the system, > - Everybody even newbies can write tests > - If you write tests lot of people will enjoy review them and include > the into squeak > > Tests are like solar energy, they ensure that we will be able to fix > stuff in the future. Ok they cost a bit more at the beginning but they > provide a lot more . Developing without test is fun but like nuclear > energy it endangers our future. > > Look at the tests provided for the UUID to understand what I mean. > > - daniel wrote a small tests to show how easy is to write tests. > Daniel will post that soon > after his trip back from ESUG > > - If you want to know more about tests > - browse my emails in the archive > - read the tutorial on SUnit available at: > http://www.iam.unibe.ch/~ducasse/WebPages/Books.html > > Stef > > Just a real story that happens to me yesterday. > I was coding something and nearly there without any tests because I'm > lazy and this was trivial when I realized that a special case could > break everything I did. This was boring, frustrating and too complex > after a day of work. So I started to write 4 tests. It took me around > one hour really slowly to pay attention to have a simple scenario for > each of my cases. Then I recoded everything running the tests in 15 > minutes. > At the end all the tests passed green and I was done. DONE with the > feeling YES it works I can go home coooool and sure that I did it > right. During the night I run my application to extract a big db and it > worked. Now if it happens that I still have a bug, I will start first > writing a test and fix it. > > > > > On Monday, September 1, 2003, at 01:21 PM, Gary Fisher wrote: > > > Hi, Leftie! > > > > (I happen to be profoundly sinistral myself, by the way, and quite > > happy > > about it. :-) > > > > One reason Squeak documentation can appear to be hard to find is that > > there > > are multiple versions or aspects (or perhaps viewpoints) of Squeak. > > Much of > > the Squeak-Dev view exists primarily to hone the cutting edge of > > Squeak; a > > good deal of what's here is experimental, even speculative, and may > > never > > get beyond that stage. A substantial portion of the Squeak-Dev view > > is more > > practical or explanatory, though it still leans more toward advancing > > the > > user than simply to plonking him or her down in a quiet spot. This > > list > > tends to have a headlong feel. > > > > For a viewpoint more suited to teaching (with) Squeak, you might find > > Squeakland (www.Squeakland.org) and the list available there more to > > your > > liking. The Squeakland site and list are devoted much more to > > practica, > > based on the most current "stable" version of Squeak rather than the > > development version du jour. > > > > If you're looking for the fastest way to get working with Squeak, > > however, > > you might find one or more of the published references best suited to > > your > > needs. Mark Guzdial's books, in particular, can take you from > > installation > > to coding to eventual understanding in what may well be the shortest > > possible time, though by necessity any printed text will be based on > > the > > version of Squeak available at the time of printing (included on the CD > > bound with each book), which will of course not be the most current > > version. > > Nevertheless, moving independently from a good working knowledge of an > > earlier Squeak to today's version will probably be easier than coming > > in > > directly from complete Newbiedom. I purchased my copies of Mark's > > books at > > a local book store (a good opportunity to encourage them to stock more > > Squeak and Smalltalk books) but a quick Amazon search will bring up > > both new > > and used copies at good prices. > > > > I hope that helps. > > > > Gary Fisher > > > > ----- Original Message ----- > > From: "leftie2100" > > To: "The general-purpose Squeak developers list" > > > > Sent: Sunday, August 31, 2003 6:19 PM > > Subject: Re: Documentation, more, more > > > > > > Considering the supposed emphasis on using Squeak as a teaching tool, > > I guess I find these reasons to be a really poor excuse. What good is > > a great tool to the public as a whole if the only people who can use > > it are the developers? > > > > The lead developers need to make development of good documentation > > just as central to releases as the code itself. Until they demand that > > documentation be completed and updated before software is released, it > > won't be. The lead developers need to take charge of the documentation > > process instead of allowing themselves to let others take this "chore" > > off their hands. The attitude I'm seeing here that the documentation > > is a necessary evil that must be "grinded out' sounds like it very > > well could be a significant part of the problem. Writing can be fun to > > do if you go about it in a light-hearted fashion and that type of > > writing also engages the reader. > > > > Personally, I know a bit about writing, but I know nothing about > > programming. I'm a programming newbie that would really like to learn > > Squeak, but I'm pretty much kept from doing that because of your > > current documentation situation. I read this list because I keep > > hoping I'll read some new focused learning resources have been > > created. So when I read that many feel "coding is fun, documentation > > is not" on the threads, it doesn't do much for my confidence that I'll > > ever get the chance to use Squeak. > > > > If you guys really want to be the Squeak evangalists you seem to all > > claim you want to be, you're going to have to have a complete attitude > > change about things like complete centralized documentation and the > > creation of Squeak programming texts for those new to programming. > > > > > > > > > > > > > > --- In squeak@yahoogroups.com, goran.krampe@b... wrote: > >> Hi David! > >> > >> David wrote: > >> [SNIP of ramblings :-) about documentation] > >>> I'll apologize again for asking stupid questions like the ones above, > >>> and now I'll sit down and be quiet. > >> > >> Those of us who have been in the community for some time, and I am not > >> sure how long you have been here, tend to feel that people asking the > >> community to "change" or to "Hey, you should do *this*!" don't really > >> understand how this community works and generally gets little > >> attention > >> and might even piss people off. ;-) > >> > >> Let me be very frank and very disillusioned for a few seconds: > >> > >> 1. There have been A LOT of efforts starting to document Squeak. They > >> all seem to "fade away". Nothing wrong with trying though - just don't > >> think it hasn't been done before! Really. I am not kidding. > >> > >> 2. People do what they like to do. Coding is fun. Documentation is > >> not. > >> > >> 3. Even though it is a harsh and perhaps annoying mantra - the "Ok, > >> then > >> why don't *you* do it?" logic still applies. Talking doesn't count for > >> much. > >> > >> > >> Ok, given the above - what can then be done that will actually have a > >> slight chance to *succeed*? My take on this (which of course may be > >> totally off) is: > >> > >> - Whatever you try to do, do it *yourself*. Don't try to talk others > >> into it. "If you build it, they will come". This is at least my > >> experience with SM. > >> > >> - Documentation is all about keeping it fresh. I have earlier proposed > >> to try to bind documentation with the Unit tests. I still think it is > >> a > >> great idea (check archives to see what I mean). In other words, the > >> docs > >> must be tied to the image and tha packages, it can't live on its own. > >> SM > >> is of course a pillar to lean on in this case. IMHO class comments > >> belong with the class - not on a swiki. > >> > >> - As with most things accepted in the community it very often comes > >> down > >> to good tools. SM is successful, but didn't render much interest until > >> the Morphic package tool came onto the scene. BFAV has been successful > >> becuase of similar reasons. The Magic Book concept (see Swiki - and > >> how > >> ironic? :-)) I sketched on earlier is based on this idea. > >> > >> So... in short: > >> > >> If *you* build *The Magic Book* tool and incorporate ideas to tie > >> stuff > >> with Unit tests or similar mechanisms that ensure things don't get > >> stale > >> - *then* something might happen. :-) > >> > >> My 2 cents, G?ran > > > > > > From trost at cloud.rain.com Tue Sep 2 16:24:04 2003 From: trost at cloud.rain.com (Bill Trost) Date: Sat Jan 28 05:30:05 2012 Subject: problems with Squeak on a Compaq Aero 2100-series running WinCE Message-ID: <8574.1062519844@cloud.rain.com> [note that I'm not a squeak-dev subscriber; fortunately I thought to check the list archive] Gary Fisher writes: Selecting [No] doesn't abort the quit, it just saves the image on the way out (answering [Yes] will quit *without* saving the image). If your image was somehow corrupted before you got this dialog, answering [No] would have saved the corrupted image, including any problems which may have existed at the time. I've reloaded the image and am having the same problem -- Squeak doesn't really show up at all at first, and reselecting it from the start menu brings up the testy dialogs. Bill From Eric.Scharff at Colorado.EDU Tue Sep 2 20:58:38 2003 From: Eric.Scharff at Colorado.EDU (Eric Scharff) Date: Sat Jan 28 05:30:05 2012 Subject: HELP! with plugins Message-ID: (Apologies for nagging folks again, but I never received answers to any of my plugin questions. While creating plugins may not be nearly as exciting as discussing licensing issues, it is far more important to my current project. :) ) Here is a re-post of my latest plugin question: I have a trivial plugin: TestInterpreterPlugin subclass: #MyPlugin instanceVariableNames: '' classVariableNames: '' poolDictionaries: '' category: 'Eric-Test' With a "primitive" method I intend to compile to C: innerLoopX: x y: y limit: escape | | self primitive: 'primGuy' parameters: #(SmallInteger SmallInteger SmallInteger) receiver: #Oop. ^ (escape + x + y) asOop: SmallInteger (Note, simplified to do nothing useful, but illustrates the problem) If I execute: MyPlugin doPrimitive: 'innerLoopX:y:limit:' withArguments #(1 1 1) I would expect to get 3. Instead, I get a walkback: Error: attempt to index non-existent element in an ordered collection OrderedCollection(Object)>>error: OrderedCollection>>errorNoSuchElement OrderedCollection>>at: InterpreterProxy>>stackValue: InterpreterProxy>>stackIntegerValue: MyPlugin>>DoItIn: Compiler>>evaluate:in:to:notifying:ifFail: [] in TestTMethod>>simulatePrologInContext: Array(SequenceableCollection)>>keysAndValuesDo: TestTMethod>>simulatePrologInContext: MyPlugin(Object)>>primitive:parameters:receiver: MyPlugin>>innerLoopX:y:limit: MyPlugin class(TestInterpreterPlugin class)>>doPrimitive:withArguments: What am I doing wrong? -Eric From arning at charm.net Tue Sep 2 22:04:46 2003 From: arning at charm.net (Bob Arning) Date: Sat Jan 28 05:30:06 2012 Subject: HELP! with plugins Message-ID: <200309022204.h82M4k9W072375@hampden.charm.net> On Tue, 2 Sep 2003 14:58:38 -0600 (MDT) Eric Scharff wrote: >(Apologies for nagging folks again, but I never received answers to any of >my plugin questions. While creating plugins may not be nearly as exciting >as discussing licensing issues, it is far more important to my current >project. :) ) Eric, I'm not sure I can explain all the whys of this, but it appears that other senders of #doPrimitive:withArguments: were from methods where the arguments were already on the stack (your error hapens trying to copy from this stack into the interpreter proxy). I converted your snippet to a class method: ================================================================= 'From Squeak3.5 of ''11 April 2003'' [latest update: #5180] on 2 September 2003 at 6:01:53 pm'! !MyPlugin class methodsFor: 'as yet unclassified' stamp: 'raa 9/2/2003 18:00'! TESTinnerLoopX: a y: b limit: c ^MyPlugin doPrimitive: 'innerLoopX:y:limit:' withArguments: {a. b. c}! ! ================================================================= and, now, MyPlugin TESTinnerLoopX: 1 y: 1 limit: 1 will run. Cheers, Bob From schwa at cc.gatech.edu Tue Sep 2 22:17:13 2003 From: schwa at cc.gatech.edu (Joshua 'Schwa' Gargus) Date: Sat Jan 28 05:30:06 2012 Subject: [BUG] #removeLinefeeds missing? In-Reply-To: <200309021358.53380@ned.bike-nomad.com> References: <20030902025812.GA7289@cc.gatech.edu> <200309021358.53380@ned.bike-nomad.com> Message-ID: <20030902221713.GA23309@cc.gatech.edu> I'll do that later tonight. Thanks, Joshua On Tue, Sep 02, 2003 at 01:58:53PM -0700, Ned Konz wrote: > On Monday 01 September 2003 07:58 pm, Joshua 'Schwa' Gargus wrote: > > > The file list menu item for removing linefeeds from a file seems to > > have been broken somewhere between updates 5169 and 5235 (possibly > > 5200?). I'm not digging deeper right now because I'm not too > > familiar with that code, and I'm in the middle of something else. > > I believe that I fixed that. > > BrowseServerCode-nk > FileListCleanup-nk > > also: > BFAVStreamCompatibilty-nk > > > If you'd like to get this fixed, could you review these packages and > comment on them? > > Thanks, > -- > Ned Konz > http://bike-nomad.com > GPG key ID: BEEA7EFE > From gafisher at sprynet.com Tue Sep 2 22:17:17 2003 From: gafisher at sprynet.com (Gary Fisher) Date: Sat Jan 28 05:30:06 2012 Subject: problems with Squeak on a Compaq Aero 2100-series running WinCE References: <8574.1062519844@cloud.rain.com> Message-ID: <006d01c371a0$14486260$0200a8c0@spectrumelectronic.com> Hi, Bill! Might I suggest that joining the list would be a VERY good step to take if you want to get Squeak up and running quickly? It's an absolute goldmine of information, help and advice, and in fact some of the WinCE-Squeak experts there have apparently found the reason you're having a problem and suggested how to fix it, earlier today. Happy Squeaking! Gary ----- Original Message ----- From: "Bill Trost" To: ; Sent: Tuesday, September 02, 2003 12:24 PM Subject: Re: problems with Squeak on a Compaq Aero 2100-series running WinCE > [note that I'm not a squeak-dev subscriber; fortunately I thought to > check the list archive] > > Gary Fisher writes: > Selecting [No] doesn't abort the quit, it just saves the image on > the way out (answering [Yes] will quit *without* saving the image). > If your image was somehow corrupted before you got this dialog, > answering [No] would have saved the corrupted image, including any > problems which may have existed at the time. > > I've reloaded the image and am having the same problem -- Squeak doesn't > really show up at all at first, and reselecting it from the start menu > brings up the testy dialogs. > > Bill > From andreas.raab at gmx.de Tue Sep 2 22:20:47 2003 From: andreas.raab at gmx.de (Andreas Raab) Date: Sat Jan 28 05:30:06 2012 Subject: [BUG][FIX] InterpreterPlugin>>doPrimitive: and friends (was: RE: HELP! with plugins) In-Reply-To: Message-ID: <003901c371a0$759dae80$1cb8fea9@atlantis> Hi, This is a bug. Attached is a version which fixes these problems. If you are running pre-3.6 you'll have to substitute TestInterpreterPlugin for SmartSyntaxInterpreterPlugin as it is named in 3.6. Cheers, - Andreas > -----Original Message----- > From: squeak-dev-bounces@lists.squeakfoundation.org > [mailto:squeak-dev-bounces@lists.squeakfoundation.org] On > Behalf Of Eric Scharff > Sent: Tuesday, September 02, 2003 10:59 PM > To: squeak-dev@lists.squeakfoundation.org > Subject: HELP! with plugins > > > (Apologies for nagging folks again, but I never received > answers to any of > my plugin questions. While creating plugins may not be > nearly as exciting > as discussing licensing issues, it is far more important to my current > project. :) ) > > Here is a re-post of my latest plugin question: > > I have a trivial plugin: > > TestInterpreterPlugin subclass: #MyPlugin > instanceVariableNames: '' > classVariableNames: '' > poolDictionaries: '' > category: 'Eric-Test' > > With a "primitive" method I intend to compile to C: > > innerLoopX: x y: y limit: escape > | | > self > primitive: 'primGuy' > parameters: #(SmallInteger SmallInteger SmallInteger) > receiver: #Oop. > ^ (escape + x + y) asOop: SmallInteger > > (Note, simplified to do nothing useful, but illustrates the problem) > > If I execute: > > MyPlugin doPrimitive: 'innerLoopX:y:limit:' withArguments #(1 1 1) > > I would expect to get 3. Instead, I get a walkback: > > Error: attempt to index non-existent element in an ordered collection > > OrderedCollection(Object)>>error: > OrderedCollection>>errorNoSuchElement > OrderedCollection>>at: > InterpreterProxy>>stackValue: > InterpreterProxy>>stackIntegerValue: > MyPlugin>>DoItIn: > Compiler>>evaluate:in:to:notifying:ifFail: > [] in TestTMethod>>simulatePrologInContext: > Array(SequenceableCollection)>>keysAndValuesDo: > TestTMethod>>simulatePrologInContext: > MyPlugin(Object)>>primitive:parameters:receiver: > MyPlugin>>innerLoopX:y:limit: > MyPlugin class(TestInterpreterPlugin > class)>>doPrimitive:withArguments: > > What am I doing wrong? > > -Eric > > > -------------- next part -------------- A non-text attachment was scrubbed... Name: FixDoPrimitive-ar.cs Type: application/octet-stream Size: 1516 bytes Desc: not available Url : http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20030903/3a206a1c/FixDoPrimitive-ar.obj From ned at bike-nomad.com Tue Sep 2 22:25:39 2003 From: ned at bike-nomad.com (Ned Konz) Date: Sat Jan 28 05:30:06 2012 Subject: Morphic - widget subclassing and inheritance In-Reply-To: <849989022.20030806152258@freestart.hu> References: <849989022.20030806152258@freestart.hu> Message-ID: <200309021525.39607@ned.bike-nomad.com> On Wednesday 06 August 2003 06:22 am, Geza Lakner MD wrote: > I am a newbie in Morphic and Smalltalk, and I just can't get around > with this one. First, it is very painful to build and handle a > usable, conventional dialog box in Morphic. Have you seen the Squeak FAQ at http://minnow.cc.gatech.edu/squeak/471 yet? Specifically, some of the items under "Programming with Morphic" may help. > Now, all these GUI mparts are programatically, practically > inaccesible in the usual way. They have no global names (just some > instantiation number in parenthesis), nor could they be pruned into > existing classes via renaming or something like this. The only way > I saw, is to subclass each widget. So I subclassed the button, and > redefined doButtonAction. For testing purpose it was a tiny > 'Transcript show:' message. It worked. I exhaled. You shouldn't have to subclass. At least for widgets that exist already (which doesn't include, for instance, a "combo box"), you can make a dialog box by just plugging in the names of your model's methods that you want the widgets to call back to when necessary. > I think Squeak is a very nice platform but conventional programmers > will have their hair raised up ;-) with the vastly underdocumented > Morphic. Each tutorial picks a bells-and-whistles single morph to > sing, turn or gallop around ;-) (I know, I know: Squeak is a > schoolboy-oriented environment... ) eToys is, but that's not by any means all of Squeak. > via scripting or through > Workspace direct manipulation but neither tutorial mentions how to > set up conventional interaction like building dialog boxes, data > entry forms; how to "wire in" keyboard navigation between data > entry widgets (e.g. tabbing cycle) etc. I believe there are tutorials out there that cover this. Anyone with a good pointer? -- Ned Konz http://bike-nomad.com GPG key ID: BEEA7EFE From arning at charm.net Tue Sep 2 22:27:09 2003 From: arning at charm.net (Bob Arning) Date: Sat Jan 28 05:30:06 2012 Subject: Morphic - widget subclassing and inheritance Message-ID: <200309022227.h82MR99W077347@hampden.charm.net> On Tue, 2 Sep 2003 15:25:39 -0700 Ned Konz wrote: >> via scripting or through >> Workspace direct manipulation but neither tutorial mentions how to >> set up conventional interaction like building dialog boxes, data >> entry forms; how to "wire in" keyboard navigation between data >> entry widgets (e.g. tabbing cycle) etc. > >I believe there are tutorials out there that cover this. > >Anyone with a good pointer? Version 1 of BobsUI was intended to be a very simple example of such concepts, easy to read in its entirety. Cheers, Bob From vinfoley at iquebec.com Tue Sep 2 22:45:06 2003 From: vinfoley at iquebec.com (Vincent Foley) Date: Sat Jan 28 05:30:06 2012 Subject: Inputting passwords In-Reply-To: <200309021402.00457@ned.bike-nomad.com> References: <20030902032014.GA1869@vincent> <200309021402.00457@ned.bike-nomad.com> Message-ID: <20030902224506.GA3287@vincent> Many thanks :) On Tue, Sep 02, 2003 at 02:02:00PM -0700, Ned Konz wrote: > There is > FillInTheBlank requestPassword: 'Password?' > > Or you can use the PasswordFont with any text morphs. Just set their > font to something like: > > StrikeFont passwordFontSize: 12. ---end quoted text--- -- Vincent Foley-Bourgon Email: vinfoley@iquebec.com Homepage: http://darkhost.mine.nu:81 From ned at bike-nomad.com Tue Sep 2 22:51:10 2003 From: ned at bike-nomad.com (Ned Konz) Date: Sat Jan 28 05:30:06 2012 Subject: HELP! with plugins In-Reply-To: References: Message-ID: <200309021551.10451@ned.bike-nomad.com> On Tuesday 02 September 2003 01:58 pm, Eric Scharff wrote: > MyPlugin doPrimitive: 'innerLoopX:y:limit:' withArguments #(1 1 1) > > I would expect to get 3. Instead, I get a walkback: #doPrimitive:withArguments: isn't called in the usual way. The idiom is that it is called from a method that tried to call a primitive: Object subclass: #EricsPluginUser instanceVariableNames: '' classVariableNames: '' poolDictionaries: '' category: 'Test' Then in EricsPluginUser, define: innerLoopX: x y: y limit: escape ^EricsPlugin doPrimitive: 'innerLoopX:y:limit:' withArguments: { x. y. escape } Then try to use it: u _ EricsPluginUser new. u innerLoopX: 1 y: 1 limit: 1 Which returns 3, as expected. -- Ned Konz http://bike-nomad.com GPG key ID: BEEA7EFE From andreas.raab at gmx.de Wed Sep 3 00:02:23 2003 From: andreas.raab at gmx.de (Andreas Raab) Date: Sat Jan 28 05:30:06 2012 Subject: Debugger woes In-Reply-To: <003f01c371aa$7681c160$017ba8c0@cx1191994a> Message-ID: <004b01c371ae$ab2a7340$1cb8fea9@atlantis> Hi Terry, > I don't have a version of Squeak as I am just a lurker. > However, I think I can help considering I wrote the latest > version of the VW PDP debugger. Thanks, it's great to have a third opinion on these issues. > Andreas's concern about the croquet real-time scheduler > is an additional wrinkle. But, from an Squeak perspective > it would be better if the debugger did not have to > address special croquet concerns. I agree but that was essentially the reason why I wanted to be able to handle most of the debugging activities "outside" of the process being simulated so that (for example) a CroquetProcess might use a CroquetDebugger instead of a "normal" one. This is why I said it would be nice to have an association between the debugged process and its debugger so the process can simply pass requests on to the debugger "just in case" some special action needs to happen. In the default case these actions may do nothing so it would be simple to substitute debuggers for varying needs. > In vw I would solve > using a normal exception handler. When a process is > terminated in VW, a terminate exception is raised. This isn't currently the case in Squeak. > A croquet process could catch this exception and not allow > it to continue if the process was being debugged. The > handler could optionally extend the deadline or place it > into a special state so the scheduler. To make this > consistent the process would also have to be notified > when it was resumed by the debugger. This could be > done by adding a #resumeByDebugger method to Process > that raises an exception when resumed by the debugger. > This would allow the process to properly change its > deadline. Right. If you follow down this path (which is certainly doable) you end up with essentially the same mechanisms that I was describing - just bundled up in one place (class Process) and using tons of not-too-nice ways of interactions along context chains (what happens if there is a catch-all handler somewhere on the stack? Just recently David used one ;) So what I'm really arguing for here is a better separation of concerns and a teenie-weenie bit of explicit knowledge within class Process about whether it may be debugged or not. Also, note that the situation of process termination is a minor aspect for Croquet. Termination semantics are well enough defined and the standard semantics of Squeak processes work just fine for it. It's the actual debugging activity, all the sends involved where we may have to deal with the fact that the current process is being debugged and may therefore have "slightly different" rules. Cheers, - Andreas From adspitz at yahoo.ca Wed Sep 3 00:44:54 2003 From: adspitz at yahoo.ca (adspitz@yahoo.ca) Date: Sat Jan 28 05:30:06 2012 Subject: [ENH][REFACTOR] PDACleanup Message-ID: <20030903004454.OQBC3478.tomts12-srv.bellnexxia.net@adam> from preamble: "Change Set: PDACleanup Date: 27 August 2003 Author: Adam Spitz Just moves MonthMorph and WeekMorph into the Morphic-PDA package (which is the only place in the image that uses them). Seems like a better place for them than Morphic-Demo." -------------- next part -------------- A non-text attachment was scrubbed... Name: PDACleanup.cs.gz Type: application/octet-stream Size: 319 bytes Desc: not available Url : http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20030902/2c20e321/PDACleanup.cs.obj From traymond at craftedsmalltalk.com Tue Sep 2 23:32:23 2003 From: traymond at craftedsmalltalk.com (Terry Raymond) Date: Sat Jan 28 05:30:06 2012 Subject: Debugger woes In-Reply-To: <003901c3714a$0032e580$1cb8fea9@atlantis> Message-ID: <003f01c371aa$7681c160$017ba8c0@cx1191994a> Andreas, Anthony I don't have a version of Squeak as I am just a lurker. However, I think I can help considering I wrote the latest version of the VW PDP debugger. Anthony is basically correct in his concerns about process faithful debugging. These have been addressed in the present version of the VW PDP debugger. Andreas's concern about the croquet real-time scheduler is an additional wrinkle. But, from an Squeak perspective it would be better if the debugger did not have to address special croquet concerns. In vw I would solve using a normal exception handler. When a process is terminated in VW, a terminate exception is raised. A croquet process could catch this exception and not allow it to continue if the process was being debugged. The handler could optionally extend the deadline or place it into a special state so the scheduler. To make this consistent the process would also have to be notified when it was resumed by the debugger. This could be done by adding a #resumeByDebugger method to Process that raises an exception when resumed by the debugger. This would allow the process to properly change its deadline. I should point out that when a debugged process is terminated in VW by some other process, the unwinds are executed outside of debugger control. I suppose this is a hole in the present design. An alternative would be to swap out the suspended context and put in one that would catch the terminate exception and perform the appropriate action, but at this time I don't know what that is. One other point, Anthony wrote; "It sounds like you want to keep a copy of the process (a continuation), so you can abort what you did in the debugger." The problem with this is that not only does the process change state but so do many ivars of objects. To properly revert back to a prior state you would also have to store the state of any modified object. Terry =========================================================== Terry Raymond Smalltalk Professional Debug Package Crafted Smalltalk *Breakpoints* and *Watchpoints* for 80 Lazywood Ln. VW and ENVY/Developer Tiverton, RI 02878 (401) 624-4517 traymond@craftedsmalltalk.com http://www.craftedsmalltalk.com =========================================================== > -----Original Message----- > From: squeak-dev-bounces@lists.squeakfoundation.org > [mailto:squeak-dev-bounces@lists.squeakfoundation.org]On Behalf Of > Andreas Raab > Sent: Tuesday, September 02, 2003 8:02 AM > To: 'Anthony Hannan' > Cc: squeak-dev@lists.squeakfoundation.org > Subject: RE: Debugger woes > > > Hi Anthony, > > > I wanted to execute the unwind blocks in the context of the > > terminating process and not the calling process. Meaning if > > an unwind block raises an exception, an exception handler in > > the terminating process will handle it and not one in the > > calling process. > > Ah, I see. Is this the "standard" semantics? > E.g., what do other systems do when you have something like > > p := [[ > [Processor activeProcess suspend] ensure:[4/0] > ] on: ZeroDivide do:[:ex| ex resume: 'oh no']. > ] fork. > p terminate. > > > It sounds like you want to keep a copy of the process (a > > continuation), so you can abort what you did in the debugger. > > I didn't think about it this way, but yes, I guess that's > what I'm after. > The reason being that for debugging something like Croquet processes I > _think_ we'll have to a little more than "just" simulating the process > itself - turns out that the environmental factors (such as > the real-time > clock) plays an important role which we can't really ignore > when we debug > such processes. > > > > One of the changes that I've thought about for the purpose > > > of debugging processes was to essentially associate a debugger > > > with a process (via instVar) which - if present - handles > > > attempts to do things with the process where potentially > > > "incorrect" state (such as suspendedContext) is involved. > > > The places which come to mind immediately are (for example) > > > #suspend, #resume, and #terminate but there may be others. > > > In the context of a debug session, we may indeed forward > > > these requests to the debugger which could > > > then provide us with the "right" means for handling them. > > > > Are you talking about locking the process while > mainpulating it, so it > > is not inadvertently resumed before you are done manipulating it? > > Yes, exactly. The point being that the "locked" process > really has a few > more constraints when we debug it. I'll give a simple example > from Croquet: > Each process has an associated deadline by which to deliver > it's associated > "payload". When this deadline expires the process will be > terminated as it > has been unable to deliver its payload in a timely fashion. > Now, typically > the deadline is tightly bound to real-time and you can > imagine what kind of > "interesting" behavior you get if the deadline kicks in while > you try to > debug this process ;-) So one of the things I'd like to do is > to arbitrarily > expand the deadline for the purpose of a debug session. Note > that while this > _sounds_ simple (just change the deadline) it actually isn't. > The "realtime > deadline" needs to abort just the way it would in normal > execution but the > process needs to be debugged "as if" the realtime hasn't been > reached. Kinda > tricky, and I'd like to have this model represented > explicitly somewhere > (e.g., in the simulator/debugger). > > > I still don't see the difference between running and > simulating. You > > are going through the same execution steps, its just one is > written in > > Smalltalk and the other is written in Slang. > > If you exclude environmental factors, yes. But see above - I > don't really > see how you could debug a process with croquet semantics without > distinguishing between "real" and "simulated" execution (btw, > perhaps as a > final note for the above - if we resume a debugged Croquet > process _before_ > its deadline expires we should naturally be able to complete > it "in time" ;) > > > > where exactly does this happen? I have done some pretty > weird things > > > with contexts myself but _that_ method is really beyound me ;-) > > > > Yes, sorry context swapping (#jump) is a little perverse plus > > it wasn't > > commented well enough. Attached is a new version that does normal > > process resuming instead of context swapping and is better > commented. > > Thanks, I'll check it out. > > > The version attached addresses the changes I was referring to except > > for adding a don't-quickStep preference which you said you > don't want. > > Yup, that's fine. One more question because I'm sure you must > have thought > about it: Do you have any idea about an idiom that can be used for > retrieving the active process in the context of a debug > session? Most of > what's happening could be solved by "somehow" making sure > that a simulated > "Processor activeProcess" answers the process being debugged > instead of the > one debugging it. For example, I have thought about something where a > process which runs for some reason another one (such as in > process unwind) > might remember the process being simulated and answer this > process. For > example, > > Processor>>activeProcess > ^activeProcess runningProcess > > Process>>runningProcess > "Answer the process we are currently running. If the > receiver is for > some reason simulating the execution of another process, the simulated > process will be stored in the simulatedProcess instance variable." > ^simulatedProcess ifNil:[self] > > would give us the basics. However, this still won't be > complete as then it > is questionable how the simulation of "Processor > activeProcess suspend" > should work. This is why I'd like to have a lightweight > debugger/simulator > associated with the process which captures requests like > those. For example > > Process>>runningProcess > ^debugger ifNil:[self] ifNotNil:[debugger runningProcess] > > Process>>suspend > debugger ifNotNil:[ > debugger runningProcess == self ifTrue:[debugger > suspendProcess: self]. > ]. > > Debugger>>suspendProcess: aProcess > "Simulate suspension of the currently running process" > SuspendDebuggerProcess signal. "will be caught by the simulation > somewhere up" > > etc. Of course, the _really_ interesting question here is > what's going to > happen in a case like > [ ["..."] ensure:[Processor activeProcess suspend]] > ensure:[Transcript show: 'been here, done that']] > > but that's too obscure to even think about it ;-) > > Cheers, > - Andreas > > > From trost at cloud.rain.com Wed Sep 3 00:15:07 2003 From: trost at cloud.rain.com (Bill Trost) Date: Sat Jan 28 05:30:06 2012 Subject: problems with Squeak on a Compaq Aero 2100-series running WinCE References: <26146.1062462615@cloud.rain.com> <1062531177.3509.7.camel@laptop.gettys.org> Message-ID: <58776.1062548107@cloud.rain.com> Yoshiki Ohshima writes: You're right. It seems that Aero 2130 is a MIPS device. http://www.is.titech.ac.jp/~ohshima/squeak/WinCE/030206/SqueakVM-alpha6-030206-HPC-MIPS.zip Yes, sorry for not making that explicit. "Compaq Aero" apparently means a number of different things. In any event, I was pretty certain I actually did use the HPC-MIPS binary (the other MIPS binary I saw didn't really work at all), but I downloaded the HPC-MIPS binary from the URL you provided, and now I get different behaviour: When I start squeak.exe, I get prompted for "Main Memory Size", where I can enter a value from 0.0 to 9.9 Mb (no more than that). If I do this and press the "Go!" button, I very, very briefly see a message that says something like, "Your program has performed an illegal operation and will be shut down, contact your vendor if this persists" -- hence this email. (-: or http://www.is.titech.ac.jp/~ohshima/squeak/WinCE/030206/SqueakVM-alpha6-030206-PalmSizePC-MIPS.zip With the latter URL, I get the same prompt, but Squeak just seems to crash outright when I press "Go!" Good suggestions -- got any more? Thanks, Bill From lewis at mail.msen.com Wed Sep 3 01:34:37 2003 From: lewis at mail.msen.com (David T. Lewis) Date: Sat Jan 28 05:30:06 2012 Subject: UnixOSProcessPlugin In-Reply-To: <200309021153.07993.tschwarzkopf@t-online.de>; from tschwarzkopf@t-online.de on Tue, Sep 02, 2003 at 11:53:07AM +0200 References: <200309021153.07993.tschwarzkopf@t-online.de> Message-ID: <20030902213437.A18421@conch.msen.com> On Tue, Sep 02, 2003 at 11:53:07AM +0200, Thomas Schwarzkopf wrote: > > I try to install UnixOSProcessPlugin on my FreeBSD-5.1-CURRENT box > for Squeak-3.4-1. I used the VMMaker tool to generate the C source > code as an external plugin. The relevant file named > UnixOSProcessPlugin.c is placed in > ~/Squeak-3.4-1/src/plugins/UnixOSProcessPlugin. > I followed the instructions given in > ~/Squeak-3.4-1/platforms/unix/doc/HowToBuildFromSource.pdf . > I created a builddirectory, ran configure and tried to make the plugin > inside ~/Squeak-3.4-1/blddir/UnixOSProcessPlugin but i got > several errors: Hi Thomas, The problem is that OSProcessPlugin.c needs to include the FilePlugin.h and SocketPlugin.h header files, which are normally located in directories platforms/Cross/plugins/FilePlugin and platforms/Cross/plugins/SocketPlugin. If you use source from Ian's web site (http://www-sor.inria.fr/~piumarta/squeak), it will automatically set up the include paths so this will work. This is the best thing to do, because Ian keeps it up to date, and the build process will work correctly (including the OSPP build). However, if you want to get your current configuration to build with OSPP, just make a copy (or symlink) of FilePlugin.h and SocketPlugin.h in the src/plugins/UnixOSProcessPlugin directory, and all should be well. Dave From Eric.Scharff at Colorado.EDU Wed Sep 3 02:08:44 2003 From: Eric.Scharff at Colorado.EDU (Eric Scharff) Date: Sat Jan 28 05:30:06 2012 Subject: HELP! with plugins In-Reply-To: <200309021551.10451@ned.bike-nomad.com> Message-ID: > innerLoopX: x y: y limit: escape > > > ^EricsPlugin doPrimitive: 'innerLoopX:y:limit:' withArguments: { x. > y. escape } Thanks Ned and Bob! Both this (and the class method version) worked great. I didn't realize that the InterpreterProxy was so sensitive to method contexts coming from method calls (and not plain doits from a workspace). Now I can test my plugin code without translating it *again* and *again*. :) Thanks again, -Eric From tim at sumeru.stanford.edu Wed Sep 3 03:29:21 2003 From: tim at sumeru.stanford.edu (Tim Rowledge) Date: Sat Jan 28 05:30:06 2012 Subject: squeak exit handler In-Reply-To: References: Message-ID: "ALR" wrote: > Here is the code for having squeak code to handle the windows close message. > Actually the only message handled is windows close, but it could be > interesting to have other system notifications like iconify, sleep etc. Without commenting particularly on the windows code (no windows machine so I can't try it out) I like the general idea of passing in such system events. I actually proposed it as a way to handle host window resize events around jun 2000 or so. The big practical problem seems to me to be that platforms do so many things, so many different ways, that we will probably need to do platform specific handling code in the image. This shouldn't really be a problem but it does mean more effort to make it clean. tim -- Tim Rowledge, tim@sumeru.stanford.edu, http://sumeru.stanford.edu/tim Death is a nonmaskable interrupt. From ajh18 at cornell.edu Wed Sep 3 03:31:35 2003 From: ajh18 at cornell.edu (Anthony Hannan) Date: Sat Jan 28 05:30:06 2012 Subject: Debugger woes Message-ID: <200309030331.h833VfJI012557@gatech.edu> Hi Andreas & Terry, >> I wanted to execute the unwind blocks in the context of the >> terminating process and not the calling process. Meaning if >> an unwind block raises an exception, an exception handler in >> the terminating process will handle it and not one in the >> calling process. > Ah, I see. Is this the "standard" semantics? I don't know. But its seems correct since the programmer writes the ensure: unwind block in the same context as the protected block, and the protected block is assumed to be executed within the handlers of the current thread. > One more question because I'm sure you must have thought > about it: Do you have any idea about an idiom that can be used for > retrieving the active process in the context of a debug session? Yes, "thisContext process". This is also better for a muli-threaded environment. Its semantics is: give me the process that is executing this context. It's not: give me the supposed only process running. To implement it, the bottom context could point to owning process. Or, while Squeak remains single threaded, ContextPart>>process could be a simulation-guard primitive that always fails and returns "Processor activeProcess". When simulating the simulator can catch this guard primitive and return the process being simulated. For your other problem of knowing when a process is being debugged or not, I would generalize your debugger field to a processor field. processor would point to the process or Processor that owns it (running it). I would even combine myList and processor into a single field. So if it is: nil -> no processor, suspended; Processor -> running; queue -> ready to run; Semaphore -> waiting for signal; a Process -> simulating. The processor field would also indicate who has a lock on it. Again, in a multi-processor environment this processor field would be necessary (if we didn't want to search all processors to find out who is running a process). Cheers, Anthony From dway at riskmetrics.com Wed Sep 3 04:42:14 2003 From: dway at riskmetrics.com (Doug Way) Date: Sat Jan 28 05:30:06 2012 Subject: [BUG] #removeLinefeeds missing? In-Reply-To: <200309021358.53380@ned.bike-nomad.com> Message-ID: On Tuesday, September 2, 2003, at 04:58 PM, Ned Konz wrote: > On Monday 01 September 2003 07:58 pm, Joshua 'Schwa' Gargus wrote: > >> The file list menu item for removing linefeeds from a file seems to >> have been broken somewhere between updates 5169 and 5235 (possibly >> 5200?). I'm not digging deeper right now because I'm not too >> familiar with that code, and I'm in the middle of something else. > > I believe that I fixed that. > > BrowseServerCode-nk > FileListCleanup-nk FileListCleanup-nk seems to fix the problem. (By the way, the bug only seems to occur for non .cs/.st files.) FileListCleanup-nk was approved for 3.7alpha. (version 1, at least) I wasn't aware that it fixed any bugs when I marked it for 3.7alpha... it looked like mostly a cleanup/refactoring. Anyway, we could consider it for 3.6 if it fixes this, although it does delete a bunch of methods without deprecating, so it might be a bit risky for 3.6. (Or does it fix a bunch of the other menu items as well?) - Doug From afunkyobject at yahoo.com Wed Sep 3 04:46:08 2003 From: afunkyobject at yahoo.com (Chris Muller) Date: Sat Jan 28 05:30:06 2012 Subject: New version of Magma posted on SqueakMap Message-ID: <20030903044608.74832.qmail@web12205.mail.yahoo.com> 1.0gamma6 - works with Squeak 3.6. Doesn't work with versions before 3.6. - fixed issue with servers that were running when the image was saved (functionality implemented in 1.0gamma5). Fixed similar bug for saving with open local repository connections. - disconnect now cleans up the proxies for that session. Please be patient, this can take a while if you have a lot. Also now cleaning dynamic largeCollection attributes when disconnecting a session. - fixed bug with creating repository using an unqualified file name. - fixed an unnoticed reference to platform-specific code (ByteArray>>unsignedByteAt: uses FFI primitives). - improved the internal system-read-strategy. __________________________________ Do you Yahoo!? Yahoo! SiteBuilder - Free, easy-to-use web site design software http://sitebuilder.yahoo.com From karl.ramberg at chello.se Wed Sep 3 05:41:09 2003 From: karl.ramberg at chello.se (Karl Ramberg) Date: Sat Jan 28 05:30:06 2012 Subject: Documentation, more, more References: <200309021322.19934@ned.bike-nomad.com> Message-ID: <3F557EF3.879A9B25@chello.se> Ned Konz wrote: > The difficulty of keeping documentation, tutorials, etc. up to date is > not unique to Squeak. > > This is a role that a number of people in the Squeak community could > help with. Even if you're new to Squeak, you can help: > > * try out existing documentation and point out its problems > * you can tell the community what documentation you think needs to > exist > * you can update the Swiki to make sure that documentation can be > found I agree. There is lots and lots of documentation. But it needs to be maintained and kept alive, and improved. I don't think there is a lack of documentation, but it can be hard to find and hard to know what to look for. The mailing list archives is also full of good info and could be used as a FAQ. Karl From ducasse at iam.unibe.ch Wed Sep 3 06:25:16 2003 From: ducasse at iam.unibe.ch (Stephane Ducasse) Date: Sat Jan 28 05:30:06 2012 Subject: Documentation, more, more In-Reply-To: Message-ID: <6213D71A-DDD7-11D7-8169-000393B2AA24@iam.unibe.ch> Hi I think that you are mixing things there. If you want to learn squeak read a book. If you want to use for educators go to squeakland.org, by the book of kim or wait a bit to buy my new book. Now I think that even if squeak would have a good technical documentation you would complain that this is not for newbie. So what can I say? If you do not understand this tutorial (or the columns I wrote in french) this means that you should read my book first on teaching novices. http://www.iam.unibe.ch/~ducasse/WebPages/Programmez/OnTheWeb/ SUnitEnglish2.pdf My anwser was about providing a good documentation to Squeak *****programmers*****. stef On Tuesday, September 2, 2003, at 12:58 PM, leftie2100 wrote: > Stephane, > > Without intending it, I do believe you just proved everything I was > attempting to describe about the way the squeak developer community > acts toward educating new users to squeak. > > Now, I personally don't know enough about "tests" to know if they are > a good educational tool or not. However, to find out if they are, you > expect me to search the entire squeak mailing list archive, find a > tutorial on a web page that seems to house books, not tutorials (the > particular tutorial might be located in the pages of one of the > books...I'm not sure... I would have to learn French to find out for > sure), and then once I know what tests are and how to use them, guess > which ones I should learn in what order to learn squeak properly. > > That's not a user-friendly educational environment. I pretty much have > to already know whatever subject I need to learn to have enough > background to figure out how to just find the necessary resources I > would need. > > Why are python and ruby growing like weeds right now? In a large part, > because they reach out to new users and try to help them become > educated in using those tools in the most "newbie-proof" manner > possible. They both have full intro textbooks that can be downloaded > as an introduction to the language. You don't have to have the "most > up-to-date" version of squeak making a intro text obsolete... just > have links to the version used in the text next to the links where you > get the text. The intro to a newbie doesn't have to have all the bells > and whistles. The text would only have to be updated every couple of > years that way. It doesn't have to be a textbook,either. It could be > the equivalent of a big help file or tutorial software. However, it > does need to be structured in a way that a person moved from one > subject they need to learn to the next until they were capable of > programming at a minimum level of competancy. > > > > > > --- In squeak@yahoogroups.com, Stephane Ducasse wrote: >> Hi all >> >> I think that the best, more efficient way of providing documentation >> about Squeak is to write simple tests representing scenario. We cannot >> afford having people write documentation that will get obsolete as >> soon >> as we change something. because Squeak is not a frozen framework but >> something that is moving fast. So all your effort to externalize >> documentations in non executable way are doomed to fail and frustrate >> you. >> >> Tests are the only way to go, sorry if this is hurting. But tests are >> coooooooool, they provide you this guts feelings, "YES it works. I'm >> sure it works". You have to experience that by yourself because this >> is personal but this is a so good feeling. >> >> With test >> - your documentation is always in sync with the code. Just press the >> button and if it is green you are sure, >> - this way we can change the system without fear to breaking >> something >> that would stay not identified, >> - tests represent your trust in the system, >> - Everybody even newbies can write tests >> - If you write tests lot of people will enjoy review them and include >> the into squeak >> >> Tests are like solar energy, they ensure that we will be able to fix >> stuff in the future. Ok they cost a bit more at the beginning but they >> provide a lot more . Developing without test is fun but like nuclear >> energy it endangers our future. >> >> Look at the tests provided for the UUID to understand what I mean. >> >> - daniel wrote a small tests to show how easy is to write tests. >> Daniel will post that soon >> after his trip back from ESUG >> >> - If you want to know more about tests >> - browse my emails in the archive >> - read the tutorial on SUnit available at: >> http://www.iam.unibe.ch/~ducasse/WebPages/Books.html >> >> Stef >> >> Just a real story that happens to me yesterday. >> I was coding something and nearly there without any tests because I'm >> lazy and this was trivial when I realized that a special case could >> break everything I did. This was boring, frustrating and too complex >> after a day of work. So I started to write 4 tests. It took me around >> one hour really slowly to pay attention to have a simple scenario for >> each of my cases. Then I recoded everything running the tests in 15 >> minutes. >> At the end all the tests passed green and I was done. DONE with the >> feeling YES it works I can go home coooool and sure that I did it >> right. During the night I run my application to extract a big db and >> it >> worked. Now if it happens that I still have a bug, I will start first >> writing a test and fix it. >> >> >> >> >> On Monday, September 1, 2003, at 01:21 PM, Gary Fisher wrote: >> >>> Hi, Leftie! >>> >>> (I happen to be profoundly sinistral myself, by the way, and quite >>> happy >>> about it. :-) >>> >>> One reason Squeak documentation can appear to be hard to find is that >>> there >>> are multiple versions or aspects (or perhaps viewpoints) of Squeak. >>> Much of >>> the Squeak-Dev view exists primarily to hone the cutting edge of >>> Squeak; a >>> good deal of what's here is experimental, even speculative, and may >>> never >>> get beyond that stage. A substantial portion of the Squeak-Dev view >>> is more >>> practical or explanatory, though it still leans more toward advancing >>> the >>> user than simply to plonking him or her down in a quiet spot. This >>> list >>> tends to have a headlong feel. >>> >>> For a viewpoint more suited to teaching (with) Squeak, you might find >>> Squeakland (www.Squeakland.org) and the list available there more to >>> your >>> liking. The Squeakland site and list are devoted much more to >>> practica, >>> based on the most current "stable" version of Squeak rather than the >>> development version du jour. >>> >>> If you're looking for the fastest way to get working with Squeak, >>> however, >>> you might find one or more of the published references best suited to >>> your >>> needs. Mark Guzdial's books, in particular, can take you from >>> installation >>> to coding to eventual understanding in what may well be the shortest >>> possible time, though by necessity any printed text will be based on >>> the >>> version of Squeak available at the time of printing (included on > the CD >>> bound with each book), which will of course not be the most current >>> version. >>> Nevertheless, moving independently from a good working knowledge of >>> an >>> earlier Squeak to today's version will probably be easier than coming >>> in >>> directly from complete Newbiedom. I purchased my copies of Mark's >>> books at >>> a local book store (a good opportunity to encourage them to stock >>> more >>> Squeak and Smalltalk books) but a quick Amazon search will bring up >>> both new >>> and used copies at good prices. >>> >>> I hope that helps. >>> >>> Gary Fisher >>> >>> ----- Original Message ----- >>> From: "leftie2100" >>> To: "The general-purpose Squeak developers list" >>> >>> Sent: Sunday, August 31, 2003 6:19 PM >>> Subject: Re: Documentation, more, more >>> >>> >>> Considering the supposed emphasis on using Squeak as a teaching tool, >>> I guess I find these reasons to be a really poor excuse. What good is >>> a great tool to the public as a whole if the only people who can use >>> it are the developers? >>> >>> The lead developers need to make development of good documentation >>> just as central to releases as the code itself. Until they demand >>> that >>> documentation be completed and updated before software is released, >>> it >>> won't be. The lead developers need to take charge of the >>> documentation >>> process instead of allowing themselves to let others take this >>> "chore" >>> off their hands. The attitude I'm seeing here that the documentation >>> is a necessary evil that must be "grinded out' sounds like it very >>> well could be a significant part of the problem. Writing can be fun >>> to >>> do if you go about it in a light-hearted fashion and that type of >>> writing also engages the reader. >>> >>> Personally, I know a bit about writing, but I know nothing about >>> programming. I'm a programming newbie that would really like to >>> learn >>> Squeak, but I'm pretty much kept from doing that because of your >>> current documentation situation. I read this list because I keep >>> hoping I'll read some new focused learning resources have been >>> created. So when I read that many feel "coding is fun, documentation >>> is not" on the threads, it doesn't do much for my confidence that >>> I'll >>> ever get the chance to use Squeak. >>> >>> If you guys really want to be the Squeak evangalists you seem to all >>> claim you want to be, you're going to have to have a complete >>> attitude >>> change about things like complete centralized documentation and the >>> creation of Squeak programming texts for those new to programming. >>> >>> >>> >>> >>> >>> >>> --- In squeak@yahoogroups.com, goran.krampe@b... wrote: >>>> Hi David! >>>> >>>> David wrote: >>>> [SNIP of ramblings :-) about documentation] >>>>> I'll apologize again for asking stupid questions like the ones > above, >>>>> and now I'll sit down and be quiet. >>>> >>>> Those of us who have been in the community for some time, and I > am not >>>> sure how long you have been here, tend to feel that people asking >>>> the >>>> community to "change" or to "Hey, you should do *this*!" don't >>>> really >>>> understand how this community works and generally gets little >>>> attention >>>> and might even piss people off. ;-) >>>> >>>> Let me be very frank and very disillusioned for a few seconds: >>>> >>>> 1. There have been A LOT of efforts starting to document Squeak. >>>> They >>>> all seem to "fade away". Nothing wrong with trying though - just > don't >>>> think it hasn't been done before! Really. I am not kidding. >>>> >>>> 2. People do what they like to do. Coding is fun. Documentation is >>>> not. >>>> >>>> 3. Even though it is a harsh and perhaps annoying mantra - the "Ok, >>>> then >>>> why don't *you* do it?" logic still applies. Talking doesn't > count for >>>> much. >>>> >>>> >>>> Ok, given the above - what can then be done that will actually have >>>> a >>>> slight chance to *succeed*? My take on this (which of course may be >>>> totally off) is: >>>> >>>> - Whatever you try to do, do it *yourself*. Don't try to talk others >>>> into it. "If you build it, they will come". This is at least my >>>> experience with SM. >>>> >>>> - Documentation is all about keeping it fresh. I have earlier > proposed >>>> to try to bind documentation with the Unit tests. I still think > it is >>>> a >>>> great idea (check archives to see what I mean). In other words, the >>>> docs >>>> must be tied to the image and tha packages, it can't live on its > own. >>>> SM >>>> is of course a pillar to lean on in this case. IMHO class comments >>>> belong with the class - not on a swiki. >>>> >>>> - As with most things accepted in the community it very often comes >>>> down >>>> to good tools. SM is successful, but didn't render much interest > until >>>> the Morphic package tool came onto the scene. BFAV has been > successful >>>> becuase of similar reasons. The Magic Book concept (see Swiki - and >>>> how >>>> ironic? :-)) I sketched on earlier is based on this idea. >>>> >>>> So... in short: >>>> >>>> If *you* build *The Magic Book* tool and incorporate ideas to tie >>>> stuff >>>> with Unit tests or similar mechanisms that ensure things don't get >>>> stale >>>> - *then* something might happen. :-) >>>> >>>> My 2 cents, G?ran >>> >>> >>> > > > From martin.drautzburg at web.de Wed Sep 3 08:42:02 2003 From: martin.drautzburg at web.de (Martin Drautzburg) Date: Sat Jan 28 05:30:07 2012 Subject: [Q] handling complex selection In-Reply-To: <200309021332.13959@ned.bike-nomad.com> References: <87he3wbpem.fsf@web.de> <200309021332.13959@ned.bike-nomad.com> Message-ID: <87oey2felh.fsf@web.de> Ned Konz writes: > On Monday 01 September 2003 06:37 am, Martin Drautzburg wrote: > > > This is a general model/view question. > > > > SearchResultView (model: SearchResult) > > AddressView (Address) > > AddressItemView (AddressItem) > [clip] > > What is the best way the get the information that a view is > > selected out of a deeply nested submorph hierarchy ? > > By providing an object that can broadcast such a change and can still > be found. Perhaps the root morph of the hierarchy. Tanks. Yes I'll do it this way. From martin.drautzburg at web.de Wed Sep 3 08:57:51 2003 From: martin.drautzburg at web.de (Martin Drautzburg) Date: Sat Jan 28 05:30:07 2012 Subject: [Q]Populating magma with a large tree In-Reply-To: <20030902162251.18113.qmail@web12207.mail.yahoo.com> References: <20030902162251.18113.qmail@web12207.mail.yahoo.com> Message-ID: <87k78qfdv4.fsf@web.de> Chris Muller writes: > A MagmaCollection is just like any other Collection in terms of referencing > objects, so yes, it is in there. If you added your node to an > OrderedCollection then it would be in your Tree as well as the > OrderedCollection. Removing the node from your Tree would not remove it from > the OrderedCollection, and it would not be gc'd, since it is still referenced > by the OrderedCollection. For a normal Collection I understand this. But a MagmaCollection is nothing I would want to hold in memory. Suppose I have a million tree nodes and all of them are in the AllNodes MagmaCollection. I remove all references in memory, so I have zero nodes in memory. Then I traverse the tree from Magma root until I hit a leaf. If I have to go 6 levels I will have a minimum 6 Nodes in memory by then. I didn't touch the AllNodes MagmaCollection so far. When I remove the leaf from the AllNodes Collection, how many nodes will materialize ? None (because the only node I need is already in memory) or a million ? What happens if I ask AllNodes size. Will any nodes materialize ? From cdshaffer at acm.org Wed Sep 3 01:27:33 2003 From: cdshaffer at acm.org (C. David Shaffer) Date: Sat Jan 28 05:30:07 2012 Subject: problems building a working squeak 3.4-1 for Redhat linux 9 Message-ID: <16213.17285.887820.472997@aslan.cs.westminster.edu> Hello, I've been frustrated by my inability to build a working squeak VM for some time now. I've messed around with it for quite some time, read the relevant wiki pages and never gotten anywhere. So, I'd appreciate a helping hand if anyone is willing to lend one... I can't build a working squeak (from the sources provided on Ian's web site for 3.4-1) under Redhat 9 (I'm not trying to imply that it is a Redhat version specific problem...I had similar problems under RH8). I follow the README: running configure with no opts, doing a make and make install. The VM and plugins build and install but they are not usable. Attached is the debug file I get when running using my VM from the 3.4 image that you supplied. Also, here is a link to a screen shot of what I see when I bring up the image. http://www.cs.westminster.edu/~shaffer/squeak.png Any guidance would be appreciated. David Shaffer Department of Math/CS Westminster College -------------- next part -------------- A non-text attachment was scrubbed... Name: SqueakDebug.log Type: application/octet-stream Size: 3075 bytes Desc: SqueakDebug.log Url : http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20030902/2d9cc339/SqueakDebug.obj From bert at isg.cs.uni-magdeburg.de Wed Sep 3 10:05:59 2003 From: bert at isg.cs.uni-magdeburg.de (Bert Freudenberg) Date: Sat Jan 28 05:30:07 2012 Subject: problems building a working squeak 3.4-1 for Redhat linux 9 In-Reply-To: <16213.17285.887820.472997@aslan.cs.westminster.edu> References: <16213.17285.887820.472997@aslan.cs.westminster.edu> Message-ID: <3F55BD07.6070807@isg.cs.uni-magdeburg.de> C. David Shaffer wrote: > I can't build a working squeak (from the sources provided on Ian's web > site for 3.4-1) Yes it's broken. > Any guidance would be appreciated. All known issues have been fixed in the 3.6 VM. Grab it from Ian's page. Even the RPMs should work fine. -- Bert From traymond at craftedsmalltalk.com Wed Sep 3 13:02:16 2003 From: traymond at craftedsmalltalk.com (Terry Raymond) Date: Sat Jan 28 05:30:07 2012 Subject: Debugger woes In-Reply-To: <004b01c371ae$ab2a7340$1cb8fea9@atlantis> Message-ID: <002001c3721b$9a88b5c0$017ba8c0@cx1191994a> Andreas, Anthony Comparing the croquet scheduling issues to a typical real-time system the information about scheduling a process is delegated to the scheduler and a process table. In smalltalk the process table would be integrated into the process so I would expect a CroquetProcess to be a subclass of Process and contain the various parameters needed to determine its deadline. Having a CroquetProcess would also allow you to specialize #terminate to insure the correct action occurs. You could also have a #debuggerClass method that returns the proper debugger class. However, I think it is better to place the specialization in the process rather than in the debugger. You never know what other debugger like things some tool may want to do in the future. As far as having a debugger variable in the process is concerned, VW has an environment ivar which is a dictionary. When a process is debugged a #debugger variable is added to the dictionary. When the process is continued by the debugger the variable should be removed(I just noticed that is is not removed, a bug). Terry =========================================================== Terry Raymond Smalltalk Professional Debug Package Crafted Smalltalk *Breakpoints* and *Watchpoints* for 80 Lazywood Ln. VW and ENVY/Developer Tiverton, RI 02878 (401) 624-4517 traymond@craftedsmalltalk.com http://www.craftedsmalltalk.com =========================================================== > -----Original Message----- > From: squeak-dev-bounces@lists.squeakfoundation.org > [mailto:squeak-dev-bounces@lists.squeakfoundation.org]On Behalf Of > Andreas Raab > Sent: Tuesday, September 02, 2003 8:02 PM > To: traymond@craftedsmalltalk.com; > squeak-dev@lists.squeakfoundation.org; 'Anthony Hannan' > Subject: RE: Debugger woes > > > Hi Terry, > > > I don't have a version of Squeak as I am just a lurker. > > However, I think I can help considering I wrote the latest > > version of the VW PDP debugger. > > Thanks, it's great to have a third opinion on these issues. > > > Andreas's concern about the croquet real-time scheduler > > is an additional wrinkle. But, from an Squeak perspective > > it would be better if the debugger did not have to > > address special croquet concerns. > > I agree but that was essentially the reason why I wanted to be able to > handle most of the debugging activities "outside" of the process being > simulated so that (for example) a CroquetProcess might use a > CroquetDebugger > instead of a "normal" one. This is why I said it would be > nice to have an > association between the debugged process and its debugger so > the process can > simply pass requests on to the debugger "just in case" some > special action > needs to happen. In the default case these actions may do > nothing so it > would be simple to substitute debuggers for varying needs. > > > In vw I would solve > > using a normal exception handler. When a process is > > terminated in VW, a terminate exception is raised. > > This isn't currently the case in Squeak. > > > A croquet process could catch this exception and not allow > > it to continue if the process was being debugged. The > > handler could optionally extend the deadline or place it > > into a special state so the scheduler. To make this > > consistent the process would also have to be notified > > when it was resumed by the debugger. This could be > > done by adding a #resumeByDebugger method to Process > > that raises an exception when resumed by the debugger. > > This would allow the process to properly change its > > deadline. > > Right. If you follow down this path (which is certainly > doable) you end up > with essentially the same mechanisms that I was describing - > just bundled up > in one place (class Process) and using tons of not-too-nice ways of > interactions along context chains (what happens if there is a > catch-all > handler somewhere on the stack? Just recently David used one > ;) So what I'm > really arguing for here is a better separation of concerns and a > teenie-weenie bit of explicit knowledge within class Process > about whether > it may be debugged or not. > > Also, note that the situation of process termination is a > minor aspect for > Croquet. Termination semantics are well enough defined and > the standard > semantics of Squeak processes work just fine for it. It's the actual > debugging activity, all the sends involved where we may have > to deal with > the fact that the current process is being debugged and may > therefore have > "slightly different" rules. > > Cheers, > - Andreas > > > From Dan at SqueakLand.org Wed Sep 3 13:50:25 2003 From: Dan at SqueakLand.org (Dan Ingalls) Date: Sat Jan 28 05:30:07 2012 Subject: Squeak.org down In-Reply-To: <3F54AD7A.5080104@isg.cs.uni-magdeburg.de> References: <3F54AD7A.5080104@isg.cs.uni-magdeburg.de> Message-ID: Folks - GISOL changed their billing procedure so that it required reestablishing automatic billing. When the issue came up it caught me travelling. I'm on it now, and when I can make it through their reptillian support system, things should be restored. My apologies for the glitch. - Dan From afunkyobject at yahoo.com Wed Sep 3 14:55:20 2003 From: afunkyobject at yahoo.com (Chris Muller) Date: Sat Jan 28 05:30:07 2012 Subject: [Q]Populating magma with a large tree In-Reply-To: <87k78qfdv4.fsf@web.de> Message-ID: <20030903145520.60623.qmail@web12201.mail.yahoo.com> --- Martin Drautzburg wrote: > Chris Muller writes: > > > A MagmaCollection is just like any other Collection in terms of referencing > > objects, so yes, it is in there. If you added your node to an > > OrderedCollection then it would be in your Tree as well as the > > OrderedCollection. Removing the node from your Tree would not remove it > from > > the OrderedCollection, and it would not be gc'd, since it is still > referenced > > by the OrderedCollection. > > For a normal Collection I understand this. But a MagmaCollection is > nothing I would want to hold in memory. You need the MagmaCollection to support the indexed access you mentioned you wanted. There is no memory-resource reason to not hold a MagmaCollection in memory since it only consumes one "page" of objects at a time, regardless of its size. > Suppose I have a million tree nodes and all of them are in the > AllNodes MagmaCollection. I remove all references in memory, so I have > zero nodes in memory. Then I traverse the tree from Magma root until I > hit a leaf. If I have to go 6 levels I will have a minimum 6 Nodes in > memory by then. I didn't touch the AllNodes MagmaCollection so far. Once you know you're done with a node, you can tell your session to stubOut: that node. mySession stubOut: myNode This method uses become: as well as removeKey:, which can be slow in Squeak, so you need to chop as high up and as infrequently as possible. For example if, after traversing the six nodes you're done with them, you could just stubOut: the root node, and all that it reference will no longer be referenced. I wouldn't recommend stubbing after every node encountered since it might be slow. > When I remove the leaf from the AllNodes Collection, how many nodes > will materialize ? None (because the only node I need is already in > memory) or a million ? None. But I thought you were using the MagmaCollection so you could find any node by some index key. So you're only removing them from AllNodes when you remove it from your graph, correct? Keep in mind that MagmaCollections keep one "page" (one or two hundred, I don't have the code in front of me at the moment to check exactly) of its objects in memory at any one time. You can customize this (see #pageSize:). As you access parts of the collection that are outside of the in-memory page, the new page is brought in automatically and the old one is discarded allowing memory to be reclaimed (assuming your program isn't referencing the objects in the old page through some other in-memory object). > What happens if I ask AllNodes size. Will any nodes materialize ? No. To sum up, in terms of "referencing", MagmaCollections act like OrderedCollections. It's just that they don't take up memory for all objects they reference at a time. Does this help? - Chris __________________________________ Do you Yahoo!? Yahoo! SiteBuilder - Free, easy-to-use web site design software http://sitebuilder.yahoo.com From renggli at student.unibe.ch Wed Sep 3 16:55:16 2003 From: renggli at student.unibe.ch (renggli@student.unibe.ch) Date: Sat Jan 28 05:30:07 2012 Subject: [ENH] ThreadAwareCeleste Message-ID: <200309031655.h83GtGOs023773@obelix.spectraweb.ch> from preamble: "Change Set: ThreadAwareCeleste Date: 3 September 2003 Author: Lukas Renggli Preserves the thread-id of messages when replaying to a thread with celeste. This is extremly usefull for people like me not using celeste to read the Squeak mailing-list but a thread-aware client ;-)"! -------------- next part -------------- A non-text attachment was scrubbed... Name: ThreadAwareCeleste.cs.gz Type: application/octet-stream Size: 912 bytes Desc: not available Url : http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20030903/b76aafd2/ThreadAwareCeleste.cs.obj From dway at riskmetrics.com Wed Sep 3 21:57:47 2003 From: dway at riskmetrics.com (Doug Way) Date: Sat Jan 28 05:30:07 2012 Subject: Inlining an html file/page on a swiki Message-ID: <3F5663DB.10903@riskmetrics.com> This was brought up on the SqF list... is it possible to inline an html file/page in a swiki page? If not, is anyone interested in adding this feature? - Doug Ian Piumarta wrote: > I think this might just be it. > >> I'm not sure if it's still true but it used to be possible to make a >> swiki page that would inline another file/page. > > > And if it won't (or no longer can), let's change it so that it will. -------- Original Message -------- Subject: RE: [Squeakfoundation][Fwd: Re: installing squeak on Debian Woody] Date: Mon, 01 Sep 2003 19:06:45 -0800 From: Tim Rowledge Reply-To: Discussing the Squeak Foundation To: squeakfoundation@lists.squeakfoundation.org References: <002b01c370f5$6a925820$1cb8fea9@atlantis> "Andreas Raab" wrote: > Excellent! That brings up a thought experiment of my own. What if ... you > would merely add a script which inserts your auto-generated matrix into such > a download page? It's a Swiki after all chosen particularly for the ability > to quickly and easily modify and update things. I really don't care how > people update the page - if the process is automated, all the better! I'm not sure if it's still true but it used to be possible to make a swiki page that would inline another file/page. Seems to me that this would make a dandy way to include automagically (or statically) generated sections of The One True Download Table from each port maintainer's favoured place. All we have to do then is agree on the canonical html snippet that will produce the table layout of our dreams. tim -- Tim Rowledge, tim@sumeru.stanford.edu, http://sumeru.stanford.edu/tim Strange OpCodes: HEM: Hide Evidence of Malfunction _______________________________________________ Squeakfoundation mailing list Squeakfoundation@lists.squeakfoundation.org http://lists.squeakfoundation.org/listinfo/squeakfoundation From ian.piumarta at inria.fr Wed Sep 3 22:08:20 2003 From: ian.piumarta at inria.fr (Ian Piumarta) Date: Sat Jan 28 05:30:07 2012 Subject: Inlining an html file/page on a swiki In-Reply-To: <3F5663DB.10903@riskmetrics.com> Message-ID: On Wed, 3 Sep 2003, Doug Way wrote: > > This was brought up on the SqF list... is it possible to inline an html > file/page in a swiki page? If not, is anyone interested in adding this > feature? I've already talked Mark G about this, who forwarded my questions to the local Swiki hacker at gatech who indicated (1) he finds the idea abhorrent and (2) he has no interest in wasting his time on it. So I've been wasting lots (more) of mine instead... I'm currently trying to persuade lynx to -post_data successfully to the Swiki, but giving it http://minnow.cc.gatech.edu/squeak/3382.save with the encoded form data (containing new encoded content for 3382) yields only Looking up minnow.cc.gatech.edu minnow.cc.gatech.edu Making HTTP connection to minnow.cc.gatech.edu Sending HTTP request. HTTP request sent; waiting for response. Alert!: Unexpected network read error; connection aborted. Can't Access `http://minnow.cc.gatech.edu/squeak/3382.save' Alert!: Unable to access document. and I'm rapidly approaching timeout and a unilateral secession from any idea of maintaining up-to-date download links on the Swiki. Ian (somewhat grumpily ;) From dway at riskmetrics.com Wed Sep 3 22:44:55 2003 From: dway at riskmetrics.com (Doug Way) Date: Sat Jan 28 05:30:07 2012 Subject: Debugger woes In-Reply-To: <200309030331.h833VfJI012557@gatech.edu> References: <200309030331.h833VfJI012557@gatech.edu> Message-ID: <3F566EE7.7030003@riskmetrics.com> I was going to move 3.6 to gamma on Monday, but I'm holding off for a few days until this discussion comes to some sort of resolution. Hopefully we will be able to make a smallish change/addition/reorganization to provide something "good enough" for Croquet to be able to move to 3.6? We don't want to make a large/destabilizing change at this point in 3.6beta (like for example Anthony's original context changes for 3.6alpha, which were important, but caused lots of side effects for the debugger which had to be fixed). Anyway, something to keep in mind during the discussion. :-) - Doug Anthony Hannan wrote: >Hi Andreas & Terry, > > > >>>I wanted to execute the unwind blocks in the context of the >>>terminating process and not the calling process. Meaning if >>>an unwind block raises an exception, an exception handler in >>>the terminating process will handle it and not one in the >>>calling process. >>> >>> > > > >>Ah, I see. Is this the "standard" semantics? >> >> > >I don't know. But its seems correct since the programmer writes the >ensure: unwind block in the same context as the protected block, and the >protected block is assumed to be executed within the handlers of the >current thread. > > > >>One more question because I'm sure you must have thought >>about it: Do you have any idea about an idiom that can be used for >>retrieving the active process in the context of a debug session? >> >> > >Yes, "thisContext process". This is also better for a muli-threaded >environment. Its semantics is: give me the process that is executing >this context. It's not: give me the supposed only process running. To >implement it, the bottom context could point to owning process. Or, >while Squeak remains single threaded, ContextPart>>process could be a >simulation-guard primitive that always fails and returns "Processor >activeProcess". When simulating the simulator can catch this guard >primitive and return the process being simulated. > >For your other problem of knowing when a process is being debugged or >not, I would generalize your debugger field to a processor field. >processor would point to the process or Processor that owns it (running >it). I would even combine myList and processor into a single field. So >if it is: > nil -> no processor, suspended; > Processor -> running; > queue -> ready to run; > Semaphore -> waiting for signal; > a Process -> simulating. >The processor field would also indicate who has a lock on it. Again, in >a multi-processor environment this processor field would be necessary >(if we didn't want to search all processors to find out who is running a >process). > >Cheers, >Anthony > > From nadja at cc.gatech.edu Wed Sep 3 22:49:06 2003 From: nadja at cc.gatech.edu (Jochen F. Rick) Date: Sat Jan 28 05:30:07 2012 Subject: [swiki-bugs] Re: Inlining an html file/page on a swiki In-Reply-To: References: <3F5663DB.10903@riskmetrics.com> Message-ID: <20030903224906.GF11274@cc.gatech.edu> Why don't you just use Squeak instead of lynx. It's pretty easy. Peace and Luck! Je77 On Thu, Sep 04, 2003 at 12:08:20AM +0200, Ian Piumarta wrote: > On Wed, 3 Sep 2003, Doug Way wrote: > > > > This was brought up on the SqF list... is it possible to inline an html > > file/page in a swiki page? If not, is anyone interested in adding this > > feature? > > I've already talked Mark G about this, who forwarded my questions to the > local Swiki hacker at gatech who indicated (1) he finds the idea abhorrent > and (2) he has no interest in wasting his time on it. > > So I've been wasting lots (more) of mine instead... > > I'm currently trying to persuade lynx to -post_data successfully to the > Swiki, but giving it http://minnow.cc.gatech.edu/squeak/3382.save with the > encoded form data (containing new encoded content for 3382) yields only > > Looking up minnow.cc.gatech.edu > minnow.cc.gatech.edu > Making HTTP connection to minnow.cc.gatech.edu > Sending HTTP request. > HTTP request sent; waiting for response. > Alert!: Unexpected network read error; connection aborted. > Can't Access `http://minnow.cc.gatech.edu/squeak/3382.save' > Alert!: Unable to access document. > > and I'm rapidly approaching timeout and a unilateral secession from any > idea of maintaining up-to-date download links on the Swiki. > > Ian (somewhat grumpily ;) From ian.piumarta at inria.fr Wed Sep 3 23:00:00 2003 From: ian.piumarta at inria.fr (Ian Piumarta) Date: Sat Jan 28 05:30:07 2012 Subject: [swiki-bugs] Re: Inlining an html file/page on a swiki In-Reply-To: <20030903224906.GF11274@cc.gatech.edu> Message-ID: On Wed, 3 Sep 2003, Jochen F. Rick wrote: > Why don't you just use Squeak instead of lynx. It's pretty easy. Well, because I really don't want to launch Squeak from a Makefile (nor from a cron job) just to patch a line or two in a teeny text file that's coming straight out of sh and m4. I'd far rather just pipe it straight into lynx -- or into curl, which seems to be giving much better results. (But the lynx behaviour might indicate a problem somewhere -- and probably not in lynx.) I hope your filestore doesn't fill up with stale 3382s before I finally figure this out... ;) Ian From julian at beta4.com Wed Sep 3 23:18:31 2003 From: julian at beta4.com (Julian Fitzell) Date: Sat Jan 28 05:30:07 2012 Subject: True>>ifFalse: and False>>ifTrue: returning nil Message-ID: <3F5676C7.3090901@beta4.com> Does anyone know why True>>ifFalse: returns nil instead of self like, say, ProtoObject>>ifNil: does? My understanding was that the #ifFoo: methods would all evaluate the parameter if the assertion was correct and return self otherwise. Is there a reason for this or is it a bug? Julian From water at tunes.org Wed Sep 3 23:32:07 2003 From: water at tunes.org (Brian T Rice) Date: Sat Jan 28 05:30:07 2012 Subject: True>>ifFalse: and False>>ifTrue: returning nil In-Reply-To: <3F5676C7.3090901@beta4.com> References: <3F5676C7.3090901@beta4.com> Message-ID: >From the comment: "Since the condition is true, the value is the true alternative, which is nil. Execution does not actually reach here because the expression is compiled in-line." I think it's been debated here before, but the gist is that the alternative to a block result is "nothing" or "no-object", hence nil. On Wed, 3 Sep 2003, Julian Fitzell wrote: > Does anyone know why True>>ifFalse: returns nil instead of self like, > say, ProtoObject>>ifNil: does? My understanding was that the #ifFoo: > methods would all evaluate the parameter if the assertion was correct > and return self otherwise. Is there a reason for this or is it a bug? > > Julian > > -- Brian T. Rice LOGOS Research and Development http://tunes.org/~water/ From andreas.raab at gmx.de Wed Sep 3 23:33:20 2003 From: andreas.raab at gmx.de (Andreas Raab) Date: Sat Jan 28 05:30:07 2012 Subject: Debugger woes In-Reply-To: <3F566EE7.7030003@riskmetrics.com> Message-ID: <002401c37273$c73d3a70$1cb8fea9@atlantis> Doug, > I was going to move 3.6 to gamma on Monday, but I'm holding off for a > few days until this discussion comes to some sort of resolution. Don't wait. This discussion will have absolutely no impact on 3.6. We won't rewrite the debugger "last minute" before a release anyway and for me, it's mostly trying to understand some of the larger tradeoffs better. The discussion with Anthony and Terry is really helpful for me to get a better understanding about some of the associated issues and to bounce a few design ideas off people who understand what they're doing ;-) > Hopefully we will be able to make a smallish > change/addition/reorganization to provide something "good enough" for > Croquet to be able to move to 3.6? We don't want to make a > large/destabilizing change at this point in 3.6beta (like for example > Anthony's original context changes for 3.6alpha, which were > important, but caused lots of side effects for the debugger > which had to be fixed). > > Anyway, something to keep in mind during the discussion. :-) Nothing to keep in mind for 3.6 though ;-) Cheers, - Andreas From shaffer-squeak at aslan.cs.westminster.edu Wed Sep 3 13:05:43 2003 From: shaffer-squeak at aslan.cs.westminster.edu (shaffer-squeak@aslan.cs.westminster.edu) Date: Sat Jan 28 05:30:07 2012 Subject: problems building a working squeak 3.4-1 for Redhat linux 9 In-Reply-To: <3F55BD07.6070807@isg.cs.uni-magdeburg.de> References: <16213.17285.887820.472997@aslan.cs.westminster.edu> <3F55BD07.6070807@isg.cs.uni-magdeburg.de> Message-ID: <16213.59175.840639.701559@oscar.westminster.edu> Bert Freudenberg writes: > C. David Shaffer wrote: > > > I can't build a working squeak (from the sources provided on Ian's web > > site for 3.4-1) > > Yes it's broken. Ian sent me these comments and this fix which worked perfectly: The first thing to check is your "config.h" file, in the build directory, to make sure it contains the following lines near the end (they affect the way Floats are laid out in memory) /* #undef WORDS_BIGENDIAN */ /* #undef DOUBLE_WORD_ALIGNMENT */ #define DOUBLE_WORD_ORDER 1 _exactly_ as shown here. If they are any different in your config.h then you have a configuration problem, most likely caused by the compiler "optimising out of existence" one of the tests for float characteristics in the "configure" script. A quick-and-dirty fix would be to simply edit config.h by hand so they are correct, then delete all ".o" and ".a" files under your build directory, and recompile. > > > Any guidance would be appreciated. > > All known issues have been fixed in the 3.6 VM. Grab it from Ian's page. > Even the RPMs should work fine. Thanks! I've played with 3.6 but it still appears to have problems on my machine. None of the 3D stuff seems to work at all. I'd be happy to be more specific if anyone (Ian?) needs to know the details of the problems and/or my configuration. David cdshaffer@acm.org From basile at starynkevitch.net Wed Sep 3 15:58:12 2003 From: basile at starynkevitch.net (Basile STARYNKEVITCH) Date: Sat Jan 28 05:30:07 2012 Subject: GUIS widget server v1.3 Message-ID: <16214.3988.759789.266393@hector.lesours> Dear All, Long time ago (Tue, 27 Aug 2002) Aaron wrote on this list http://lists.squeakfoundation.org/pipermail/squeak-dev/2002-August/043579.html about my Guis server. It is now more stable and more usuable. Look into http://www.starynkevitch.net/Basile/guisdoc.html and fetch the latest release, which is today (september 3rd 2003) 1.3.2 on http://www.starynkevitch.net/Basile/guis-1.3.2.tar.gz The big changes since a year ago is that almost all of Gtk2 is supported and that the scripting language is now Python2.2 (with PyGTK2 binding to GTK2) or Ruby1.8 (with ruby-gnome2 binding to GTK2). (Guis is opensource under GPL license) regards -- Basile STARYNKEVITCH http://starynkevitch.net/Basile/ email: basilestarynkevitchnet aliases: basiletunesorg = bstarynknerimnet 8, rue de la Fa?encerie, 92340 Bourg La Reine, France From andreas.raab at gmx.de Wed Sep 3 23:54:55 2003 From: andreas.raab at gmx.de (Andreas Raab) Date: Sat Jan 28 05:30:07 2012 Subject: [VM] Getting closure activation speed up to par In-Reply-To: <002401c37273$c73d3a70$1cb8fea9@atlantis> Message-ID: <002501c37276$c9112fc0$1cb8fea9@atlantis> Hi Anthony, [Note: cc-ing Squeak-dev since some other VM hackers might want to chime in here] I've been recently (as in: today ;) been reminded that we should really make use of the new block closures (for which primitive support will be in any new VMs as they are part of VMMaker-3.6). IIRC, then only significant downside is activation speed which - according to your notes - was at about half of what using BlockContexts were today. So what ways do we have to bring their activation speed closer to the speed of block activation today? I don't know if you've done any exhaustive measures to figure out where the time actually goes but my feeling is that there is a good chance that we may be overlooking something in general activation speed. Question: Do you have any feeling whatsoever, where the additional time is spent? Is is just context allocation? Somehow I don't quite think this would be the case as we should be pretty good with the context recycling here. Any other ideas where time is spent, what we may be able to short-cut specifically for block (as opposed to: general method) activation? One thought that occured to me is that there's some potential that the byte codes for #value/#value: could make some difference. This may not be much but there's definitely some overhead here so we may consider to make those bytecodes support closure activation instead of optimizing for BlockContexts as they do today - in particular as this would allow us to use the #internalXYZ variants for activating the closure, which would get inlined into the VM, etc. etc. etc. If you have any thoughts on this I'd be delighted to hear them. Making the closures as fast (or very close to) what we have in BlockContexts today would be a great step forward for (finally) getting true closures to work in Squeak. And perhaps be a perfect little project for 3.7alpha ;-) Cheers, - Andreas From julian at beta4.com Thu Sep 4 00:07:28 2003 From: julian at beta4.com (julian@beta4.com) Date: Sat Jan 28 05:30:07 2012 Subject: [ENH] doWhile-control-structures-jf Message-ID: from preamble: "Change Set: doWhile-control-structures-jf Date: 3 September 2003 Author: Julian Fitzell Add #doWhileTrue: and #doWhileFalse: to BlockContext. They evaluate the receiver once, and then continue to do so every time the condition block passed in is true or false (respectively). This is similar to the do...while control structure in many other languages. These methods are much more intention revealing than having to use #whileTrue or #whileFalse and combining your loop block and your condition block into one. Also, this way you can get the return value of the last loop block iteration."! -------------- next part -------------- A non-text attachment was scrubbed... Name: doWhile-control-structures-jf.cs.gz Type: application/octet-stream Size: 581 bytes Desc: not available Url : http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20030903/757d0051/doWhile-control-structures-jf.cs.obj From ducasse at iam.unibe.ch Thu Sep 4 06:06:14 2003 From: ducasse at iam.unibe.ch (Stephane Ducasse) Date: Sat Jan 28 05:30:07 2012 Subject: Inlining an html file/page on a swiki In-Reply-To: Message-ID: We were thinking to add this functionality in SmallWiki and all kinds of other functionality to help wiki administrators.... Stef On Thursday, September 4, 2003, at 12:08 AM, Ian Piumarta wrote: > On Wed, 3 Sep 2003, Doug Way wrote: >> >> This was brought up on the SqF list... is it possible to inline an >> html >> file/page in a swiki page? If not, is anyone interested in adding >> this >> feature? > > I've already talked Mark G about this, who forwarded my questions to > the > local Swiki hacker at gatech who indicated (1) he finds the idea > abhorrent > and (2) he has no interest in wasting his time on it. > > So I've been wasting lots (more) of mine instead... > > I'm currently trying to persuade lynx to -post_data successfully to the > Swiki, but giving it http://minnow.cc.gatech.edu/squeak/3382.save with > the > encoded form data (containing new encoded content for 3382) yields only > > Looking up minnow.cc.gatech.edu > minnow.cc.gatech.edu > Making HTTP connection to minnow.cc.gatech.edu > Sending HTTP request. > HTTP request sent; waiting for response. > Alert!: Unexpected network read error; connection aborted. > Can't Access `http://minnow.cc.gatech.edu/squeak/3382.save' > Alert!: Unable to access document. > > and I'm rapidly approaching timeout and a unilateral secession from any > idea of maintaining up-to-date download links on the Swiki. > > Ian (somewhat grumpily ;) > > From umejava at mars.dti.ne.jp Thu Sep 4 07:25:39 2003 From: umejava at mars.dti.ne.jp (Masashi Umezawa) Date: Sat Jan 28 05:30:07 2012 Subject: [ANN]Morph Transitions and Effects In-Reply-To: References: Message-ID: Hello, Laurence.Rozier@knowledgearchitects.net: > Add more "liveness" to your Morphs! This changeset gives Morphs the ability to scroll vertically, fade in and out, cloak and decloak. Registered on SqueakMap and downloadable from: Interesting! But after playing, I noticed some problems: -The change set seems not to include Morph>>fadeInBy:, which causes an error in fading-in. -Fading-out fails in BorderedMorph, because its border color is sometimes represented as Symbol, not Color. Cheers, --- [:masashi | ^umezawa] From martin.drautzburg at web.de Thu Sep 4 00:24:13 2003 From: martin.drautzburg at web.de (Martin Drautzburg) Date: Sat Jan 28 05:30:07 2012 Subject: [Q]Populating magma with a large tree In-Reply-To: <20030903145520.60623.qmail@web12201.mail.yahoo.com> References: <20030903145520.60623.qmail@web12201.mail.yahoo.com> Message-ID: <87ptihpfiq.fsf@web.de> Chris Muller writes: > To sum up, in terms of "referencing", MagmaCollections act like > OrderedCollections. It's just that they don't take up memory for all objects > they reference at a time. > > Does this help? Yes absolutely. The stubOut thingy also answers my earlier questions about how to populate a large database. From edgardec2001 at yahoo.com.ar Wed Sep 3 11:33:29 2003 From: edgardec2001 at yahoo.com.ar (Lic. Edgar J. De Cleene) Date: Sat Jan 28 05:30:08 2012 Subject: Documentation, more, more In-Reply-To: Message-ID: On 02/09/03 07:58, "leftie2100" wrote: > Stephane, > > Without intending it, I do believe you just proved everything I was > attempting to describe about the way the squeak developer community > acts toward educating new users to squeak. > > Now, I personally don't know enough about "tests" to know if they are > a good educational tool or not. However, to find out if they are, you > expect me to search the entire squeak mailing list archive, find a > tutorial on a web page that seems to house books, not tutorials (the > particular tutorial might be located in the pages of one of the > books...I'm not sure... I would have to learn French to find out for > sure), and then once I know what tests are and how to use them, guess > which ones I should learn in what order to learn squeak properly. > > That's not a user-friendly educational environment. I pretty much have > to already know whatever subject I need to learn to have enough > background to figure out how to just find the necessary resources I > would need. > > Why are python and ruby growing like weeds right now? In a large part, > because they reach out to new users and try to help them become > educated in using those tools in the most "newbie-proof" manner > possible. They both have full intro textbooks that can be downloaded > as an introduction to the language. You don't have to have the "most > up-to-date" version of squeak making a intro text obsolete... just > have links to the version used in the text next to the links where you > get the text. The intro to a newbie doesn't have to have all the bells > and whistles. The text would only have to be updated every couple of > years that way. It doesn't have to be a textbook,either. It could be > the equivalent of a big help file or tutorial software. However, it > does need to be structured in a way that a person moved from one > subject they need to learn to the next until they were capable of > programming at a minimum level of competancy. > > > > > > --- In squeak@yahoogroups.com, Stephane Ducasse wrote: >> Hi all >> >> I think that the best, more efficient way of providing documentation >> about Squeak is to write simple tests representing scenario. We cannot >> afford having people write documentation that will get obsolete as soon >> as we change something. because Squeak is not a frozen framework but >> something that is moving fast. So all your effort to externalize >> documentations in non executable way are doomed to fail and frustrate >> you. >> >> Tests are the only way to go, sorry if this is hurting. But tests are >> coooooooool, they provide you this guts feelings, "YES it works. I'm >> sure it works". You have to experience that by yourself because this >> is personal but this is a so good feeling. >> >> With test >> - your documentation is always in sync with the code. Just press the >> button and if it is green you are sure, >> - this way we can change the system without fear to breaking something >> that would stay not identified, >> - tests represent your trust in the system, >> - Everybody even newbies can write tests >> - If you write tests lot of people will enjoy review them and include >> the into squeak >> >> Tests are like solar energy, they ensure that we will be able to fix >> stuff in the future. Ok they cost a bit more at the beginning but they >> provide a lot more . Developing without test is fun but like nuclear >> energy it endangers our future. >> >> Look at the tests provided for the UUID to understand what I mean. >> >> - daniel wrote a small tests to show how easy is to write tests. >> Daniel will post that soon >> after his trip back from ESUG >> >> - If you want to know more about tests >> - browse my emails in the archive >> - read the tutorial on SUnit available at: >> http://www.iam.unibe.ch/~ducasse/WebPages/Books.html >> >> Stef >> >> Just a real story that happens to me yesterday. >> I was coding something and nearly there without any tests because I'm >> lazy and this was trivial when I realized that a special case could >> break everything I did. This was boring, frustrating and too complex >> after a day of work. So I started to write 4 tests. It took me around >> one hour really slowly to pay attention to have a simple scenario for >> each of my cases. Then I recoded everything running the tests in 15 >> minutes. >> At the end all the tests passed green and I was done. DONE with the >> feeling YES it works I can go home coooool and sure that I did it >> right. During the night I run my application to extract a big db and it >> worked. Now if it happens that I still have a bug, I will start first >> writing a test and fix it. >> >> >> >> >> On Monday, September 1, 2003, at 01:21 PM, Gary Fisher wrote: >> >>> Hi, Leftie! >>> >>> (I happen to be profoundly sinistral myself, by the way, and quite >>> happy >>> about it. :-) >>> >>> One reason Squeak documentation can appear to be hard to find is that >>> there >>> are multiple versions or aspects (or perhaps viewpoints) of Squeak. >>> Much of >>> the Squeak-Dev view exists primarily to hone the cutting edge of >>> Squeak; a >>> good deal of what's here is experimental, even speculative, and may >>> never >>> get beyond that stage. A substantial portion of the Squeak-Dev view >>> is more >>> practical or explanatory, though it still leans more toward advancing >>> the >>> user than simply to plonking him or her down in a quiet spot. This >>> list >>> tends to have a headlong feel. >>> >>> For a viewpoint more suited to teaching (with) Squeak, you might find >>> Squeakland (www.Squeakland.org) and the list available there more to >>> your >>> liking. The Squeakland site and list are devoted much more to >>> practica, >>> based on the most current "stable" version of Squeak rather than the >>> development version du jour. >>> >>> If you're looking for the fastest way to get working with Squeak, >>> however, >>> you might find one or more of the published references best suited to >>> your >>> needs. Mark Guzdial's books, in particular, can take you from >>> installation >>> to coding to eventual understanding in what may well be the shortest >>> possible time, though by necessity any printed text will be based on >>> the >>> version of Squeak available at the time of printing (included on > the CD >>> bound with each book), which will of course not be the most current >>> version. >>> Nevertheless, moving independently from a good working knowledge of an >>> earlier Squeak to today's version will probably be easier than coming >>> in >>> directly from complete Newbiedom. I purchased my copies of Mark's >>> books at >>> a local book store (a good opportunity to encourage them to stock more >>> Squeak and Smalltalk books) but a quick Amazon search will bring up >>> both new >>> and used copies at good prices. >>> >>> I hope that helps. >>> >>> Gary Fisher >>> >>> ----- Original Message ----- >>> From: "leftie2100" >>> To: "The general-purpose Squeak developers list" >>> >>> Sent: Sunday, August 31, 2003 6:19 PM >>> Subject: Re: Documentation, more, more >>> >>> >>> Considering the supposed emphasis on using Squeak as a teaching tool, >>> I guess I find these reasons to be a really poor excuse. What good is >>> a great tool to the public as a whole if the only people who can use >>> it are the developers? >>> >>> The lead developers need to make development of good documentation >>> just as central to releases as the code itself. Until they demand that >>> documentation be completed and updated before software is released, it >>> won't be. The lead developers need to take charge of the documentation >>> process instead of allowing themselves to let others take this "chore" >>> off their hands. The attitude I'm seeing here that the documentation >>> is a necessary evil that must be "grinded out' sounds like it very >>> well could be a significant part of the problem. Writing can be fun to >>> do if you go about it in a light-hearted fashion and that type of >>> writing also engages the reader. >>> >>> Personally, I know a bit about writing, but I know nothing about >>> programming. I'm a programming newbie that would really like to learn >>> Squeak, but I'm pretty much kept from doing that because of your >>> current documentation situation. I read this list because I keep >>> hoping I'll read some new focused learning resources have been >>> created. So when I read that many feel "coding is fun, documentation >>> is not" on the threads, it doesn't do much for my confidence that I'll >>> ever get the chance to use Squeak. >>> >>> If you guys really want to be the Squeak evangalists you seem to all >>> claim you want to be, you're going to have to have a complete attitude >>> change about things like complete centralized documentation and the >>> creation of Squeak programming texts for those new to programming. >>> >>> >>> >>> >>> >>> >>> --- In squeak@yahoogroups.com, goran.krampe@b... wrote: >>>> Hi David! >>>> >>>> David wrote: >>>> [SNIP of ramblings :-) about documentation] >>>>> I'll apologize again for asking stupid questions like the ones > above, >>>>> and now I'll sit down and be quiet. >>>> >>>> Those of us who have been in the community for some time, and I > am not >>>> sure how long you have been here, tend to feel that people asking the >>>> community to "change" or to "Hey, you should do *this*!" don't really >>>> understand how this community works and generally gets little >>>> attention >>>> and might even piss people off. ;-) >>>> >>>> Let me be very frank and very disillusioned for a few seconds: >>>> >>>> 1. There have been A LOT of efforts starting to document Squeak. They >>>> all seem to "fade away". Nothing wrong with trying though - just > don't >>>> think it hasn't been done before! Really. I am not kidding. >>>> >>>> 2. People do what they like to do. Coding is fun. Documentation is >>>> not. >>>> >>>> 3. Even though it is a harsh and perhaps annoying mantra - the "Ok, >>>> then >>>> why don't *you* do it?" logic still applies. Talking doesn't > count for >>>> much. >>>> >>>> >>>> Ok, given the above - what can then be done that will actually have a >>>> slight chance to *succeed*? My take on this (which of course may be >>>> totally off) is: >>>> >>>> - Whatever you try to do, do it *yourself*. Don't try to talk others >>>> into it. "If you build it, they will come". This is at least my >>>> experience with SM. >>>> >>>> - Documentation is all about keeping it fresh. I have earlier > proposed >>>> to try to bind documentation with the Unit tests. I still think > it is >>>> a >>>> great idea (check archives to see what I mean). In other words, the >>>> docs >>>> must be tied to the image and tha packages, it can't live on its > own. >>>> SM >>>> is of course a pillar to lean on in this case. IMHO class comments >>>> belong with the class - not on a swiki. >>>> >>>> - As with most things accepted in the community it very often comes >>>> down >>>> to good tools. SM is successful, but didn't render much interest > until >>>> the Morphic package tool came onto the scene. BFAV has been > successful >>>> becuase of similar reasons. The Magic Book concept (see Swiki - and >>>> how >>>> ironic? :-)) I sketched on earlier is based on this idea. >>>> >>>> So... in short: >>>> >>>> If *you* build *The Magic Book* tool and incorporate ideas to tie >>>> stuff >>>> with Unit tests or similar mechanisms that ensure things don't get >>>> stale >>>> - *then* something might happen. :-) >>>> >>>> My 2 cents, G?ran >>> >>> >>> leftie2100 I think you are unhappy with Squeak fellowship. Facts : 1) Most of us are doing experiments and trying to learn a little about "The Squeak Way" 2) Some of us are posting our finds in sites or in a swiki. Several CD's full of material can be found (ftp://ftp.ira.uka.de/pub/squeak/cdrom/image.iso.gz is one) 3) None of us are collecting huge money with this (But we are having fun) Last , You read something like "Don't ask what Squeak can do for you ...." ? Hope you use your writing skills, cook a book , and get the fame and fortune deserved to you . >From Rosario , Argentina Edgar From umejava at mars.dti.ne.jp Thu Sep 4 10:02:42 2003 From: umejava at mars.dti.ne.jp (umejava@mars.dti.ne.jp) Date: Sat Jan 28 05:30:08 2012 Subject: [FIX] FileContentsBrowserFix-mu Message-ID: <200309041002.h84A2gLa025797@smtp7.dti.ne.jp> from preamble: "Change Set: FileContentsBrowserFix-mu Date: 4 September 2003 Author: Masashi Umezawa FileContentsBrowser>>selectedClassOrMetaClass should return nil when there is no selection. But the method raises MessageNotUnderstood when the browser indicates metaclass AND selectedClass is nil, because it tries to send #metaClass to nil. Now the method correctly returns nil in such case. -To see the problem: Open the code browser for codes with class methods only. Without any class selection, push the 'class' button in the browser. "! -------------- next part -------------- A non-text attachment was scrubbed... Name: FileContentsBrowserFix-mu.cs.gz Type: application/octet-stream Size: 523 bytes Desc: not available Url : http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20030904/2f88eea4/FileContentsBrowserFix-mu.cs.obj From mdrs at akasta.com Thu Sep 4 11:17:00 2003 From: mdrs at akasta.com (Mike Rutenberg) Date: Sat Jan 28 05:30:08 2012 Subject: SocketStream question Message-ID: <200309041017.h84AHe432641@q7.q7.com> I am having troubles using Sockets and SocketStreams. I am running this with a up-to-date 3.6 VM and image under Windows. Anyone know why I get a 'Connection closed while waiting for data.' exception? Is there anything wrong with this code? Mike ----------- port _ 7357. listener _ Socket newTCP listenOn: port backlogSize: 5. sendStream _ SocketStream on: (Socket newTCP connectTo: NetNameResolver localHostAddress port: port). receiveStream _ SocketStream on: listener accept. text _ '12345678'. sendStream nextPutAll: text. sendStream close. (receiveStream upToEnd = text) ifFalse: [self halt]. receiveStream close. listener close. From brent.pinkney at aircom.co.za Thu Sep 4 11:08:50 2003 From: brent.pinkney at aircom.co.za (Brent Pinkney) Date: Sat Jan 28 05:30:08 2012 Subject: [Q] How to I upload a file to the Swiki ? Message-ID: Hi, I would like to upload a file to the Swiki. I am prompted for a user name and password. Where do I get this user name and password ? Thanks Brent From Laurence.Rozier at knowledgearchitects.net Thu Sep 4 12:18:38 2003 From: Laurence.Rozier at knowledgearchitects.net (Laurence.Rozier@knowledgearchitects.net) Date: Sat Jan 28 05:30:08 2012 Subject: [ANN]Morph Transitions and Effects Message-ID: >Hello, > >Laurence.Rozier@knowledgearchitects.net: >> Add more "liveness" to your Morphs! This changeset gives Morphs the ability to scroll vertically, fade in and out, cloak and decloak. Registered on SqueakMap and downloadable from: > >Interesting! thanks >But after playing, I noticed some problems: > -The change set seems not to include Morph>>fadeInBy:, which causes an error in fading-in. Hmmm ... I'm not sure how that fell out, but it's back in. Thanks. > -Fading-out fails in BorderedMorph, because its border color is sometimes represented as Symbol, not Color. Thanks, please let me know of any other cases of failures as I'd like to fix them all at once rather than piecemeal. There are also a couple of cases(SketchMorph, SimpleButtonMorph for example) where it the fade actually doesn't happen. Thanks for the feedback > >Cheers, >--- >[:masashi | ^umezawa] > From Alan.Kay at squeakland.org Thu Sep 4 14:17:05 2003 From: Alan.Kay at squeakland.org (Alan Kay) Date: Sat Jan 28 05:30:08 2012 Subject: [ANN]Morph Transitions and Effects In-Reply-To: References: Message-ID: It's worth mentioning that Abe-san and Umezawa-san did a bunch of similar morphic effects last year, and integrated them with the etoys. It would be great to combine all of these .... Cheers, Alan ----- At 8:18 AM -0400 9/4/03, Laurence.Rozier@knowledgearchitects.net wrote: > >Hello, >> >>Laurence.Rozier@knowledgearchitects.net: >>> Add more "liveness" to your Morphs! This changeset gives Morphs >>>the ability to scroll vertically, fade in and out, cloak and >>>decloak. Registered on SqueakMap and downloadable from: >> >>Interesting! >thanks >>But after playing, I noticed some problems: >> -The change set seems not to include Morph>>fadeInBy:, which >>causes an error in fading-in. >Hmmm ... I'm not sure how that fell out, but it's back in. Thanks. > >> -Fading-out fails in BorderedMorph, because its border color is >>sometimes represented as Symbol, not Color. >Thanks, please let me know of any other cases of failures as I'd >like to fix them all at once rather than piecemeal. There are also a >couple of cases(SketchMorph, SimpleButtonMorph for example) where it >the fade actually doesn't happen. > >Thanks for the feedback >> >>Cheers, >>--- >>[:masashi | ^umezawa] >> -- From jpruvot at etu.info.unicaen.fr Thu Sep 4 13:56:46 2003 From: jpruvot at etu.info.unicaen.fr (jpruvot) Date: Sat Jan 28 05:30:08 2012 Subject: BALLOON3D Memory problem ... Message-ID: <20030904135646.5781.qmail@rantanplan.info.unicaen.fr> We are working on a plugin to use ODE (Open dynamics Engine) in Squeak environment. It seems to work but when we want to test it on a real example with Balloon3D, we can start our test just once in 1024*768 and after the memory seems tu be full. When we try in 640*480 we can only start our test 3 times and the same problem happens : it became very slow and we obtain the crash of Squeak with a "Segmentation Fault". PS : We're using a 3.4 VM with a 3.5 image under a Debian Linux. Please help us managed the memory with Balloon3D because we really need some help to achieve our long work ... From ned at bike-nomad.com Thu Sep 4 15:08:18 2003 From: ned at bike-nomad.com (Ned Konz) Date: Sat Jan 28 05:30:08 2012 Subject: [Q] How to I upload a file to the Swiki ? In-Reply-To: References: Message-ID: <200309040808.18541@ned.bike-nomad.com> On Thursday 04 September 2003 04:08 am, Brent Pinkney wrote: > I would like to upload a file to the Swiki. I am prompted for a > user name and password. > > Where do I get this user name and password ? User name: squeak Password: viewpoints -- Ned Konz http://bike-nomad.com GPG key ID: BEEA7EFE From ned at bike-nomad.com Thu Sep 4 15:10:42 2003 From: ned at bike-nomad.com (Ned Konz) Date: Sat Jan 28 05:30:08 2012 Subject: BALLOON3D Memory problem ... In-Reply-To: <20030904135646.5781.qmail@rantanplan.info.unicaen.fr> References: <20030904135646.5781.qmail@rantanplan.info.unicaen.fr> Message-ID: <200309040810.42972@ned.bike-nomad.com> On Thursday 04 September 2003 06:56 am, jpruvot wrote: > We are working on a plugin to use ODE (Open dynamics Engine) in > Squeak environment. It seems to work but when we want to test it on > a real example with Balloon3D, we can start our test just once in > 1024*768 and after the memory seems tu be full. > When we try in 640*480 we can only start our test 3 times and the > same problem happens : it became very slow and we obtain the crash > of Squeak with a "Segmentation Fault". > > PS : We're using a 3.4 VM with a 3.5 image under a Debian Linux. > > Please help us managed the memory with Balloon3D because we really > need some help to achieve our long work ... Please try the 3.6beta11 VM from Ian: http://www-sor.inria.fr/~piumarta/squeak/ http://www-sor.inria.fr/~piumarta/squeak/devel/dist/squeak-vm_3.6-beta11_i386.deb -- Ned Konz http://bike-nomad.com GPG key ID: BEEA7EFE From ajbn at cin.ufpe.br Thu Sep 4 15:10:52 2003 From: ajbn at cin.ufpe.br (ajbarrosbr) Date: Sat Jan 28 05:30:08 2012 Subject: Wrong color format in B3DPrimitiveVertex? In-Reply-To: <001801c370cf$4c4a1310$1cb8fea9@atlantis> Message-ID: Hi Andreas, I used to play with Squeak in my notebook running win98SE, but just for curiosity, I was trying to reproduce Martin's example using a desktop computer running win2000 with an E&S Tornado 3000 graphics card. When you say "simulated" below, do you mean using OGL software implementation? If I set VM preferences to use OGL instead of D3D, will Squeak use software or 3D graphics card implementation? Thanks in advance, Antonio Barros --- In squeak@yahoogroups.com, "Andreas Raab" wrote: > Hi, > > Something is funky here ... when I run your example, I get an "all black" > box with no colors whatsoever but rather a nicely long Squeak3D.log > complaining about GL_INVALID_ENUM in some pretty obscure place. If I run it > either D3D or simulated all works fine. I'll have to investigate further > what's going on here. > > Cheers, > - Andreas > From jlonglan at uwo.ca Thu Sep 4 15:21:41 2003 From: jlonglan at uwo.ca (jlonglan@uwo.ca) Date: Sat Jan 28 05:30:08 2012 Subject: ProjectViewMorph In-Reply-To: <3F574CC9.5030100@acm.org> References: <3F574721.9C4286E8@chello.se> <3F574CC9.5030100@acm.org> Message-ID: <1062688901.3f5758850fbaf@mail.uwo.ca> Just a quick newbie question for the Squeak experts... I'm trying to create a button that uses enterAsActiveSubproject to open a project in active mode. I have all of my ProjectViewMorphs in the world... but my question is - how do I refer to these morphs when creating my button? The ProjectViewMorphs exist in the world already, so it's not like I'm initializing new morphs - or is that what I should be doing? Thanks, Jeff From Laurence.Rozier at knowledgearchitects.net Thu Sep 4 16:13:49 2003 From: Laurence.Rozier at knowledgearchitects.net (Laurence.Rozier@knowledgearchitects.net) Date: Sat Jan 28 05:30:08 2012 Subject: ProjectViewMorph Message-ID: >Just a quick newbie question for the Squeak experts... I'm trying to create a >button that uses enterAsActiveSubproject to open a project in active mode. I >have all of my ProjectViewMorphs in the world... but my question is - how do I >refer to these morphs when creating my button? The ProjectViewMorphs exist in >the world already, so it's not like I'm initializing new morphs - or is that >what I should be doing? Sending a enterAsActiveSubproject message to a ProjectViewMorph is *one* way to accomplish what you want. You can refer to these morphs a number of ways depending on what state your code has access to. For example you can use submorphsSatisfying: aBlock or submorphNamed: aProjectName. However if you have aProjectName then you could also say (Project named: aProjectName) enterAsActiveSubprojectWithin: World which will allow you to enter projects that don't have ProjectViewMorphs in the current world. Regards, Laurence > >Thanks, >Jeff > > > > From zeppy at australia.edu Thu Sep 4 16:20:17 2003 From: zeppy at australia.edu (Gary McGovern) Date: Sat Jan 28 05:30:08 2012 Subject: List archives and distribution Message-ID: <3f583d30.c17.0@australia.edu> Just wondering how many places all the messages ever written to this list are kept. What if there was an accident or sabotage of the archive ? There's too much good educational information from some top people here to lose . Bye! Gary From marcus at ira.uka.de Thu Sep 4 16:43:06 2003 From: marcus at ira.uka.de (Marcus Denker) Date: Sat Jan 28 05:30:08 2012 Subject: List archives and distribution In-Reply-To: <3f583d30.c17.0@australia.edu> References: <3f583d30.c17.0@australia.edu> Message-ID: <20030904164306.GA16000@ira.uka.de> On Thu, Sep 04, 2003 at 05:20:17PM +0100, Gary McGovern wrote: > Just wondering how many places all the messages ever written to this list > are kept. What if there was an accident or sabotage of the archive ? > There's too much good educational information from some top people here to > lose . > The largest archive is available directly at http://lists.squeakfoundation.org/pipermail/squeak-dev/ You can download the complete archive as a unix .mbox file, it's araound 250MB. The Squeak e.V. CDRom contains this archive, so you can get your personal backup for just $10 at http://www.squeak.de/SqueakCD.html (The CD contains the archive as a gzip- compressed .mbox file, the CD was last updated May 5, 2003. A new CD will be released soon) Marcus -- Marcus Denker marcus@ira.uka.de -- Squeak! http://squeak.de From lex at cc.gatech.edu Thu Sep 4 16:58:17 2003 From: lex at cc.gatech.edu (Lex Spoon) Date: Sat Jan 28 05:30:08 2012 Subject: [ENH] truncatedChanges-ls Message-ID: from preamble: "Change Set: truncatedChanges-ls Date: 4 September 2003 Author: Lex Spoon Handle truncated changes files more gracefully. The problem actually can happen, and has been observed at Georgia Tech, e.g. if someone downloads a file but does not complete the download. The current behavior is that pink debuggers pop up; this is extremely confusing for new users when it happens in places like the Browser. The solution in this changeset is to fall back on the decompiler. A more thorough solution should probably trigger a systematic invalidation of all source pointers past the end of the changes file, because as time goes on the changes file will eventually grow large enough to cover the lost code and the routine will start returning random method code for the invalid source pointers." ! -------------- next part -------------- A non-text attachment was scrubbed... Name: truncatedChanges-ls.cs.gz Type: application/octet-stream Size: 1333 bytes Desc: not available Url : http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20030904/4aeb9e5a/truncatedChanges-ls.cs.obj From MartinKuball at web.de Thu Sep 4 17:02:03 2003 From: MartinKuball at web.de (Martin Kuball) Date: Sat Jan 28 05:30:08 2012 Subject: Wrong color format in B3DPrimitiveVertex? In-Reply-To: References: Message-ID: I think he means the software renderer build into Squeak. What's happening if you set up Squeak to use OpenGL depends on your system. If you link against GL libraries that support your graphics card it will probably use hardware acceleration. Martin Am Donnerstag, 4. September 2003 17:10 schrieben Sie: > Hi Andreas, > > I used to play with Squeak in my notebook running win98SE, but just > for curiosity, I was trying to reproduce Martin's example using a > desktop computer running win2000 with an E&S Tornado 3000 graphics > card. > When you say "simulated" below, do you mean using OGL software > implementation? > If I set VM preferences to use OGL instead of D3D, will Squeak use > software or 3D graphics card implementation? > Thanks in advance, > > Antonio Barros > > --- In squeak@yahoogroups.com, "Andreas Raab" > > wrote: > > Hi, > > > > Something is funky here ... when I run your example, I get an "all > > black" > > > box with no colors whatsoever but rather a nicely long Squeak3D.log > > complaining about GL_INVALID_ENUM in some pretty obscure place. If > > I run it > > > either D3D or simulated all works fine. I'll have to investigate > > further > > > what's going on here. > > > > Cheers, > > - Andreas From schwa at cc.gatech.edu Thu Sep 4 17:19:00 2003 From: schwa at cc.gatech.edu (Joshua 'Schwa' Gargus) Date: Sat Jan 28 05:30:08 2012 Subject: BALLOON3D Memory problem ... In-Reply-To: <200309040810.42972@ned.bike-nomad.com> References: <20030904135646.5781.qmail@rantanplan.info.unicaen.fr> <200309040810.42972@ned.bike-nomad.com> Message-ID: <20030904171900.GB28183@cc.gatech.edu> Do you have some principled reason for suggesting the new VM (besides it generally being better than the old one)? It seems more likely that there's something wrong with the plugin code. Jpruvot, if you want you can send me your plugin code. I've thought about playing with ODE in Squeak, but haven't found the time. Joshua On Thu, Sep 04, 2003 at 08:10:42AM -0700, Ned Konz wrote: > On Thursday 04 September 2003 06:56 am, jpruvot wrote: > > We are working on a plugin to use ODE (Open dynamics Engine) in > > Squeak environment. It seems to work but when we want to test it on > > a real example with Balloon3D, we can start our test just once in > > 1024*768 and after the memory seems tu be full. > > When we try in 640*480 we can only start our test 3 times and the > > same problem happens : it became very slow and we obtain the crash > > of Squeak with a "Segmentation Fault". > > > > PS : We're using a 3.4 VM with a 3.5 image under a Debian Linux. > > > > Please help us managed the memory with Balloon3D because we really > > need some help to achieve our long work ... > > Please try the 3.6beta11 VM from Ian: > http://www-sor.inria.fr/~piumarta/squeak/ > > http://www-sor.inria.fr/~piumarta/squeak/devel/dist/squeak-vm_3.6-beta11_i386.deb > > -- > Ned Konz > http://bike-nomad.com > GPG key ID: BEEA7EFE > From ned at bike-nomad.com Thu Sep 4 17:35:36 2003 From: ned at bike-nomad.com (Ned Konz) Date: Sat Jan 28 05:30:08 2012 Subject: BALLOON3D Memory problem ... In-Reply-To: <20030904171900.GB28183@cc.gatech.edu> References: <20030904135646.5781.qmail@rantanplan.info.unicaen.fr> <200309040810.42972@ned.bike-nomad.com> <20030904171900.GB28183@cc.gatech.edu> Message-ID: <200309041035.36080@ned.bike-nomad.com> On Thursday 04 September 2003 10:19 am, Joshua 'Schwa' Gargus wrote: > Do you have some principled reason for suggesting the new VM > (besides it generally being better than the old one)? It seems > more likely that there's something wrong with the plugin code. It's just that the Balloon 3D plugin itself has been updated as well. And VMMaker and the related support has also been updated for 3.6. So we may be able to get some useful information from having them try the new VM. Of course, chances are good that it's their plugin causing the segfault. Can you (jpruvot) describe what you're doing with memory and/or callbacks in your plugin? -- Ned Konz http://bike-nomad.com GPG key ID: BEEA7EFE From jlonglan at uwo.ca Thu Sep 4 18:26:22 2003 From: jlonglan at uwo.ca (jlonglan@uwo.ca) Date: Sat Jan 28 05:30:08 2012 Subject: ProjectViewMorph In-Reply-To: References: Message-ID: <1062699982.3f5783ce47662@mail.uwo.ca> Thanks Laurence, I was a little slow this morning... I'm digging around a little more in the ProjectViewMorph and I was wondering how much work it would require to write a new method that opens ProjectViewMorphs as active. So instead of holding down the mouse button, all ProjectViewMorphs would open as ActiveSubprojects? My next question digs a little deeper... and is probably a little more difficult. I'd like to change the overall appearance of ActiveSubprojects - the coloured squares along the side don't give the user much idea of what the square will do when clicked. Any ideas on how to tackle a slight re-design? Or I could just stick with my little menu/legend that I've given the user. Thanks again for your help, Jeff Quoting Laurence.Rozier@knowledgearchitects.net: > >Just a quick newbie question for the Squeak experts... I'm trying to create > a > >button that uses enterAsActiveSubproject to open a project in active mode. > I > >have all of my ProjectViewMorphs in the world... but my question is - how > do I > >refer to these morphs when creating my button? The ProjectViewMorphs exist > in > >the world already, so it's not like I'm initializing new morphs - or is that > > >what I should be doing? > > Sending a enterAsActiveSubproject message to a ProjectViewMorph is *one* way > to accomplish what you want. You can refer to these morphs a number of ways > depending on what state your code has access to. For example you can use > submorphsSatisfying: aBlock or submorphNamed: aProjectName. However if you > have aProjectName then you could also say > > (Project named: aProjectName) enterAsActiveSubprojectWithin: World > > which will allow you to enter projects that don't have ProjectViewMorphs in > the current world. > > Regards, > Laurence From javier_diaz_r at mac.com Thu Sep 4 18:58:17 2003 From: javier_diaz_r at mac.com (Javier Diaz-Reinoso) Date: Sat Jan 28 05:30:09 2012 Subject: Odd behavior with peeker Message-ID: I have a simple test function (histogram), this use a TestForm class which is a subclass of ColorForm (see enclosed TestForm.zip). If I run histogram1 (which use 'self pixelValueAt: x@y') I obtain Hist1.png, then I run histogram2 (with 'peeker pixelAt: x@y') and obtain Hist2.png, these histograms are different, but with histogram3 which add the line 'self colors: nil.' I obtain Hist1.png again. I don't understand why, because pixelValueAt: is defined as: ^ (BitBlt current bitPeekerFromForm: self) pixelAt: aPoint apart from the extra overhead of calling 'BitBlt current bitPeekerFromForm:' for each pixel, I think is the same, so what is the problem? This is a 3.4 image (updated to 5170) with the 'Squeak 3.5.1Beta4' MacOSX VM. Javier Diaz-Reinoso Web: http://homepage.mac.com/javier_diaz_r/ -------------- next part -------------- A non-text attachment was scrubbed... Name: TestForm.zip Type: application/zip Size: 16136 bytes Desc: not available Url : http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20030904/475a6473/TestForm.zip From arning at charm.net Thu Sep 4 19:14:36 2003 From: arning at charm.net (Bob Arning) Date: Sat Jan 28 05:30:09 2012 Subject: Odd behavior with peeker Message-ID: <200309041914.h84JEax3093927@hampden.charm.net> On Thu, 4 Sep 2003 13:58:17 -0500 Javier Diaz-Reinoso wrote: >I don't understand why, because pixelValueAt: is defined as: > ^ (BitBlt current bitPeekerFromForm: self) pixelAt: aPoint > >apart from the extra overhead of calling 'BitBlt current >bitPeekerFromForm:' for each pixel, I think is the same, so what is the >problem? Well, not quite, Javier. Your TestForm inherits from ColorForm which implements pixelValueAt: aPoint "Return the raw pixel value at the given point. Typical clients use colorAt: to get a Color." "Details: To get the raw pixel value, be sure the peeker's colorMap is nil." ^ (BitBlt current bitPeekerFromForm: self) colorMap: nil; pixelAt: aPoint which is a little different. Cheers, Bob From Laurence.Rozier at knowledgearchitects.net Thu Sep 4 20:20:56 2003 From: Laurence.Rozier at knowledgearchitects.net (Laurence.Rozier@knowledgearchitects.net) Date: Sat Jan 28 05:30:09 2012 Subject: ProjectViewMorph Message-ID: >Thanks Laurence, I was a little slow this morning... I'm digging around a >little more in the ProjectViewMorph and I was wondering how much work it would >require to write a new method that opens ProjectViewMorphs as active. So >instead of holding down the mouse button, all ProjectViewMorphs would open as >ActiveSubprojects? Not very much at all - just modify mouseUp: to send enterAsActiveSubproject instead of enter. However, you do NOT want to do that except for a temporary experiment as your change will be subject to being clobbered in a future release. If you want to really want to change the behavior of all ProjectViewMorphs, you'd have to come up with a way to make it pluggable with a default to the current behavior so that it could be integrated into the image without disruption. It's something that would be nice to have and would be a good way for you to practice Squeaking :-) If you're not interested in making all ProjectViewMorphs ever created behave this way then subclass ProjectViewMorph overriding mouseUp: and figure out where you have to create instances of the new subclass. > >My next question digs a little deeper... and is probably a little more >difficult. I'd like to change the overall appearance of ActiveSubprojects - >the coloured squares along the side don't give the user much idea of what the >square will do when clicked. Any ideas on how to tackle a slight re-design? I'm sure if you come up with a good design for this and implement it, it will be welcomed into the update stream. >Or I could just stick with my little menu/legend that I've given the user. > >Thanks again for your help, >Jeff > > >Quoting Laurence.Rozier@knowledgearchitects.net: > >> >Just a quick newbie question for the Squeak experts... I'm trying to create >> a >> >button that uses enterAsActiveSubproject to open a project in active mode. >> I >> >have all of my ProjectViewMorphs in the world... but my question is - how >> do I >> >refer to these morphs when creating my button? The ProjectViewMorphs exist >> in >> >the world already, so it's not like I'm initializing new morphs - or is that >> >> >what I should be doing? >> >> Sending a enterAsActiveSubproject message to a ProjectViewMorph is *one* way >> to accomplish what you want. You can refer to these morphs a number of ways >> depending on what state your code has access to. For example you can use >> submorphsSatisfying: aBlock or submorphNamed: aProjectName. However if you >> have aProjectName then you could also say >> >> (Project named: aProjectName) enterAsActiveSubprojectWithin: World >> >> which will allow you to enter projects that don't have ProjectViewMorphs in >> the current world. >> >> Regards, >> Laurence > > > > From Laurence.Rozier at knowledgearchitects.net Thu Sep 4 20:28:52 2003 From: Laurence.Rozier at knowledgearchitects.net (Laurence.Rozier@knowledgearchitects.net) Date: Sat Jan 28 05:30:09 2012 Subject: ProjectViewMorph Message-ID: ... here's a quick hack I've used before if you're interested in getting something working quickly just to see how things feel, you can place a transparent morph in front of the ProjectViewMorph and put the behavior you want in it's mouseUp action. That's safer than modifying mouseUp: temporarily because you might forget to change it back or may accidently include the change in another changeset. Cheers, Laurence >>Thanks Laurence, I was a little slow this morning... I'm digging around a >>little more in the ProjectViewMorph and I was wondering how much work it would >>require to write a new method that opens ProjectViewMorphs as active. So >>instead of holding down the mouse button, all ProjectViewMorphs would open as >>ActiveSubprojects? >Not very much at all - just modify mouseUp: to send enterAsActiveSubproject instead of enter. However, you do NOT want to do that except for a temporary experiment as your change will be subject to being clobbered in a future release. If you want to really want to change the behavior of all ProjectViewMorphs, you'd have to come up with a way to make it pluggable with a default to the current behavior so that it could be integrated into the image without disruption. It's something that would be nice to have and would be a good way for you to practice Squeaking :-) If you're not interested in making all ProjectViewMorphs ever created behave this way then subclass ProjectViewMorph overriding mouseUp: and figure out where you have to create instances of the new subclass. > >> >>My next question digs a little deeper... and is probably a little more >>difficult. I'd like to change the overall appearance of ActiveSubprojects - >>the coloured squares along the side don't give the user much idea of what the >>square will do when clicked. Any ideas on how to tackle a slight re-design? >I'm sure if you come up with a good design for this and implement it, it will be welcomed into the update stream. > >>Or I could just stick with my little menu/legend that I've given the user. >> >>Thanks again for your help, >>Jeff >> >> >>Quoting Laurence.Rozier@knowledgearchitects.net: >> >>> >Just a quick newbie question for the Squeak experts... I'm trying to create >>> a >>> >button that uses enterAsActiveSubproject to open a project in active mode. >>> I >>> >have all of my ProjectViewMorphs in the world... but my question is - how >>> do I >>> >refer to these morphs when creating my button? The ProjectViewMorphs exist >>> in >>> >the world already, so it's not like I'm initializing new morphs - or is that >>> >>> >what I should be doing? >>> >>> Sending a enterAsActiveSubproject message to a ProjectViewMorph is *one* way >>> to accomplish what you want. You can refer to these morphs a number of ways >>> depending on what state your code has access to. For example you can use >>> submorphsSatisfying: aBlock or submorphNamed: aProjectName. However if you >>> have aProjectName then you could also say >>> >>> (Project named: aProjectName) enterAsActiveSubprojectWithin: World >>> >>> which will allow you to enter projects that don't have ProjectViewMorphs in >>> the current world. >>> >>> Regards, >>> Laurence >> >> >> >> From schwa at cc.gatech.edu Thu Sep 4 20:36:50 2003 From: schwa at cc.gatech.edu (Joshua 'Schwa' Gargus) Date: Sat Jan 28 05:30:09 2012 Subject: BALLOON3D Memory problem ... In-Reply-To: <200309041035.36080@ned.bike-nomad.com> References: <20030904135646.5781.qmail@rantanplan.info.unicaen.fr> <200309040810.42972@ned.bike-nomad.com> <20030904171900.GB28183@cc.gatech.edu> <200309041035.36080@ned.bike-nomad.com> Message-ID: <20030904203650.GB22905@cc.gatech.edu> On Thu, Sep 04, 2003 at 10:35:36AM -0700, Ned Konz wrote: > On Thursday 04 September 2003 10:19 am, Joshua 'Schwa' Gargus wrote: > > Do you have some principled reason for suggesting the new VM > > (besides it generally being better than the old one)? It seems > > more likely that there's something wrong with the plugin code. > > It's just that the Balloon 3D plugin itself has been updated as well. I said "besides it generally being better than the old one" ;-) Joshua From sstnjpm02 at sneakemail.com Thu Sep 4 21:24:58 2003 From: sstnjpm02 at sneakemail.com (sstnjpm02@sneakemail.com) Date: Sat Jan 28 05:30:09 2012 Subject: XML Parser, interleaving text and elements Message-ID: <200309041724.58917.sstnjpm02@sneakemail.com> I porting a web project to 3.4 from Dolphin. In Dolphin I used the xml parser COM control to parse html pages stored as XHTML. I am having a problem with code such as the following: abc With the squeak parser this is rendered back as: ac b Is this correct or a bug? I assumed it's legal to interleave text and elements like this in XML and expect the structure to be preserved. Since XMLNode separates content from elements I suspect this behavior of aggregating the text content is pretty well ingrained. Are there other xml parsers available for squeak which will behave as I am expecting? From ajbn at cin.ufpe.br Thu Sep 4 21:36:17 2003 From: ajbn at cin.ufpe.br (ajbarrosbr) Date: Sat Jan 28 05:30:09 2012 Subject: Wrong color format in B3DPrimitiveVertex? In-Reply-To: Message-ID: Hi Martin, Thanks for your answer. I have not dug myself into Balloon3D yet (just tried Boris Gaentner tutorial). So, my question can be a newbie question... Does not that renderer, at the end of the "pipeline", use the OGL software implementation - opengl32.dll in my case (running win98 with no 3D graphics card)? My best, Antonio Barros --- In squeak@yahoogroups.com, Martin Kuball wrote: > I think he means the software renderer build into Squeak. What's happening if > you set up Squeak to use OpenGL depends on your system. If you link against > GL libraries that support your graphics card it will probably use hardware > acceleration. > > Martin > > Am Donnerstag, 4. September 2003 17:10 schrieben Sie: > > Hi Andreas, > > > > I used to play with Squeak in my notebook running win98SE, but just > > for curiosity, I was trying to reproduce Martin's example using a > > desktop computer running win2000 with an E&S Tornado 3000 graphics > > card. > > When you say "simulated" below, do you mean using OGL software > > implementation? > > If I set VM preferences to use OGL instead of D3D, will Squeak use > > software or 3D graphics card implementation? > > Thanks in advance, > > > > Antonio Barros > > > > --- In squeak@yahoogroups.com, "Andreas Raab" > > > > wrote: > > > Hi, > > > > > > Something is funky here ... when I run your example, I get an "all > > > > black" > > > > > box with no colors whatsoever but rather a nicely long Squeak3D.log > > > complaining about GL_INVALID_ENUM in some pretty obscure place. If > > > > I run it > > > > > either D3D or simulated all works fine. I'll have to investigate > > > > further > > > > > what's going on here. > > > > > > Cheers, > > > - Andreas From avi at beta4.com Thu Sep 4 21:39:48 2003 From: avi at beta4.com (Avi Bryant) Date: Sat Jan 28 05:30:09 2012 Subject: XML Parser, interleaving text and elements In-Reply-To: <200309041724.58917.sstnjpm02@sneakemail.com> Message-ID: On Thu, 4 Sep 2003 sstnjpm02@sneakemail.com wrote: > I am having a problem with code such as the following: > > abc > Are there other xml parsers available for squeak which will behave as I am > expecting? The HTML-Parser on SqueakMap will do what you want. From lewis at mail.msen.com Fri Sep 5 00:03:21 2003 From: lewis at mail.msen.com (David T. Lewis) Date: Sat Jan 28 05:30:09 2012 Subject: [ANN] AioPlugin on SqueakMap (generic async IO event notification for sockets, files, etc) Message-ID: <20030904200321.A16218@conch.msen.com> Updated for Squeak 3.6, and registered on SqueakMap. AioPlugin provides support for asynchronous IO event notification. When an external IO event occurs, the event registration causes a Smalltalk semaphore to be signaled. A process can wait on this semaphore, thereby acting as an event handler for the external event. Currently this works with the Unix VM (probably including OS X, feedback on this would be appreciated). UnixAioPlugin implements the primitives that interact with the aio mechanism in the Unix VM. Other platform-specific subclasses could be written to provide a compatible aio mechanism for other platforms. AioEventHandler provides image side support for aio event notification. An AioEventHandler is an object that waits for an external IO event to occur, then sends #changed to itself. Any object that is interested in the external event can register itself as a dependent of the AioEventHandler, and take appropriate action whenever the external event occurs. AioEventHanderExample demonstrate asynchronous read handers for file streams, OS pipes, standard input, and sockets. See class category 'examples'. Some examples require OSProcess. Dave From sstnjpm02 at sneakemail.com Fri Sep 5 00:20:30 2003 From: sstnjpm02 at sneakemail.com (sstnjpm02@sneakemail.com) Date: Sat Jan 28 05:30:09 2012 Subject: XML Parser, interleaving text and elements Message-ID: <200309042020.30132.sstnjpm02@sneakemail.com> On Thu, 04 Sep 2003 14:39:48 -0700, Avi Bryant wrote: > > On Thu, 4 Sep 2003 sstnjpm02@sneakemail.com wrote: > >> I am having a problem with code such as the following: >> >> abc > > > >> Are there other xml parsers available for squeak which will behave as I am >> expecting? > > The HTML-Parser on SqueakMap will do what you want. Thanks. I see that my example works properly but I hope I am not trading one set of problems for another. So far I found one problem which prevents any of my html from rendering:
prints as
prints as /> and various other problems with >.... being added I was using the 1st one a lot in xhtml which I guess is not strictly legal as html, but I need the abbreviated tag close as in the 2nd example to work. In general I am hoping that any legal xhtml will pass thru the parser without having to make huge changes, since I have a large amount of html already in the can. From Yoshiki.Ohshima at acm.org Fri Sep 5 00:26:27 2003 From: Yoshiki.Ohshima at acm.org (Yoshiki Ohshima) Date: Sat Jan 28 05:30:09 2012 Subject: problems with Squeak on a Compaq Aero 2100-series running WinCE In-Reply-To: <58776.1062548107@cloud.rain.com> References: <26146.1062462615@cloud.rain.com> <1062531177.3509.7.camel@laptop.gettys.org> <58776.1062548107@cloud.rain.com> Message-ID: Bill, > In any event, I was pretty certain I actually did use the HPC-MIPS > binary (the other MIPS binary I saw didn't really work at all), but I > downloaded the HPC-MIPS binary from the URL you provided, and now I get > different behaviour: When I start squeak.exe, I get prompted for "Main > Memory Size", where I can enter a value from 0.0 to 9.9 Mb (no more than > that). If I do this and press the "Go!" button, I very, very briefly > see a message that says something like, "Your program has performed an > illegal operation and will be shut down, contact your vendor if this > persists" -- hence this email. (-: Thank you for reporting. All I can imagine is that some API I use is not supported on that model... You said you run a mini image which should fit 9.9MB, right? (To make sure, run the image on the desktop and see what the VM statistics reports.) -- Yoshiki From avi at beta4.com Fri Sep 5 00:39:46 2003 From: avi at beta4.com (Avi Bryant) Date: Sat Jan 28 05:30:09 2012 Subject: XML Parser, interleaving text and elements In-Reply-To: <200309042020.30132.sstnjpm02@sneakemail.com> Message-ID: On Thu, 4 Sep 2003 sstnjpm02@sneakemail.com wrote: > Thanks. I see that my example works properly but I hope I am not trading > one set of problems for another. So far I found one problem which prevents any > of my html from rendering: > >
prints as
> prints as /> > > and various other problems with >.... being added The problem seems to lie with Scamper's HTMLTokenizer class, which the HTML-Parser package reuses. It looks like some hacking of #nextName and #nextTag would be in order. If I get a chance I'll look at that later tonight. Avi From sstnjpm02 at sneakemail.com Fri Sep 5 01:03:12 2003 From: sstnjpm02 at sneakemail.com (sstnjpm02@sneakemail.com) Date: Sat Jan 28 05:30:09 2012 Subject: XML Parser, interleaving text and elements In-Reply-To: <200309042058.45829.sstnjpm02@sneakemail.com> References: <200309042020.30132.sstnjpm02@sneakemail.com> <200309042058.45829.sstnjpm02@sneakemail.com> Message-ID: <200309042103.12156.sstnjpm02@sneakemail.com> > Thanks. I see that my example works properly but I hope I am not trading > one set of problems for another. So far I found one problem which prevents any > of my html from rendering: > >
prints as
> prints as /> > > and various other problems with >.... being added > The problem seems to lie with Scamper's HTMLTokenizer class, which the > HTML-Parser package reuses. > It looks like some hacking of #nextName and #nextTag would be in order. > If I get a chance I'll look at that later tonight. Thanks. I made a half-hearted attempt by throwing $/ into CSNameEnders but it didnt work and the code is beyond me . From schwa at cc.gatech.edu Fri Sep 5 01:20:23 2003 From: schwa at cc.gatech.edu (Joshua 'Schwa' Gargus) Date: Sat Jan 28 05:30:09 2012 Subject: FFI questions Message-ID: <20030905012023.GA19451@cc.gatech.edu> I'm running into some problems with FFI. This is the method I am using: cgCreateProgram: ctx with: programtype with: program with: profile with: entry with: args "This method was automatically generated." "CGprogram cgCreateProgram(CGcontext ctx, CGenum program_type, const char *program, CGprofile profile, const char *entry, const char **args);" FFIPlugin ^ self externalCallFailed If I get ahold of the resulting CompiledMethod and look at the first literal, it is an ExternalLibraryFunction corresponding to the FFI spec. One thing that is odd is the contents of the 'argTypes' variable of the ELFunc: #(ulong ulong ulong byte* ulong byte* byte void). Why might the 'void' be there? To try to debug this, I called the CompiledMethod with #invokeWithArguments:, which I modified to include the line: FFIPlugin doPrimitive: 'primitiveCalloutWithArgs'. So that I could try to figure out what was going on. Sure enough, it was choking on the arg array, which wasn't as long as expected because of the extra 'void' in 'argTypes'. I manually got rid of the 'void' (argTypes := argTypes first: 7) and tried again. This time I got a different error, about not being able to coerce the arguments. Yay! At least this one seems like my fault. This brings me to my next question(s): - Will FFI know how to coerce a String to a 'byte*'? - if not, should I be using 'char*' instead? - or, just convert the String to a ByteArray manually? (adding a terminating null) (ByteArray withAll: ('string' copyWith: (Character value: 0))) - How can I find out these coercion rules? - What the heck do I do for 'byte**'? (The C function expects an array of null-terminated strings) Thanks, Joshua From andreas.raab at gmx.de Fri Sep 5 01:45:00 2003 From: andreas.raab at gmx.de (Andreas Raab) Date: Sat Jan 28 05:30:09 2012 Subject: FFI questions In-Reply-To: <20030905012023.GA19451@cc.gatech.edu> Message-ID: <002601c3734f$51e83950$1cb8fea9@atlantis> Hi, > I'm running into some problems with FFI. This is the method > I am using: > > cgCreateProgram: ctx with: programtype with: program with: > profile with: entry with: args > "This method was automatically generated." > "CGprogram cgCreateProgram(CGcontext ctx, CGenum > program_type, const char *program, CGprofile profile, const > char *entry, const char **args);" > ulong byte* byte** ) module: 'Cg'> ^^ And this is the problem. The FFI can't coerce arrays of pointers automatically, so using "foo **" in any way is simply invalid. > If I get ahold of the resulting CompiledMethod and look at the first > literal, it is an ExternalLibraryFunction corresponding to the FFI > spec. One thing that is odd is the contents of the > 'argTypes' variable > of the ELFunc: #(ulong ulong ulong byte* ulong byte* byte void). Why > might the 'void' be there? Looks like a parser error which should be fixed. "**" needs to raise an error unless we fix the ffi plugin to do the right coercion, which ... err ... seems hard. > This brings me to my next question(s): > - Will FFI know how to coerce a String to a 'byte*'? Yes. The difference between "byte*" and "char*" is that "char*" will force the argument (a String) to be converted into a zero-terminated C string. For example Stdio>>puts: aString will allow you to use Stdio new puts: 'Hello World'. whereas using 'byte*' in the above will print out half of Squeak's object memory. > - What the heck do I do for 'byte**'? > (The C function expects an array of null-terminated strings) You need to assemble the arguments manually. Bert had a nice example for this some time back (it was some socket related stuff) you may want to google for it. Cheers, - Andreas From schwa at cc.gatech.edu Fri Sep 5 02:51:19 2003 From: schwa at cc.gatech.edu (schwa@cc.gatech.edu) Date: Sat Jan 28 05:30:09 2012 Subject: [ENH] BrowseServerCode-nk ( [er][sm][et][cd] Looks good. ) In-Reply-To: References: Message-ID: It took me a few minutes to figure out exactly what the deal was, until I saw that #readOnlyFileNamed: was now being sent to a directory instead of FileStream. Looks good! I tested it on files from the UCSBCreateArchive server. I verified that browsing remote code files didn't work before using this changeset, but did afterward. I also verified that browing local code files still works. < I'm a bug-fixing machine! > This post brought to you by the BugFixArchiveViewer, a handy tool that makes it easy to comment on proposed fixes and enhancements for Squeak. For more information, check out the Web page for the BugFixArchiveViewer project: http://minnow.cc.gatech.edu/squeak/3214 < I'm a bug-fixing machine! > From ajh18 at cornell.edu Fri Sep 5 02:58:28 2003 From: ajh18 at cornell.edu (Anthony Hannan) Date: Sat Jan 28 05:30:09 2012 Subject: [VM] Getting closure activation speed up to par Message-ID: <200309050256.h852usJI010792@gatech.edu> "Andreas Raab" wrote: > I've been recently (as in: today ;) been reminded that we should really make > use of the new block closures (for which primitive support will be in any > new VMs as they are part of VMMaker-3.6). IIRC, then only significant > downside is activation speed which - according to your notes - was at about > half of what using BlockContexts were today. > > So what ways do we have to bring their activation speed closer to the speed > of block activation today? I don't know if you've done any exhaustive > measures to figure out where the time actually goes but my feeling is that > there is a good chance that we may be overlooking something in general > activation speed. Question: Do you have any feeling whatsoever, where the > additional time is spent? Is is just context allocation? Somehow I don't > quite think this would be the case as we should be pretty good with the > context recycling here. 1. The Interpreter redundantly fetches receiver, method, initialIp, and initialSp in #fetchContextRegisters: when it already had them in #activateNewMethod. So we can probably improve things a little without changing any design just be inlining #newActiveContext: and its calls into #activateNewMethod and manually streamlining it. 2. Slowness of independent context objects (even if recycled) compared to stack frames are: a. Copying receiver and args into new context instead of reusing them in place in the new frame. b. Memory locality of the contexts vs. stack frames for efficient processor cacheing. 3. Finally, a compiler optimization could be used in either context objects or stack frame to eliminate the need to pre-allocate temps. Instead they can be allocated in the code when first assigned. For example in: | a b | a _ 1 odd. b _ 2 even. ^ a & b Instead of pushing two nil then executing the following code: pushConstant: 1 send: odd popIntoTemp: 0 pushConstant: 2 send: even popIntoTemp: 1 pushTemp: 0 pushTemp: 1 send: & returnTop we can avoid push nils and just start executing the following code: pushConstant: 1 send: odd pushConstant: 2 send: even send: & returnTop The code will be responsible for allocating temps and can usually allocate it with its initial value in one step. Right now we initialize with nil during activation, then the code pushes its initial value higher on the stack then copies it down to its correct spot. > what we may be > able to short-cut specifically for block (as opposed to: general method) > activation? I don't think there is anything we can do specifically for block closures to make the faster. They act just like regular objects except its value method is instance specific. > One thought that occured to me is that there's some potential that the byte > codes for #value/#value: could make some difference. This may not be much > but there's definitely some overhead here so we may consider to make those > bytecodes support closure activation instead of optimizing for BlockContexts > as they do today - in particular as this would allow us to use the > #internalXYZ variants for activating the closure, which would get inlined > into the VM, etc. etc. etc. I don't think we can do much better. A block has its captured free vars in its indexable slots and its method accesses them directly using pushReceiverVar:. Block creation uses a different #blockCopy: method (#createBlockt:...) which isn't a special bytecode but this only affects block creation not block activation. > If you have any thoughts on this I'd be delighted to hear them. Making the > closures as fast (or very close to) what we have in BlockContexts today > would be a great step forward for (finally) getting true closures to work in > Squeak. And perhaps be a perfect little project for 3.7alpha ;-) There is hope. I was able to double the send speed (according to tinyBenchmarks) in my VI4 implementation using 3 optimizations described above. Cheers, Anthony From schwa at cc.gatech.edu Fri Sep 5 03:06:05 2003 From: schwa at cc.gatech.edu (schwa@cc.gatech.edu) Date: Sat Jan 28 05:30:09 2012 Subject: [FIX] SelectedClassFix Message-ID: from preamble: "Change Set: SelectedClassFix Date: 4 September 2003 Author: Joshua Gargus Fixes a walkback that appears when you click on the 'class' button of a FileContentsBrowser that doesn't have a class selected."! -------------- next part -------------- A non-text attachment was scrubbed... Name: SelectedClassFix.cs.gz Type: application/octet-stream Size: 400 bytes Desc: not available Url : http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20030904/ee25571d/SelectedClassFix.cs.obj From dway at riskmetrics.com Fri Sep 5 03:14:52 2003 From: dway at riskmetrics.com (Doug Way) Date: Sat Jan 28 05:30:09 2012 Subject: [FIX] FileContentsBrowserFix-mu ( [er][et] [approved] ) In-Reply-To: <200309041002.h84A2gLa025797@smtp7.dti.ne.jp> Message-ID: <1D97609A-DF4F-11D7-B5A4-00039303591C@riskmetrics.com> Approved. I've run into this bug a few times myself. On Thursday, September 4, 2003, at 06:02 AM, umejava@mars.dti.ne.jp wrote: > from preamble: > > "Change Set: FileContentsBrowserFix-mu > Date: 4 September 2003 > Author: Masashi Umezawa > > FileContentsBrowser>>selectedClassOrMetaClass should return nil when > there is no selection. But the method raises MessageNotUnderstood when > the browser indicates metaclass AND selectedClass is nil, because it > tries to send #metaClass to nil. > > Now the method correctly returns nil in such case. > > -To see the problem: > Open the code browser for codes with class methods only. > Without any class selection, push the 'class' button in the browser. > > "! > > From schwa at cc.gatech.edu Fri Sep 5 03:17:06 2003 From: schwa at cc.gatech.edu (schwa@cc.gatech.edu) Date: Sat Jan 28 05:30:09 2012 Subject: [FIX] SelectedClassFix (first version had a bug) Message-ID: from preamble: "Change Set: SelectedClassFix Date: 4 September 2003 Author: Joshua Gargus Fixes a walkback that appears when you click on the 'class' button of a FileContentsBrowser that doesn't have a class selected. First version had a bug, because FileContentsBrowsers>>selectedClass answers a PseudoClass, which shoud be sent #metaClass instead of #class."! -------------- next part -------------- A non-text attachment was scrubbed... Name: SelectedClassFix.cs.gz Type: application/octet-stream Size: 485 bytes Desc: not available Url : http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20030904/a54be3ae/SelectedClassFix.cs.obj From schwa at cc.gatech.edu Fri Sep 5 03:18:39 2003 From: schwa at cc.gatech.edu (Joshua 'Schwa' Gargus) Date: Sat Jan 28 05:30:09 2012 Subject: [FIX] SelectedClassFix (ignore, covered by FileContentsBrowserFix-mu) In-Reply-To: References: Message-ID: <20030905031839.GA590@cc.gatech.edu> Oops. Already fixed. > > "Change Set: SelectedClassFix > Date: 4 September 2003 > Author: Joshua Gargus > > Fixes a walkback that appears when you click on the 'class' button of a > FileContentsBrowser that doesn't have a class selected. > > First version had a bug, because FileContentsBrowsers>>selectedClass > answers a PseudoClass, which shoud be sent #metaClass instead of > #class."! > From dway at riskmetrics.com Fri Sep 5 03:35:58 2003 From: dway at riskmetrics.com (Doug Way) Date: Sat Jan 28 05:30:09 2012 Subject: [BUG][FIX] EventSensor initialize does not work in 3.6-5402 ([er][et] [approved]) In-Reply-To: <000201c3717e$4ff52630$1cb8fea9@atlantis> Message-ID: <1055DFCE-DF52-11D7-B5A4-00039303591C@riskmetrics.com> Approved. Verified that "EventSensor initialize" now works. On Tuesday, September 2, 2003, at 02:16 PM, Andreas Raab wrote: > The attached CS removes the initialization code which is now obsolete. > Have > a look at EventSensorConstants definition/initialization code instead. > > Cheers, > - Andreas > >> -----Original Message----- >> From: squeak-dev-bounces@lists.squeakfoundation.org >> [mailto:squeak-dev-bounces@lists.squeakfoundation.org] On >> Behalf Of ALR >> Sent: Tuesday, September 02, 2003 6:54 PM >> To: squeak-dev@lists.squeakfoundation.org >> Subject: [BUG] EventSensor initialize does not work in 3.6-5402 >> >> >> Due to a change of EventSensorConstants from Dictionary to SharedPool, >> EventSensor intialize does not work in 3.6-5402 image. >> (work fine in 3.4-5170). >> >> I would like to add some new event types, but I don't know >> how to fix it. >> >> regards, >> >> Alain >> >> >> >> > > From schwa at cc.gatech.edu Fri Sep 5 03:42:16 2003 From: schwa at cc.gatech.edu (Joshua 'Schwa' Gargus) Date: Sat Jan 28 05:30:09 2012 Subject: [BUG] #removeLinefeeds missing? In-Reply-To: <200309021358.53380@ned.bike-nomad.com> References: <20030902025812.GA7289@cc.gatech.edu> <200309021358.53380@ned.bike-nomad.com> Message-ID: <20030905034216.GA8990@cc.gatech.edu> On Tue, Sep 02, 2003 at 01:58:53PM -0700, Ned Konz wrote: > On Monday 01 September 2003 07:58 pm, Joshua 'Schwa' Gargus wrote: > > > The file list menu item for removing linefeeds from a file seems to > > have been broken somewhere between updates 5169 and 5235 (possibly > > 5200?). I'm not digging deeper right now because I'm not too > > familiar with that code, and I'm in the middle of something else. > > I believe that I fixed that. > > BrowseServerCode-nk Reviewed it. > FileListCleanup-nk That does fix the bug, thanks. I'll hold off reviewing it until we've started 3.7a. > > also: > BFAVStreamCompatibilty-nk I'm not sure I understand this one. Under what circumstances would the BFAV not act properly if FileListCleanup is installed but not BFAVStreamCompat? Thanks, Joshua > > > If you'd like to get this fixed, could you review these packages and > comment on them? > > Thanks, > -- > Ned Konz > http://bike-nomad.com > GPG key ID: BEEA7EFE > From dway at riskmetrics.com Fri Sep 5 03:48:06 2003 From: dway at riskmetrics.com (Doug Way) Date: Sat Jan 28 05:30:09 2012 Subject: [FIX] pathForFileFix ( [approved] ) In-Reply-To: <200309021520.h82FK9402215@q7.q7.com> Message-ID: On Tuesday, September 2, 2003, at 11:20 AM, Mike Rutenberg wrote: > > This is a small change that works. Recommend inclusion > > Tested using > 'file:/foo/bar' asUrl pathForFile > 'file:foo/bar' asUrl pathForFile > > > > > > > > > > > > > > < I'm a bug-fixing machine! > > > This post brought to you by the BugFixArchiveViewer, a handy tool that > makes it easy to comment on proposed fixes and enhancements for Squeak. > For more information, check out the Web page for the > BugFixArchiveViewer > project: http://minnow.cc.gatech.edu/squeak/3214 > > < I'm a bug-fixing machine! > From dway at riskmetrics.com Fri Sep 5 03:51:34 2003 From: dway at riskmetrics.com (Doug Way) Date: Sat Jan 28 05:30:09 2012 Subject: [ENH] Zippier Streams & Decompression ( [approved][for 3.7alpha] ) In-Reply-To: <200309021640.h82Gel410031@q7.q7.com> Message-ID: <3E5CA151-DF54-11D7-B5A4-00039303591C@riskmetrics.com> approved for 3.7alpha. On Tuesday, September 2, 2003, at 12:40 PM, Mike Rutenberg wrote: > > This is a relatively simple change and is faster. > > I do not understand the insides of the ZipArchive well enough to see > why > the additions to RWBinaryOrTextStream are included, but it seems fine. > > Recommend that this be included. > > > > > > > > > > > > > > < I'm a bug-fixing machine! > > > This post brought to you by the BugFixArchiveViewer, a handy tool that > makes it easy to comment on proposed fixes and enhancements for Squeak. > For more information, check out the Web page for the > BugFixArchiveViewer > project: http://minnow.cc.gatech.edu/squeak/3214 > > < I'm a bug-fixing machine! > From dway at riskmetrics.com Fri Sep 5 04:05:25 2003 From: dway at riskmetrics.com (Doug Way) Date: Sat Jan 28 05:30:09 2012 Subject: [FIX] PackageInfo-externalClassSpeedup ( wait for new package version ) In-Reply-To: <200309021622.h82GMt408119@q7.q7.com> Message-ID: <2D42CBD0-DF56-11D7-B5A4-00039303591C@riskmetrics.com> On Tuesday, September 2, 2003, at 12:22 PM, Mike Rutenberg wrote: > > This is a very small local change, converting a returned Array into a > Set before using it for testing. I have not run the code, but it looks > fine. Recommend to include. (This one is maintained in the PackageInfo package on SqueakMap. Avi is free to add this to a new version of PackageInfo...) From dway at riskmetrics.com Fri Sep 5 04:26:26 2003 From: dway at riskmetrics.com (Doug Way) Date: Sat Jan 28 05:30:09 2012 Subject: [ENH] BrowseServerCode-nk ( [approved][for 3.7alpha] ) In-Reply-To: Message-ID: <1D207D82-DF59-11D7-B5A4-00039303591C@riskmetrics.com> approved for 3.7alpha. On Thursday, September 4, 2003, at 10:51 PM, schwa@cc.gatech.edu wrote: > > It took me a few minutes to figure out exactly what the deal was, until > I saw that #readOnlyFileNamed: was now being sent to a directory > instead > of FileStream. Looks > good! > > I tested it on files from the UCSBCreateArchive server. I verified > that > browsing remote code files didn't work before using this changeset, but > did afterward. I also verified that browing local code files still > works. > > From schwa at cc.gatech.edu Fri Sep 5 05:40:35 2003 From: schwa at cc.gatech.edu (Joshua 'Schwa' Gargus) Date: Sat Jan 28 05:30:09 2012 Subject: FFI questions In-Reply-To: <002601c3734f$51e83950$1cb8fea9@atlantis> References: <20030905012023.GA19451@cc.gatech.edu> <002601c3734f$51e83950$1cb8fea9@atlantis> Message-ID: <20030905054035.GA13799@cc.gatech.edu> On Fri, Sep 05, 2003 at 03:45:00AM +0200, Andreas Raab wrote: > Stdio>>puts: aString > > > will allow you to use > > Stdio new puts: 'Hello World'. > > whereas using 'byte*' in the above will print out half of Squeak's object > memory. :-) > > - What the heck do I do for 'byte**'? > > (The C function expects an array of null-terminated strings) > > You need to assemble the arguments manually. Bert had a nice example for > this some time back (it was some socket related stuff) you may want to > google for it. I found it, but it only has reading from **s, not writting them. Bweh. But now that I know what the problem was, I can hack something together. "Null-termininated array of null-terminated strings" is a common enough concept that it would be probably be handy for lots of people. Thanks for the help, Joshua > > Cheers, > - Andreas > From afunkyobject at yahoo.com Fri Sep 5 05:41:16 2003 From: afunkyobject at yahoo.com (Chris Muller) Date: Sat Jan 28 05:30:09 2012 Subject: [Q] Morph owners Message-ID: <20030905054116.75551.qmail@web12201.mail.yahoo.com> I have a composition of Morphs that, when I pick up an inner one (e.g., whose owner is not the world), would like to use a NCConnector to point to its former owner. I tried overriding privateOwner: to: super privateOwner: aMorph. self resetLines where I implemented resetLines to do what I want. It didn't work. It didn't appear to call privateOwner: when I dragged out or even dropped onto the current World. It seems clunky to be overriding this private method anyway. Is there a better way? Thanks! Chris __________________________________ Do you Yahoo!? Yahoo! SiteBuilder - Free, easy-to-use web site design software http://sitebuilder.yahoo.com From michael at squeakland.org Fri Sep 5 07:18:42 2003 From: michael at squeakland.org (Michael Rueger) Date: Sat Jan 28 05:30:09 2012 Subject: XML Parser, interleaving text and elements In-Reply-To: <200309041724.58917.sstnjpm02@sneakemail.com> References: <200309041724.58917.sstnjpm02@sneakemail.com> Message-ID: <3F5838D2.9090006@squeakland.org> sstnjpm02@sneakemail.com wrote: > Is this correct or a bug? I assumed it's legal to interleave text and > elements like this in XML and expect the structure to be preserved. This is actually a bug. I actually had noticed it a while ago and then completely forgot about it. I will look into it. Michael From brent.pinkney at aircom.co.za Fri Sep 5 08:37:15 2003 From: brent.pinkney at aircom.co.za (Brent Pinkney) Date: Sat Jan 28 05:30:09 2012 Subject: [ANN] Chronology Package on Squeak Map Message-ID: Hi, I have finally added my Chronology package to Squeak Map. http://map1.squeakfoundation.org/sm/package/aadea483-4550-40aa-8d8e- 5368fc1f27e9 Homepage: http://minnow.cc.gatech.edu/squeak/1871 Includes some tests. Passes all ANSI tests. Cheers Brent From sstnjpm02 at sneakemail.com Fri Sep 5 08:43:47 2003 From: sstnjpm02 at sneakemail.com (ar) Date: Sat Jan 28 05:30:09 2012 Subject: XML Parser, interleaving text and elements References: <200309041724.58917.sstnjpm02@sneakemail.com> <3F5838D2.9090006@squeakland.org> Message-ID: On Fri, 05 Sep 2003 09:18:42 +0200, Michael Rueger wrote: > sstnjpm02@sneakemail.com wrote: > >> Is this correct or a bug? I assumed it's legal to interleave text and >> elements like this in XML and expect the structure to be preserved. > > This is actually a bug. I actually had noticed it a while ago and then > completely forgot about it. I will look into it. As a hack, I changed XMLDOMParser >> characters: to do addElement instead of addContent. No doubt this causes some design problems as well as actual bugs since elements was not intended to hold XMLStringNodes, but it seems to me that there is no avoiding storing the elements and strings together. On a separate note, I am trying to get my xhtml containing javascript to parse properly. My immediate problem is that in the script tag, crs and tabs are changed to , etc. As a huge hack, just to get my html to work, I subclassed XMLStringNode and overrode printXMLOn: then patch in my