[Newbies] Chronos package loading error

Levente Uzonyi leves at elte.hu
Wed Mar 9 11:19:45 UTC 2011


On Tue, 8 Mar 2011, Paul DeBruicker wrote:

> Hi -
>
> Chronos (http://www.chronos-st.org & http://www.squeaksource.com/Chronos ) 
> would load into and work in Squeak 3.9, but it won't load into 4.2. The error 
> given is 'Futures must be sent messages'  I think this comes up because 
> Chronos has a class InfiniteTimepoint that has two class side methods:
>
> InfiniteTimepoint class >> polarity: polarity
> 	^polarity ifTrue: [self future] ifFalse: [self past]
>
> and
>
> InfiniteTimepoint class >> future
> 	Future == nil
> 		ifTrue:
> 			[Future :=
> 				(self basicNew)
> 					bePositive;
> 					beImmutable].
> 	^Future
>
>
> For some reason when polarity: is compiled it is using Object>>future rather 
> than the version of future that is defined by InfiniteTimepoint.
>
> Is there any way to change the load/compile order of those two methods when 
> loading into 4.2?  I know I could rename the InfiniteTimepoint version of 
> future to something else but its a package that works as is on VisualWorks, 
> Dolphin, Pharo, and Gemstone.  So I'd either maintain a separate version for 
> squeak or have to get the package maintainer to make a change for all 
> platforms and users.
>
> I'm using linux and the all-in-one app from squeak.org
>
> Thanks for any guidance you can provide.

#future and #future: sends are inlined by the compiler. Currently there's 
no way to turn this off, but it can be easily implemented. IIRC Croquet 
needs these methods to be inlined.


Levente

>
> Paul
> _______________________________________________
> Beginners mailing list
> Beginners at lists.squeakfoundation.org
> http://lists.squeakfoundation.org/mailman/listinfo/beginners
>


More information about the Beginners mailing list