RE: An extended discussion of extensibility

From: Fyodor Tkachov <"Fyodor>
Date: Wed, 01 Dec 2004 13:13:32 +0300

----boundary-LibPST-iamunique-193202571_-_-
Content-type: text/plain

> >> > With LibRandom you have to create a 'Variate' object, but
> >>
>
> >> But WHY do you think one cannot prepackage standard
>
> >> variates as read-only exported variables?
> >> This is the third time already this issue occurs!
> >> Stan was first to point it out a while ago, I discussed it too...
>
> It would not work here. Variates cannot be global variables
> as they have private state:

There are many exported variables declared with ABSTRACT types in BlackBox that have private state.
They contain references to (hidden) concrete types that are extensions of their static type.
For instance, TextViews.dir has static type TextViews.Directory and dynamic type StdDirectory.

At initialization, an object with a concrete extending type is allocated and the pointer is assigned to the global variable.
They call it "separation of interface from implementation".
It's one of the cornerstones of BlackBox.
The more flexible and general one's framework has to be, the more important this principle is.

Cheers
Fyodor


Powered by the E-mail PIM - Info Select - www.miclog.com
--------------------------------------------

To unsubscribe from this mailing list, send a message containing the word "unsubscribe" to:
   blackbox-request{([at]})nowhere.xy

To get a list of valid e-mail commands and instructions on their usage, send a message containing the word "help" to the above address.

Send any problem reports or questions related to this email list to the list owner at
   owner-blackbox{([at]})nowhere.xy

Current posting policy:

a) To post you should use the same address by which you are subscribed to the mailing list. That way, the list server will recognize you as subscriber and forward your posting immediately, without creating any overhead.

b) If, for some reason, you cannot post from the address, by which you are subscribed, your message will be moderated to avoid spam. Please understand that moderation will often cause some delay, in particular over weekends or holydays.


----boundary-LibPST-iamunique-193202571_-_-
Content-type: application/rtf
Content-transfer-encoding: base64
Content-Disposition: attachment; filename="rtf-body.rtf"

