Anyone out there have Glorp working in Squeak 4.1+ ?

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

Anyone out there have Glorp working in Squeak 4.1+ ?

Casey Ransberger-2
I tried pulling the port down off of SqueakMap, and ran into troubles. The first problem was fixed up by enabling underscores in selectors, but the next problem I had (in a 4.1 image) I'm not really sure about.

Here's the stack for the second problem if anyone is interested...

10 August 2010 6:40:17.74 pm

VM: Mac OS - Smalltalk
Image: Squeak4.1 [latest update: #9957]

SecurityManager state:
Restricted: false
FileAccess: true
SocketAccess: true
Working Dir /Users/casey/Desktop/Squeak4.1
Trusted Dir /foobar/tooBar/forSqueak/bogus/
Untrusted Dir /foobar/tooBar/forSqueak/bogus/

ByteString(Object)>>error:
Receiver: ''
Arguments and temporary variables: 
aString: 'subscript is out of bounds: 1'
Receiver's instance variables: 
''

ByteString(Object)>>errorSubscriptBounds:
Receiver: ''
Arguments and temporary variables: 
index: 1
Receiver's instance variables: 
''

ByteString(Object)>>at:
Receiver: ''
Arguments and temporary variables: 
index: 1
Receiver's instance variables: 
''

ByteString>>at:
Receiver: ''
Arguments and temporary variables: 
index: 1
Receiver's instance variables: 
''


--- The full stack ---
ByteString(Object)>>error:
ByteString(Object)>>errorSubscriptBounds:
ByteString(Object)>>at:
ByteString>>at:
 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ByteString(SequenceableCollection)>>first
EncoderForV3PlusClosures(Encoder)>>encodeVariable:sourceRange:ifUnknown:
Parser>>variable
Parser>>primaryExpression
Parser>>expression
Parser>>statements:innerBlock:blockNode:
Parser>>statements:innerBlock:
Parser>>method:context:
[] in Parser>>parse:class:category:noPattern:context:notifying:ifFail:
BlockClosure>>on:do:
Parser>>parse:class:category:noPattern:context:notifying:ifFail:
Compiler>>translate:noPattern:ifFail:
Compiler>>compile:in:classified:notifying:ifFail:
OracleMetadataDescriptorSystem class(Behavior)>>compile:classified:notifying:trailer:ifFail:
MethodAddition>>createCompiledMethod
[] in [] in [] in MCPackageLoader>>basicLoad
[] in [] in OrderedCollection(Collection)>>do:displayingProgress:every:
OrderedCollection>>do:
[] in OrderedCollection(Collection)>>do:displayingProgress:every:
[] in [] in ProgressInitiationException>>defaultMorphicAction
BlockClosure>>on:do:
[] in ProgressInitiationException>>defaultMorphicAction
BlockClosure>>ensure:
ProgressInitiationException>>defaultMorphicAction
ProgressInitiationException>>defaultAction
UndefinedObject>>handleSignal:
MethodContext(ContextPart)>>handleSignal:
MethodContext(ContextPart)>>handleSignal:
MethodContext(ContextPart)>>handleSignal:
MethodContext(ContextPart)>>handleSignal:
MethodContext(ContextPart)>>handleSignal:
ProgressInitiationException(Exception)>>signal
ProgressInitiationException>>display:at:from:to:during:
ProgressInitiationException class>>display:at:from:to:during:
ByteString(String)>>displayProgressAt:from:to:during:
OrderedCollection(Collection)>>do:displayingProgress:every:
OrderedCollection(Collection)>>do:displayingProgress:
[] in [] in MCPackageLoader>>basicLoad
BlockClosure>>on:do:
[] in MCPackageLoader>>basicLoad
BlockClosure>>ensure:
MCPackageLoader>>basicLoad
[] in MCPackageLoader>>loadWithNameLike:
[] in MCPackageLoader>>useChangeSetNamed:during:
BlockClosure>>ensure:
MCPackageLoader>>useChangeSetNamed:during:
MCPackageLoader>>useNewChangeSetNamedLike:during:
MCPackageLoader>>loadWithNameLike:
MCVersionLoader>>load
MCVersionLoader class>>loadVersion:
MCVersion>>load
[] in SARInstaller>>fileInMonticelloZipVersionNamed:
[] in SARInstaller class>>withCurrentChangeSetNamed:do:
BlockClosure>>ensure:
SARInstaller class>>withCurrentChangeSetNamed:do:
SARInstaller>>fileInMonticelloZipVersionNamed:
SARInstaller>>DoIt
-- and more not shown --


--
Casey Ransberger


Reply | Threaded
Open this post in threaded view
|

Re: Anyone out there have Glorp working in Squeak 4.1+ ?

Levente Uzonyi-2
On Tue, 10 Aug 2010, Casey Ransberger wrote:

> I tried pulling the port down off of SqueakMap, and ran into troubles. The
> first problem was fixed up by enabling underscores in selectors, but the
> next problem I had (in a 4.1 image) I'm not really sure about.
>
> Here's the stack for the second problem if anyone is interested...

There's a newer version on squeaksource which may (or may not) work
better: http://www.squeaksource.com/Glorp.html

Did you know that the license is LGPL?


Levente

>
> 10 August 2010 6:40:17.74 pm
>
> VM: Mac OS - Smalltalk
> Image: Squeak4.1 [latest update: #9957]
>
> SecurityManager state:
> Restricted: false
> FileAccess: true
> SocketAccess: true
> Working Dir /Users/casey/Desktop/Squeak4.1
> Trusted Dir /foobar/tooBar/forSqueak/bogus/
> Untrusted Dir /foobar/tooBar/forSqueak/bogus/
>
> ByteString(Object)>>error:
> Receiver: ''
> Arguments and temporary variables:
> aString: 'subscript is out of bounds: 1'
> Receiver's instance variables:
> ''
>
> ByteString(Object)>>errorSubscriptBounds:
> Receiver: ''
> Arguments and temporary variables:
> index: 1
> Receiver's instance variables:
> ''
>
> ByteString(Object)>>at:
> Receiver: ''
> Arguments and temporary variables:
> index: 1
> Receiver's instance variables:
> ''
>
> ByteString>>at:
> Receiver: ''
> Arguments and temporary variables:
> index: 1
> Receiver's instance variables:
> ''
>
>
> --- The full stack ---
> ByteString(Object)>>error:
> ByteString(Object)>>errorSubscriptBounds:
> ByteString(Object)>>at:
> ByteString>>at:
> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
> ByteString(SequenceableCollection)>>first
> EncoderForV3PlusClosures(Encoder)>>encodeVariable:sourceRange:ifUnknown:
> Parser>>variable
> Parser>>primaryExpression
> Parser>>expression
> Parser>>statements:innerBlock:blockNode:
> Parser>>statements:innerBlock:
> Parser>>method:context:
> [] in Parser>>parse:class:category:noPattern:context:notifying:ifFail:
> BlockClosure>>on:do:
> Parser>>parse:class:category:noPattern:context:notifying:ifFail:
> Compiler>>translate:noPattern:ifFail:
> Compiler>>compile:in:classified:notifying:ifFail:
> OracleMetadataDescriptorSystem
> class(Behavior)>>compile:classified:notifying:trailer:ifFail:
> MethodAddition>>createCompiledMethod
> [] in [] in [] in MCPackageLoader>>basicLoad
> [] in [] in OrderedCollection(Collection)>>do:displayingProgress:every:
> OrderedCollection>>do:
> [] in OrderedCollection(Collection)>>do:displayingProgress:every:
> [] in [] in ProgressInitiationException>>defaultMorphicAction
> BlockClosure>>on:do:
> [] in ProgressInitiationException>>defaultMorphicAction
> BlockClosure>>ensure:
> ProgressInitiationException>>defaultMorphicAction
> ProgressInitiationException>>defaultAction
> UndefinedObject>>handleSignal:
> MethodContext(ContextPart)>>handleSignal:
> MethodContext(ContextPart)>>handleSignal:
> MethodContext(ContextPart)>>handleSignal:
> MethodContext(ContextPart)>>handleSignal:
> MethodContext(ContextPart)>>handleSignal:
> ProgressInitiationException(Exception)>>signal
> ProgressInitiationException>>display:at:from:to:during:
> ProgressInitiationException class>>display:at:from:to:during:
> ByteString(String)>>displayProgressAt:from:to:during:
> OrderedCollection(Collection)>>do:displayingProgress:every:
> OrderedCollection(Collection)>>do:displayingProgress:
> [] in [] in MCPackageLoader>>basicLoad
> BlockClosure>>on:do:
> [] in MCPackageLoader>>basicLoad
> BlockClosure>>ensure:
> MCPackageLoader>>basicLoad
> [] in MCPackageLoader>>loadWithNameLike:
> [] in MCPackageLoader>>useChangeSetNamed:during:
> BlockClosure>>ensure:
> MCPackageLoader>>useChangeSetNamed:during:
> MCPackageLoader>>useNewChangeSetNamedLike:during:
> MCPackageLoader>>loadWithNameLike:
> MCVersionLoader>>load
> MCVersionLoader class>>loadVersion:
> MCVersion>>load
> [] in SARInstaller>>fileInMonticelloZipVersionNamed:
> [] in SARInstaller class>>withCurrentChangeSetNamed:do:
> BlockClosure>>ensure:
> SARInstaller class>>withCurrentChangeSetNamed:do:
> SARInstaller>>fileInMonticelloZipVersionNamed:
> SARInstaller>>DoIt
> -- and more not shown --
>
>
> --
> Casey Ransberger
>

Reply | Threaded
Open this post in threaded view
|

What Is the Law? (was: Re: [squeak-dev] Anyone out there have Glorp working in Squeak 4.1+ ?)

Casey Ransberger-2
On Aug 10, 2010, at 7:24 PM, Levente Uzonyi <[hidden email]> wrote:

Did you know that the license is LGPL?

F*{%!

:)

Isn't is weird how the legalese gets hard to interpret in the context of Smalltalk? What's the difference between "linking to" and a "derivative work," really? I suppose one might broadly interpret that to mean "loaded into the image but unmodified." But if one shipped an image with it loaded, would that image be a derivative work? Who knows?? And the worst part is, it would probably be next to impossible to explain this to a judge, who probably doesn't actually know what linking really is, much less what a persistent object memory is.

Seems like the safe thing to do is to ship one's code separately from it. Gah.

For the record, I Am Not A Lawyer!

Thanks for the heads up on that one, Levente. Meanwhile, I'm having more luck with the SS bits, so thanks again. 

Since my intended application keeps everything behind a web server, things-GPL shouldn't be an issue for me, but it's food for thought.


Levente


10 August 2010 6:40:17.74 pm

VM: Mac OS - Smalltalk
Image: Squeak4.1 [latest update: #9957]

SecurityManager state:
Restricted: false
FileAccess: true
SocketAccess: true
Working Dir /Users/casey/Desktop/Squeak4.1
Trusted Dir /foobar/tooBar/forSqueak/bogus/
Untrusted Dir /foobar/tooBar/forSqueak/bogus/

ByteString(Object)>>error:
Receiver: ''
Arguments and temporary variables:
aString: 'subscript is out of bounds: 1'
Receiver's instance variables:
''

ByteString(Object)>>errorSubscriptBounds:
Receiver: ''
Arguments and temporary variables:
index: 1
Receiver's instance variables:
''

ByteString(Object)>>at:
Receiver: ''
Arguments and temporary variables:
index: 1
Receiver's instance variables:
''

ByteString>>at:
Receiver: ''
Arguments and temporary variables:
index: 1
Receiver's instance variables:
''


--- The full stack ---
ByteString(Object)>>error:
ByteString(Object)>>errorSubscriptBounds:
ByteString(Object)>>at:
ByteString>>at:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ByteString(SequenceableCollection)>>first
EncoderForV3PlusClosures(Encoder)>>encodeVariable:sourceRange:ifUnknown:
Parser>>variable
Parser>>primaryExpression
Parser>>expression
Parser>>statements:innerBlock:blockNode:
Parser>>statements:innerBlock:
Parser>>method:context:
[] in Parser>>parse:class:category:noPattern:context:notifying:ifFail:
BlockClosure>>on:do:
Parser>>parse:class:category:noPattern:context:notifying:ifFail:
Compiler>>translate:noPattern:ifFail:
Compiler>>compile:in:classified:notifying:ifFail:
OracleMetadataDescriptorSystem
class(Behavior)>>compile:classified:notifying:trailer:ifFail:
MethodAddition>>createCompiledMethod
[] in [] in [] in MCPackageLoader>>basicLoad
[] in [] in OrderedCollection(Collection)>>do:displayingProgress:every:
OrderedCollection>>do:
[] in OrderedCollection(Collection)>>do:displayingProgress:every:
[] in [] in ProgressInitiationException>>defaultMorphicAction
BlockClosure>>on:do:
[] in ProgressInitiationException>>defaultMorphicAction
BlockClosure>>ensure:
ProgressInitiationException>>defaultMorphicAction
ProgressInitiationException>>defaultAction
UndefinedObject>>handleSignal:
MethodContext(ContextPart)>>handleSignal:
MethodContext(ContextPart)>>handleSignal:
MethodContext(ContextPart)>>handleSignal:
MethodContext(ContextPart)>>handleSignal:
MethodContext(ContextPart)>>handleSignal:
ProgressInitiationException(Exception)>>signal
ProgressInitiationException>>display:at:from:to:during:
ProgressInitiationException class>>display:at:from:to:during:
ByteString(String)>>displayProgressAt:from:to:during:
OrderedCollection(Collection)>>do:displayingProgress:every:
OrderedCollection(Collection)>>do:displayingProgress:
[] in [] in MCPackageLoader>>basicLoad
BlockClosure>>on:do:
[] in MCPackageLoader>>basicLoad
BlockClosure>>ensure:
MCPackageLoader>>basicLoad
[] in MCPackageLoader>>loadWithNameLike:
[] in MCPackageLoader>>useChangeSetNamed:during:
BlockClosure>>ensure:
MCPackageLoader>>useChangeSetNamed:during:
MCPackageLoader>>useNewChangeSetNamedLike:during:
MCPackageLoader>>loadWithNameLike:
MCVersionLoader>>load
MCVersionLoader class>>loadVersion:
MCVersion>>load
[] in SARInstaller>>fileInMonticelloZipVersionNamed:
[] in SARInstaller class>>withCurrentChangeSetNamed:do:
BlockClosure>>ensure:
SARInstaller class>>withCurrentChangeSetNamed:do:
SARInstaller>>fileInMonticelloZipVersionNamed:
SARInstaller>>DoIt
-- and more not shown --


--
Casey Ransberger




Reply | Threaded
Open this post in threaded view
|

Re: What Is the Law?

Randal L. Schwartz
>>>>> "Casey" == Casey Ransberger <[hidden email]> writes:

Casey> Seems like the safe thing to do is to ship one's code separately
Casey> from it. Gah.

I recall a time when RMS claimed that even if The Software had
accomodated "interfaces" to GPL software, but it was up to the customer
to do the final linking as a routine matter for functionality (and The
Software had no functionality on its own without having been so linked),
then The Software was deemed to have been "distributed" with GPL
software, subject to the viral license.

I'm not sure whether his opinion withstood the test of time or common
sense, but it was definitely "out there" for a bit.

In any event, wearing my Squeak Board hat, I will continue to state that
it is the position of The Board that LGPL code is *incompatible* with
Squeak's license, and therefore will never be part of Squeak core,
unless it also gets relicensed under a compatible license by the
copyright holders.  Having said that, you can certainly *use* LGPL code
with your image... just be careful about redistributing it. :)

--
Randal L. Schwartz - Stonehenge Consulting Services, Inc. - +1 503 777 0095
<[hidden email]> <URL:http://www.stonehenge.com/merlyn/>
Smalltalk/Perl/Unix consulting, Technical writing, Comedy, etc. etc.
See http://methodsandmessages.vox.com/ for Smalltalk and Seaside discussion

Reply | Threaded
Open this post in threaded view
|

Alice

Squeak List
In reply to this post by Casey Ransberger-2
wondering what purpose the following serves (from: http://www.squeak.org/Features/MultiMedia/):

"

Alice

Alice is an authoring tool designed for people without programming experience to build interactive 3D worlds. The Stage 3 Research Group (Randy Pausch director) started the Alice project at the University of Virginia, and is continuing their work at Carnegie Mellon University'sStage3 Research.

Squeak-Alice brings the ideas and the ideals of Alice to Squeak, with the goal of introducing even more people to 3D graphics and allowing them to author in the medium. Wonderlands are the basic building blocks of Squeak-Alice and are interactive 3D worlds. To create a Wonderland, evaluate:

Wonderland new.

This creates a script editor, a control panel, and a window into the 3D world. From here you're ready to start building your world:

<a linkindex="55" href="javascript:window.open('http://www.squeak.org:7779/Features/aliceLarge?action=SWMimeView');void%200;" style="color: rgb(65, 100, 174); text-decoration: none; white-space: nowrap;">aliceSmall

Screenshot of 3D Alice environment


"

not sure how much this (the alice info) helps someone looking into 3d graphics in squeak...

no idea what version(s) of squeak alice  runs correctly on (i have not tried with 3.9-4.1)... but it seems like there would be something on the above page with some hints ... or just a simple spelling out that alice only works in squeak version "something(s)" and here is the link to that download...

 it just doesn't seem very  gracious/helpful to have that "information" there - unless it actually showed something that works - and the quickest way to make it work.

i recall it worked (alice)  - years ago... it worked in squeak. a long time ago.

if this is something that is still current in some way not obvious, i suppose it is great to have - but the 1 working link in the alice stuff seems to lead to java... the other goes nowhere, and the screenshot, well....

i know how it is to find a cool description that leads to, well..... yet, this is something right there in the heartland: squeak.org.

not being critical -  just an observation. i think the alice project is pretty cool: just not sure how well it fits in with squeak - at least on http://www.squeak.org/Features/MultiMedia/ .

2 cents

PS - stumbled on this while looking into squeak GUI stuff... http://wiki.squeak.org/squeak/1576 , etc... which seems to have stopped around 2008 or so.... it seems searching for "GUI" at: http://www.squeak.org/search.html would possibly lead to something more than the infamous and celebrated  "0 hits "... :)
again, just an observation. i know that there are piles of pages of how to do what i want to do in morphic spread across all manner of squeak releases...







Reply | Threaded
Open this post in threaded view
|

Re: What Is the Law?

Jecel Assumpcao Jr
In reply to this post by Randal L. Schwartz
Randal L. Schwartz wrote on Tue, 10 Aug 2010 20:52:01 -0700

> In any event, wearing my Squeak Board hat, I will continue to state that
> it is the position of The Board that LGPL code is *incompatible* with
> Squeak's license, and therefore will never be part of Squeak core,
> unless it also gets relicensed under a compatible license by the
> copyright holders.  Having said that, you can certainly *use* LGPL code
> with your image... just be careful about redistributing it. :)

It would be better if we say that GPL and LGPL is unacceptable rather
than incompatible. Both the Apache 2 and the MIT licenses are defined to
be compatible with the GPL in the sense that they allow relicensing so
that the combined software can be released as GPL. But the board's
position is that Squeak shall always be under the Apache/MIT licenses,
so such a GPL image would not be Squeak but a new fork - that code can't
be accepted into the Trunk nor even into some future "full Squeak"
image.

To give you a concrete example, Self was released by Sun under an MIT
license. Some guys ported it to the x86 and Linux and decided to combine
it with gas (gnu assembler), so their version of Self was under the GPL.
In this case they were big fans of the GPL, but they really had no
choice (except for the choice of creating their own assembler). A few
years later, when the Mac moved to x86, Sun released their port under
the MIT license but didn't make any use of the previous work. So you
have to balance the need to keep people from "stealing" your work with
the possibility of them throwing away your work and doing it themselves.

-- Jecel


Reply | Threaded
Open this post in threaded view
|

Re: What Is the Law?

Randal L. Schwartz
In reply to this post by Randal L. Schwartz
>>>>> "Jecel" == Jecel Assumpcao <[hidden email]> writes:

Jecel> But the board's
Jecel> position is that Squeak shall always be under the Apache/MIT licenses,
Jecel> so such a GPL image would not be Squeak but a new fork - that code can't
Jecel> be accepted into the Trunk nor even into some future "full Squeak"
Jecel> image.

Yes, that's precisely what I meant.  Thanks for clarifying.

--
Randal L. Schwartz - Stonehenge Consulting Services, Inc. - +1 503 777 0095
<[hidden email]> <URL:http://www.stonehenge.com/merlyn/>
Smalltalk/Perl/Unix consulting, Technical writing, Comedy, etc. etc.
See http://methodsandmessages.vox.com/ for Smalltalk and Seaside discussion