ifNotNil:

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

ifNotNil:

Steve Alan Waring
Hi,

A couple of quick questions:

Re Enhancement #292, Is there a reason that #ifNotNil: and #ifNil:ifNotNil:
use one argument blocks? The same methods in Squeak (v3.0) use zero argument
blocks, and I dont see them implemented in VW 5.4nc.

Should a guard clause be added to Package>>fileOutGlobalAliasesOn: to not
emit anything when there are no globalAliasVariables? This would make it
easier to install packages saved in D5 back into D4.

Thanks,
Steve Waring


Reply | Threaded
Open this post in threaded view
|

Re: ifNotNil:

Blair McGlashan
Steve

"Steve Waring" <[hidden email]> wrote in message
news:[hidden email]...
> Hi,
>
> A couple of quick questions:
>
> Re Enhancement #292, Is there a reason that #ifNotNil: and
#ifNil:ifNotNil:
> use one argument blocks? The same methods in Squeak (v3.0) use zero
argument
> blocks, and I dont see them implemented in VW 5.4nc.

It significantly increases their usefullness. In fact without it not much
(apart from a little less typing) is gained over 'isNil ifFalse:' (etc).
Unfortunately there are a number of incompatible implementations of the
#ifNil: family, so in the absence of any standard we decided to choose the
most useful. If you want to write portable code, then you will have to
eschew their use I'm afraid.

> Should a guard clause be added to Package>>fileOutGlobalAliasesOn: to not
> emit anything when there are no globalAliasVariables? This would make it
> easier to install packages saved in D5 back into D4.

Yes, we can do that. However I'm just about to make a change to STB to fix
the fact that:

    Object fromBinaryStoreBytes: String binaryStoreBytes

does not work (this was behind a real problem, so it's not a purely academic
exercise). This change will make any view resources in the package
incompatible with D4 as shipped, but it will be easy to patch D4 to make it
forwards compatible in this respect. I suppose what I am saying is that it
may be necessary to make some changes to D4 to load D5 packages anyway, and
we can always provide a patch for D4 that makes it at least able to load D5
packages. Of course there will be no guarantee that other changes mean that
D5 packages will not actually work in D4.

Regards

Blair


Reply | Threaded
Open this post in threaded view
|

Re: ifNotNil:

Steve Alan Waring
Hi Blair,

> #ifNil: family, so in the absence of any standard we decided to choose the
> most useful. If you want to write portable code, then you will have to
> eschew their use I'm afraid.

I have been conditioned to seeing these message used where the receiver is
an instance variable, but I have been working with your implementation for
the past couple of days and I agree it is very useful to send to the return
of a message send.

Will they be optimised for the general D5 release?

Thanks!
Steve