- Increasing the spread of Component Pascal

From: CFB Software <"CFB>
Date: Tue, 23 May 2006 12:10:52 +0930

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

> -----Original Message-----
> From: blackbox{([at]})nowhere.xy
> Behalf Of Martin, Marc
>
> should look like. GPCP and .NET address my framework and
> look & feel concerns, but I had so many other issues with
> this that I have just stuck with Blackbox. For those of you
> who are interested, my issues with GPCP were that the users
> need to have .NET installed on their computer,

Yes, this is a hindrance and is the main reason why I am currently sticking
to Win32 applications for mass distribution. However, it is a relatively
short-term problem as .NET is currently being pre-installed on many new PCs
and is likely to be included as a standard part of the Windows operating
system very soon - maybe with Windows Vista.

One of the advantages of .NET is that the resulting exe files are about
1/10th the size of corresponding Win32 (e.g. freestanding Delphi or
BlackBox) executables. However, this is negated if the end-user then has to
download the 20Mb .NET framework. However, with the proliferation of
broadband Internet access, this is not as much of a deterrent as it used to
be. I recently installed a new Windows XP computer, and the first thing it
did when I connected to the Internet was download 40Mb of Operating System
updates!
 
> The startup of
> my .NET apps took a long time (8 seconds on my old 1Ghz
> computer)

Something is very wrong there. I just did a test on my old 1Ghz, 384Mb RAM
computer and my GPCP Pascal to Oberon translator took less than 2 seconds to
translate a 4000 line Pascal program into Oberon. Have you retried the tests
since .NET v2.0 was released last year?

Another test involved a program that loads in the details of 70,000 DVDs
from a CSV text file and displays them in a grid with 13 columns (Title,
price, rating, year, aspect ratio etc. etc). It took 18 seconds. However, in
that time it has to convert them into some form of internal database format,
as once the data has been loaded, it only takes a second or so to sort the
grid by any column or to display just a subset of rows based on the contents
of any cell.

The first time to load a .NET program will be slower than subsequent times
during that session as it is compiling it as it loads it e.g. the second
time I ran the DVD List program it took 30% less time to start. If this
startup compilation overhead does pose a problem it is possible to use the
.NET NGEN tool to pre-compile it.

I'm not saying that it isn't possible to write inefficient code. It's the
same with any system - you have to understand how the framework works to get
the best out of it. As an example, one program I was working on ran quickly
with a sample set of data, but when I ran it on the full set of data it took
about a minute to start. If I hadn't known any better I might have accepted
that. However, I knew something had to be wrong. Just changing a single
parameter of a function resulted in a 30x speedup and startup now takes a
couple of seconds!

> , the compile/link/make process seemed rather
> old-fashioned (back to command-line compilers),

I don't understand this comment. There is no 'link' process, and you only
have to use 'compile' in unusual circumstances. Actually, I've often
wondered why a 'make' is missing from BlackBox. It is particularly useful
when working with Oberon / Component Pascal code, as all of the dependencies
are contained in the source code - there is no need for a separate 'project'
or 'make' file. In GPCP all you have to do is 'make' the main module and it
will automatically recompile all dependent modules (but only if they really
need recompiling). Add a new module later? No problem - it automatically
looks after itself. I recall that ETH Oberon does have a similar facility
(called System Builder or something like that?)

> the result of
> SYSTEM.ADR() is not guaranteed to be a constant during your
> code's execution,

Granted. .NET is not suitable for writing potentially unsafe code.

> and linking to existing Fortran DLLs is not
> supported.

There is at least one Fortran.NET compiler in existence but I don't know how
langauge-compatible they are with Win32 Fortrans. One of the major
advantages of .NET is that .NET dlls can usually be readily intermingled no
matter what the source language is. When visually debugging a mixed-language
application, the debugger automatically switches to the source code of the
module that you are in.

> Plus when I was porting code over for testing I
> was finding a new compiler bug almost every day -- not very
> encouraging, although I suspect that all of those bugs are
> now fixed (since I reported them all)
>