e1xydGYxXGFuc2lcYW5zaWNwZzEyNTJcZnJvbXRleHQgXGRlZmYwe1xmb250dGJsDQp7XGYwXGZz
d2lzcyBBcmlhbDt9DQp7XGYxXGZtb2Rlcm4gQ291cmllciBOZXc7fQ0Ke1xmMlxmbmlsXGZjaGFy
c2V0MiBTeW1ib2w7fQ0Ke1xmM1xmbW9kZXJuXGZjaGFyc2V0MCBDb3VyaWVyIE5ldzt9fQ0Ke1xj
b2xvcnRibFxyZWQwXGdyZWVuMFxibHVlMDtccmVkMFxncmVlbjBcYmx1ZTI1NTt9DQpcdWMxXHBh
cmRccGxhaW5cZGVmdGFiMzYwIFxmMFxmczIwID4gPj4gID4gV2l0aCBMaWJSYW5kb20geW91IGhh
dmUgdG8gY3JlYXRlIGEgJ1ZhcmlhdGUnIG9iamVjdCwgYnV0XHBhcg0KPiA+PlxwYXINCj5ccGFy
DQo+ID4+ICBCdXQgV0hZIGRvIHlvdSB0aGluayBvbmUgY2Fubm90IHByZXBhY2thZ2Ugc3RhbmRh
cmRccGFyDQo+XHBhcg0KPiA+PiAgdmFyaWF0ZXMgYXMgcmVhZC1vbmx5IGV4cG9ydGVkIHZhcmlh
Ymxlcz9ccGFyDQo+ID4+ICBUaGlzIGlzIHRoZSB0aGlyZCB0aW1lIGFscmVhZHkgdGhpcyBpc3N1
ZSBvY2N1cnMhXHBhcg0KPiA+PiAgU3RhbiB3YXMgZmlyc3QgdG8gcG9pbnQgaXQgb3V0IGEgd2hp
bGUgYWdvLCBJIGRpc2N1c3NlZCBpdCB0b28uLi5ccGFyDQo+XHBhcg0KPiBJdCB3b3VsZCBub3Qg
d29yayBoZXJlLiBWYXJpYXRlcyBjYW5ub3QgYmUgZ2xvYmFsIHZhcmlhYmxlc1xwYXINCj4gYXMg
dGhleSBoYXZlIHByaXZhdGUgc3RhdGU6XHBhcg0KXHBhcg0KVGhlcmUgYXJlIG1hbnkgZXhwb3J0
ZWQgdmFyaWFibGVzIGRlY2xhcmVkIHdpdGggQUJTVFJBQ1QgdHlwZXMgaW4gQmxhY2tCb3ggdGhh
dCBoYXZlIHByaXZhdGUgc3RhdGUuXHBhcg0KVGhleSBjb250YWluIHJlZmVyZW5jZXMgdG8gKGhp
ZGRlbikgY29uY3JldGUgdHlwZXMgdGhhdCBhcmUgZXh0ZW5zaW9ucyBvZiB0aGVpciBzdGF0aWMg
dHlwZS5ccGFyDQpGb3IgaW5zdGFuY2UsIFRleHRWaWV3cy5kaXIgaGFzIHN0YXRpYyB0eXBlIFRl
eHRWaWV3cy5EaXJlY3RvcnkgYW5kIGR5bmFtaWMgdHlwZSBTdGREaXJlY3RvcnkuXHBhcg0KXHBh
cg0KQXQgaW5pdGlhbGl6YXRpb24sIGFuIG9iamVjdCB3aXRoIGEgY29uY3JldGUgZXh0ZW5kaW5n
IHR5cGUgaXMgYWxsb2NhdGVkIGFuZCB0aGUgcG9pbnRlciBpcyBhc3NpZ25lZCB0byB0aGUgZ2xv
YmFsIHZhcmlhYmxlLlxwYXINClRoZXkgY2FsbCBpdCAic2VwYXJhdGlvbiBvZiBpbnRlcmZhY2Ug
ZnJvbSBpbXBsZW1lbnRhdGlvbiIuXHBhcg0KSXQncyBvbmUgb2YgdGhlIGNvcm5lcnN0b25lcyBv
ZiBCbGFja0JveC5ccGFyDQpUaGUgbW9yZSBmbGV4aWJsZSBhbmQgZ2VuZXJhbCBvbmUncyBmcmFt
ZXdvcmsgaGFzIHRvIGJlLCB0aGUgbW9yZSBpbXBvcnRhbnQgdGhpcyBwcmluY2lwbGUgaXMuXHBh
cg0KXHBhcg0KQ2hlZXJzXHBhcg0KRnlvZG9yXHBhcg0KXHBhcg0KXHBhcg0KUG93ZXJlZCBieSB0
aGUgRS1tYWlsIFBJTSAtIEluZm8gU2VsZWN0IC0gd3d3Lm1pY2xvZy5jb21ccGFyDQotLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxwYXINClxwYXINClRvIHVuc3Vi
c2NyaWJlIGZyb20gdGhpcyBtYWlsaW5nIGxpc3QsIHNlbmQgYSBtZXNzYWdlIGNvbnRhaW5pbmcg
dGhlIHdvcmQgInVuc3Vic2NyaWJlIiB0bzpccGFyDQogICBibGFja2JveC1yZXF1ZXN0QG9iZXJv
bi5jaFxwYXINClxwYXINClRvIGdldCBhIGxpc3Qgb2YgdmFsaWQgZS1tYWlsIGNvbW1hbmRzIGFu
ZCBpbnN0cnVjdGlvbnMgb24gdGhlaXIgdXNhZ2UsIHNlbmQgYSBtZXNzYWdlIGNvbnRhaW5pbmcg
dGhlIHdvcmQgImhlbHAiIHRvIHRoZSBhYm92ZSBhZGRyZXNzLlxwYXINClxwYXINClNlbmQgYW55
IHByb2JsZW0gcmVwb3J0cyBvciBxdWVzdGlvbnMgcmVsYXRlZCB0byB0aGlzIGVtYWlsIGxpc3Qg
dG8gdGhlIGxpc3Qgb3duZXIgYXRccGFyDQogICBvd25lci1ibGFja2JveEBvYmVyb24uY2hccGFy
DQpccGFyDQpDdXJyZW50IHBvc3RpbmcgcG9saWN5OlxwYXINClxwYXINCmEpIFRvIHBvc3QgeW91
IHNob3VsZCB1c2UgdGhlIHNhbWUgYWRkcmVzcyBieSB3aGljaCB5b3UgYXJlIHN1YnNjcmliZWQg
dG8gdGhlIG1haWxpbmcgbGlzdC4gVGhhdCB3YXksIHRoZSBsaXN0IHNlcnZlciB3aWxsIHJlY29n
bml6ZSB5b3UgYXMgc3Vic2NyaWJlciBhbmQgZm9yd2FyZCB5b3VyIHBvc3RpbmcgaW1tZWRpYXRl
bHksIHdpdGhvdXQgY3JlYXRpbmcgYW55IG92ZXJoZWFkLlxwYXINClxwYXINCmIpIElmLCBmb3Ig
c29tZSByZWFzb24sIHlvdSBjYW5ub3QgcG9zdCBmcm9tIHRoZSBhZGRyZXNzLCBieSB3aGljaCB5
b3UgYXJlIHN1YnNjcmliZWQsIHlvdXIgbWVzc2FnZSB3aWxsIGJlIG1vZGVyYXRlZCB0byBhdm9p
ZCBzcGFtLiBQbGVhc2UgdW5kZXJzdGFuZCB0aGF0IG1vZGVyYXRpb24gd2lsbCBvZnRlbiBjYXVz
ZSBzb21lIGRlbGF5LCBpbiBwYXJ0aWN1bGFyIG92ZXIgd2Vla2VuZHMgb3IgaG9seWRheXMuXHBh
cg0KfQ=


----boundary-LibPST-iamunique-193202571_-_---
Received on Wed Dec 01 2004 - 11:13:32 UTC

This archive was generated by hypermail 2.3.0 : Thu Sep 26 2013 - 06:28:29 UTC