RE: Procedure types

From: Fyodor Tkachov <"Fyodor>
Date: Sun, 28 Nov 2004 14:54:03 +0300

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

Robert,

> Let me summarise the advantages of objects over procedure
> variables you have pointed out (my words, not yours):
>
> Advantage 1. "If someone unloads some of your modules while
> you are still using them the o-o approach can terminate
> (crash?) more gracefully. This doesn't actually work, but it
> could work in theory if someone rewrote the compiler and linker."

Your words indeed :-)

The availability of run-time information in the case of methods allows the BlackBox runtime to not fail at all -- e.g. to automatically reload erroneously unloaded modules or to request confirmation from the user/operator, etc.
Determining which modules can and cannot be unloaded appears to be similar to the problem of memory management.

This can easily get out of hand with web servers, embedded systems, and remotely controlled clusters (e.g. a very real possibility: the cluster may be in Edmonton, Alberta; I may be running my tasks on it from Troitsk, Moscow Region).

The difference between "crash more gracefully" and "never crash" in such situations, is great enough that the question merits discussion.

With BlackBox to be open-sourced very soon now, there will be more chances to make the necessary modifications.

> But this means that the user of the variable M.cube needs to
> check the exact declaration of the type M.Cube just to
> ascertain if the documentation search tool has a chance of
> finding the correct Docu/Source/Interface for the procedure
> M.Cube.Eval (I include interface because an extension may
> have narrowed the return type).
>
> There are no such subtleties to worry about with the function R.Cube.

I have not experienced problems with finding documentation about a specific exported variable like TextModels.dir.
I don't see why there should be any for M.cube.
It seems to me, the subtleties you pointed out are only important in rare cases.

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-246387401_-_-
Content-type: application/rtf
Content-transfer-encoding: base64
Content-Disposition: attachment; filename="rtf-body.rtf"

