Bijan Parsia bparsia@email.unc.edu wrote:
--On Monday, January 28, 2002 10:27 AM +0100 goran.hultgren@bluefish.se wrote:
Ok, a few simple personal points:
- If SqF want's to be a good "buddy"
Agreed.
- If Cees (in person) would like to be a good buddy then hey! Go ahead!
:-)
He's *my* good buddy :)
- If SqF for some reason thinks that this might be a project that
Squeak can benefit from then I would like to remind you that GPL isn't "compatible" with SqueakL which means that "base Squeak" can not incorporate any code coming out from such a project into the Squeak image.
This isn't true. They could dual licence. Since Paul seems intent on getting clear title (or clear licencing) to incorporated code, there will already be a mechanism for interacting with authors.
Yes, dual licensing is a plausible way, as I also noted below.
I did not read Paul's postings in full detail so I might have missed something about his licensing strategy. But I think he clearly stated that he wanted to be able to "raid" both GPL and BSD based sources which would place "Bellesqueak" in GPL land without possibility of dual licensing (correct me if I am wrong).
Raided GPL code would need to go back to the original authors for relicencing to get put in normal Squeak. Hmm. Only if you wanted to
Yes. Here in lies the problem. "Raiding" sounded as being able to pick and not ask. If you need to ask for another license I would use another word. :-)
distribute it? There's no problem is you just want to load it up in your own image.
But that wouldn't help "base Squeak" as I called it. :-) Whatever, we are all in agreement I guess!
<CSOTD>"OK, I'm finalling doing one of these. This uses ImageSegments to help figure out memory consumption of your objects:"
String streamContents: [:strm | (ImageSegment new copyFromRootsForExport: Browser allInstances) printSpaceAnalysisOn: strm]
</CSOTD>
Hehe! Go, go...
regards, Göran
On Mon, 28 Jan 2002 goran.hultgren@bluefish.se wrote:
Bijan Parsia bparsia@email.unc.edu wrote:
[snipped violent agreement]
<CSOTD>"OK, I'm finalling doing one of these. This uses ImageSegments to help figure out memory consumption of your objects:"
String streamContents: [:strm | (ImageSegment new copyFromRootsForExport: Browser allInstances) printSpaceAnalysisOn: strm]
</CSOTD>
Hehe! Go, go...
Hmm. Now that I've posted this, I can ask: What *exactly* does it analyze? How deep does it go?
Also, if I want to dump and image segment to disk and read it back in *not* as a project, how do I do it? Is it worth doing?
I.e., I'm looking for code analogous to ReferenceStream's rr _ ReferenceStream fileNamed: 'test.obj'. rr nextPut: <your object>. rr close.
etc.
I managed to dump a segment, but I'm completely unclear how to read one back in. Is there any point to using an ImageSegment over a ReferenceStream?
(Don't have another CSOTD handy :))
Cheers, Bijan Parsia.
[This is ironic about mail lists -- this CSOTD stuff *definitely* shouldget reposted to the Squeak-dev list. maybe someone could forward a digest if it keeps going (or not)]
String streamContents: [:strm | (ImageSegment new copyFromRootsForExport: Browser allInstances) printSpaceAnalysisOn: strm]
</CSOTD>
Hehe! Go, go...
Yeah, Bijan! That's pretty good (and so was Goran's!). Way back when we first did image segments, I did a space analysis too that simply gave the size of the segment, so it corresponded more to 'space used' for the object in question (I was looking at projects, and used the internal form, not the export form). I'm really glad to see you this deeply into image segments.
Hmm. Now that I've posted this, I can ask: What *exactly* does it analyze? How deep does it go?
Also, if I want to dump and image segment to disk and read it back in *not* as a project, how do I do it? Is it worth doing?
I.e., I'm looking for code analogous to ReferenceStream's rr _ ReferenceStream fileNamed: 'test.obj'. rr nextPut: <your object>. rr close.
etc.
I managed to dump a segment, but I'm completely unclear how to read one back in. Is there any point to using an ImageSegment over a ReferenceStream?
I once wrote all about image segments in a message around the time we got them working. It (or I think there were 2 or 3) should be in the archives (and near the earliest mention of ImageSegment), and possibly in a changeSet preamble, or the [updates] message that accompanied it.
To bypass, though, yes there are reasons to use an ImageSegment, the main one being speed, esp if you are using it like a DLL. I've forgotten exactly, but I think I got it to load the entire VMConstruction category (then about 500k with something like 20k objects) in less than 1/4 second.
One fruitful role ISs is to use them as a memory management technique for many projects in a very large squeak image. It lets you keep the run-time footprint small (for GC speed and other reasons), but you can get to any project in less than a second.
(Don't have another CSOTD handy :))
CSOTD: OK. Here's one...
Given a list of email addresses, take them apart, and sort the groups by number of people there (omitting the singletons):
(('fubar@yahoo.com bazzfazz@yahoo.com onions@google.com' findTokens: {Character cr}) collect: [:x | x copyFrom: (x indexOf: $@) + 1 to: x size]) asBag sortedCounts select: [:x | x key > 1]
This produces, for the Squeak-dev list, the following... a SortedCollection(29->'yahoo.com' 18->'home.com' 17->'acm.org' 14->'aol.com' 11->'hotmail.com' 9->'mac.com' 9->'earthlink.net' 9->'mindspring.com' 8->'cc.gatech.edu' 7->'gmx.de' 6->'pobox.com' 6->'bellsouth.net' 5->'erols.com' 5->'t-online.de' 5->'sympatico.ca' 5->'netscape.net' 4->'iam.unibe.ch' 4->'ix.netcom.com' 4->'usa.net' 4->'bigfoot.com' 4->'worldnet.att.net' 4->'squeakland.org' 4->'world.std.com' 4->'gemstone.com' 3->'san.rr.com' 3->'panix.com' 3->'cs.cmu.edu' 3->'gmx.net' 3->'uswest.net' 3->'microsoft.com' 3->'yahoo.com.ar' 3->'xs4all.nl' 3->'softhome.net' 3->'pacbell.net' 3->'mediaone.net' 2->'vianet.ca' 2->'core-sdi.com' 2->'rogers.com' 2->'compuserve.com' 2->'csn.net' 2->'ibm.net' 2->'telefonica.com.ar' 2->'bluewin.ch' 2->'weird.com' 2->'free.fr' 2->'crear.com.ar' 2->'cmu.edu' 2->'well.com' 2->'instantiations.com' 2->'ping.de' 2->'whitestein.com' 2->'media.mit.edu' 2->'info.unicaen.fr' 2->'bigpond.net.au' 2->'st.cs.uiuc.edu' 2->'ozemail.com.au' 2->'smalltalking.net' 2->'attglobal.net' 2->'umich.edu' 2->'mail.worldkey.net' 2->'appliedreasoning.com' 2->'msn.com' 2->'mail.com' 2->'espol.edu.ec' 2->'io.com' 2->'optushome.com.au' 2->'uiuc.edu' 2->'sprynet.com' 2->'arnet.com.ar' 2->'cogsci.ucsd.edu' 2->'create.ucsb.edu' 2->'advantive.com' 2->'epost.de' 2->'heeg.de' 2->'inf.ufsc.br' 2->'telus.net' 2->'operamail.com' 2->'unx.sas.com' 2->'quallaby.com' 2->'open.ac.uk' 2->'disney.com' 2->'club-internet.fr' 2->'objectpeople.com' 2->'sra.co.jp' 2->'harlequin.co.uk' 2->'mail.sprint.com' 2->'gte.net' 2->'lineone.net' 2->'watson.ibm.com' 2->'cosmocows.com' 2->'impsat1.com.ar' 2->'lesser-software.com')
squeakfoundation@lists.squeakfoundation.org