----boundary-LibPST-iamunique-509813595_-_-
Content-type: text/plain
> -----Original Message-----
> From: blackbox{([at]})nowhere.xy> Behalf Of Alexander Iliin
>
>
> Now about the (c) part of your letter: how can we include only the
> modules that are absolutely necessary? I'm thinking of come kind of
> "dead code elimination": if a procedure is not reachable from
> outside and is not used inside a module, it may be eliminated, thus
> reducing code file size.
>
> Does anybody know which of those optimizations are actually
> implemented in BB? I think none. Even unused procedures which are
> not exported are kept in module code file. A simple test shows that:
>
Much of the necessary analysis work has been implemented already, it just
hasn't been incorporated into the code-generation phase. For example, 'Info
> Analyze Module' reports Test 3 and Test 2 from your example as 'Never
Used'. The DevDependencies module seems to be responsible for doing much of
that work.
To be fair, I believe that Wirth's / OMS's philosophy is to give you a set
of tools that do the job UNDER YOUR CONTROL. This requires a certain amount
of knowledge / intelligence / experience on the part of the user. A simple
analogy is the difference between driving a manual and an automatic car.
This is in contrast to the 'smart' systems that do it all for you, and often
a lot more that you didn't want them to do! Such systems, unfortunately, can
be driven by somebody who has little idea about what they are doing, with
sometimes disastrous results.
>
> Returning to your point: "Only include the modules that are
> absolutely necessary for the task at hand". I think BB includes only
> necessary modules already.
I wasn't expecting anything fancier than that even though I've been used to
tools like TopSpeed Modula-2 that had 'smart linking' 20 years ago.
Admittedly, it is a more difficult task in the more dynamic object-oriented
world.
I was (probably mistakenly) thinking that many additional modules were
included in the output from Create Tool "to pack:' section just to 'be on
the safe side'. I've just discovered that "In the created tool document all
the modules, which are only included due to implicit dependencies are
written with gray color." That may be a clue where additional savings could
be made.
>
> By cramming modules into a single EXE and crippling them along the
> way what do we achieve? A customary file of a reasonable size? It
> would be a good argument for converting a newbie. That would
> certainly work for me: when I was choosing my development
> environment, the file size was very a important criteria. As was the
> independence of any preinstalled runtime libraries. I stopped at
> Delphi, but that was 10 years ago. The age of 1.4Mb diskettes and
> 300Mb hard disks. Is that still so important in the age of .NET and
> Java runtimes? A dumb simple Delphi7 GUI executable is 0.5Mb which
> is about 2-3 times bigger than in Delphi3.
>
Yes I have to (reluctantly!) agree with you. It's probably only
'perfectionist' or 'pedantic' tendencies that are telling me otherwise.
Maybe as many others have said, all that is needed is some clearer
documentation (some of which has already been circulated in emails recently)
with some step-by-step examples. In the BlackBox world there must be many
more rewarding tasks to be worth thinking about.
Chris Burrows
CFB Software
http://www.cfbsoftware.com/gpcp
--- BlackBox
--- send subject HELP or UNSUBSCRIBE to blackbox{([at]})nowhere.xy
----boundary-LibPST-iamunique-509813595_-_-
Content-type: application/rtf
Content-transfer-encoding: base64
Content-Disposition: attachment; filename="rtf-body.rtf"
e1xydGYxXGFuc2lcYW5zaWNwZzEyNTJcZnJvbXRleHQgXGRlZmYwe1xmb250dGJsDQp7XGYwXGZz
d2lzcyBBcmlhbDt9DQp7XGYxXGZtb2Rlcm4gQ291cmllciBOZXc7fQ0Ke1xmMlxmbmlsXGZjaGFy
c2V0MiBTeW1ib2w7fQ0Ke1xmM1xmbW9kZXJuXGZjaGFyc2V0MCBDb3VyaWVyIE5ldzt9fQ0Ke1xj
b2xvcnRibFxyZWQwXGdyZWVuMFxibHVlMDtccmVkMFxncmVlbjBcYmx1ZTI1NTt9DQpcdWMxXHBh
cmRccGxhaW5cZGVmdGFiMzYwIFxmMFxmczIwID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS1c
cGFyDQo+IEZyb206IGJsYWNrYm94QG9iZXJvbi5jaCBbbWFpbHRvOmJsYWNrYm94QG9iZXJvbi5j
aF0gT24gXHBhcg0KPiBCZWhhbGYgT2YgQWxleGFuZGVyIElsaWluXHBhcg0KPiBccGFyDQo+IFxw
YXINCj4gICBOb3cgYWJvdXQgdGhlIChjKSBwYXJ0IG9mIHlvdXIgbGV0dGVyOiBob3cgY2FuIHdl
IGluY2x1ZGUgb25seSB0aGVccGFyDQo+ICAgbW9kdWxlcyB0aGF0IGFyZSBhYnNvbHV0ZWx5IG5l
Y2Vzc2FyeT8gSSdtIHRoaW5raW5nIG9mIGNvbWUga2luZCBvZlxwYXINCj4gICAiZGVhZCBjb2Rl
IGVsaW1pbmF0aW9uIjogaWYgYSBwcm9jZWR1cmUgaXMgbm90IHJlYWNoYWJsZSBmcm9tXHBhcg0K
PiAgIG91dHNpZGUgYW5kIGlzIG5vdCB1c2VkIGluc2lkZSBhIG1vZHVsZSwgaXQgbWF5IGJlIGVs
aW1pbmF0ZWQsIHRodXNccGFyDQo+ICAgcmVkdWNpbmcgY29kZSBmaWxlIHNpemUuXHBhcg0KPiBc
cGFyDQpccGFyDQo+ICAgRG9lcyBhbnlib2R5IGtub3cgd2hpY2ggb2YgdGhvc2Ugb3B0aW1pemF0
aW9ucyBhcmUgYWN0dWFsbHlccGFyDQo+ICAgaW1wbGVtZW50ZWQgaW4gQkI/IEkgdGhpbmsgbm9u
ZS4gRXZlbiB1bnVzZWQgcHJvY2VkdXJlcyB3aGljaCBhcmVccGFyDQo+ICAgbm90IGV4cG9ydGVk
IGFyZSBrZXB0IGluIG1vZHVsZSBjb2RlIGZpbGUuIEEgc2ltcGxlIHRlc3Qgc2hvd3MgdGhhdDpc
cGFyDQo+IFxwYXINClxwYXINCk11Y2ggb2YgdGhlIG5lY2Vzc2FyeSBhbmFseXNpcyB3b3JrIGhh
cyBiZWVuIGltcGxlbWVudGVkIGFscmVhZHksIGl0IGp1c3RccGFyDQpoYXNuJ3QgYmVlbiBpbmNv
cnBvcmF0ZWQgaW50byB0aGUgY29kZS1nZW5lcmF0aW9uIHBoYXNlLiBGb3IgZXhhbXBsZSwgJ0lu
Zm9ccGFyDQo+IEFuYWx5emUgTW9kdWxlJyByZXBvcnRzIFRlc3QgMyBhbmQgVGVzdCAyIGZyb20g
eW91ciBleGFtcGxlIGFzICdOZXZlclxwYXINClVzZWQnLiBUaGUgRGV2RGVwZW5kZW5jaWVzIG1v
ZHVsZSBzZWVtcyB0byBiZSByZXNwb25zaWJsZSBmb3IgZG9pbmcgbXVjaCBvZlxwYXINCnRoYXQg
d29yay4gXHBhcg0KXHBhcg0KVG8gYmUgZmFpciwgSSBiZWxpZXZlIHRoYXQgV2lydGgncyAvIE9N
UydzIHBoaWxvc29waHkgaXMgdG8gZ2l2ZSB5b3UgYSBzZXRccGFyDQpvZiB0b29scyB0aGF0IGRv
IHRoZSBqb2IgVU5ERVIgWU9VUiBDT05UUk9MLiBUaGlzIHJlcXVpcmVzIGEgY2VydGFpbiBhbW91
bnRccGFyDQpvZiBrbm93bGVkZ2UgLyBpbnRlbGxpZ2VuY2UgLyBleHBlcmllbmNlIG9uIHRoZSBw
YXJ0IG9mIHRoZSB1c2VyLiBBIHNpbXBsZVxwYXINCmFuYWxvZ3kgaXMgdGhlIGRpZmZlcmVuY2Ug
YmV0d2VlbiBkcml2aW5nIGEgbWFudWFsIGFuZCBhbiBhdXRvbWF0aWMgY2FyLiBccGFyDQpccGFy
DQpUaGlzIGlzIGluIGNvbnRyYXN0IHRvIHRoZSAnc21hcnQnIHN5c3RlbXMgdGhhdCBkbyBpdCBh
bGwgZm9yIHlvdSwgYW5kIG9mdGVuXHBhcg0KYSBsb3QgbW9yZSB0aGF0IHlvdSBkaWRuJ3Qgd2Fu
dCB0aGVtIHRvIGRvISBTdWNoIHN5c3RlbXMsIHVuZm9ydHVuYXRlbHksIGNhblxwYXINCmJlIGRy
aXZlbiBieSBzb21lYm9keSB3aG8gaGFzIGxpdHRsZSBpZGVhIGFib3V0IHdoYXQgdGhleSBhcmUg
ZG9pbmcsIHdpdGhccGFyDQpzb21ldGltZXMgZGlzYXN0cm91cyByZXN1bHRzLiAgXHBhcg0KXHBh
cg0KPiBccGFyDQo+ICAgUmV0dXJuaW5nIHRvIHlvdXIgcG9pbnQ6ICJPbmx5IGluY2x1ZGUgdGhl
IG1vZHVsZXMgdGhhdCBhcmVccGFyDQo+ICAgYWJzb2x1dGVseSBuZWNlc3NhcnkgZm9yIHRoZSB0
YXNrIGF0IGhhbmQiLiBJIHRoaW5rIEJCIGluY2x1ZGVzIG9ubHlccGFyDQo+ICAgbmVjZXNzYXJ5
IG1vZHVsZXMgYWxyZWFkeS4gXHBhcg0KXHBhcg0KSSB3YXNuJ3QgZXhwZWN0aW5nIGFueXRoaW5n
IGZhbmNpZXIgdGhhbiB0aGF0IGV2ZW4gdGhvdWdoIEkndmUgYmVlbiB1c2VkIHRvXHBhcg0KdG9v
bHMgbGlrZSBUb3BTcGVlZCBNb2R1bGEtMiB0aGF0IGhhZCAnc21hcnQgbGlua2luZycgMjAgeWVh
cnMgYWdvLlxwYXINCkFkbWl0dGVkbHksIGl0IGlzIGEgbW9yZSBkaWZmaWN1bHQgdGFzayBpbiB0
aGUgbW9yZSBkeW5hbWljIG9iamVjdC1vcmllbnRlZFxwYXINCndvcmxkLiBccGFyDQpccGFyDQpJ
IHdhcyAocHJvYmFibHkgbWlzdGFrZW5seSkgdGhpbmtpbmcgdGhhdCBtYW55IGFkZGl0aW9uYWwg
bW9kdWxlcyB3ZXJlXHBhcg0KaW5jbHVkZWQgaW4gdGhlIG91dHB1dCBmcm9tIENyZWF0ZSBUb29s
ICJ0byBwYWNrOicgc2VjdGlvbiBqdXN0IHRvICdiZSBvblxwYXINCnRoZSBzYWZlIHNpZGUnLiBJ
J3ZlIGp1c3QgZGlzY292ZXJlZCB0aGF0ICJJbiB0aGUgY3JlYXRlZCB0b29sIGRvY3VtZW50IGFs
bFxwYXINCnRoZSBtb2R1bGVzLCB3aGljaCBhcmUgb25seSBpbmNsdWRlZCBkdWUgdG8gaW1wbGlj
aXQgZGVwZW5kZW5jaWVzIGFyZVxwYXINCndyaXR0ZW4gd2l0aCBncmF5IGNvbG9yLiIgVGhhdCBt
YXkgYmUgYSBjbHVlIHdoZXJlIGFkZGl0aW9uYWwgc2F2aW5ncyBjb3VsZFxwYXINCmJlIG1hZGUu
XHBhcg0KXHBhcg0KPiBccGFyDQo+ICAgQnkgY3JhbW1pbmcgbW9kdWxlcyBpbnRvIGEgc2luZ2xl
IEVYRSBhbmQgY3JpcHBsaW5nIHRoZW0gYWxvbmcgdGhlXHBhcg0KPiAgIHdheSB3aGF0IGRvIHdl
IGFjaGlldmU/IEEgY3VzdG9tYXJ5IGZpbGUgb2YgYSByZWFzb25hYmxlIHNpemU/IEl0XHBhcg0K
PiAgIHdvdWxkIGJlIGEgZ29vZCBhcmd1bWVudCBmb3IgY29udmVydGluZyBhIG5ld2JpZS4gVGhh
dCB3b3VsZFxwYXINCj4gICBjZXJ0YWlubHkgd29yayBmb3IgbWU6IHdoZW4gSSB3YXMgY2hvb3Np
bmcgbXkgZGV2ZWxvcG1lbnRccGFyDQo+ICAgZW52aXJvbm1lbnQsIHRoZSBmaWxlIHNpemUgd2Fz
IHZlcnkgYSBpbXBvcnRhbnQgY3JpdGVyaWEuIEFzIHdhcyB0aGVccGFyDQo+ICAgaW5kZXBlbmRl
bmNlIG9mIGFueSBwcmVpbnN0YWxsZWQgcnVudGltZSBsaWJyYXJpZXMuIEkgc3RvcHBlZCBhdFxw
YXINCj4gICBEZWxwaGksIGJ1dCB0aGF0IHdhcyAxMCB5ZWFycyBhZ28uIFRoZSBhZ2Ugb2YgMS40
TWIgZGlza2V0dGVzIGFuZFxwYXINCj4gICAzMDBNYiBoYXJkIGRpc2tzLiBJcyB0aGF0IHN0aWxs
IHNvIGltcG9ydGFudCBpbiB0aGUgYWdlIG9mIC5ORVQgYW5kXHBhcg0KPiAgIEphdmEgcnVudGlt
ZXM/IEEgZHVtYiBzaW1wbGUgRGVscGhpNyBHVUkgZXhlY3V0YWJsZSBpcyAwLjVNYiB3aGljaFxw
YXINCj4gICBpcyBhYm91dCAyLTMgdGltZXMgYmlnZ2VyIHRoYW4gaW4gRGVscGhpMy5ccGFyDQo+
IFxwYXINClxwYXINClllcyBJIGhhdmUgdG8gKHJlbHVjdGFudGx5ISkgYWdyZWUgd2l0aCB5b3Uu
IEl0J3MgcHJvYmFibHkgb25seVxwYXINCidwZXJmZWN0aW9uaXN0JyBvciAncGVkYW50aWMnIHRl
bmRlbmNpZXMgdGhhdCBhcmUgdGVsbGluZyBtZSBvdGhlcndpc2UuXHBhcg0KTWF5YmUgYXMgbWFu
eSBvdGhlcnMgaGF2ZSBzYWlkLCBhbGwgdGhhdCBpcyBuZWVkZWQgaXMgc29tZSBjbGVhcmVyXHBh
cg0KZG9jdW1lbnRhdGlvbiAoc29tZSBvZiB3aGljaCBoYXMgYWxyZWFkeSBiZWVuIGNpcmN1bGF0
ZWQgaW4gZW1haWxzIHJlY2VudGx5KVxwYXINCndpdGggc29tZSBzdGVwLWJ5LXN0ZXAgZXhhbXBs
ZXMuIEluIHRoZSBCbGFja0JveCB3b3JsZCB0aGVyZSBtdXN0IGJlIG1hbnlccGFyDQptb3JlIHJl
d2FyZGluZyB0YXNrcyB0byBiZSB3b3J0aCB0aGlua2luZyBhYm91dC5ccGFyDQpccGFyDQpDaHJp
cyBCdXJyb3dzXHBhcg0KQ0ZCIFNvZnR3YXJlXHBhcg0KaHR0cDovL3d3dy5jZmJzb2Z0d2FyZS5j
b20vZ3BjcFxwYXINClxwYXINCi0tLSBCbGFja0JveFxwYXINCi0tLSBzZW5kIHN1YmplY3QgSEVM
UCBvciBVTlNVQlNDUklCRSB0byBibGFja2JveEBvYmVyb24uY2h9fQBpY3Jvc29mdCBP
----boundary-LibPST-iamunique-509813595_-_---
Received on Thu May 25 2006 - 09:51:02 UTC