e1xydGYxXGFuc2lcYW5zaWNwZzEyNTJcZnJvbXRleHQgXGRlZmYwe1xmb250dGJsDQp7XGYwXGZz
d2lzcyBBcmlhbDt9DQp7XGYxXGZtb2Rlcm4gQ291cmllciBOZXc7fQ0Ke1xmMlxmbmlsXGZjaGFy
c2V0MiBTeW1ib2w7fQ0Ke1xmM1xmbW9kZXJuXGZjaGFyc2V0MCBDb3VyaWVyIE5ldzt9fQ0Ke1xj
b2xvcnRibFxyZWQwXGdyZWVuMFxibHVlMDtccmVkMFxncmVlbjBcYmx1ZTI1NTt9DQpcdWMxXHBh
cmRccGxhaW5cZGVmdGFiMzYwIFxmMFxmczIwIFJvYmVydCxccGFyDQpccGFyDQo+IExldCBtZSBz
dW1tYXJpc2UgdGhlIGFkdmFudGFnZXMgb2Ygb2JqZWN0cyBvdmVyIHByb2NlZHVyZVxwYXINCj4g
dmFyaWFibGVzIHlvdSBoYXZlIHBvaW50ZWQgb3V0IChteSB3b3Jkcywgbm90IHlvdXJzKTpccGFy
DQo+XHBhcg0KPiBBZHZhbnRhZ2UgMS4gIklmIHNvbWVvbmUgdW5sb2FkcyBzb21lIG9mIHlvdXIg
bW9kdWxlcyB3aGlsZVxwYXINCj4geW91IGFyZSBzdGlsbCB1c2luZyB0aGVtIHRoZSBvLW8gYXBw
cm9hY2ggY2FuIHRlcm1pbmF0ZVxwYXINCj4gKGNyYXNoPykgbW9yZSBncmFjZWZ1bGx5LiBUaGlz
IGRvZXNuJ3QgYWN0dWFsbHkgd29yaywgYnV0IGl0XHBhcg0KPiBjb3VsZCB3b3JrIGluIHRoZW9y
eSBpZiBzb21lb25lIHJld3JvdGUgdGhlIGNvbXBpbGVyIGFuZCBsaW5rZXIuIlxwYXINClxwYXIN
CllvdXIgd29yZHMgaW5kZWVkIDotKVxwYXINClxwYXINClRoZSBhdmFpbGFiaWxpdHkgb2YgcnVu
LXRpbWUgaW5mb3JtYXRpb24gaW4gdGhlIGNhc2Ugb2YgbWV0aG9kcyBhbGxvd3MgdGhlIEJsYWNr
Qm94IHJ1bnRpbWUgdG8gbm90IGZhaWwgYXQgYWxsIC0tIGUuZy4gdG8gYXV0b21hdGljYWxseSBy
ZWxvYWQgZXJyb25lb3VzbHkgdW5sb2FkZWQgbW9kdWxlcyBvciB0byByZXF1ZXN0IGNvbmZpcm1h
dGlvbiBmcm9tIHRoZSB1c2VyL29wZXJhdG9yLCBldGMuXHBhcg0KRGV0ZXJtaW5pbmcgd2hpY2gg
bW9kdWxlcyBjYW4gYW5kIGNhbm5vdCBiZSB1bmxvYWRlZCBhcHBlYXJzIHRvIGJlIHNpbWlsYXIg
dG8gdGhlIHByb2JsZW0gb2YgbWVtb3J5IG1hbmFnZW1lbnQuXHBhcg0KXHBhcg0KVGhpcyBjYW4g
ZWFzaWx5IGdldCBvdXQgb2YgaGFuZCB3aXRoIHdlYiBzZXJ2ZXJzLCBlbWJlZGRlZCBzeXN0ZW1z
LCBhbmQgcmVtb3RlbHkgY29udHJvbGxlZCBjbHVzdGVycyAoZS5nLiBhIHZlcnkgcmVhbCBwb3Nz
aWJpbGl0eTogdGhlIGNsdXN0ZXIgbWF5IGJlIGluIEVkbW9udG9uLCBBbGJlcnRhOyBJIG1heSBi
ZSBydW5uaW5nIG15IHRhc2tzIG9uIGl0IGZyb20gVHJvaXRzaywgTW9zY293IFJlZ2lvbikuXHBh
cg0KXHBhcg0KVGhlIGRpZmZlcmVuY2UgYmV0d2VlbiAiY3Jhc2ggbW9yZSBncmFjZWZ1bGx5IiBh
bmQgIm5ldmVyIGNyYXNoIiBpbiBzdWNoIHNpdHVhdGlvbnMsIGlzIGdyZWF0IGVub3VnaCB0aGF0
IHRoZSBxdWVzdGlvbiBtZXJpdHMgZGlzY3Vzc2lvbi5ccGFyDQpccGFyDQpXaXRoIEJsYWNrQm94
IHRvIGJlIG9wZW4tc291cmNlZCB2ZXJ5IHNvb24gbm93LCB0aGVyZSB3aWxsIGJlIG1vcmUgY2hh
bmNlcyB0byBtYWtlIHRoZSBuZWNlc3NhcnkgbW9kaWZpY2F0aW9ucy5ccGFyDQpccGFyDQo+IEJ1
dCB0aGlzIG1lYW5zIHRoYXQgdGhlIHVzZXIgb2YgdGhlIHZhcmlhYmxlIE0uY3ViZSBuZWVkcyB0
b1xwYXINCj4gY2hlY2sgdGhlIGV4YWN0IGRlY2xhcmF0aW9uIG9mIHRoZSB0eXBlIE0uQ3ViZSBq
dXN0IHRvXHBhcg0KPiBhc2NlcnRhaW4gaWYgdGhlIGRvY3VtZW50YXRpb24gc2VhcmNoIHRvb2wg
aGFzIGEgY2hhbmNlIG9mXHBhcg0KPiBmaW5kaW5nIHRoZSBjb3JyZWN0IERvY3UvU291cmNlL0lu
dGVyZmFjZSBmb3IgdGhlIHByb2NlZHVyZVxwYXINCj4gTS5DdWJlLkV2YWwgKEkgaW5jbHVkZSBp
bnRlcmZhY2UgYmVjYXVzZSBhbiBleHRlbnNpb24gbWF5XHBhcg0KPiBoYXZlIG5hcnJvd2VkIHRo
ZSByZXR1cm4gdHlwZSkuXHBhcg0KPlxwYXINCj4gVGhlcmUgYXJlIG5vIHN1Y2ggc3VidGxldGll
cyB0byB3b3JyeSBhYm91dCB3aXRoIHRoZSBmdW5jdGlvbiBSLkN1YmUuXHBhcg0KXHBhcg0KSSBo
YXZlIG5vdCBleHBlcmllbmNlZCBwcm9ibGVtcyB3aXRoIGZpbmRpbmcgZG9jdW1lbnRhdGlvbiBh
Ym91dCBhIHNwZWNpZmljIGV4cG9ydGVkIHZhcmlhYmxlIGxpa2UgVGV4dE1vZGVscy5kaXIuXHBh
cg0KSSBkb24ndCBzZWUgd2h5IHRoZXJlIHNob3VsZCBiZSBhbnkgZm9yIE0uY3ViZS5ccGFyDQpJ
dCBzZWVtcyB0byBtZSwgdGhlIHN1YnRsZXRpZXMgeW91IHBvaW50ZWQgb3V0IGFyZSBvbmx5IGlt
cG9ydGFudCBpbiByYXJlIGNhc2VzLlxwYXINClxwYXINCkNoZWVyc1xwYXINCkZ5b2RvclxwYXIN
ClxwYXINClBvd2VyZWQgYnkgdGhlIEUtbWFpbCBQSU0gLSBJbmZvIFNlbGVjdCAtIHd3dy5taWNs
b2cuY29tXHBhcg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1c
cGFyDQpccGFyDQpUbyB1bnN1YnNjcmliZSBmcm9tIHRoaXMgbWFpbGluZyBsaXN0LCBzZW5kIGEg
bWVzc2FnZSBjb250YWluaW5nIHRoZSB3b3JkICJ1bnN1YnNjcmliZSIgdG86XHBhcg0KICAgYmxh
Y2tib3gtcmVxdWVzdEBvYmVyb24uY2hccGFyDQpccGFyDQpUbyBnZXQgYSBsaXN0IG9mIHZhbGlk
IGUtbWFpbCBjb21tYW5kcyBhbmQgaW5zdHJ1Y3Rpb25zIG9uIHRoZWlyIHVzYWdlLCBzZW5kIGEg
bWVzc2FnZSBjb250YWluaW5nIHRoZSB3b3JkICJoZWxwIiB0byB0aGUgYWJvdmUgYWRkcmVzcy5c
cGFyDQpccGFyDQpTZW5kIGFueSBwcm9ibGVtIHJlcG9ydHMgb3IgcXVlc3Rpb25zIHJlbGF0ZWQg
dG8gdGhpcyBlbWFpbCBsaXN0IHRvIHRoZSBsaXN0IG93bmVyIGF0XHBhcg0KICAgb3duZXItYmxh
Y2tib3hAb2Jlcm9uLmNoXHBhcg0KXHBhcg0KQ3VycmVudCBwb3N0aW5nIHBvbGljeTpccGFyDQpc
cGFyDQphKSBUbyBwb3N0IHlvdSBzaG91bGQgdXNlIHRoZSBzYW1lIGFkZHJlc3MgYnkgd2hpY2gg
eW91IGFyZSBzdWJzY3JpYmVkIHRvIHRoZSBtYWlsaW5nIGxpc3QuIFRoYXQgd2F5LCB0aGUgbGlz
dCBzZXJ2ZXIgd2lsbCByZWNvZ25pemUgeW91IGFzIHN1YnNjcmliZXIgYW5kIGZvcndhcmQgeW91
ciBwb3N0aW5nIGltbWVkaWF0ZWx5LCB3aXRob3V0IGNyZWF0aW5nIGFueSBvdmVyaGVhZC5ccGFy
DQpccGFyDQpiKSBJZiwgZm9yIHNvbWUgcmVhc29uLCB5b3UgY2Fubm90IHBvc3QgZnJvbSB0aGUg
YWRkcmVzcywgYnkgd2hpY2ggeW91IGFyZSBzdWJzY3JpYmVkLCB5b3VyIG1lc3NhZ2Ugd2lsbCBi
ZSBtb2RlcmF0ZWQgdG8gYXZvaWQgc3BhbS4gUGxlYXNlIHVuZGVyc3RhbmQgdGhhdCBtb2RlcmF0
aW9uIHdpbGwgb2Z0ZW4gY2F1c2Ugc29tZSBkZWxheSwgaW4gcGFydGljdWxhciBvdmVyIHdlZWtl
bmRzIG9yIGhvbHlkYXl9fQAgdGhlIGE

----boundary-LibPST-iamunique-246387401_-_---
Received on Sun Nov 28 2004 - 12:54:03 UTC

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