[squeak-dev] Re: [Pkg] FreeTypePlus

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

[squeak-dev] Re: [Pkg] FreeTypePlus

keith1y
Welcome to packages!

Rob Rothwell wrote:
> It seems that FreeTypePlus has disappeared from PackagesSqueak39?
I had a check through the history of PackagesSqueak39, and I can't see
FreeTypePlus in the history.
> If I try to load it into a level playing field-ed
> sq3.9.1-7075dev08.05.2.image:
>
> (HTTPSocket httpGet: 'installer.pbwiki.com/f/LPF.st
> <http://installer.pbwiki.com/f/LPF.st>') readStream fileIn.
> Installer install: 'Packages'.
> Installer sake addPackage: 'FreeTypePlus'; install.
That's the right loading code... so we need to see where Andrew did put
the package definition.

To see all definitions in all versions load:

Installer install: 'PackagesAllVersions'.

We find that it is available in PackagesSqueak310U as the universes
definition, but Andrew put an improved specific version into
PackagesSqueak310.

So... we copy the definition to PackagesSqueak39, with its dependents,
FFI, and "FreeType Plusplugins".

Then we can check to see if Andrew has any more recent versions... in
www.squeaksource.com/FreeTypePlus

and we copy the definition of 'FreeType Plus' to PackagesSqueak39beta,
and PackagesSqueak310beta but we change the load script to load whatever
is the latest from squeaksource, rather than the package on SqueakMap.

Here is one of those finer points I mentioned.

Packages beta load: 'FreeType Plus'.

Runs this non-specific "load the latest" script, but any dependencies
which are not defined in PackagesSqueak39beta, are supplied by falling
back to using 'Packages current'.

> ...it is nowhere to be found...
>
> Is this the right place to point this out?
>
> Also, I am moderately interested in the call to assist maintaining
> sake packages, but I am concerned that I am just
Moderately interested is good!

> not that good of a Squeaker!  On the other hand, I spend an awful lot
> of time being frustrated that you can't just
There is not a lot of coding needed, its just copy and paste and some
testing (hopefully we will get some of the testing automated in the long
run)

> start from a published image and install the packages you need and
> have them work...
One of the things I am aiming to facilitate to move squeak forward is
the ability to harness even the smallest contributions to the greater good.

so welcome aboard!

cheers

Keith
> Thanks,
>
> Rob Rothwell



Reply | Threaded
Open this post in threaded view
|

[squeak-dev] Re: [Pkg] FreeTypePlus

Andrew Tween

"Keith Hodges" <[hidden email]> wrote in message
news:[hidden email]...

> Welcome to packages!
>
> Rob Rothwell wrote:
>> It seems that FreeTypePlus has disappeared from PackagesSqueak39?
> I had a check through the history of PackagesSqueak39, and I can't see
> FreeTypePlus in the history.
>> If I try to load it into a level playing field-ed
>> sq3.9.1-7075dev08.05.2.image:
>>
>> (HTTPSocket httpGet: 'installer.pbwiki.com/f/LPF.st
>> <http://installer.pbwiki.com/f/LPF.st>') readStream fileIn.
>> Installer install: 'Packages'.
>> Installer sake addPackage: 'FreeTypePlus'; install.
> That's the right loading code... so we need to see where Andrew did put
> the package definition.
>
> To see all definitions in all versions load:
>
> Installer install: 'PackagesAllVersions'.
>
> We find that it is available in PackagesSqueak310U as the universes
> definition, but Andrew put an improved specific version into
> PackagesSqueak310.

No I didn't.
I put it into a new class, PackagesSqueak310dev0804
Because it is NOT for 3.10 , it is ONLY for developer Squeak
sq3.10-7159dev08.04.1

It might work with other images, but it might not.
It might work with future releases of developer Squeak, but it might not.

It solves the specific problem of - "FreeType Plus won't load into
sq3.10-7159dev08.04.1
because MC1.5 doesn't run postscripts, initializes classes in a different
order, and fails to load FFI" .

I anticipate that that problem will be solved with future versions of MC1.5
and/or FFI and/or FreeType Plus, at which point my script will only be of
historical interest.

I think something is missing here.
How can the appropriate installer be found for a specific version, of a
particular fork/distribution, that is itself based upon some core Squeak
image?
e.g.  sq3.10-7159dev08.04.1 is based upon  sq3.10-7159 .
There are multiple version identifiers here...
    distributionName=DeveloperSqueak
    distributionVersion=08.04.01
    coreImageName=Squeak
    coreImageVersion=3.10
    coreImageBuild=7159
    coreImageReleaseStatus=beta

In the future, as the core image shrinks, I can imagine someone creating a
distribution based on another distribution based on some fork and so on.
So there would be a chain of version identifiers, e.g. ...

    MyApplication.2.0.1alpha <- SpecialFork.1.0beta <-
DeveloperSqueak08.04.01 <- sq3.10-7159

If this version chain was embedded in each image, could Installer use it to
find the most appropriate install script for each package?

>
> So... we copy the definition to PackagesSqueak39, with its dependents,
> FFI, and "FreeType Plusplugins".
>
> Then we can check to see if Andrew has any more recent versions... in
> www.squeaksource.com/FreeTypePlus
>
> and we copy the definition of 'FreeType Plus' to PackagesSqueak39beta, and
> PackagesSqueak310beta but we change the load script to load whatever is
> the latest from squeaksource, rather than the package on SqueakMap.

That's a bit dangerous.
The latest on SqueakSource will almost certainly be full of bugs, and might
contain experimental code that does outrageous things.
Like deleting all the font files from your disk, and installing a new set
from DodgyFreeFonts.org  .
It doesn't, but you get my point :)

Cheers,
Andy



Reply | Threaded
Open this post in threaded view
|

Re: [squeak-dev] Re: [Pkg] FreeTypePlus

Edgar J. De Cleene



El 5/18/08 5:23 AM, "Andrew Tween" <[hidden email]> escribió:

>
> "Keith Hodges" <[hidden email]> wrote in message
> news:[hidden email]...
>> Welcome to packages!
>>
>> Rob Rothwell wrote:
>>> It seems that FreeTypePlus has disappeared from PackagesSqueak39?
>> I had a check through the history of PackagesSqueak39, and I can't see
>> FreeTypePlus in the history.
>>> If I try to load it into a level playing field-ed
>>> sq3.9.1-7075dev08.05.2.image:
>>>
>>> (HTTPSocket httpGet: 'installer.pbwiki.com/f/LPF.st
>>> <http://installer.pbwiki.com/f/LPF.st>') readStream fileIn.
>>> Installer install: 'Packages'.
>>> Installer sake addPackage: 'FreeTypePlus'; install.
>> That's the right loading code... so we need to see where Andrew did put
>> the package definition.
>>
>> To see all definitions in all versions load:
>>
>> Installer install: 'PackagesAllVersions'.
>>
>> We find that it is available in PackagesSqueak310U as the universes
>> definition, but Andrew put an improved specific version into
>> PackagesSqueak310.
>
> No I didn't.
> I put it into a new class, PackagesSqueak310dev0804
> Because it is NOT for 3.10 , it is ONLY for developer Squeak
> sq3.10-7159dev08.04.1
>
> It might work with other images, but it might not.
> It might work with future releases of developer Squeak, but it might not.
>
> It solves the specific problem of - "FreeType Plus won't load into
> sq3.10-7159dev08.04.1
> because MC1.5 doesn't run postscripts, initializes classes in a different
> order, and fails to load FFI" .
>
> I anticipate that that problem will be solved with future versions of MC1.5
> and/or FFI and/or FreeType Plus, at which point my script will only be of
> historical interest.
>
> I think something is missing here.
> How can the appropriate installer be found for a specific version, of a
> particular fork/distribution, that is itself based upon some core Squeak
> image?
> e.g.  sq3.10-7159dev08.04.1 is based upon  sq3.10-7159 .
> There are multiple version identifiers here...
>     distributionName=DeveloperSqueak
>     distributionVersion=08.04.01
>     coreImageName=Squeak
>     coreImageVersion=3.10
>     coreImageBuild=7159
>     coreImageReleaseStatus=beta
>
> In the future, as the core image shrinks, I can imagine someone creating a
> distribution based on another distribution based on some fork and so on.
> So there would be a chain of version identifiers, e.g. ...
>
>     MyApplication.2.0.1alpha <- SpecialFork.1.0beta <-
> DeveloperSqueak08.04.01 <- sq3.10-7159
>
> If this version chain was embedded in each image, could Installer use it to
> find the most appropriate install script for each package?
>
>>
>> So... we copy the definition to PackagesSqueak39, with its dependents,
>> FFI, and "FreeType Plusplugins".
>>
>> Then we can check to see if Andrew has any more recent versions... in
>> www.squeaksource.com/FreeTypePlus
>>
>> and we copy the definition of 'FreeType Plus' to PackagesSqueak39beta, and
>> PackagesSqueak310beta but we change the load script to load whatever is
>> the latest from squeaksource, rather than the package on SqueakMap.
>
> That's a bit dangerous.
> The latest on SqueakSource will almost certainly be full of bugs, and might
> contain experimental code that does outrageous things.
> Like deleting all the font files from your disk, and installing a new set
> from DodgyFreeFonts.org  .
> It doesn't, but you get my point :)
>
> Cheers,
> Andy

And is why I against Installer and other scripting things which IMHO is like
GOTO or modern Pandora box.

Some was scared for me trying to show we could have four branches of images

SqueakFoo - basic . Meaning bussiness as usual.
SqueakFooWT Meaning image witout traits
SqueakFooMC2 Meaning image developed with MC2 (My personal pick)
SqueakFooDS Meaning image developed with DS


Andrew  here show we could have a Big Bang effect of countless variations
and only few experts could know how to survive in this scenario.

The way to the heaven is hard and full of troubles.
The way to the hell is always the easier one.

Edgar







Reply | Threaded
Open this post in threaded view
|

Re: [squeak-dev] Re: [Pkg] FreeTypePlus

keith1y
In reply to this post by Andrew Tween
Hi Andrew,

Some good points...

> It might work with other images, but it might not.
> It might work with future releases of developer Squeak, but it might not.
>
> It solves the specific problem of - "FreeType Plus won't load into
> sq3.10-7159dev08.04.1
> because MC1.5 doesn't run postscripts, initializes classes in a
> different order, and fails to load FFI" .
>
MC1.5 does now run postscripts (it should have always run postscripts)

> I anticipate that that problem will be solved with future versions of
> MC1.5 and/or FFI and/or FreeType Plus, at which point my script will
> only be of historical interest.
agreed.

> I think something is missing here.
> How can the appropriate installer be found for a specific version, of
> a particular fork/distribution, that is itself based upon some core
> Squeak image?
> e.g.  sq3.10-7159dev08.04.1 is based upon  sq3.10-7159 .
> There are multiple version identifiers here...
>    distributionName=DeveloperSqueak
>    distributionVersion=08.04.01
>    coreImageName=Squeak
>    coreImageVersion=3.10
>    coreImageBuild=7159
>    coreImageReleaseStatus=beta

Which means to me that this is getting impossible, so we need to switch
tactics. Perhaps it is time to start thinking about image "capabilities".

Plan A.

Let's note, if sq3.10-7159dev08.04.1 is based upon  sq3.10-7159, and is
an assembly of packages, then it is simply a collection of packages with
dependencies, and our package simply keeps up the tradition. If it
doesn't have what it needs the dependency system takes care of that.

Plan B - Basic Capabilities

Each package nominates a "provides list". Normally a package provides
"itself", however it can provide any "capability". So for example "Magma
server" and "Magma client" both provide "Magma", an abstract capability.
Packages that need "Magma" capability put "Magma" in their dependsOn:
list and will not load unless "Magma" is provided. Which provider of
"Magma" is left to the installers choice.

Plan C - Detailed Capabilities

We are using Sake as a basis for this whole system so we are not just
limited to depending upon Sake/Packages tasks. We can specify
dependencies upon the existence of a particular Class, Package, File or
Method.

task dependsOn: { (SakeTask class: 'UUniverse') exists }.

> In the future, as the core image shrinks, I can imagine someone
> creating a distribution based on another distribution based on some
> fork and so on.
> So there would be a chain of version identifiers, e.g. ...
>
>    MyApplication.2.0.1alpha <- SpecialFork.1.0beta <-
> DeveloperSqueak08.04.01 <- sq3.10-7159
>
> If this version chain was embedded in each image, could Installer use
> it to find the most appropriate install script for each package?
Installer can. Its search path is fully configurable and is currently
set to....

1. installer.pbwiki.com/ Page - Smalltalk version - author initials
2. installer.pbwiki.com/ Page - Smalltalk version
3. installer.pbwiki.com/ Page - SystemVersion current majorMinorVersion

Sake/Packages

The code "Packages current", is currently set to major-minor version.
However I have changed it to try the following options:

'Packages' , SystemVersion current version asLegalSelector capitalized
'Packages' , SystemVersion current majorMinorVersion asLegalSelector
capitalized

>> and we copy the definition of 'FreeType Plus' to
>> PackagesSqueak39beta, and PackagesSqueak310beta but we change the
>> load script to load whatever is the latest from squeaksource, rather
>> than the package on SqueakMap.
>
> That's a bit dangerous.
> The latest on SqueakSource will almost certainly be full of bugs, and
> might contain experimental code that does outrageous things.
> Like deleting all the font files from your disk, and installing a new
> set from DodgyFreeFonts.org  .
> It doesn't, but you get my point :)
That is precisely the point...

Packages beta load: 'FreeTypePlus'.

Is specifically requesting the most recent and hence most dangerous
version whatever it may be, (because I cant be bothered to go and look
for it myself).

This provides package authors the easiest way of getting others on board
with testing where they are at. The package author can say "Try the beta
and see if it fixes your problem." The author is saved from having to
update the "working" definitions until he his ready.

cheers

Keith










> Cheers,
> Andy
>
>
>



Reply | Threaded
Open this post in threaded view
|

Re: [squeak-dev] Re: [Pkg] FreeTypePlus

keith1y
In reply to this post by Edgar J. De Cleene
Edgar wrote:
> And is why I against Installer and other scripting things which IMHO is like
> GOTO or modern Pandora box.
>  
Sake/Packages which is what is being described here is not modelled upon
GOTO it is modelled upon "make" and "rake", both of which can model
complex dependencies and relationships. In many cases those complexities
are more than the human mind can handle without getting a headache, that
is why "make" was invented.
> Some was scared for me trying to show we could have four branches of images
>
> SqueakFoo - basic . Meaning bussiness as usual.
> SqueakFooWT Meaning image witout traits
> SqueakFooMC2 Meaning image developed with MC2 (My personal pick)
> SqueakFooDS Meaning image developed with DS
>  
Having a set of images to choose from IS conceptually just like a GOTO.
Furthermore you have no idea what capabilities any of those images does
contain, the only clue being the title, WT = With Traits or Without
Traits or With Teeth?

So building the future of squeak upon different images like this almost
guarantees an explosion of different images and forks. This is not the
way we want to go.

Instead the trend towards kernel "common ancestor" images allows us to
build up a detailed model of an image's capabilities and components
(packages). This will hopefully lead to more interoperability than less.
> Andrew  here show we could have a Big Bang effect of countless variations
> and only few experts could know how to survive in this scenario.
>
> The way to the heaven is hard and full of troubles.
> The way to the hell is always the easier one.
>  
The path of willful ignorance leads to hell, I have other plans.

cheers

Keith
 


Reply | Threaded
Open this post in threaded view
|

[squeak-dev] Re: [Pkg] FreeTypePlus

Rob Rothwell
In reply to this post by keith1y
Sorry for the late reply; I have been away from a computer for a few days...!

Thanks...although I don't quite understand why you can't do something like:

Installer sake: #PackagesSqueak310U

to use the other packages, instead of copying the methods, but I'll play around with this and try to figure it out.  I'm sure I'll have more questions, though...

Rob

On Sat, May 17, 2008 at 10:50 PM, Keith Hodges <[hidden email]> wrote:
Welcome to packages!


Rob Rothwell wrote:
It seems that FreeTypePlus has disappeared from PackagesSqueak39?
I had a check through the history of PackagesSqueak39, and I can't see FreeTypePlus in the history.
If I try to load it into a level playing field-ed sq3.9.1-7075dev08.05.2.image:

(HTTPSocket httpGet: 'installer.pbwiki.com/f/LPF.st <http://installer.pbwiki.com/f/LPF.st>') readStream fileIn.

Installer install: 'Packages'.
Installer sake addPackage: 'FreeTypePlus'; install.
That's the right loading code... so we need to see where Andrew did put the package definition.

To see all definitions in all versions load:

Installer install: 'PackagesAllVersions'.

We find that it is available in PackagesSqueak310U as the universes definition, but Andrew put an improved specific version into PackagesSqueak310.
So... we copy the definition to PackagesSqueak39, with its dependents, FFI, and "FreeType Plusplugins".

Then we can check to see if Andrew has any more recent versions... in www.squeaksource.com/FreeTypePlus

and we copy the definition of 'FreeType Plus' to PackagesSqueak39beta, and PackagesSqueak310beta but we change the load script to load whatever is the latest from squeaksource, rather than the package on SqueakMap.

Here is one of those finer points I mentioned.

Packages beta load: 'FreeType Plus'.

Runs this non-specific "load the latest" script, but any dependencies which are not defined in PackagesSqueak39beta, are supplied by falling back to using 'Packages current'.


...it is nowhere to be found...

Is this the right place to point this out?

Also, I am moderately interested in the call to assist maintaining sake packages, but I am concerned that I am just
Moderately interested is good!


not that good of a Squeaker!  On the other hand, I spend an awful lot of time being frustrated that you can't just
There is not a lot of coding needed, its just copy and paste and some testing (hopefully we will get some of the testing automated in the long run)


start from a published image and install the packages you need and have them work...
One of the things I am aiming to facilitate to move squeak forward is the ability to harness even the smallest contributions to the greater good.

so welcome aboard!

cheers

Keith
Thanks,

Rob Rothwell