Apart from the ones I reported ;-) John Gough has been amazingly responsive
to bug reports - my problems have usually been addressed in one or two days,
even at weekends. I would have agreed with you a year or so ago but now
v1.3.3 of the compiler is very robust. I recommend that you give it another
look.

Chris Burrows
CFB Software
http://www.cfbsoftware.com/gpcp

--- BlackBox
--- send subject HELP or UNSUBSCRIBE to blackbox{([at]})nowhere.xy



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

e1xydGYxXGFuc2lcYW5zaWNwZzEyNTJcZnJvbXRleHQgXGRlZmYwe1xmb250dGJsDQp7XGYwXGZz
d2lzcyBBcmlhbDt9DQp7XGYxXGZtb2Rlcm4gQ291cmllciBOZXc7fQ0Ke1xmMlxmbmlsXGZjaGFy
c2V0MiBTeW1ib2w7fQ0Ke1xmM1xmbW9kZXJuXGZjaGFyc2V0MCBDb3VyaWVyIE5ldzt9fQ0Ke1xj
b2xvcnRibFxyZWQwXGdyZWVuMFxibHVlMDtccmVkMFxncmVlbjBcYmx1ZTI1NTt9DQpcdWMxXHBh
cmRccGxhaW5cZGVmdGFiMzYwIFxmMFxmczIwID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS1c
cGFyDQo+IEZyb206IGJsYWNrYm94QG9iZXJvbi5jaCBbbWFpbHRvOmJsYWNrYm94QG9iZXJvbi5j
aF0gT24gXHBhcg0KPiBCZWhhbGYgT2YgTWFydGluLCBNYXJjXHBhcg0KPlxwYXINCj4gc2hvdWxk
IGxvb2sgbGlrZS4gIEdQQ1AgYW5kIC5ORVQgYWRkcmVzcyBteSBmcmFtZXdvcmsgYW5kIFxwYXIN
Cj4gbG9vayAmIGZlZWwgY29uY2VybnMsIGJ1dCBJIGhhZCBzbyBtYW55IG90aGVyIGlzc3VlcyB3
aXRoIFxwYXINCj4gdGhpcyB0aGF0IEkgaGF2ZSBqdXN0IHN0dWNrIHdpdGggQmxhY2tib3guICBG
b3IgdGhvc2Ugb2YgeW91IFxwYXINCj4gd2hvIGFyZSBpbnRlcmVzdGVkLCBteSBpc3N1ZXMgd2l0
aCBHUENQIHdlcmUgdGhhdCB0aGUgdXNlcnMgXHBhcg0KPiBuZWVkIHRvIGhhdmUgLk5FVCBpbnN0
YWxsZWQgb24gdGhlaXIgY29tcHV0ZXIsIFxwYXINClxwYXINClllcywgdGhpcyBpcyBhIGhpbmRy
YW5jZSBhbmQgaXMgdGhlIG1haW4gcmVhc29uIHdoeSBJIGFtIGN1cnJlbnRseSBzdGlja2luZ1xw
YXINCnRvIFdpbjMyIGFwcGxpY2F0aW9ucyBmb3IgbWFzcyBkaXN0cmlidXRpb24uIEhvd2V2ZXIs
IGl0IGlzIGEgcmVsYXRpdmVseVxwYXINCnNob3J0LXRlcm0gcHJvYmxlbSBhcyAuTkVUIGlzIGN1
cnJlbnRseSBiZWluZyBwcmUtaW5zdGFsbGVkIG9uIG1hbnkgbmV3IFBDc1xwYXINCmFuZCBpcyBs
aWtlbHkgdG8gYmUgaW5jbHVkZWQgYXMgYSBzdGFuZGFyZCBwYXJ0IG9mIHRoZSBXaW5kb3dzIG9w
ZXJhdGluZ1xwYXINCnN5c3RlbSB2ZXJ5IHNvb24gLSBtYXliZSB3aXRoIFdpbmRvd3MgVmlzdGEu
IFxwYXINClxwYXINCk9uZSBvZiB0aGUgYWR2YW50YWdlcyBvZiAuTkVUIGlzIHRoYXQgdGhlIHJl
c3VsdGluZyBleGUgZmlsZXMgYXJlIGFib3V0XHBhcg0KMS8xMHRoIHRoZSBzaXplIG9mIGNvcnJl
c3BvbmRpbmcgV2luMzIgKGUuZy4gZnJlZXN0YW5kaW5nIERlbHBoaSBvclxwYXINCkJsYWNrQm94
KSBleGVjdXRhYmxlcy4gSG93ZXZlciwgdGhpcyBpcyBuZWdhdGVkIGlmIHRoZSBlbmQtdXNlciB0
aGVuIGhhcyB0b1xwYXINCmRvd25sb2FkIHRoZSAyME1iIC5ORVQgZnJhbWV3b3JrLiBIb3dldmVy
LCB3aXRoIHRoZSBwcm9saWZlcmF0aW9uIG9mXHBhcg0KYnJvYWRiYW5kIEludGVybmV0IGFjY2Vz
cywgdGhpcyBpcyBub3QgYXMgbXVjaCBvZiBhIGRldGVycmVudCBhcyBpdCB1c2VkIHRvXHBhcg0K
YmUuIEkgcmVjZW50bHkgaW5zdGFsbGVkIGEgbmV3IFdpbmRvd3MgWFAgY29tcHV0ZXIsIGFuZCB0
aGUgZmlyc3QgdGhpbmcgaXRccGFyDQpkaWQgd2hlbiBJIGNvbm5lY3RlZCB0byB0aGUgSW50ZXJu
ZXQgd2FzIGRvd25sb2FkIDQwTWIgb2YgT3BlcmF0aW5nIFN5c3RlbVxwYXINCnVwZGF0ZXMhXHBh
cg0KIFxwYXINCj4gVGhlIHN0YXJ0dXAgb2YgXHBhcg0KPiBteSAuTkVUIGFwcHMgdG9vayBhIGxv
bmcgdGltZSAoOCBzZWNvbmRzIG9uIG15IG9sZCAxR2h6IFxwYXINCj4gY29tcHV0ZXIpXHBhcg0K
XHBhcg0KU29tZXRoaW5nIGlzIHZlcnkgd3JvbmcgdGhlcmUuIEkganVzdCBkaWQgYSB0ZXN0IG9u
IG15IG9sZCAxR2h6LCAzODRNYiBSQU1ccGFyDQpjb21wdXRlciBhbmQgbXkgR1BDUCBQYXNjYWwg
dG8gT2Jlcm9uIHRyYW5zbGF0b3IgdG9vayBsZXNzIHRoYW4gMiBzZWNvbmRzIHRvXHBhcg0KdHJh
bnNsYXRlIGEgNDAwMCBsaW5lIFBhc2NhbCBwcm9ncmFtIGludG8gT2Jlcm9uLiBIYXZlIHlvdSBy
ZXRyaWVkIHRoZSB0ZXN0c1xwYXINCnNpbmNlIC5ORVQgdjIuMCB3YXMgcmVsZWFzZWQgbGFzdCB5
ZWFyP1xwYXINClxwYXINCkFub3RoZXIgdGVzdCBpbnZvbHZlZCBhIHByb2dyYW0gdGhhdCBsb2Fk
cyBpbiB0aGUgZGV0YWlscyBvZiA3MCwwMDAgRFZEc1xwYXINCmZyb20gYSBDU1YgdGV4dCBmaWxl
IGFuZCBkaXNwbGF5cyB0aGVtIGluIGEgZ3JpZCB3aXRoIDEzIGNvbHVtbnMgKFRpdGxlLFxwYXIN
CnByaWNlLCByYXRpbmcsIHllYXIsIGFzcGVjdCByYXRpbyBldGMuIGV0YykuIEl0IHRvb2sgMTgg
c2Vjb25kcy4gSG93ZXZlciwgaW5ccGFyDQp0aGF0IHRpbWUgaXQgaGFzIHRvIGNvbnZlcnQgdGhl
bSBpbnRvIHNvbWUgZm9ybSBvZiBpbnRlcm5hbCBkYXRhYmFzZSBmb3JtYXQsXHBhcg0KYXMgb25j
ZSB0aGUgZGF0YSBoYXMgYmVlbiBsb2FkZWQsIGl0IG9ubHkgdGFrZXMgYSBzZWNvbmQgb3Igc28g
dG8gc29ydCB0aGVccGFyDQpncmlkIGJ5IGFueSBjb2x1bW4gb3IgdG8gZGlzcGxheSBqdXN0IGEg
c3Vic2V0IG9mIHJvd3MgYmFzZWQgb24gdGhlIGNvbnRlbnRzXHBhcg0Kb2YgYW55IGNlbGwuXHBh
cg0KXHBhcg0KVGhlIGZpcnN0IHRpbWUgdG8gbG9hZCBhIC5ORVQgcHJvZ3JhbSB3aWxsIGJlIHNs
b3dlciB0aGFuIHN1YnNlcXVlbnQgdGltZXNccGFyDQpkdXJpbmcgdGhhdCBzZXNzaW9uIGFzIGl0
IGlzIGNvbXBpbGluZyBpdCBhcyBpdCBsb2FkcyBpdCBlLmcuIHRoZSBzZWNvbmRccGFyDQp0aW1l
IEkgcmFuIHRoZSBEVkQgTGlzdCBwcm9ncmFtIGl0IHRvb2sgMzAlIGxlc3MgdGltZSB0byBzdGFy
dC4gSWYgdGhpc1xwYXINCnN0YXJ0dXAgY29tcGlsYXRpb24gb3ZlcmhlYWQgZG9lcyBwb3NlIGEg
cHJvYmxlbSBpdCBpcyBwb3NzaWJsZSB0byB1c2UgdGhlXHBhcg0KLk5FVCBOR0VOIHRvb2wgdG8g
cHJlLWNvbXBpbGUgaXQuXHBhcg0KXHBhcg0KSSdtIG5vdCBzYXlpbmcgdGhhdCBpdCBpc24ndCBw
b3NzaWJsZSB0byB3cml0ZSBpbmVmZmljaWVudCBjb2RlLiBJdCdzIHRoZVxwYXINCnNhbWUgd2l0
aCBhbnkgc3lzdGVtIC0geW91IGhhdmUgdG8gdW5kZXJzdGFuZCBob3cgdGhlIGZyYW1ld29yayB3
b3JrcyB0byBnZXRccGFyDQp0aGUgYmVzdCBvdXQgb2YgaXQuIEFzIGFuIGV4YW1wbGUsIG9uZSBw
cm9ncmFtIEkgd2FzIHdvcmtpbmcgb24gcmFuIHF1aWNrbHlccGFyDQp3aXRoIGEgc2FtcGxlIHNl
dCBvZiBkYXRhLCBidXQgd2hlbiBJIHJhbiBpdCBvbiB0aGUgZnVsbCBzZXQgb2YgZGF0YSBpdCB0
b29rXHBhcg0KYWJvdXQgYSBtaW51dGUgdG8gc3RhcnQuIElmIEkgaGFkbid0IGtub3duIGFueSBi
ZXR0ZXIgSSBtaWdodCBoYXZlIGFjY2VwdGVkXHBhcg0KdGhhdC4gSG93ZXZlciwgSSBrbmV3IHNv
bWV0aGluZyBoYWQgdG8gYmUgd3JvbmcuIEp1c3QgY2hhbmdpbmcgYSBzaW5nbGVccGFyDQpwYXJh
bWV0ZXIgb2YgYSBmdW5jdGlvbiByZXN1bHRlZCBpbiBhIDMweCBzcGVlZHVwIGFuZCBzdGFydHVw
IG5vdyB0YWtlcyBhXHBhcg0KY291cGxlIG9mIHNlY29uZHMhXHBhcg0KXHBhcg0KPiAsIHRoZSBj
b21waWxlL2xpbmsvbWFrZSBwcm9jZXNzIHNlZW1lZCByYXRoZXIgXHBhcg0KPiBvbGQtZmFzaGlv
bmVkIChiYWNrIHRvIGNvbW1hbmQtbGluZSBjb21waWxlcnMpLCBccGFyDQpccGFyDQpJIGRvbid0
IHVuZGVyc3RhbmQgdGhpcyBjb21tZW50LiBUaGVyZSBpcyBubyAnbGluaycgcHJvY2VzcywgYW5k
IHlvdSBvbmx5XHBhcg0KaGF2ZSB0byB1c2UgJ2NvbXBpbGUnIGluIHVudXN1YWwgY2lyY3Vtc3Rh
bmNlcy4gQWN0dWFsbHksIEkndmUgb2Z0ZW5ccGFyDQp3b25kZXJlZCB3aHkgYSAnbWFrZScgaXMg
bWlzc2luZyBmcm9tIEJsYWNrQm94LiBJdCBpcyBwYXJ0aWN1bGFybHkgdXNlZnVsXHBhcg0Kd2hl
biB3b3JraW5nIHdpdGggT2Jlcm9uIC8gQ29tcG9uZW50IFBhc2NhbCBjb2RlLCBhcyBhbGwgb2Yg
dGhlIGRlcGVuZGVuY2llc1xwYXINCmFyZSBjb250YWluZWQgaW4gdGhlIHNvdXJjZSBjb2RlIC0g
dGhlcmUgaXMgbm8gbmVlZCBmb3IgYSBzZXBhcmF0ZSAncHJvamVjdCdccGFyDQpvciAnbWFrZScg
ZmlsZS4gSW4gR1BDUCBhbGwgeW91IGhhdmUgdG8gZG8gaXMgJ21ha2UnIHRoZSBtYWluIG1vZHVs
ZSBhbmQgaXRccGFyDQp3aWxsIGF1dG9tYXRpY2FsbHkgcmVjb21waWxlIGFsbCBkZXBlbmRlbnQg
bW9kdWxlcyAoYnV0IG9ubHkgaWYgdGhleSByZWFsbHlccGFyDQpuZWVkIHJlY29tcGlsaW5nKS4g
QWRkIGEgbmV3IG1vZHVsZSBsYXRlcj8gTm8gcHJvYmxlbSAtIGl0IGF1dG9tYXRpY2FsbHlccGFy
DQpsb29rcyBhZnRlciBpdHNlbGYuIEkgcmVjYWxsIHRoYXQgRVRIIE9iZXJvbiBkb2VzIGhhdmUg
YSBzaW1pbGFyIGZhY2lsaXR5XHBhcg0KKGNhbGxlZCBTeXN0ZW0gQnVpbGRlciBvciBzb21ldGhp
bmcgbGlrZSB0aGF0PylccGFyDQpccGFyDQo+IHRoZSByZXN1bHQgb2YgXHBhcg0KPiBTWVNURU0u
QURSKCkgaXMgbm90IGd1YXJhbnRlZWQgdG8gYmUgYSBjb25zdGFudCBkdXJpbmcgeW91ciBccGFy
DQo+IGNvZGUncyBleGVjdXRpb24sIFxwYXINClxwYXINCkdyYW50ZWQuIC5ORVQgaXMgbm90IHN1
aXRhYmxlIGZvciB3cml0aW5nIHBvdGVudGlhbGx5IHVuc2FmZSBjb2RlLlxwYXINClxwYXINCj4g
YW5kIGxpbmtpbmcgdG8gZXhpc3RpbmcgRm9ydHJhbiBETExzIGlzIG5vdCBccGFyDQo+IHN1cHBv
cnRlZC4gIFxwYXINClxwYXINClRoZXJlIGlzIGF0IGxlYXN0IG9uZSBGb3J0cmFuLk5FVCBjb21w
aWxlciBpbiBleGlzdGVuY2UgYnV0IEkgZG9uJ3Qga25vdyBob3dccGFyDQpsYW5nYXVnZS1jb21w
YXRpYmxlIHRoZXkgYXJlIHdpdGggV2luMzIgRm9ydHJhbnMuIE9uZSBvZiB0aGUgbWFqb3JccGFy
DQphZHZhbnRhZ2VzIG9mIC5ORVQgaXMgdGhhdCAuTkVUIGRsbHMgY2FuIHVzdWFsbHkgYmUgcmVh
ZGlseSBpbnRlcm1pbmdsZWQgbm9ccGFyDQptYXR0ZXIgd2hhdCB0aGUgc291cmNlIGxhbmd1YWdl
IGlzLiBXaGVuIHZpc3VhbGx5IGRlYnVnZ2luZyBhIG1peGVkLWxhbmd1YWdlXHBhcg0KYXBwbGlj
YXRpb24sIHRoZSBkZWJ1Z2dlciBhdXRvbWF0aWNhbGx5IHN3aXRjaGVzIHRvIHRoZSBzb3VyY2Ug
Y29kZSBvZiB0aGVccGFyDQptb2R1bGUgdGhhdCB5b3UgYXJlIGluLiBccGFyDQpccGFyDQo+IFBs
dXMgd2hlbiBJIHdhcyBwb3J0aW5nIGNvZGUgb3ZlciBmb3IgdGVzdGluZyBJIFxwYXINCj4gd2Fz
IGZpbmRpbmcgYSBuZXcgY29tcGlsZXIgYnVnIGFsbW9zdCBldmVyeSBkYXkgLS0gbm90IHZlcnkg
XHBhcg0KPiBlbmNvdXJhZ2luZywgYWx0aG91Z2ggSSBzdXNwZWN0IHRoYXQgYWxsIG9mIHRob3Nl
IGJ1Z3MgYXJlIFxwYXINCj4gbm93IGZpeGVkIChzaW5jZSBJIHJlcG9ydGVkIHRoZW0gYWxsKVxw
YXINCj4gXHBhcg0KXHBhcg0KQXBhcnQgZnJvbSB0aGUgb25lcyBJIHJlcG9ydGVkIDstKSBKb2hu
IEdvdWdoIGhhcyBiZWVuIGFtYXppbmdseSByZXNwb25zaXZlXHBhcg0KdG8gYnVnIHJlcG9ydHMg
LSBteSBwcm9ibGVtcyBoYXZlIHVzdWFsbHkgYmVlbiBhZGRyZXNzZWQgaW4gb25lIG9yIHR3byBk
YXlzLFxwYXINCmV2ZW4gYXQgd2Vla2VuZHMuIEkgd291bGQgaGF2ZSBhZ3JlZWQgd2l0aCB5b3Ug
YSB5ZWFyIG9yIHNvIGFnbyBidXQgbm93XHBhcg0KdjEuMy4zIG9mIHRoZSBjb21waWxlciBpcyB2
ZXJ5IHJvYnVzdC4gSSByZWNvbW1lbmQgdGhhdCB5b3UgZ2l2ZSBpdCBhbm90aGVyXHBhcg0KbG9v
ay5ccGFyDQpccGFyDQpDaHJpcyBCdXJyb3dzXHBhcg0KQ0ZCIFNvZnR3YXJlXHBhcg0KaHR0cDov
L3d3dy5jZmJzb2Z0d2FyZS5jb20vZ3BjcFxwYXINClxwYXINCi0tLSBCbGFja0JveFxwYXINCi0t
LSBzZW5kIHN1YmplY3QgSEVMUCBvciBVTlNVQlNDUklCRSB0byBibGFja2JveEBvYmVyb24uY2h9
fQB0byBleGlzdGlu


----boundary-LibPST-iamunique-288551719_-_---
Received on Tue May 23 2006 - 04:40:52 UTC

This archive was generated by hypermail 2.3.0 : Thu Sep 26 2013 - 06:27:59 UTC