[squeak-dev] Re: Squeak-dev Digest, Vol 62, Issue 68

Giuseppe Luigi Punzi glpunzi at lordzealon.com
Tue Feb 26 12:39:09 UTC 2008


Is normal thath Squeak-dev digest maiol is coming without date?


On 
squeak-dev-request at lists.squeakfoundation.org wrote:

> Send Squeak-dev mailing list submissions to
> 	squeak-dev at lists.squeakfoundation.org
> 
> To subscribe or unsubscribe via the World Wide Web, visit
> 	http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/squeak-dev
> or, via email, send a message with subject or body 'help' to
> 	squeak-dev-request at lists.squeakfoundation.org
> 
> You can reach the person managing the list at
> 	squeak-dev-owner at lists.squeakfoundation.org
> 
> When replying, please edit your Subject line so it is more specific
> than "Re: Contents of Squeak-dev digest..."
> 
> 
> Today's Topics:
> 
>    1. Re:  Hydra benchmarking (Igor Stasenko)
>    2.  Google Summer of Code? (Andreas Raab)
>    3. Re:  Hydra benchmarking (John M McIntosh)
>    4.  Re: FFI on 3.10 Dev image? (Andrew Tween)
>    5. Re:  Re: Why is Heap>>#species => Array? (Andrew P. Black)
>    6. Re:  Craig's answers to the 2008 candidate questions
>       (goran at krampe.se)
>    7.  Fwd: Web page with status of squeak license issue
>       resolution? (Damien Pollet)
>    8.  Re: Why is Heap>>#species => Array? (Paolo Bonzini)
> 
> 
> ----------------------------------------------------------------------
> 
> Message: 1
> Date: Tue, 26 Feb 2008 09:21:20 +0200
> From: "Igor Stasenko" <siguctua at gmail.com>
> Subject: Re: [squeak-dev] Hydra benchmarking
> To: "The general-purpose Squeak developers list"
> 	<squeak-dev at lists.squeakfoundation.org>
> Message-ID:
> 	<4a5f5f320802252321m77263d66l67ea1d78106a8e08 at mail.gmail.com>
> Content-Type: text/plain; charset=UTF-8
> 
> >  Also, i'd do it like following:
> >
> >  [ HydraVM doIt: 'Transcript cr; show: ''Background: '', [ 0
> >  tinyBenchmarks ] timeToRun'
> >   at: 2.
> >   Transcript cr; show: 'Foreground: ',  [0 tinyBenchmarks] timeToRun.
> >  ] timeToRun
> >
> >  On single core, sum of local+remote doit, should be roughly equivalent
> >  to outer timeToRun.
> >  On dual core all #timeToRun should be roughly equivalent.
> >
> 
> oops, no it shouldn't work as i described :)
> 
> > --
> >  Best regards,
> >  Igor Stasenko AKA sig.
> >
> 
> 
> -- 
> Best regards,
> Igor Stasenko AKA sig.
> 
> 
> ------------------------------
> 
> Message: 2
> Date: Mon, 25 Feb 2008 23:24:05 -0800
> From: Andreas Raab <andreas.raab at gmx.de>
> Subject: [squeak-dev] Google Summer of Code?
> To: The general-purpose Squeak developers list
> 	<squeak-dev at lists.squeakfoundation.org>
> Message-ID: <47C3BE95.1080100 at gmx.de>
> Content-Type: text/plain; charset=ISO-8859-1; format=flowed
> 
> Hi -
> 
> Slashdot just reminded me that it's this time of the year again. 
> Apparently Google accepts new applications starting Monday, March 3rd 
> (see http://code.google.com/soc/2008). Anyone interested?
> 
> Also, last year there were a couple of projects which are listed at 
> http://code.google.com/soc/2007/squeak/about.html and I realized that I 
> never found out about their status/completion. Is there a web page / 
> code / documents available on any of these?
> 
> Cheers,
>    - Andreas
> 
> 
> ------------------------------
> 
> Message: 3
> Date: Tue, 26 Feb 2008 00:03:41 -0800
> From: John M McIntosh <johnmci at smalltalkconsulting.com>
> Subject: Re: [squeak-dev] Hydra benchmarking
> To: The general-purpose Squeak developers list
> 	<squeak-dev at lists.squeakfoundation.org>
> Message-ID:
> 	<E47A4C4B-8110-475F-9F51-35DC3EAB8BE3 at smalltalkconsulting.com>
> Content-Type: text/plain; charset=US-ASCII; format=flowed; delsp=yes
> 
> > I think it's because main thread have slightly higher priority in  
> > windows.
> 
> Ah, that reminds me, you cannot do UI work on anything other than the  
> main thread in carbon and I think
> Cocoa applications in os-x.
> 
> When we migrated from InputSensor to EventSensor I had changed th pre- 
> os-x (OS8.x) squeak VM to use cooperative threading which allowed us  
> to run the
> VM on one thread, and the UI on another.  This was changed when OS-X  
> came out to run the interpret() on a pthread with the main pthread  
> handing the UI.
> The UI thread used some mutex semaphores to place data on the VM event  
> queue. All was happy, but Apple started enforcing the rules about UI  
> calls only on the main thread.
> 
> Although I had a lockUI call to swap the call or FFI call to the main  
> thread which worked quite well, Sophie started getting serious about  
> FFI calls to quicktime we ran into major problems
> with it's usage of Open/GL.
> 
> This was fixed in 3.8.12b1 when I switch to dispatching the  
> interpreter loop via a carbon event and back to a form of co-operative  
> threading.
> Mac Carbon 3.8.12b1 Alter VM so that the interpreter() loop is  
> dispatched on the UI thread and we poll for pending UI events. This is  
> to allow quicktime FFI calls to work on the main thread that contains  
> the UI, and to avoid cross thread OpenG/L calls which seem to crash  
> the VM
> 
> I note this because someday someone might want to make a UI related  
> FFI call on a Hydra thread and then something unexpected could  
> happen.  More research required to understand if this is an issue with  
> Cocoa applications.
> --
> = 
> = 
> = 
> ========================================================================
> John M. McIntosh <johnmci at smalltalkconsulting.com>
> Corporate Smalltalk Consulting Ltd.  http://www.smalltalkconsulting.com
> = 
> = 
> = 
> ========================================================================
> 
> 
> 
> 
> ------------------------------
> 
> Message: 4
> Date: Tue, 26 Feb 2008 08:05:36 -0000
> From: "Andrew Tween" <amtween at hotmail.com>
> Subject: [squeak-dev] Re: FFI on 3.10 Dev image?
> To: squeak-dev at lists.squeakfoundation.org
> Message-ID: <fq0h9b$hh$1 at ger.gmane.org>
> Content-Type: text/plain; charset="iso-8859-1"
> 
> Hi,
> I noticed the same problem and tracked it down to this...
> ExternalStructure class implements doneCompiling, and doneCompiling is sent 
> during the MC1.5 loading process.
> (specifically - it is sent from 
> ClassBuilder>>name:inEnvironment:subclassOf:type:instanceVariableNames:classVariableNames:poolDictionaries:category:unsafe: 
>  )
> 
> ExternalStructure class>>doneCompiling then calls  ExternalType 
> class>>noticeModificationOf: , which then accesses its StructTypes class 
> var.
> But ExternalType hasn't been sent #initialize yet, so its StructTypes class 
> var is nil.
> 
> I presume that the old MC loader loads/initializes things in a different 
> order, which is why the problem doesn't occur in a standard 3.10 image.
> 
> To workaround the problem, and get FFI loaded, I hacked 
> ClassBuilder>>name:inEnvironment:subclassOf:type:instanceVariableNames:classVariableNames:poolDictionaries:category:unsafe: 
> so that errors occuring during doneCompiling are ignored. (hacked method 
> attached).
> FFI then loads ok from Universes, and seems to function correctly.
> 
> I've also noticed that preambles and postscripts aren't being run by the 
> MC1.5 loader, which causes problems for other packages (such as FreeType 
> Plus).
> 
> I have added both these issues to Mantis...
> http://bugs.squeak.org/view.php?id=6952
> http://bugs.squeak.org/view.php?id=6953
> 
> Cheers,
> Andy
> 
> 
> 
> "Ken G. Brown" <kbrown at mac.com> wrote in message 
> news:p0624043cc3e90f0bbeb8@[169.254.1.2]...
> > Is FFI supposed to load into 3.10?
> > When I try loading FFI() from SqueakMap into a fresh sq3.10-7159dev08.02.1 
> > I get the following failure:
> >
> > Ken G. Brown
> > -----------------------------------------------------------------------------------
> > VM: Mac OS - a SmalltalkImage
> > Image: Squeak3.10beta [latest update: #7159]
> >
> > SecurityManager state:
> > Restricted: false
> > FileAccess: true
> > SocketAccess: true
> > Working Dir /mySqueakStuff/Sqkb/Sqkb3.10/sq3.10-7159dev08.02.1
> > Trusted Dir /foobar/tooBar/forSqueak/bogus
> > Untrusted Dir /Users/kbrownMPro/Library/Preferences/Squeak/Internet/My 
> > Squeak
> >
> > UndefinedObject(Object)>>doesNotUnderstand: #at:ifAbsent:
> > Receiver: nil
> > Arguments and temporary variables:
> > aMessage: at: #ExternalStructure ifAbsent: [] in ExternalType 
> > class>>noticeModi...etc...
> > Receiver's instance variables:
> > nil
> >
> > [] in ExternalType class>>noticeModificationOf: {[:cls |  type := 
> > StructTypes     at: cls name     ifAbsent: [].  type   ifNo...]}
> > Arguments and temporary variables:
> > aClass: ExternalStructure
> > type: nil
> > cls: ExternalStructure
> >
> > ExternalStructure class(Behavior)>>withAllSubclassesDo:
> > Receiver: ExternalStructure
> > Arguments and temporary variables:
> > aBlock: [] in ExternalType class>>noticeModificationOf: {[:cls |  type := 
> > Struc...etc...
> > Receiver's instance variables:
> > superclass: ExternalObject
> > methodDict: a MethodDictionary(#free->a CompiledMethod (1328) 
> > #longPrintOn:->a ...etc...
> > format: 132
> > instanceVariables: nil
> > organization: ('as yet unclassified')
> >
> > subclasses: {ExternalData}
> > name: #ExternalStructure
> > classPool: nil
> > sharedPools: an OrderedCollection(FFIConstants)
> > environment: a SystemDictionary(lots of globals)
> > category: #'FFI-Kernel'
> > traitComposition: {}
> > localSelectors: nil
> > compiledSpec: nil
> >
> > ExternalType class>>noticeModificationOf:
> > Receiver: ExternalType
> > Arguments and temporary variables:
> > aClass: ExternalStructure
> > type: nil
> > cls: ExternalStructure
> > Receiver's instance variables:
> > superclass: Object
> > methodDict: a MethodDictionary(#asNonPointerType->a CompiledMethod (3691) 
> > #asPo...etc...
> > format: 136
> > instanceVariables: #('compiledSpec' 'referentClass' 'referencedType')
> > organization: ('as yet unclassified')
> >
> > subclasses: nil
> > name: #ExternalType
> > classPool: a Dictionary(#AtomicSelectors->nil #AtomicTypeNames->nil 
> > #AtomicType...etc...
> > sharedPools: an OrderedCollection(FFIConstants)
> > environment: a SystemDictionary(lots of globals)
> > category: #'FFI-Kernel'
> > traitComposition: {}
> > localSelectors: nil
> >
> >
> > --- The full stack ---
> > UndefinedObject(Object)>>doesNotUnderstand: #at:ifAbsent:
> > [] in ExternalType class>>noticeModificationOf: {[:cls |  type := 
> > StructTypes     at: cls name     ifAbsent: [].  type   ifNo...]}
> > ExternalStructure class(Behavior)>>withAllSubclassesDo:
> > ExternalType class>>noticeModificationOf:
> > - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
> > ExternalStructure class>>doneCompiling
> > [] in 
> > ClassBuilder>>name:inEnvironment:subclassOf:type:instanceVariableNames:classVariableNames:poolDictionaries:category:unsafe: 
> > {[unsafe   ifFalse: [(self validateSuperclass: newSuper forSubclass: 
> > oldClass...]}
> > BlockContext>>ensure:
> > ClassBuilder>>name:inEnvironment:subclassOf:type:instanceVariableNames:classVariableNames:poolDictionaries:category:unsafe:
> > ClassBuilder>>name:inEnvironment:subclassOf:type:instanceVariableNames:classVariableNames:poolDictionaries:category:
> > MCClassDefinition>>createUnionClassWith:
> > MCClassDefinition>>postinstall
> > [] in MCPackageLoader1b>>basicLoad {[:ea | ea postinstall]}
> > OrderedCollection>>do:
> > MCPackageLoader1b>>basicLoad
> > [] in MCPackageLoader1b>>protectedLoad {[self basicLoad]}
> > BlockContext>>on:do:
> > [] in MCPackageLoader1b>>protectedLoad {[[self basicLoad]   on: 
> > InMidstOfFileinNotification   do: [:n | n resume: tr...]}
> > BlockContext>>ensure:
> > [] in MCPackageLoader1b>>protectedLoad {[[[self basicLoad]   on: 
> > InMidstOfFileinNotification   do: [:n | n resume: t...]}
> > BlockContext>>on:do:
> > MCPackageLoader1b>>protectedLoad
> > [] in MCPackageLoader1b>>loadWithNameLike: {[self protectedLoad]}
> > [] in MCPackageLoader1b>>useChangeSetNamed:during: {[aBlock value]}
> > BlockContext>>ensure:
> > MCPackageLoader1b>>useChangeSetNamed:during:
> > MCPackageLoader1b>>useNewChangeSetNamedLike:during:
> > MCPackageLoader1b>>loadWithNameLike:
> > MCVersionLoader>>loadWithNameLike:
> > MCVersionLoader>>load
> > MCVersionLoader class>>loadVersion:
> > MCVersion>>load
> > [] in UndefinedObject>>DoIt {[:t2 :t3 |  t1 value: t2 * 2 - 1.  reader := 
> > repo versionReaderForFileNamed:...]}
> > Array(SequenceableCollection)>>keysAndValuesDo:
> > [] in UndefinedObject>>DoIt {[:t1 | #('FFI-Kernel-ar.8.mcz' 
> > 'FFI-Tests-ar.2.mcz' 'FFI-Examples-ar.1.mcz' ...]}
> > ...etc...
> >
> > 
> -------------- next part --------------
> A non-text attachment was scrubbed...
> Name: ClassBuilder-nameinEnvironmentsubclassOftypeinstanceVariableNamesclassVariableNamespoolDictionariescategoryunsafe.st
> Type: application/octet-stream
> Size: 3957 bytes
> Desc: not available
> Url : http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20080226/6bdbf5f3/ClassBuilder-nameinEnvironmentsubclassOftypeinstanceVariableNamesclassVariableNamespoolDictionariescategoryunsafe-0001.obj
> 
> ------------------------------
> 
> Message: 5
> Date: Tue, 26 Feb 2008 00:36:43 -0800
> From: "Andrew P. Black" <black at cs.pdx.edu>
> Subject: Re: [squeak-dev] Re: Why is Heap>>#species => Array?
> To: The general-purpose Squeak developers list
> 	<squeak-dev at lists.squeakfoundation.org>
> Message-ID: <27435615-47CA-42F2-ADD4-8F599F90DC85 at cs.pdx.edu>
> Content-Type: text/plain; charset="us-ascii"
> 
> We spent a long time trying to find good names (and not just for  
> these methods).  As I recall, we rejected #copyEmpty because we felt  
> that the programmer might reasonably expect the result of #copyEmpty  
> to be empty, and, with Array for example,  it isn't going to be.
> 
> Hence the more descriptive names.   They are mostly used internally,  
> where the extra length is no handicap.  On  the occasions when they  
> are used externally, the extra length is  a benefit.
> 
> 
> On 23 Feb 2008, at 0:07, Paolo Bonzini wrote:
> 
> >>  We decided to uniformly use two methods, emptyCopyOfSize: and  
> >> emptyCopyOfSameSize , to generate the new collections.   
> >> emptyCopyOfSameSize was implemented as
> >>     ^ self  emptyCopyOfSize: self size
> >
> > This is what other Smalltalk usually call #copyEmpty and #copyEmpty:.
> >
> > As I said, it works for everything except #reverse and #collect:  
> > for which you can either use something like #copyEmptyForCollect,  
> > or resort to #species.
> 
> Why doesn't this work for #reversed?
> 
> For collect, I agree, the new collection may not be of the same  
> class, and thus should not be called a copy;  
> #emptyCollectionForCollect:  or #emptyForCollect: would seem to be  
> suggestive names.
> 
> Shouldn't #reverse (the imperative form of the verb) be a mutator?    
> But I guess that's another issue
> 
> Professor Andrew P. Black
> Department of Computer Science
> Portland State University
> +1 503 725 2411
> 
> 
> 
> -------------- next part --------------
> An HTML attachment was scrubbed...
> URL: http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20080226/23f7fe03/attachment-0001.htm
> 
> ------------------------------
> 
> Message: 6
> Date: Tue, 26 Feb 2008 09:38:48 +0200 
> From: goran at krampe.se
> Subject: Re: [squeak-dev] Craig's answers to the 2008 candidate
> 	questions
> To: The general-purpose Squeak developers list
> 	<squeak-dev at lists.squeakfoundation.org>
> Message-ID: <20080226083852.B7243EF9A2 at mail.krampe.se>
> 
> Hi Craig and all!
> 
> First - thanks for the answers. :) Secondly, I got one extra question
> sent to me, though too late (sorry, gotta stick to my own rules) so I am
> not adding it to the official list of questions but I am reposting it
> here:
> 
> "What actions would you take to promote Squeak as an environment for
> professional software development?"
> 
> regards, G_ran
> 
> 
> ------------------------------
> 
> Message: 7
> Date: Tue, 26 Feb 2008 12:43:04 +0100
> From: "Damien Pollet" <damien.pollet at gmail.com>
> Subject: [squeak-dev] Fwd: Web page with status of squeak license
> 	issue	resolution?
> To: "The general-purpose Squeak developers list"
> 	<squeak-dev at lists.squeakfoundation.org>
> Message-ID:
> 	<34b4844b0802260343n6f67e15fk7ff397958ef20261 at mail.gmail.com>
> Content-Type: text/plain; charset="utf-8"
> 
> ---------- Forwarded message ----------
> From: Jos__ L. Redrejo Rodr__guez <jredrejo at edu.juntaextremadura.net>
> Date: Tue, Feb 26, 2008 at 8:46 AM
> Subject: Re: Web page with status of squeak license issue resolution?
> To: Petter Reinholdtsen <pere at hungry.com>
> Cc: Damien Pollet <damien.pollet at gmail.com>, debian-edu at lists.debian.org
> 
> 
> 
>  El mar, 26-02-2008 a las 08:29 +0100, Petter Reinholdtsen escribi__:
> 
> 
> > Hi.  We spoke together after your lightning talk on FOSDEM about
>  > getting squeak into Debian.  You mentioned that there is slow progress
>  > in getting the license question resolved, but that it is a lot of
>  > work.  Is there a web page documenting the status of this work?  Like
>  > who need to be contacted, who is already contacted and who is left to
>  > contact?
>  >
>  > As I mentioned earlier, we in the Debian Edu community are interested
>  > in including squeak into our distribution, and for this reason want to
>  > see it in Debian/main.  CC to our list to keep the other maintainers
>  > updated on the squeak status.
>  >
>  > I've found <URL:http://wiki.squeak.org/squeak/159> and
>  > <URL:http://wiki.squeak.org/squeak/3733> but did not see any
>  > information there about the work on contacting previous authors to get
>  > them to agree on a relicensing.
>  >
> 
> 
>  Those page are obsolete.
>  The relicensing process is described and updated at
>  http://wiki.squeak.org/squeak/6016
> 
>  As the part of code that has not been relicensed is because contacting
>  the authors has not been possible, current plans are rewritting that
>  part of code.
> 
>  About taking Squeak in Debian, I have an ITP over the squeak virtual
>  machine (#454635) and I plan to upload it as soon as I have time to
>  finish a couple of pending patches for 64 bits platforms.
>  There are different ways to use Squeak, people from squeak.org are more
>  focused in using squeak as a development tool, and people from
>  squeakland.org are more focused in using it for kids and teaching and
>  currently working on the OLPC project. My intention is to do the
>  squeak-vm interface oriented to teachers and students and give to the
>  interface as better integration with the desktop as possible.
> 
>  For future Squeak images, as soon as the license issue is finished, we
>  can work on different images. At Extremadura we have been working on
>  customizing the image with a more updated interface, more eyecandy and
>  adding projects from all around the world (Germany, Japan, Spain & USA)
>  with a lot of educative tools. The project and the image is available at
>  http://squeak.educarex.es. We have also made some interactive books for
>  maths with the image. Those images are used in our school and will be
>  uploaded to Debian when possible.
> 
>  So, in brief, today smalltalk developers are needed to recode the small
>  part of code that has not been relicensed yet. There are some voices
>  that say that FSF allows releasing under a free license if the
>  percentage of code without the license is lower than 5%. If that were
>  true it could be done today, but nobody is sure about it.
> 
>  Regards.
>  Jos__ L.
> 
> 
>  > Happy hacking,
>  > --
>  > Petter Reinholdtsen
>  >
>  >
> 
> 
> 
> -- 
> Damien Pollet
> type less, do more [ | ] http://people.untyped.org/damien.pollet
> -------------- next part --------------
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.6 (GNU/Linux)
> 
> iD8DBQBHw8PlmqVR2WapDeIRApA0AKCSZn4Dh8LWBJjv2pKeE4wSgMrvJQCgn4K8
> Kf2+JVdi941MVSc/glNEKNI=
> =LMgt
> -----END PGP SIGNATURE-----
> 
> ------------------------------
> 
> Message: 8
> Date: Tue, 26 Feb 2008 12:57:48 +0100
> From: Paolo Bonzini <bonzini at gnu.org>
> Subject: [squeak-dev] Re: Why is Heap>>#species => Array?
> To: The general-purpose Squeak developers list
> 	<squeak-dev at lists.squeakfoundation.org>
> Message-ID: <47C3FEBC.1080703 at gnu.org>
> Content-Type: text/plain; charset=ISO-8859-1; format=flowed
> 
> 
> > We spent a long time trying to find good names (and not just for these 
> > methods).  As I recall, we rejected #copyEmpty because we felt that the 
> > programmer might reasonably expect the result of #copyEmpty to be empty, 
> > and, with Array for example,  it isn't going to be.
> 
> It's going to be empty in the sense that it is stuffed with nils -- 
> that's as empty as an ArrayedCollection can get. :-)  However...
> 
> > Hence the more descriptive names.   They are mostly used internally, 
> > where the extra length is no handicap.  On  the occasions when they are 
> > used externally, the extra length is  a benefit.
> 
> ... I agree with you (I was just pointing out the parallel with other 
> dialects in case people wanted to explore their implementation).
> 
> >> As I said, it works for everything except #reverse and #collect: for 
> >> which you can either use something like #copyEmptyForCollect, or 
> >> resort to #species.
> > 
> > Why doesn't this work for #reversed? 
> 
> Because SortedCollection's #reverse returns an OrderedCollection, like 
> #collect: does.
> 
> Paolo
> 
> 
> ------------------------------
> 
> _______________________________________________
> Squeak-dev mailing list
> Squeak-dev at lists.squeakfoundation.org
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/squeak-dev
> 
> End of Squeak-dev Digest, Vol 62, Issue 68
> ******************************************


-- 
Giuseppe Luigi Punzi <glpunzi at lordzealon.com> 
<http://www.lordzealon.com>



More information about the Squeak-dev mailing list