On Tue, 2008-02-05 at 14:57 -0300, Edgar J. De Cleene wrote:
> > > El 2/5/08 11:18 AM, "Ken Causey" <[hidden email]> escribió: > > > because the current release > > management schemes don't well-support removing something readily > ???? > > I have some Mantis reports going forward and backward, so it's unfair say > this. > I send about having <- some time ago, and in this days reply to Yoshiki > saying if some is against his proposal. > No mails until now. > > Edgar There are many ideas that seem great conceptually and even seem reasonable in the short term once implemented but that later cause concern. I'm referring to being able to actually incorporate a feature in such a way that the community can try it out readily and easily and yet be able to refuse it in some reasonable time period (weeks at least). While an implementation in a bug report is a great thing, it clearly is not sufficient. Take the recent example of Traits and the changes to the Class system utilizing Traits. The issue is still open on these and yet how long have then been in released images? Ken signature.asc (196 bytes) Download Attachment |
In reply to this post by Paul D. Fernhout
On 05/02/2008, Paul D. Fernhout <[hidden email]> wrote:
> pile of sticks since C code can be so brittle. Objective-C is an improvement > in that regard. Since you bring the subject, the GNUstep project recently announced a new Objective-C runtime: - announcement https://mail.gna.org/public/etoile-discuss/2007-11/msg00001.html - code http://svn.gna.org/svn/etoile/branches/libobjc_tr/ The runtime was designed with flexibility in mind (not unlike COLA), and the object model is based on prototypes, so compiling Smalltalk for this runtime would be really simple. Also the GNUstep libraries (UI in particular) run on windows, mac, and linux. -- Damien Pollet type less, do more [ | ] http://people.untyped.org/damien.pollet |
In reply to this post by Michael Haupt-3
Hi guys -
[Just caught up with Squeak mail and this thread] Michael Haupt <[hidden email]> wrote... >Hi Paul, > >On Feb 4, 2008 11:44 PM, Paul D. Fernhout <[hidden email]> wrote: >> As impressive as it was for Dan Ingalls to make that version of Squeak, and >> then Pavel to decompile the result into source, so what? What is the license >> of it all (either origins or decompiled version)? > >unclear. It's not officially released, there is no licensing statement. I'm actually nearly done with this process. I'm in a ridiculous discussion about the name. I had proposed JSqueak and got "push-back", as they say, from the trademark folks. It appears that, if I'm willing to call it 'Idaho' or 'Potato' or something, then we're good to go. It's clear Sun is happy to let it go and I am too. >(Isn't it a true nuisance that, instead of caring about software and >complaining about and fixing bugs, we end up having to care about >legal stuff and complaining about and fixing licensing issues these >days?) > >> How well factored is it? > >It's very nice code, and nicely modularised into just 8 classes and 1 >interface: the Squeak interface defines constants. The Main and >Starter classes are wrappers to get everything running. Then there are >SqueakVM and SqueakPrimitiveHandler for execution, Screen and BitBlt >for displaying, and SqueakImage and SqueakObject for representing >living things. > >> Does it have nay hope to be supported by a community? > >See above. Since it's not officially released, it's a problem. I'd be >in that community, for sure. I will fix that problem. > > Does it take advantage of the Java/JVM platform, including threading and multi-processor support? > >No; apart from garbage collection, it does not take advantage of the >JVM platform. > >> Or interoperate easily back and forth with Java libraries like Jython can? > >That is not supported, but should be possible through primitives. >Object conversion may be challenging, though. > >> Also, that version is (to my understanding) defining its own objects, not >> using Java/JVM's objects, so there is a performances hit as well as other >> layers of complexity and interoperability issues > >You are right there. Then again, the difference for objects is larger >for Java and Squeak than for Java and Groovy - the latter's objects >are deliberately Java objects, and the entire object model of Groovy >has been designed with the Java object model in mind. SqueakOnJava is >"just" a Squeak implementation on top of the JVM, with an approach as >simple as possible. > >> To me, that example just shows again everything wrong with the Squeak >> development process and why it is so frustrating to deal with it > >I really would not put it that way. I don't believe SqueakOnJava was >intended to be the next big thing in Squeak progress; I rather believe >it was a case study, or a feasibility study. In other words, >SqueakOnJava, as I see it, is simply not part of the "Squeak >development process" (whatever that may be). Actually, it was neither: I felt I needed to learn Java and the Java tools, so I picked the most fun thing I could think of to do. I tried to make it really small and yet reasonably performant. The simplicity should make it relatively easy to morph into something that integrates more closely with Java objects but that was not my focus. It was more important to me to retain enumeration and mutation than to hook up to Java. - Dan |
In reply to this post by Michael Haupt-3
Hi Dan,
On Feb 5, 2008 7:37 PM, Dan Ingalls <[hidden email]> wrote: > I'm actually nearly done with this process. I'm in a ridiculous discussion about the name. I had proposed JSqueak and got "push-back", as they say, from the trademark folks. It appears that, if I'm willing to call it 'Idaho' or 'Potato' or something, then we're good to go. It's clear Sun is happy to let it go and I am too. that is extremely good news, thanks for sharing it! :-) > Actually, it was neither: I felt I needed to learn Java and the Java tools, so I picked the most fun thing I could think of to do. I tried to make it really small and yet reasonably performant. The simplicity should make it relatively easy to morph into something that integrates more closely with Java objects but that was not my focus. It was more important to me to retain enumeration and mutation than to hook up to Java. Some students of ours have been working on devising a kind of JIT compiler (generating actual Java methods from Squeak CompiledMethod instances, and calling the generated methods instead of interpreting Squeak bytecodes) last summer semester. There was trouble with the Squeak/Java interface, and also with the fact that debugging the image from the outside is not the easiest thing to do... anyway, they made quite a step, and I'm definitely intending to pursue this further. Best, Michael |
In reply to this post by Dan Ingalls
On Feb 5, 2008, at 19:37 , Dan Ingalls wrote:
> > I'm actually nearly done with this process. I'm in a ridiculous > discussion about the name. I had proposed JSqueak and got "push- > back", as they say, from the trademark folks. It appears that, if > I'm willing to call it 'Idaho' or 'Potato' or something, then we're > good to go. It's clear Sun is happy to let it go and I am too. Did you try "Piglet"? ;) - Bert - |
In reply to this post by keith1y
Keith-
As I pointed out, I wrote such code for Squeak ten or so years ago. The problem isn't making the change. The problem isn't people being too "busy" to put a few lines of code in the mainstream image changing a few classes and then running a script while having lunch. If it was, in sometime over the course of *ten years* someone would have found a few minutes to remove a needless incompatibility Squeak has with just about every other dialect of Smalltalk in the universe -- this strange us of underscore perhaps the single biggest syntactic reason you can't easily exchange code with other Smalltalks. IMHO the issue includes the process and community norms whereby such changes get adopted and mainstreamed to remove a *pointless* incompatibility with the rest of the world (while still leaving it open to experts to do things differently). And I use the underscore issue as an *example*; it's just one of many. Namespaces was another big one. Stuff like a left click brings up a menu lots of times is another (just plain bad GUI design by any modern standard of expectations for 99% of people, with there being practically zero benefit to doing things the current way, if anyone can easily even *explain* how it works consistently). I'm all for diversity. The problem is, to have a vibrant free software community, you want diversity more at the edges than the core. That's what Python has. Or what C has. And if you have diversity at the core, you want some way to manage it well (like Igor suggests). It is my hope a redesign on a common platform, leveraging that standard, might push Squeak in positive new directions. I've already spent person-months coding that from another direction, trying to make Python more Squeak-like (which it its own limits). While I've long been interested in this issue (new versions of Squeak) I started this topic in response to a major maintainer and Squeak contributor and booster and Squeak foundation board member saying some really tough things to hear. Again, he said: "I can tell you that I will ***never** maintain Squeak anymore and I'm really thinking about what I will do. Because I think that I did a lot for smalltalk in general the last 10 years and may be this is the time to do something else to get a large breath of fresh air." I am putting on the table what I think is a big set of issues (complexity management) and one possible solution (a rebuild from scratch), thought of course there are others (what Igor proposes with loading multiple versions of code will likely be the future, and to an extent Les Tyrrell's OASIS worked in that direction). Over the last dozen or so years, I've seen lots of changes fall by the wayside with Squeak. Lots of questionable stuff get frozen. Although I'll freely admit I am not longer a current Squeak user for pretty much five years or so (beyond fooling with it now and then every few new releases, usually giving up after a couple of crashes when I stress test it and it falls over). In general, I don't think it is productive on open source / free software mailing lists to say "if you want X, do it yourself". The reason for that is that feedback from users who do testing and even potential users is often very useful in thinking about the evolution of a system -- and not all users or potential users have the same level of skill or available time or commitment to do something. This is where that line of response can lead IMHO: "Mitch Kapor's Weekend at Bernie's [How Chandler wnet wrong]" http://whydoeseverythingsuck.com/2008/01/mitch-kapors-weekend-at-bernies.html "The Chandler interface design lead responded. Because I don't want this to be personal I will refer to her as DL. DL responded to that statement with the following: "Thank you Hank for articulating this. I think this may be at the core of issues you are running into. [Note: *its my* issue] ... Think of it this way. If you have a tool and you can't predict what the behavior of that tool will be, it will *never* be useful. ... And so I issued a challenge to the entire OSAF team. I challenged anyone to explain to me what the "View" menu did. No takers. It's so complicated even the designers couldn't explain it. ... If you let the fact that no one could explain a core menu bar function sink in, you might get a clue as to why, despite what had to be 10 to 20 million dollars of Mitch's money invested, Chandler still, well, sucked." Now Squeak isn't in that position overall, but *areas* of it are, IMHO. And these are often the first areas a Squeak newbie encounters. And a big part of that is in relation to not focusing on taming complexity IMHO. And that's the reason someone like that board member is so frustrated IMHO. And I'm not convinced those problems can be fixed by submitting a few patches. For a few reasons, including, one key person who is/was taking in such patches is talking about throwing in the towel over how that process isn't working out. Anyway, I did post some code (but in Java). :-) And it was written months ago towards such an effort. All the best. And by the way, how would you feel if when you posted "I just discovered on Mac OS X 10.5 Leopard that the unix vm (3.9-8/3.9-10) uses leopards X11 support rather than the quartz interface." or "When using the latest XML-Support/YAXO with universes it is sending the image into an un-interruptible state when it tries to parse the xml returned form the server." someone replies that you were ranting and just fix it yourself? Frankly, I wish I *was* ranting, and I could fix it just by myself. :-) --Paul Fernhout Keith Hodges wrote: >> And yes, in a new Squeak, backarrow assign should be the first thing to be >> removed from the default image IMHO. :-) >> >> --Paul Fernhout >> >> > Dear Paul, > > you are ranting. > > The reason this has not happened is that people are busy. I have been > wanting to do this for two years and just havent had time. > Since squeak is open source, if you want something doing... you are as > much invited to improve things as anyone else is. > > In the time you have spent writing your long emails you could have > tweaked the parser to enable underscores in methods and variables, AND > still have it available for assignment. Some packages like > Poststress/Gloop already make similar tweaks. > > Since you care about it so much, I look forward to seeing what you come > up with > > cheers > > Keith |
I feel a little out of place commenting, as I am even less than a
newbie when it comes to Squeak/Smalltalk. In fact, I've only started Squeak a few times, poked around, and closed it in disgust and/or utter-confusion after a time due to the overwhelming complexity (and, IMO, ugliness) of the UI that hits like a brick to the face when first starting an image. So why am I here and why do I care? I love the core principals of Smallktalk (and Seaside!) so much that I've been subscribed to the list for awhile just reading and watching and waiting for some sign of... I dunno... social growth? As an outsider looking in, what I see is a relatively closed community of uber-experts who enjoy their exclusive membership in an exclusive club. Looking past the UI and other complexities and shunning the (much larger) outside world of file-based development feels like an unspoken hazing ritual that newbies are asked to just accept blindly in order to join. I have a hard time playing with Squeak because it feels so isolated by design. I want to make apps that fit in with my other apps. Can I use Squeak to make an OSX app that looks and acts like an OSX app, for example? I honestly don't know because from what I've seen, Squeak seems to want to be only about Squeak. And, IMO, the core community reflects that same insular attitude. (Or vice-versa?) Just what *is* Squeak for, in the end? l8r Sean On Feb 5, 2008, at 8:23 PM, Paul D. Fernhout wrote: > Keith- > > As I pointed out, I wrote such code for Squeak ten or so years ago. > The > problem isn't making the change. The problem isn't people being too > "busy" > to put a few lines of code in the mainstream image changing a few > classes > and then running a script while having lunch. If it was, in > sometime over > the course of *ten years* someone would have found a few minutes to > remove a > needless incompatibility Squeak has with just about every other > dialect of > Smalltalk in the universe -- this strange us of underscore perhaps the > single biggest syntactic reason you can't easily exchange code with > other > Smalltalks. > > IMHO the issue includes the process and community norms whereby > such changes > get adopted and mainstreamed to remove a *pointless* > incompatibility with > the rest of the world (while still leaving it open to experts to do > things > differently). And I use the underscore issue as an *example*; it's > just one > of many. Namespaces was another big one. Stuff like a left click > brings up a > menu lots of times is another (just plain bad GUI design by any modern > standard of expectations for 99% of people, with there being > practically > zero benefit to doing things the current way, if anyone can easily > even > *explain* how it works consistently). > > I'm all for diversity. The problem is, to have a vibrant free software > community, you want diversity more at the edges than the core. > That's what > Python has. Or what C has. And if you have diversity at the core, > you want > some way to manage it well (like Igor suggests). > > It is my hope a redesign on a common platform, leveraging that > standard, > might push Squeak in positive new directions. I've already spent > person-months coding that from another direction, trying to make > Python more > Squeak-like (which it its own limits). > > While I've long been interested in this issue (new versions of > Squeak) I > started this topic in response to a major maintainer and Squeak > contributor > and booster and Squeak foundation board member saying some really > tough > things to hear. > > Again, he said: "I can tell you that I will ***never** maintain Squeak > anymore and I'm really thinking about what I will do. Because I > think that I > did a lot for smalltalk in general the last 10 years and may be > this is the > time to do something else to get a large breath of fresh air." > > I am putting on the table what I think is a big set of issues > (complexity > management) and one possible solution (a rebuild from scratch), > thought of > course there are others (what Igor proposes with loading multiple > versions > of code will likely be the future, and to an extent Les Tyrrell's > OASIS > worked in that direction). > > Over the last dozen or so years, I've seen lots of changes fall by the > wayside with Squeak. Lots of questionable stuff get frozen. > Although I'll > freely admit I am not longer a current Squeak user for pretty much > five > years or so (beyond fooling with it now and then every few new > releases, > usually giving up after a couple of crashes when I stress test it > and it > falls over). > > In general, I don't think it is productive on open source / free > software > mailing lists to say "if you want X, do it yourself". The reason > for that is > that feedback from users who do testing and even potential users is > often > very useful in thinking about the evolution of a system -- and not > all users > or potential users have the same level of skill or available time or > commitment to do something. This is where that line of response can > lead IMHO: > "Mitch Kapor's Weekend at Bernie's [How Chandler wnet wrong]" > http://whydoeseverythingsuck.com/2008/01/mitch-kapors-weekend-at- > bernies.html > "The Chandler interface design lead responded. Because I don't want > this to > be personal I will refer to her as DL. DL responded to that > statement with > the following: "Thank you Hank for articulating this. I think this > may be at > the core of issues you are running into. [Note: *its my* issue] ... > Think of > it this way. If you have a tool and you can't predict what the > behavior of > that tool will be, it will *never* be useful. ... And so I issued a > challenge to the entire OSAF team. I challenged anyone to explain > to me what > the "View" menu did. No takers. It's so complicated even the designers > couldn't explain it. ... If you let the fact that no one could > explain a > core menu bar function sink in, you might get a clue as to why, > despite what > had to be 10 to 20 million dollars of Mitch's money invested, Chandler > still, well, sucked." > > Now Squeak isn't in that position overall, but *areas* of it are, > IMHO. And > these are often the first areas a Squeak newbie encounters. And a > big part > of that is in relation to not focusing on taming complexity IMHO. > And that's > the reason someone like that board member is so frustrated IMHO. > And I'm not > convinced those problems can be fixed by submitting a few patches. > For a few > reasons, including, one key person who is/was taking in such > patches is > talking about throwing in the towel over how that process isn't > working out. > > Anyway, I did post some code (but in Java). :-) And it was written > months > ago towards such an effort. > > All the best. > > And by the way, how would you feel if when you posted "I just > discovered on > Mac OS X 10.5 Leopard that the unix vm (3.9-8/3.9-10) uses > leopards X11 > support rather than the quartz interface." or "When using the latest > XML-Support/YAXO with universes it is sending the image into an > un-interruptible state when it tries to parse the xml returned form > the > server." someone replies that you were ranting and just fix it > yourself? > > Frankly, I wish I *was* ranting, and I could fix it just by > myself. :-) > > --Paul Fernhout > > Keith Hodges wrote: >>> And yes, in a new Squeak, backarrow assign should be the first >>> thing to be >>> removed from the default image IMHO. :-) >>> >>> --Paul Fernhout >>> >>> >> Dear Paul, >> >> you are ranting. >> >> The reason this has not happened is that people are busy. I have >> been >> wanting to do this for two years and just havent had time. >> Since squeak is open source, if you want something doing... you >> are as >> much invited to improve things as anyone else is. >> >> In the time you have spent writing your long emails you could have >> tweaked the parser to enable underscores in methods and variables, >> AND >> still have it available for assignment. Some packages like >> Poststress/Gloop already make similar tweaks. >> >> Since you care about it so much, I look forward to seeing what you >> come >> up with >> >> cheers >> >> Keith > |
On Tue, Feb 05, 2008 at 09:06:58PM -0600, Sean Heber wrote:
> I feel a little out of place commenting, as I am even less than a newbie > when it comes to Squeak/Smalltalk. In fact, I've only started Squeak a few > times, poked around, and closed it in disgust and/or utter-confusion after > a time due to the overwhelming complexity (and, IMO, ugliness) of the UI > that hits like a brick to the face when first starting an image. > > So why am I here and why do I care? I love the core principals of > Smallktalk (and Seaside!) so much that I've been subscribed to the list for > awhile just reading and watching and waiting for some sign of... I dunno... > social growth? If you like the idea but not the look of Squeak, try some of the more professional-looking Smalltalks. Seaside runs on most of them. > As an outsider looking in, what I see is a relatively closed community of > uber-experts who enjoy their exclusive membership in an exclusive club. > Looking past the UI and other complexities and shunning the (much larger) > outside world of file-based development feels like an unspoken hazing > ritual that newbies are asked to just accept blindly in order to join. I find that this mailing list is a pretty poor reflection of the attitudes of actual squeak users, due to the perpetual flaming about {license, traits, namespaces, UI} by those who are *NOT* doing anything about it. Come visit the IRC channel #squeak on freenode to talk to actual users who like working on squeak, chatting about most anything, and making new users feel welcome. > I have a hard time playing with Squeak because it feels so isolated by > design. I want to make apps that fit in with my other apps. Can I use > Squeak to make an OSX app that looks and acts like an OSX app, for example? You are correct here. Squeak is a very self-contained system, and it is intentionally very portable and platform-independent (more so than any other system I've seen, for sure). If you want to do native Mac apps in smalltalk, maybe try Ambrai Smalltalk. > I honestly don't know because from what I've seen, Squeak seems to want to > be only about Squeak. And, IMO, the core community reflects that same > insular attitude. (Or vice-versa?) Come to #squeak. You'll get a much better perspective. > Just what *is* Squeak for, in the end? I'd say it is for building applications, building tools, and having fun, and having the support of a community that has been collectively doing so for 35 years. There aren't many communities with as many smart people as squeak has, with as much thought expended on how the system and users work together. -- Matthew Fulmer -- http://mtfulmer.wordpress.com/ Help improve Squeak Documentation: http://wiki.squeak.org/squeak/808 |
On 06/02/2008, Matthew Fulmer <[hidden email]> wrote:
> There aren't many > communities with as many smart people as squeak has, with as > much thought expended on how the system and users work together. > A big +1 Want to add, that i never met before so friendly community as squeak is. -- Best regards, Igor Stasenko AKA sig. |
In reply to this post by Tapple Gao
On Feb 5, 2008 10:58 PM, Matthew Fulmer <[hidden email]> wrote:
Sure this list isn't perfect, but people have been generally respectful and dialog is an important part of the process. Based on the Squeak Community page, this list is a key part of the community and is open to everyone. Feedback *is* doing something - there exists a broad spectrum of actual Squeak developers most of whom will never contribute to the core. Squeak has inherited Smalltalk challenges and added a few of it's own. Some of these have been around for a long time and are significant but in spite of them the community survives and attracts people like Sean. That he was motivated to speak up and felt comfortable enough to do so is a testimony to the goodness that exists here. Showing him that other facets of the community exist is great, but we/he can handle talking about the problems too. Cheers, Laurence
|
In reply to this post by Dan Ingalls
Hi Dan
>> I'm actually nearly done with this process. I'm in a ridiculous >> discussion about the name. I had proposed JSqueak and got "push- >> back", as they say, from the trademark folks. It appears that, if >> I'm willing to call it 'Idaho' or 'Potato' or something, then we're >> good to go. It's clear Sun is happy to let it go and I am too. Excellent. So the problem is squeak in the name? Call it Zork or a bean eating animal like Squirrel and we get done. Stef |
In reply to this post by Dan Ingalls
Dan Ingalls wrote:
> I'm actually nearly done with this process. I'm in a ridiculous discussion about the name. I had proposed JSqueak and got "push-back", as they say, from the trademark folks. It appears that, if I'm willing to call it 'Idaho' or 'Potato' or something, then we're good to go. It's clear Sun is happy to let it go and I am too. Call it Plonk (meaning a smack on the head of the legal types ;-) Cheers, - Andreas |
Hi Andreas,
On Feb 6, 2008 8:34 AM, Andreas Raab <[hidden email]> wrote: > Call it Plonk (meaning a smack on the head of the legal types ;-) uh... wouldn't that be a more hollow sound, something along the lines of a deep and resonating DONNNNNNNNNNNNNNNG. But of course you cannot name a decent piece of software like that. scnr, Michael |
In reply to this post by Edgar J. De Cleene
> Any against having the Yoshiki modifications in the next Squeak image ?
Well, I might. What font to use and how much bigger image people would tolerate is a question. We have different fonts of different sizes in the image but how many new glyphs for each font would we add to the image? - Just up-arrow and left-arrow for accuny? - perhaps some more arrows? - get glyphs from Dejavu and provide it in the image? - replace BitStream with Dejavu? - Or, we declare that we will be using some external font mechanism? -- Yoshiki |
In reply to this post by stephane ducasse
stephane ducasse wrote:
> Hi Dan > >>> I'm actually nearly done with this process. I'm in a ridiculous >>> discussion about the name. I had proposed JSqueak and got >>> "push-back", as they say, from the trademark folks. It appears >>> that, if I'm willing to call it 'Idaho' or 'Potato' or something, >>> then we're good to go. It's clear Sun is happy to let it go and I >>> am too. > > Excellent. So the problem is squeak in the name? Call it Zork or a > bean eating animal like Squirrel and we get done. > > Stef > > something "Squeakish" Keith |
In reply to this post by Bergel, Alexandre
Wow, Athena looks cool! I'd tried to leverage SmallWorld but not got past
the image being binary. I had wanted completely to build from source. If Athena and Spoon and Dan's project and a few other projects and people could get together somehow, then we might have something even greater, and not several people working mostly on their own. But coming up with a shared vision might be hard? Here are some ideas for Java<-->Smalltalk interoperability. Not necessarily stuff you might want to do with Athena (for memory reasons), but I put it here for future reference (including a possible future reply to Dan). This is just a sketch, and assumes an ideal of ignoring memory use for ease of implementation, debugging, and minimizing complexity. Here is an idea for using native Java/JVM objects for Smalltalk objects instead of implementing them on top of the JVM as bytes. Smalltalk method dispatching would be handled specially (above Java) but the instances themselves would be Java objects and use the Java garbage collector. Have a Java class "SmalltalkProxy" which supports one method like "processMessage". That function takes an argument of a "SmalltalkMessageAndStackFrame" which essentially stores the information in a message and then, if the message is processed, some stack information. This SmalltalkProxy class has only two fields -- the proxied Java/JVM "Object" and a boolean "became" flag. The "processMessage" function is essentially an elaboration of the code I posted at the beginning of this thread. It knows how to look at the proxy and decide how to send the message to it. There are at least three dispatching cases for a message. If the proxied object is a plain Java object, a function gets called if one matches the message pattern. If the Java object has a "processMessage" method, it gets called. If the object is a Java/JVM class "SmalltalkInstance" class instance, then Smalltalk-ish dispatching happens, and the message can also be used as a stack frame item. (This merging messages and stack frames is a departure from typical implementations and implies a big performance hit.) For design simplicity and run-time extensibility, that "SmalltalkInstance" class might have a few fields even if they were not usually all used. They might be: * class (usually a reference to another "SmalltalkInstance") * dictionary of instance variables (not an array since I don't want to bother for recompiles in keeping things up to date, and for debugging we can have symbols as selectors not indexes) * dictionary of locally overridden methods (for prototype support) * array of Java/JVM objects * array of binary data Obviously, that expanded structure might be what is tried at first, and then optimizations of all that might be made later. Swapping object identities is handled at the proxy level -- the two proxied objects are just exchanged. So you can see the Proxy level is acting a bit like an object table. "Becomes" might be handled by changing the became field to true and then changing the proxy to the new object. After that, the dispatching will work differently and just be passed onto the new object without further processing. One can also merge the Smalltalk and the SmalltalkInstance class, but swapping then becomes a matter of exchanging the embedded Java objects. However, then directly proxied Java objects can no longer easily have their identities swapped (it would require directly replacing all references in all Smalltalk instance objects). But that might be OK -- you'd just get an exception that Java objects cannot support "become". Calling into Smalltalk from Java I haven't thought through. I know Jython does it but I have not looked at that. I suspect you could intercept an exception and do something. I'm assuming exceptions could go up the message stack, but I admit that throwing them across intervening Java function calls within the method stack could be problematical -- the message stack might need to be annotated somehow in those cases before calling the function, another performance hit. Now, this approach has a higher memory cost. And it also has a loss of runtime performance for Smalltalk code. But I think if you merged in support for Scala (a JVM language which is typed and fast) to compile bottleneck code from Smalltalk->Scala->JVM, the hybrid mix might be pretty fast. Equivalent to the successful CPython/C mix. Or that would be my hope at least. I might even throw Jython into the mix too. :-) Here is a Smalltalk-like parser in Jython: http://patapata.svn.sourceforge.net/viewvc/patapata/tags/PataPata_v204/Pointrel/smalltalkToPython.py?revision=315&view=markup that could be elaborated on for bootstrapping into a pure Smalltalk-in-Smalltalk-on-the-JVM compiler. One could then build tools within this Squeak-like environment which support Smalltalk, Scala, Java, and Jython in an Eclipse-like way (maybe even pulling in Eclipse components entirely -- it's just Java right?), but using an RDF-like (or Pointrel-ish) approach for storing content instead of files. And the image would be written out by the proxies as Smalltalk source code,making for a slower loading and writing process, but an understandable image. SO it's a polyglot system. :-) I wrote on that in 1996 (was that really twelve years ago? "Squeak and the Babel of programming languages" to Squeak list. Would be nice to finally see it happen on a free platform. Anyway, just outlining some ideas. Not sure if they will work out in practice. :-) --Paul Fernhout Bergel, Alexandre wrote: >> Does it have nay hope to be supported by a community? Does it take >> advantage >> of the Java/JVM platform, including threading and multi-processor >> support? >> Or interoperate easily back and forth with Java libraries like Jython >> can? > > I haven't looked at deeply, but I strongly suspect that no interaction > is actually possible with Java. > > I am currently working on this. > http://bergel.eu/athena for more info |
In reply to this post by keith1y
On Feb 6, 2008 6:05 AM, Keith Hodges <[hidden email]> wrote:
Given that Squeak's legal status is still being clarified and Disney's role is part of the discussion, making a strong case for why Sun isn't putting themselves at risk would be expensive at best. Disney has a reputation for very effective and aggressive protection of their IP - lawyers everywhere tread very carefully around them. A Sun IP attorney who wants to keep her job has to push back on a research project that could potentially(no matter how remote) step on the lion's tail. HTH, Laurence P.S. That HP, a Sun competitor is also part of the Squeak IP discussion only adds to the cost of legal analysis. This is yet another reason why it would be so valuable for the visible projects to establish an unambiguous definition of what Squeak is. Even a bare-bones VM and image that required lots of work to build anything useful from would be better than what we have now.
|
Laurence Rozier <[hidden email]> wrote...
>Given that Squeak's legal status is still being clarified and Disney's role is part of the discussion, making a strong case for why Sun isn't putting themselves at risk would be expensive at best. Disney has a reputation for very effective and aggressive protection of their IP - lawyers everywhere tread very carefully around them. A Sun IP attorney who wants to keep her job has to push back on a research project that could potentially(no matter how remote) step on the lion's tail. Exactly. In spite of my cynical description, their concern is perfectly appropriate, and I'm happy to go along with it just to get the thing out. - Dan |
In reply to this post by Edgar J. De Cleene
>>>>> "Edgar" == Edgar J De Cleene <[hidden email]> writes:
Edgar> Any against having the Yoshiki modifications in the next Squeak image ? I do. It's an trivial unnecessary *incompatibility* being introduced in an era when cross-compatibility with Cincom and Gemstone would be more useful. -- Randal L. Schwartz - Stonehenge Consulting Services, Inc. - +1 503 777 0095 <[hidden email]> <URL:http://www.stonehenge.com/merlyn/> Perl/Unix/security consulting, Technical writing, Comedy, etc. etc. See PerlTraining.Stonehenge.com for onsite and open-enrollment Perl training! |
In reply to this post by Paul D. Fernhout
> Wow, Athena looks cool! I'd tried to leverage SmallWorld but not
> got past > the image being binary. I had wanted completely to build from source. Source code of classes in SmallWorld may be easily extracted. Would be easier to do it with Athena however, mainly because I fixed few bugs. > If Athena and Spoon and Dan's project and a few other projects and > people > could get together somehow, then we might have something even > greater, and > not several people working mostly on their own. But coming up with > a shared > vision might be hard? In my opinion, the key of success for JRuby, Rhino, JScheme, Jython is to enable interaction with Java. When Dan will release its source, I might port Athena on his VM. But again, interaction with Java is crucial. > Here is an idea for using native Java/JVM objects for Smalltalk > objects > instead of implementing them on top of the JVM as bytes. Smalltalk > method > dispatching would be handled specially (above Java) but the instances > themselves would be Java objects and use the Java garbage collector. This is pretty much the same way Jython, JRuby and Rhino have. > The "processMessage" function is essentially an elaboration of the > code I > posted at the beginning of this thread. It knows how to look at the > proxy > and decide how to send the message to it. There are at least three > dispatching cases for a message. If the proxied object is a plain Java > object, a function gets called if one matches the message pattern. > If the > Java object has a "processMessage" method, it gets called. If the > object is > a Java/JVM class "SmalltalkInstance" class instance, then Smalltalk- > ish > dispatching happens, and the message can also be used as a stack > frame item. > (This merging messages and stack frames is a departure from typical > implementations and implies a big performance hit.) This strategy makes sense. This is what is employed in most dynamically typed languages for JVM. > For design simplicity and run-time extensibility, that > "SmalltalkInstance" > class might have a few fields even if they were not usually all > used. They > might be: > * class (usually a reference to another "SmalltalkInstance") > * dictionary of instance variables (not an array since I don't want to > bother for recompiles in keeping things up to date, and for > debugging we can > have symbols as selectors not indexes) Are you sure that this dictionary is compatible with an efficient lookup ? > * dictionary of locally overridden methods (for prototype support) Why? > * array of Java/JVM objects > * array of binary data What those arrays are for? > Swapping object identities is handled at the proxy level -- the two > proxied > objects are just exchanged. So you can see the Proxy level is > acting a bit > like an object table. Is the swapping related to implement "become:"? Why would you need this? Since you relying on the Java memory model, only Java object that have been "proxyied" may be involved in a become operation right? Any motivation for this? > "Becomes" might be handled by changing the became field to true and > then > changing the proxy to the new object. After that, the dispatching > will work > differently and just be passed onto the new object without further > processing. As far as I can tell, most other languages do not provide become. In Smalltalk, become is mainly used to do some update in case of changes in class definition. Why do you want to keep it if this Smalltal on JVM will be file-based ? > Calling into Smalltalk from Java I haven't thought through. I know > Jython > does it but I have not looked at that. I suspect you could > intercept an > exception and do something. I'm assuming exceptions could go up the > message > stack, but I admit that throwing them across intervening Java > function calls > within the method stack could be problematical -- the message stack > might > need to be annotated somehow in those cases before calling the > function, > another performance hit. You're right. An exception thrown in a different world may be problematic. > Now, this approach has a higher memory cost. And it also has a loss of > runtime performance for Smalltalk code. But I think if you merged > in support > for Scala (a JVM language which is typed and fast) to compile > bottleneck > code from Smalltalk->Scala->JVM, the hybrid mix might be pretty fast. > Equivalent to the successful CPython/C mix. Or that would be my > hope at least. I feel that to tackle the performance issue, having a bytecode translator Smalltalk -> Java would be an acceptable approach. > Anyway, just outlining some ideas. Not sure if they will work out in > practice. :-) Thanks for your intervention Paul, Regards, Alexandre > > Bergel, Alexandre wrote: >>> Does it have nay hope to be supported by a community? Does it take >>> advantage >>> of the Java/JVM platform, including threading and multi-processor >>> support? >>> Or interoperate easily back and forth with Java libraries like >>> Jython >>> can? >> >> I haven't looked at deeply, but I strongly suspect that no >> interaction >> is actually possible with Java. >> >> I am currently working on this. >> http://bergel.eu/athena for more info > > -- _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;: Alexandre Bergel http://www.bergel.eu ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;. |
Free forum by Nabble | Edit this page |