[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
|