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

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

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

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


On
[hidden email] wrote:

> Send Squeak-dev mailing list submissions to
> [hidden email]
>
> 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
> [hidden email]
>
> You can reach the person managing the list at
> [hidden email]
>
> 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
>       ([hidden email])
>    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" <[hidden email]>
> Subject: Re: [squeak-dev] Hydra benchmarking
> To: "The general-purpose Squeak developers list"
> <[hidden email]>
> Message-ID:
> <[hidden email]>
> 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 <[hidden email]>
> Subject: [squeak-dev] Google Summer of Code?
> To: The general-purpose Squeak developers list
> <[hidden email]>
> Message-ID: <[hidden email]>
> 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 <[hidden email]>
> Subject: Re: [squeak-dev] Hydra benchmarking
> To: The general-purpose Squeak developers list
> <[hidden email]>
> Message-ID:
> <[hidden email]>
> 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 <[hidden email]>
> Corporate Smalltalk Consulting Ltd.  http://www.smalltalkconsulting.com
> =
> =
> =
> ========================================================================
>
>
>
>
> ------------------------------
>
> Message: 4
> Date: Tue, 26 Feb 2008 08:05:36 -0000
> From: "Andrew Tween" <[hidden email]>
> Subject: [squeak-dev] Re: FFI on 3.10 Dev image?
> To: [hidden email]
> Message-ID: <fq0h9b$hh$[hidden email]>
> 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" <[hidden email]> 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" <[hidden email]>
> Subject: Re: [squeak-dev] Re: Why is Heap>>#species => Array?
> To: The general-purpose Squeak developers list
> <[hidden email]>
> Message-ID: <[hidden email]>
> 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: [hidden email]
> Subject: Re: [squeak-dev] Craig's answers to the 2008 candidate
> questions
> To: The general-purpose Squeak developers list
> <[hidden email]>
> Message-ID: <[hidden email]>
>
> 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" <[hidden email]>
> Subject: [squeak-dev] Fwd: Web page with status of squeak license
> issue resolution?
> To: "The general-purpose Squeak developers list"
> <[hidden email]>
> Message-ID:
> <[hidden email]>
> Content-Type: text/plain; charset="utf-8"
>
> ---------- Forwarded message ----------
> From: Jos__ L. Redrejo Rodr__guez <[hidden email]>
> Date: Tue, Feb 26, 2008 at 8:46 AM
> Subject: Re: Web page with status of squeak license issue resolution?
> To: Petter Reinholdtsen <[hidden email]>
> Cc: Damien Pollet <[hidden email]>, [hidden email]
>
>
>
>  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 <[hidden email]>
> Subject: [squeak-dev] Re: Why is Heap>>#species => Array?
> To: The general-purpose Squeak developers list
> <[hidden email]>
> Message-ID: <[hidden email]>
> 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
> [hidden email]
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/squeak-dev
>
> End of Squeak-dev Digest, Vol 62, Issue 68
> ******************************************


--
Giuseppe Luigi Punzi <[hidden email]>
<http://www.lordzealon.com>