Hello list,
Today's quizz: guess the results of these evaluations and how it prints Easy to begin with: Compiler evaluate: '#++'. Yes Scanner class>>#isLiteralSymbol: not really consistent with what the parser is ready to understand. It even has some unreachable code in it. Now what if: Compiler evaluate: '##'. Enjoy the variations, not all correct: Compiler evaluate: '#'. Compiler evaluate: '# "please" # "print" # "me"'. Compiler evaluate: '##()'. Compiler evaluate: '##)'. Compiler evaluate: '##('. Compiler evaluate: '##(##)'. Never heard about explicit number literal? Compiler evaluate: '#1'. Maybe the negative ones would work? Compiler evaluate: '#-1'. So try and explain this one: Compiler evaluate: '#--1'. Hmm, better correcting the parser than trying to write its EBNF rules! Nicolas |
If anyone cares, here's VisualWorks' treatment,
Compiler evaluate: '#++'. #++ Compiler evaluate: '##'. #word, binary, keyword, (, or [ expected -># Compiler evaluate: '#'. #word, binary, keyword, (, or [ expected -> Compiler evaluate: '# "please" # "print" # "me"'. # "please" word, binary, keyword, (, or [ expected -># "print" # "me" Compiler evaluate: '##()'. #word, binary, keyword, (, or [ expected ->#() Compiler evaluate: '##)'. #word, binary, keyword, (, or [ expected ->#) Compiler evaluate: '##('. #word, binary, keyword, (, or [ expected ->#( Compiler evaluate: '##(##)'. #word, binary, keyword, (, or [ expected ->#(##) Compiler evaluate: '#1'. #word, binary, keyword, (, or [ expected ->1 Compiler evaluate: '#-1'. #-Nothing more expected ->1 Compiler evaluate: '#--1'. Unhandled exception: Message not understood: #- Cheers! -Boris -- +1.604.689.0322 DeepCove Labs Ltd. 4th floor 595 Howe Street Vancouver, Canada V6C 2T5 http://tinyurl.com/r7uw4 [hidden email] CONFIDENTIALITY NOTICE This email is intended only for the persons named in the message header. Unless otherwise indicated, it contains information that is private and confidential. If you have received it in error, please notify the sender and delete the entire message including any attachments. Thank you. > -----Original Message----- > From: [hidden email] [mailto:squeak-dev- > [hidden email]] On Behalf Of nicolas cellier > Sent: Tuesday, May 22, 2007 4:48 PM > To: [hidden email] > Subject: Fun with Symbol > > Hello list, > > Today's quizz: guess the results of these evaluations and how it prints > > Easy to begin with: > Compiler evaluate: '#++'. > Yes Scanner class>>#isLiteralSymbol: not really consistent with what the > parser is ready to understand. It even has some unreachable code in it. > > Now what if: > Compiler evaluate: '##'. > Enjoy the variations, not all correct: > Compiler evaluate: '#'. > Compiler evaluate: '# "please" # "print" # "me"'. > Compiler evaluate: '##()'. > Compiler evaluate: '##)'. > Compiler evaluate: '##('. > Compiler evaluate: '##(##)'. > Never heard about explicit number literal? > Compiler evaluate: '#1'. > Maybe the negative ones would work? > Compiler evaluate: '#-1'. > So try and explain this one: > Compiler evaluate: '#--1'. > > Hmm, better correcting the parser than trying to write its EBNF rules! > > Nicolas > |
That's what mature means I guess.
The last is syntactically correct, and correctly parsed by Squeak. However Squeak result is quite surprising, debug it to believe it. Nicolas PS: forgot this one: Compiler evaluate: '#$'. Not to confuse: Compiler evaluate: '# $'. And: Compiler evaluate: '#$ '. Boris Popov a écrit : > If anyone cares, here's VisualWorks' treatment, > > Compiler evaluate: '#++'. > #++ > > Compiler evaluate: '##'. > #word, binary, keyword, (, or [ expected -># > > Compiler evaluate: '#'. > #word, binary, keyword, (, or [ expected -> > > Compiler evaluate: '# "please" # "print" # "me"'. > # "please" word, binary, keyword, (, or [ expected -># "print" # "me" > > Compiler evaluate: '##()'. > #word, binary, keyword, (, or [ expected ->#() > > Compiler evaluate: '##)'. > #word, binary, keyword, (, or [ expected ->#) > > Compiler evaluate: '##('. > #word, binary, keyword, (, or [ expected ->#( > > Compiler evaluate: '##(##)'. > #word, binary, keyword, (, or [ expected ->#(##) > > Compiler evaluate: '#1'. > #word, binary, keyword, (, or [ expected ->1 > > Compiler evaluate: '#-1'. > #-Nothing more expected ->1 > > Compiler evaluate: '#--1'. > Unhandled exception: Message not understood: #- > > Cheers! > > -Boris > |
Still some exercizes for the Old and NewCompiler team:
Tell which expression Squeak would compile and which not: Compiler evaluate: '#:'. Compiler evaluate: '#::'. Compiler evaluate: '#x:y'. Compiler evaluate: '#:x1'. Compiler evaluate: '#:1x'. Compiler evaluate: '#x:1'. Compiler evaluate: '#x::'. Also try to print: #'x:1'. Nicolas |
In reply to this post by Nicolas Cellier-3
did you try with the new compiler?
On 23 mai 07, at 01:47, nicolas cellier wrote: > Hello list, > > Today's quizz: guess the results of these evaluations and how it > prints > > Easy to begin with: > Compiler evaluate: '#++'. > Yes Scanner class>>#isLiteralSymbol: not really consistent with > what the parser is ready to understand. It even has some > unreachable code in it. > > Now what if: > Compiler evaluate: '##'. > Enjoy the variations, not all correct: > Compiler evaluate: '#'. > Compiler evaluate: '# "please" # "print" # "me"'. > Compiler evaluate: '##()'. > Compiler evaluate: '##)'. > Compiler evaluate: '##('. > Compiler evaluate: '##(##)'. > Never heard about explicit number literal? > Compiler evaluate: '#1'. > Maybe the negative ones would work? > Compiler evaluate: '#-1'. > So try and explain this one: > Compiler evaluate: '#--1'. > > Hmm, better correcting the parser than trying to write its EBNF rules! > > Nicolas > > > |
In reply to this post by Nicolas Cellier-3
Ditto, 7.5 works just fine.
Cheers! -Boris -- +1.604.689.0322 DeepCove Labs Ltd. 4th floor 595 Howe Street Vancouver, Canada V6C 2T5 http://tinyurl.com/r7uw4 [hidden email] CONFIDENTIALITY NOTICE This email is intended only for the persons named in the message header. Unless otherwise indicated, it contains information that is private and confidential. If you have received it in error, please notify the sender and delete the entire message including any attachments. Thank you. > -----Original Message----- > From: Dave Stevenson [mailto:[hidden email]] > Sent: Wednesday, May 23, 2007 8:35 AM > To: nicolas cellier > Cc: [hidden email] > Subject: Re: Fun with symbol > > Works fine in current builds. > > nicolas cellier wrote: > > About some discussion on Squeak-dev... > > Ah, even mature VW is caught sometimes (at leat 7.3.1) > > > > | str | > > str := String new writeStream. > > #'x:y:z' storeOn: str. > > Kernel.Compiler evaluate: str contents readStream > > > > Cheers > > > > > > > > nicolas cellier a écrit : > > > That's what mature means I guess. > > > > > > The last is syntactically correct, and correctly parsed by Squeak. > > > However Squeak result is quite surprising, debug it to believe it. > > > > > > Nicolas > > > > > > > > > > > > PS: forgot this one: > > > Compiler evaluate: '#$'. > > > Not to confuse: > > > Compiler evaluate: '# $'. > > > And: > > > Compiler evaluate: '#$ '. > > > > > > Boris Popov a écrit : > > >> If anyone cares, here's VisualWorks' treatment, > > >> > > >> Compiler evaluate: '#++'. > > >> #++ > > >> > > >> Compiler evaluate: '##'. > > >> #word, binary, keyword, (, or [ expected -># > > >> > > >> Compiler evaluate: '#'. > > >> #word, binary, keyword, (, or [ expected -> > > >> > > >> Compiler evaluate: '# "please" # "print" # "me"'. > > >> # "please" word, binary, keyword, (, or [ expected -># "print" # > "me" > > >> > > >> Compiler evaluate: '##()'. > > >> #word, binary, keyword, (, or [ expected ->#() > > >> > > >> Compiler evaluate: '##)'. > > >> #word, binary, keyword, (, or [ expected ->#) > > >> > > >> Compiler evaluate: '##('. > > >> #word, binary, keyword, (, or [ expected ->#( > > >> > > >> Compiler evaluate: '##(##)'. > > >> #word, binary, keyword, (, or [ expected ->#(##) > > >> > > >> Compiler evaluate: '#1'. > > >> #word, binary, keyword, (, or [ expected ->1 > > >> > > >> Compiler evaluate: '#-1'. > > >> #-Nothing more expected ->1 > > >> > > >> Compiler evaluate: '#--1'. > > >> Unhandled exception: Message not understood: #- > > >> > > >> Cheers! > > >> > > >> -Boris > > >> > > > > > > > > > > > > > |
In reply to this post by stephane ducasse
Just downloaded AST->88 NewCompiler->117 from SqueakMap
ClosureCompiler evaluate: '##' and co leads to Syntax errors. #1 #$ #) etc are also rejected. BUT ClosureCompiler evaluate: '#:'. answer an empty string HUH? MIGHT BE A BUG ClosureCompiler evaluate: '#::'. #:SmaCCParserError: Token not expected ->: '# a' is understood as #a (like VW). '#x:y:z' is understood as #x:y: z (send message z) like VW. Of course it accepts more than 2 binary letters to form a binary symbol/message (already an old compiler feature, but not a st-80 nor VW one): ClosureCompiler evaluate: '#+++'. #'+++' Interesting thing: ClosureCompiler does understand #|| and #-- This is not in the original st-80 but is a logical feature since also accept || and -- as regular binary messages. So finally, only a bug now. And Symbol storeString still not in sync with Parser. This will cause decompiled code to be different from source code #'x:y:z' does print #x:y:z that is interpreted (#x:y:) z BUG. (see Scanner isLiteralSymbol: which was the real focus of my initial post before i ran into weird old compiler behaviour). stephane ducasse a écrit : > did you try with the new compiler? > > On 23 mai 07, at 01:47, nicolas cellier wrote: > >> Hello list, >> >> Today's quizz: guess the results of these evaluations and how it prints >> >> Easy to begin with: >> Compiler evaluate: '#++'. >> Yes Scanner class>>#isLiteralSymbol: not really consistent with what >> the parser is ready to understand. It even has some unreachable code >> in it. >> >> Now what if: >> Compiler evaluate: '##'. >> Enjoy the variations, not all correct: >> Compiler evaluate: '#'. >> Compiler evaluate: '# "please" # "print" # "me"'. >> Compiler evaluate: '##()'. >> Compiler evaluate: '##)'. >> Compiler evaluate: '##('. >> Compiler evaluate: '##(##)'. >> Never heard about explicit number literal? >> Compiler evaluate: '#1'. >> Maybe the negative ones would work? >> Compiler evaluate: '#-1'. >> So try and explain this one: >> Compiler evaluate: '#--1'. >> >> Hmm, better correcting the parser than trying to write its EBNF rules! >> >> Nicolas >> >> >> > > > |
2007/5/23, nicolas cellier <[hidden email]>:
> Just downloaded AST->88 NewCompiler->117 from SqueakMap I'm not sure, but I think the version on Universe is much more recent than the one on SqueakMap. -- Damien Cassou |
If this is true, can I say "What is going on?". This is not directed
specifically at you Damien; but is this community further splintering? I'll be the first to admit that I'm nearly oblivious about the Universes concept. But it would disturb me to find that active development is going on that is meant to be public but existing SqueakMap entries are not being updated to reflect it. If this is occurring, why? Ken On Thu, 2007-05-24 at 20:12 +0200, Damien Cassou wrote: > 2007/5/23, nicolas cellier <[hidden email]>: > > Just downloaded AST->88 NewCompiler->117 from SqueakMap > > I'm not sure, but I think the version on Universe is much more recent > than the one on SqueakMap. > signature.asc (196 bytes) Download Attachment |
In reply to this post by Damien Cassou-3
Sorry, I'm sending this again as I failed to change the subject
appropriately. --------- If this is true, can I say "What is going on?". This is not directed specifically at you Damien; but is this community further splintering? I'll be the first to admit that I'm nearly oblivious about the Universes concept. But it would disturb me to find that active development is going on that is meant to be public but existing SqueakMap entries are not being updated to reflect it. If this is occurring, why? Ken On Thu, 2007-05-24 at 20:12 +0200, Damien Cassou wrote: > 2007/5/23, nicolas cellier <[hidden email]>: > > Just downloaded AST->88 NewCompiler->117 from SqueakMap > > I'm not sure, but I think the version on Universe is much more recent > than the one on SqueakMap. > signature.asc (196 bytes) Download Attachment |
In my opinion Universes should be where you put software. If you want it on
Squeakmap as well it doesn't hurt anything, but it doesn't really buy much imo. The problem with Squeakmap is that it doesn't know dependancies unless you make some script, which causes all kinds of other problems. If there is a concern about having things on Squeakmap then we should make either (a) a single interface that creates a Universe entry and a Squeakmap or (b) a way for Squeakmap to get automatically updated somehow (maybe reading the universes list). >From: Ken Causey <[hidden email]> >Reply-To: The general-purpose Squeak developers >list<[hidden email]> >To: The general-purpose Squeak developers >list<[hidden email]> >Subject: Universes/SqueakMap Separation? (was Re: Fun with Symbol) >Date: Thu, 24 May 2007 13:42:35 -0500 > >Sorry, I'm sending this again as I failed to change the subject >appropriately. > >--------- > >If this is true, can I say "What is going on?". This is not directed >specifically at you Damien; but is this community further splintering? > >I'll be the first to admit that I'm nearly oblivious about the Universes >concept. But it would disturb me to find that active development is >going on that is meant to be public but existing SqueakMap entries are >not being updated to reflect it. If this is occurring, why? > >Ken > >On Thu, 2007-05-24 at 20:12 +0200, Damien Cassou wrote: > > 2007/5/23, nicolas cellier <[hidden email]>: > > > Just downloaded AST->88 NewCompiler->117 from SqueakMap > > > > I'm not sure, but I think the version on Universe is much more recent > > than the one on SqueakMap. > > ><< signature.asc >> > _________________________________________________________________ PC Magazines 2007 editors choice for best Web mailaward-winning Windows Live Hotmail. http://imagine-windowslive.com/hotmail/?locale=en-us&ocid=TXT_TAGHM_migration_HM_mini_pcmag_0507 |
2007/5/24, J J <[hidden email]>:
> In my opinion Universes should be where you put software. If you want it on > Squeakmap as well it doesn't hurt anything, but it doesn't really buy much > imo. > > The problem with Squeakmap is that it doesn't know dependancies unless you > make some script, which causes all kinds of other problems. If there is a > concern about having things on Squeakmap then we should make either (a) a > single interface that creates a Universe entry and a Squeakmap or (b) a way > for Squeakmap to get automatically updated somehow (maybe reading the > universes list). I think we really need something better than SqueakMap and better than Universes. They are both really good but they both lack some important functionalities. To answer your question Ken, I'm working with what suit my needs best. I'm working with Universes because I can manage dependencies and I can do that with Smalltalk code or with a Squeak interface. -- Damien Cassou |
In reply to this post by Ken Causey-3
Ken Causey <[hidden email]> writes:
> If this is true, can I say "What is going on?". This is not directed > specifically at you Damien; but is this community further splintering? > > I'll be the first to admit that I'm nearly oblivious about the Universes > concept. But it would disturb me to find that active development is > going on that is meant to be public but existing SqueakMap entries are > not being updated to reflect it. If this is occurring, why? Sometimes nobody does the work of putting the entry into the catalog. Sometimes the package author doesn't do it, and when that happens, AFAIK nobody is following behind them to update SqueakMap entries. It is has always been like this, for both SqueakMap and Package Universes. Catologing everything is a goal that can never be perfectly achieved. Having multiple catalogs simply means it more obvious, because sometimes one or the other catalog is more current for some project. If you want to see SqueakMap be more current, then someone has to do the work. Here are some ideas about how that could be arranged: 1. Have a catalog editor who mimicks my and Damien's role with the package universes. This person would peruse the database and update entries that have fallen out of date. This work takes a lot of time, but on the nice side you get the gratification of perusing a list of cool Squeak software that is out there. 2. Have automatic copying from universes entries to SqueakMap entries. It is a little tedious right now to post to package universes and then post the same information to SqueakMap. 3. Stop listing individual versions on SqueakMap, so that it is not so hard to keep up to date. It all comes down to what people volunteer to do. Lex |
On Sat, 2007-05-26 at 23:00 +0200, Lex Spoon wrote:
> Ken Causey <[hidden email]> writes: > > If this is true, can I say "What is going on?". This is not directed > > specifically at you Damien; but is this community further splintering? > > > > I'll be the first to admit that I'm nearly oblivious about the Universes > > concept. But it would disturb me to find that active development is > > going on that is meant to be public but existing SqueakMap entries are > > not being updated to reflect it. If this is occurring, why? Thanks for the detailed answers. > Sometimes nobody does the work of putting the entry into the catalog. > Sometimes the package author doesn't do it, and when that happens, > AFAIK nobody is following behind them to update SqueakMap entries. > > It is has always been like this, for both SqueakMap and Package > Universes. Catologing everything is a goal that can never be > perfectly achieved. Having multiple catalogs simply means it more > obvious, because sometimes one or the other catalog is more current > for some project. > > If you want to see SqueakMap be more current, then someone has to do > the work. Here are some ideas about how that could be arranged: > > 1. Have a catalog editor who mimicks my and Damien's role with the > package universes. This person would peruse the database and > update entries that have fallen out of date. This work takes a lot > of time, but on the nice side you get the gratification of perusing > a list of cool Squeak software that is out there. when a package being developed by some other party has reached a publicly 'releasable' stage? How, in general, is the catalog editor expected to determine dependencies and details about installing the package? I'm not saying it's impossible to determine these things, but it seems like the package owner is already going to know them and be in a better position to make these judgements. It almost sounds like you are saying that package owners are reluctant to issue releases and you have to do it for them. Have I misunderstood? Ken signature.asc (196 bytes) Download Attachment |
On 5/28/07, Ken Causey <[hidden email]> wrote:
> It almost sounds like you > are saying that package owners are reluctant to issue releases and you > have to do it for them. Have I misunderstood? Whether or not that's what Lex was saying, I think it's a reasonable position. Maintainers have very different ideas about what code is releasable and how to release it. One person's alpha is another person's release candidate, and others ignore releases altogether and just expect everyone to pull down the latest commit from SqueakSource. A given editor, on the other hand, can apply a consistent set of criteria across all of the packages in the catalog. A user who isn't intimately familiar with the culture of every package they use can instead just choose a catalog with an editor they trust. Avi |
<Avi>others ignore releases altogether and just expect everyone to pull down the latest commit from SqueakSource</Avi> And there's the case of the Chronos project on SqueakSource, where you're the only one with administrator privileges, and so the only one who can make a release, or update the "front page" with installation instructions, whereas I, the author/developer, can only uload new package version commits. Can we get this situation fixed? --Alan |
In reply to this post by Avi Bryant-2
On 5/28/07, Alan Lovejoy <[hidden email]> wrote:
> And there's the case of the Chronos project on SqueakSource, where you're > the only one with administrator privileges, and so the only one who can make > a release, or update the "front page" with installation instructions, > whereas I, the author/developer, can only uload new package version commits. > > Can we get this situation fixed? Oh, of course. You're now an admin of that project. It won't let me remove myself as an admin, but feel free to do so. If you asked me to do this earlier and I didn't see your message or forgot to do it, I apologize. Avi |
<Avi>You're now an admin of that project.</Avi> Thanks! <Avi>If you asked me to do this earlier and I didn't see your message or forgot to do it, I apologize.</Avi> Actually, I did. In response to my message to the Squeak List on the matter, Phillippe Marschall made me a developer last December (before that, I had no access at all.) Unfortunately, at the time, my understanding of both SqueakSource and Monticello was too rudimentary to understand what I needed to ask for--and I also didn't understand how the Monticello naming/versioning system worked--and in addition I made more than one naming typo when saving versions--all of which resulted in a rather messy/confused situation for those viewing the Chronos project using a Monticello package browser (and y'all should take that as an apology.) If you or Phillippe would be so kind as to recommend the best way to fix up the versioning mess I made out of the Chronos package on SqueakSource, I'd appreciate it. --Alan P.S. I accept your apology. |
In reply to this post by Avi Bryant-2
"Avi Bryant" <[hidden email]> writes:
> On 5/28/07, Ken Causey <[hidden email]> wrote: > > It almost sounds like you > > are saying that package owners are reluctant to issue releases and you > > have to do it for them. Have I misunderstood? > > Whether or not that's what Lex was saying, I think it's a reasonable > position. Maintainers have very different ideas about what code is > releasable and how to release it. One person's alpha is another > person's release candidate, and others ignore releases altogether and > just expect everyone to pull down the latest commit from SqueakSource. > A given editor, on the other hand, can apply a consistent set of > criteria across all of the packages in the catalog. That's where I am coming from. It is a combined effort, much like editing a book that has twenty contributors. The contributors provide the raw material, while the editor keeps a view of the overall combination. An editor can provide some consistency. For Squeak packages, the precise roles still need to be felt out. There's definitely a place for an editor, though, given all the bit rotting we observe in practice. Not to overstate matters. It's still best of all when the primary contributors help out more. It is simply not a complete solution. Lex |
In reply to this post by Avi Bryant-2
2007/5/28, Alan Lovejoy <[hidden email]>:
> > > <Avi>You're now an admin of that project.</Avi> > > Thanks! > > <Avi>If you asked me to do this earlier and I didn't see your message or > forgot to do it, I apologize.</Avi> > > Actually, I did. In response to my message to the Squeak List on the matter, > Phillippe Marschall made me a developer last December (before that, I had no > access at all.) > > Unfortunately, at the time, my understanding of both SqueakSource and > Monticello was too rudimentary to understand what I needed to ask for--and I > also didn't understand how the Monticello naming/versioning system > worked--and in addition I made more than one naming typo when saving > versions--all of which resulted in a rather messy/confused situation for > those viewing the Chronos project using a Monticello package browser (and > y'all should take that as an apology.) > > If you or Phillippe would be so kind as to recommend the best way to fix up > the versioning mess I made out of the Chronos package on SqueakSource, I'd > appreciate it. It kinda depends how your porting process looks so I can only give a general reply. For more specific questions I can give more specific answers. - Remove all the versions you don't need, especially the old Avi versions that noone should load (you can do that now that you're admin). Even consider removing all versions and committing new ones (make sure you have backups). Don't forget to remove the old versions from SqueakMap (is there a reason someone would want to load an old version?). - Don't encode "Chronos versions" to Monticello filenames. Instead use an internal mapping for "Monticello versions" to "Chronos versions" and vice versa. You can use Monticello Confiturations for that or something else. netstyle.ch has an automated build process where Chronos can be automatically loaded into images in this way. The people who load Chronos from Monticello will want the latest anyway. Because you do the releases only you need to know about this mapping. I hope this helps a bit. Don't hesitate to ask if you have further questions. Cheers Philippe > --Alan > > P.S. I accept your apology. > > > > |
Free forum by Nabble | Edit this page |