----boundary-LibPST-iamunique-1221792728_-_-
Content-type: text/plain
At 05:15 PM 5/23/06 -0400, Wojtek Skulski wrote:
>On Tue, 23 May 2006, Rex Couture wrote:
>
>> "Programs" running under the BB environment serve only a very small fraction
>> of potential end users.
>Are you saing that the majority of potential end users need non-GUI
>standalone programs?
Very few computer users use BB GUI programs. Most use standalone
applications.
>> It should be possible to create a freestanding executable with one or
>> two keystrokes, and the linker should not link unusued code.
>> In practice, it is exceedingly difficult to create an .exe file, and
>> that .exe file will likely consist mostly of unused code.
>A while ago OMS sent me an example of how to link a small .exe file
>in order to test the DLL loading. The example consisted of four WinApi
>calls executed in sequence. None of the BB framework was linked. The
>executable was built with one keystroke and its size was 4 kB. This is
>about as small as the executable can get.
>...As the DLL test program has shown, BB is fully capable
of doing such things....
In general, neither the Linker nor the Packer nor "Create Tool" can
find all the modules and resources that are needed to build a working
executable. It's easy if you only import WinApi; otherwise, it's much more
difficult. If you're trying to spread BB, that's a serious problem. With
luck, maybe it's only a documentation problem.
[Gerard Meunier helped me with a more complete example. Maybe I'll
post that separately.]
And it links EVERYTHING, including extraneous modules, whether the
code is needed or not. Examples that import only WinApi will create small
executables. For other programs, the examples I have seen are 700 kB and
up. A smart linker might not be a bad idea if you value small executables.
>> [statements and responses rearranged for clarity]
>> BB lacks standard I/O libraries....
>> ...Portability is undeniably needed, yet BB cannot even read or write an
>> integer with portable code ....
>> ...There are the Oakwood standards, but BB ignores them. They are only
>> ... partially implemented in BB, by a third party.
>Strongly disagreed. BB has I/O libraries that are "standard"
>in the sense of being a "standard" part of the framework.
>... How can you say "cannot even read or write an
>integer with portable code" if BB itself is not portable (yet)?
I was a little imprecise. C has stdio, and a program built with
that will compile and run on any C compiler. The same cannot be said about
CP. I think it's a problem if you are totally dependent on a nonportable
framework.
Rex Couture
--- BlackBox
--- send subject HELP or UNSUBSCRIBE to blackbox{([at]})nowhere.xy
----boundary-LibPST-iamunique-1221792728_-_-
Content-type: application/rtf
Content-transfer-encoding: base64
Content-Disposition: attachment; filename="rtf-body.rtf"
e1xydGYxXGFuc2lcYW5zaWNwZzEyNTJcZnJvbXRleHQgXGRlZmYwe1xmb250dGJsDQp7XGYwXGZz
d2lzcyBBcmlhbDt9DQp7XGYxXGZtb2Rlcm4gQ291cmllciBOZXc7fQ0Ke1xmMlxmbmlsXGZjaGFy
c2V0MiBTeW1ib2w7fQ0Ke1xmM1xmbW9kZXJuXGZjaGFyc2V0MCBDb3VyaWVyIE5ldzt9fQ0Ke1xj
b2xvcnRibFxyZWQwXGdyZWVuMFxibHVlMDtccmVkMFxncmVlbjBcYmx1ZTI1NTt9DQpcdWMxXHBh
cmRccGxhaW5cZGVmdGFiMzYwIFxmMFxmczIwIEF0IDA1OjE1IFBNIDUvMjMvMDYgLTA0MDAsIFdv
anRlayBTa3Vsc2tpIHdyb3RlOlxwYXINCj5PbiBUdWUsIDIzIE1heSAyMDA2LCBSZXggQ291dHVy
ZSB3cm90ZTpccGFyDQo+XHBhcg0KPj4gIlByb2dyYW1zIiBydW5uaW5nIHVuZGVyIHRoZSBCQiBl
bnZpcm9ubWVudCBzZXJ2ZSBvbmx5IGEgdmVyeSBzbWFsbCBmcmFjdGlvblxwYXINCj4+IG9mIHBv
dGVudGlhbCBlbmQgdXNlcnMuXHBhcg0KXHBhcg0KPkFyZSB5b3Ugc2FpbmcgdGhhdCB0aGUgbWFq
b3JpdHkgb2YgcG90ZW50aWFsIGVuZCB1c2VycyBuZWVkIG5vbi1HVUlccGFyDQo+c3RhbmRhbG9u
ZSBwcm9ncmFtcz9ccGFyDQpccGFyDQogICAgICAgIFZlcnkgZmV3IGNvbXB1dGVyIHVzZXJzIHVz
ZSBCQiBHVUkgcHJvZ3JhbXMuICBNb3N0IHVzZSBzdGFuZGFsb25lXHBhcg0KYXBwbGljYXRpb25z
LlxwYXINClxwYXINClxwYXINCj4+IEl0IHNob3VsZCBiZSBwb3NzaWJsZSB0byBjcmVhdGUgYSBm
cmVlc3RhbmRpbmcgZXhlY3V0YWJsZSB3aXRoIG9uZSBvclxwYXINCj4+IHR3byBrZXlzdHJva2Vz
LCBhbmQgdGhlIGxpbmtlciBzaG91bGQgbm90IGxpbmsgdW51c3VlZCBjb2RlLlxwYXINCj4+IElu
IHByYWN0aWNlLCBpdCBpcyBleGNlZWRpbmdseSBkaWZmaWN1bHQgdG8gY3JlYXRlIGFuIC5leGUg
ZmlsZSwgYW5kXHBhcg0KPj4gdGhhdCAuZXhlIGZpbGUgd2lsbCBsaWtlbHkgY29uc2lzdCBtb3N0
bHkgb2YgdW51c2VkIGNvZGUuXHBhcg0KXHBhcg0KPkEgd2hpbGUgYWdvIE9NUyBzZW50IG1lIGFu
IGV4YW1wbGUgb2YgaG93IHRvIGxpbmsgYSBzbWFsbCAuZXhlIGZpbGVccGFyDQo+aW4gb3JkZXIg
dG8gdGVzdCB0aGUgRExMIGxvYWRpbmcuIFRoZSBleGFtcGxlIGNvbnNpc3RlZCBvZiBmb3VyIFdp
bkFwaVxwYXINCj5jYWxscyBleGVjdXRlZCBpbiBzZXF1ZW5jZS4gTm9uZSBvZiB0aGUgQkIgZnJh
bWV3b3JrIHdhcyBsaW5rZWQuIFRoZVxwYXINCj5leGVjdXRhYmxlIHdhcyBidWlsdCB3aXRoIG9u
ZSBrZXlzdHJva2UgYW5kIGl0cyBzaXplIHdhcyA0IGtCLiBUaGlzIGlzXHBhcg0KPmFib3V0IGFz
IHNtYWxsIGFzIHRoZSBleGVjdXRhYmxlIGNhbiBnZXQuXHBhcg0KXHBhcg0KPi4uLkFzIHRoZSBE
TEwgdGVzdCBwcm9ncmFtIGhhcyBzaG93biwgQkIgaXMgZnVsbHkgY2FwYWJsZVxwYXINCm9mIGRv
aW5nIHN1Y2ggdGhpbmdzLi4uLlxwYXINClxwYXINCiAgICAgICAgSW4gZ2VuZXJhbCwgbmVpdGhl
ciB0aGUgTGlua2VyIG5vciB0aGUgUGFja2VyIG5vciAiQ3JlYXRlIFRvb2wiIGNhblxwYXINCmZp
bmQgYWxsIHRoZSBtb2R1bGVzIGFuZCByZXNvdXJjZXMgdGhhdCBhcmUgbmVlZGVkIHRvIGJ1aWxk
IGEgd29ya2luZ1xwYXINCmV4ZWN1dGFibGUuICBJdCdzIGVhc3kgaWYgeW91IG9ubHkgaW1wb3J0
IFdpbkFwaTsgb3RoZXJ3aXNlLCBpdCdzIG11Y2ggbW9yZVxwYXINCmRpZmZpY3VsdC4gIElmIHlv
dSdyZSB0cnlpbmcgdG8gc3ByZWFkIEJCLCB0aGF0J3MgYSBzZXJpb3VzIHByb2JsZW0uICBXaXRo
XHBhcg0KbHVjaywgbWF5YmUgaXQncyBvbmx5IGEgZG9jdW1lbnRhdGlvbiBwcm9ibGVtLlxwYXIN
ClxwYXINCiAgICAgICAgW0dlcmFyZCBNZXVuaWVyIGhlbHBlZCBtZSB3aXRoIGEgbW9yZSBjb21w
bGV0ZSBleGFtcGxlLiAgTWF5YmUgSSdsbFxwYXINCnBvc3QgdGhhdCBzZXBhcmF0ZWx5Ll1ccGFy
DQpccGFyDQogICAgICAgIEFuZCBpdCBsaW5rcyBFVkVSWVRISU5HLCBpbmNsdWRpbmcgZXh0cmFu
ZW91cyBtb2R1bGVzLCB3aGV0aGVyIHRoZVxwYXINCmNvZGUgaXMgbmVlZGVkIG9yIG5vdC4gIEV4
YW1wbGVzIHRoYXQgaW1wb3J0IG9ubHkgV2luQXBpIHdpbGwgY3JlYXRlIHNtYWxsXHBhcg0KZXhl
Y3V0YWJsZXMuICBGb3Igb3RoZXIgcHJvZ3JhbXMsIHRoZSBleGFtcGxlcyBJIGhhdmUgc2VlbiBh
cmUgNzAwIGtCIGFuZFxwYXINCnVwLiAgQSBzbWFydCBsaW5rZXIgbWlnaHQgbm90IGJlIGEgYmFk
IGlkZWEgaWYgeW91IHZhbHVlIHNtYWxsIGV4ZWN1dGFibGVzLlxwYXINClxwYXINClxwYXINCj4+
IFtzdGF0ZW1lbnRzIGFuZCByZXNwb25zZXMgcmVhcnJhbmdlZCBmb3IgY2xhcml0eV1ccGFyDQpc
cGFyDQo+PiBCQiBsYWNrcyBzdGFuZGFyZCBJL08gbGlicmFyaWVzLi4uLlxwYXINCj4+IC4uLlBv
cnRhYmlsaXR5IGlzIHVuZGVuaWFibHkgbmVlZGVkLCB5ZXQgQkIgY2Fubm90IGV2ZW4gcmVhZCBv
ciB3cml0ZSBhblxwYXINCj4+IGludGVnZXIgd2l0aCBwb3J0YWJsZSBjb2RlIC4uLi5ccGFyDQo+
PiAuLi5UaGVyZSBhcmUgdGhlIE9ha3dvb2Qgc3RhbmRhcmRzLCBidXQgQkIgaWdub3JlcyB0aGVt
LiAgVGhleSBhcmUgb25seVxwYXINCj4+IC4uLiBwYXJ0aWFsbHkgaW1wbGVtZW50ZWQgaW4gQkIs
IGJ5IGEgdGhpcmQgcGFydHkuXHBhcg0KXHBhcg0KPlN0cm9uZ2x5IGRpc2FncmVlZC4gQkIgaGFz
IEkvTyBsaWJyYXJpZXMgdGhhdCBhcmUgInN0YW5kYXJkIlxwYXINCj5pbiB0aGUgc2Vuc2Ugb2Yg
YmVpbmcgYSAic3RhbmRhcmQiIHBhcnQgb2YgdGhlIGZyYW1ld29yay5ccGFyDQo+Li4uIEhvdyBj
YW4geW91IHNheSAiY2Fubm90IGV2ZW4gcmVhZCBvciB3cml0ZSBhblxwYXINCj5pbnRlZ2VyIHdp
dGggcG9ydGFibGUgY29kZSIgaWYgQkIgaXRzZWxmIGlzIG5vdCBwb3J0YWJsZSAoeWV0KT9ccGFy
DQpccGFyDQogICAgICAgIEkgd2FzIGEgbGl0dGxlIGltcHJlY2lzZS4gIEMgaGFzIHN0ZGlvLCBh
bmQgYSBwcm9ncmFtIGJ1aWx0IHdpdGhccGFyDQp0aGF0IHdpbGwgY29tcGlsZSBhbmQgcnVuIG9u
IGFueSBDIGNvbXBpbGVyLiAgVGhlIHNhbWUgY2Fubm90IGJlIHNhaWQgYWJvdXRccGFyDQpDUC4g
IEkgdGhpbmsgaXQncyBhIHByb2JsZW0gaWYgeW91IGFyZSB0b3RhbGx5IGRlcGVuZGVudCBvbiBh
IG5vbnBvcnRhYmxlXHBhcg0KZnJhbWV3b3JrLlxwYXINClxwYXINClJleCBDb3V0dXJlXHBhcg0K
XHBhcg0KLS0tIEJsYWNrQm94XHBhcg0KLS0tIHNlbmQgc3ViamVjdCBIRUxQIG9yIFVOU1VCU0NS
SUJFIHRvIGJsYWNrYm94QG9iZXJvbi5jaFxwYXINClxwYXINCn0=
----boundary-LibPST-iamunique-1221792728_-_---
Received on Wed May 24 2006 - 18:18:18 UTC