Harbour MiniGUI Extended Edition build 17.08 is published

You can share your experience with HMG. Share with some screenshots/project details so that others will also be benefited.

Moderator: Rathinagiri

User avatar
bpd2000
Posts: 1207
Joined: Sat Sep 10, 2011 4:07 am
Location: India

Re: Harbour MiniGUI Extended Edition build 17.08 is published

Post by bpd2000 »

gfilatov wrote: Thu Aug 31, 2017 1:44 pm
bpd2000 wrote: Thu Aug 31, 2017 1:06 pm
Can you help us to convert ps32demo to HMG
Hi Dave,
You can do it yoursselves. :o
Thank you for the tip
Adopted to HMG
http://www.hmgforum.com/viewtopic.php?f=11&t=5401
BPD
Convert Dream into Reality through HMG
User avatar
gfilatov
Posts: 1060
Joined: Fri Aug 01, 2008 5:42 am
Location: Ukraine
Contact:

Re: Harbour MiniGUI Extended Edition build 17.08 is published

Post by gfilatov »

bpd2000 wrote: Sat Sep 02, 2017 9:43 am Adopted to HMG
Hi Dave,

OK, good job :!:
Kind Regards,
Grigory Filatov

"Everything should be made as simple as possible, but no simpler." Albert Einstein
User avatar
BeGeS
Posts: 125
Joined: Fri Jul 14, 2017 10:45 am
DBs Used: DBF
Location: La Mancha, Spain

Re: Harbour MiniGUI Extended Edition build 17.08 is published

Post by BeGeS »

gfilatov wrote: Thu Aug 31, 2017 9:46 am ...and Minigui Ex build for the free Embarcadero C++ 10.1 Berlin compiler at
the Minigui's download page.
Mr. Filatov:

Does that mean that Borland C++ 5.5 and Embarcadero C++ 10.1 can be used indistinctly?

(I already tried it and the answer is YES, but with a small program. Maybe with a more complex one it is not the same).

And if so, what is your recommendation?

Thank you.
I get by with a little help from my friends
User avatar
gfilatov
Posts: 1060
Joined: Fri Aug 01, 2008 5:42 am
Location: Ukraine
Contact:

Re: Harbour MiniGUI Extended Edition build 17.08 is published

Post by gfilatov »

BeGeS wrote: Mon Sep 11, 2017 10:12 pm ...
And if so, what is your recommendation?
Hello,

Thanks for your interest!

My recommendation is to use MinGW 7.1.0 or MS VisualC 2017 because they are the speedier C-compilers (take a look for the comparison tests below) 8-)
2017-04-22 16:59:40 Windows 7 6.1.7601 Service Pack 1
Harbour 3.2.0dev (r1704200801) Borland C++ 5.5.1 (32-bit) x86
THREADS: 0
N_LOOPS: 1000000
[ T000: empty loop overhead ]...................................0.05
====================================================================
[ T001: x := L_C ]..............................................0.02
[ T002: x := L_N ]..............................................0.00
[ T003: x := L_D ]..............................................0.03
[ T004: x := S_C ]..............................................0.03
[ T005: x := S_N ]..............................................0.03
[ T006: x := S_D ]..............................................0.03
[ T007: x := M->M_C ]...........................................0.05
[ T008: x := M->M_N ]...........................................0.03
[ T009: x := M->M_D ]...........................................0.03
[ T010: x := M->P_C ]...........................................0.03
[ T011: x := M->P_N ]...........................................0.03
[ T012: x := M->P_D ]...........................................0.03
[ T013: x := F_C ]..............................................0.02
[ T014: x := F_N ]..............................................0.02
[ T015: x := F_D ]..............................................0.02
[ T016: x := o:Args ]...........................................0.14
[ T017: x := o[ 2 ] ]...........................................0.09
[ T018: Round( i / 1000, 2 ) ]..................................0.22
[ T019: Str( i / 1000 ) ].......................................0.59
[ T020: Val( s ) ]..............................................0.23
[ T021: Val( a [ i % 16 + 1 ] ) ]...............................0.39
[ T022: DToS( d - i % 10000 ) ].................................0.58
[ T023: Eval( {|| i % 16 } ) ]..................................0.34
[ T024: Eval( bc := {|| i % 16 } ) ]............................0.22
[ T025: Eval( {| x | x % 16 }, i ) ]............................0.28
[ T026: Eval( bc := {| x | x % 16 }, i ) ]......................0.22
[ T027: Eval( {| x | f1( x ) }, i ) ]...........................0.34
[ T028: Eval( bc := {| x | f1( x ) }, i ) ].....................0.27
[ T029: Eval( bc := &( "{| x | f1( x ) }" ), i ) ]..............0.28
[ T030: x := &( "f1(" + Str( i ) + ")" ) ]......................2.54
[ T031: bc := &( "{| x | f1( x ) }" ), Eval( bc, i ) ]..........2.81
[ T032: x := ValType( x ) + ValType( i ) ]......................0.33
[ T033: x := StrZero( i % 100, 2 ) $ a[ i % 16 + 1 ] ]..........0.69
[ T034: x := a[ i % 16 + 1 ] == s ].............................0.27
[ T035: x := a[ i % 16 + 1 ] = s ]..............................0.31
[ T036: x := a[ i % 16 + 1 ] >= s ].............................0.30
[ T037: x := a[ i % 16 + 1 ] <= s ].............................0.31
[ T038: x := a[ i % 16 + 1 ] < s ]..............................0.30
[ T039: x := a[ i % 16 + 1 ] > s ]..............................0.30
[ T040: AScan( a, i % 16 ) ]....................................0.30
[ T041: AScan( a, {| x | x == i % 16 } ) ]......................2.48
[ T042: iif( i % 1000 == 0, a := {}, ), AAdd(a,{i,1,.T.,s, ]....0.76
[ T043: x := a ]................................................0.03
[ T044: x := {} ]...............................................0.09
[ T045: f0() ]..................................................0.03
[ T046: f1( i ) ]...............................................0.09
[ T047: f2( c[1...8] ) ]........................................0.09
[ T048: f2( c[1...40000] ) ]....................................0.08
[ T049: f2( @c[1...40000] ) ]...................................0.06
[ T050: f2( @c[1...40000] ), c2 := c ]..........................0.11
[ T051: f3( a, a2, s, i, s2, bc, i, n, x ) ]....................0.36
[ T052: f2( a ) ]...............................................0.09
[ T053: x := f4() ].............................................0.61
[ T054: x := f5() ].............................................0.19
[ T055: x := Space( 16 ) ]......................................0.14
[ T056: f_prv( c ) ]............................................0.31
====================================================================
[ total application time: ]....................................21.18
[ total real time: ]...........................................21.35

2017-04-22 16:57:35 Windows 7 6.1 SP1
Harbour 3.4.0dev (5d434cf) (2017-04-21 13:34) MinGW GNU C 6.3 (32-bit) x86
THREADS: 0
N_LOOPS: 1000000
[ T000: empty loop overhead ]...................................0.03
====================================================================
[ T001: x := L_C ]..............................................0.02
[ T002: x := L_N ]..............................................0.00
[ T003: x := L_D ]..............................................0.00
[ T004: x := S_C ]..............................................0.02
[ T005: x := S_N ]..............................................0.03
[ T006: x := S_D ]..............................................0.00
[ T007: x := M->M_C ]...........................................0.03
[ T008: x := M->M_N ]...........................................0.03
[ T009: x := M->M_D ]...........................................0.02
[ T010: x := M->P_C ]...........................................0.03
[ T011: x := M->P_N ]...........................................0.02
[ T012: x := M->P_D ]...........................................0.02
[ T013: x := F_C ]..............................................0.00
[ T014: x := F_N ]..............................................0.02
[ T015: x := F_D ]..............................................0.02
[ T016: x := o:Args ]...........................................0.09
[ T017: x := o[ 2 ] ]...........................................0.08
[ T018: Round( i / 1000, 2 ) ]..................................0.12
[ T019: Str( i / 1000 ) ].......................................0.37
[ T020: Val( s ) ]..............................................0.19
[ T021: Val( a [ i % 16 + 1 ] ) ]...............................0.28
[ T022: DToS( d - i % 10000 ) ].................................0.30
[ T023: Eval( {|| i % 16 } ) ]..................................0.23
[ T024: Eval( bc := {|| i % 16 } ) ]............................0.16
[ T025: Eval( {| x | x % 16 }, i ) ]............................0.20
[ T026: Eval( bc := {| x | x % 16 }, i ) ]......................0.16
[ T027: Eval( {| x | f1( x ) }, i ) ]...........................0.22
[ T028: Eval( bc := {| x | f1( x ) }, i ) ].....................0.19
[ T029: Eval( bc := &( "{| x | f1( x ) }" ), i ) ]..............0.17
[ T030: x := &( "f1(" + Str( i ) + ")" ) ]......................1.61
[ T031: bc := &( "{| x | f1( x ) }" ), Eval( bc, i ) ]..........1.89
[ T032: x := ValType( x ) + ValType( i ) ]......................0.22
[ T033: x := StrZero( i % 100, 2 ) $ a[ i % 16 + 1 ] ]..........0.47
[ T034: x := a[ i % 16 + 1 ] == s ].............................0.16
[ T035: x := a[ i % 16 + 1 ] = s ]..............................0.19
[ T036: x := a[ i % 16 + 1 ] >= s ].............................0.19
[ T037: x := a[ i % 16 + 1 ] <= s ].............................0.17
[ T038: x := a[ i % 16 + 1 ] < s ]..............................0.17
[ T039: x := a[ i % 16 + 1 ] > s ]..............................0.19
[ T040: AScan( a, i % 16 ) ]....................................0.17
[ T041: AScan( a, {| x | x == i % 16 } ) ]......................1.72
[ T042: iif( i % 1000 == 0, a := {}, ), AAdd(a,{i,1,.T.,s, ]....0.51
[ T043: x := a ]................................................0.03
[ T044: x := {} ]...............................................0.05
[ T045: f0() ]..................................................0.03
[ T046: f1( i ) ]...............................................0.06
[ T047: f2( c[1...8] ) ]........................................0.05
[ T048: f2( c[1...40000] ) ]....................................0.06
[ T049: f2( @c[1...40000] ) ]...................................0.05
[ T050: f2( @c[1...40000] ), c2 := c ]..........................0.06
[ T051: f3( a, a2, s, i, s2, bc, i, n, x ) ]....................0.22
[ T052: f2( a ) ]...............................................0.06
[ T053: x := f4() ].............................................0.27
[ T054: x := f5() ].............................................0.12
[ T055: x := Space( 16 ) ]......................................0.11
[ T056: f_prv( c ) ]............................................0.19
====================================================================
[ total application time: ]....................................13.76
[ total real time: ]...........................................13.96

2017-04-22 16:56:10 Windows 7 6.1.7601 Service Pack 1
Harbour 3.2.0dev (r1704151935) Microsoft Visual C++ 19.0.24215 (32-bit) x86
THREADS: 0
N_LOOPS: 1000000
[ T000: empty loop overhead ]...................................0.03
====================================================================
[ T001: x := L_C ]..............................................0.02
[ T002: x := L_N ]..............................................0.02
[ T003: x := L_D ]..............................................0.00
[ T004: x := S_C ]..............................................0.03
[ T005: x := S_N ]..............................................0.03
[ T006: x := S_D ]..............................................0.02
[ T007: x := M->M_C ]...........................................0.05
[ T008: x := M->M_N ]...........................................0.02
[ T009: x := M->M_D ]...........................................0.03
[ T010: x := M->P_C ]...........................................0.05
[ T011: x := M->P_N ]...........................................0.02
[ T012: x := M->P_D ]...........................................0.03
[ T013: x := F_C ]..............................................0.02
[ T014: x := F_N ]..............................................0.03
[ T015: x := F_D ]..............................................0.00
[ T016: x := o:Args ]...........................................0.11
[ T017: x := o[ 2 ] ]...........................................0.06
[ T018: Round( i / 1000, 2 ) ]..................................0.14
[ T019: Str( i / 1000 ) ].......................................0.36
[ T020: Val( s ) ]..............................................0.19
[ T021: Val( a [ i % 16 + 1 ] ) ]...............................0.31
[ T022: DToS( d - i % 10000 ) ].................................0.45
[ T023: Eval( {|| i % 16 } ) ]..................................0.27
[ T024: Eval( bc := {|| i % 16 } ) ]............................0.16
[ T025: Eval( {| x | x % 16 }, i ) ]............................0.23
[ T026: Eval( bc := {| x | x % 16 }, i ) ]......................0.16
[ T027: Eval( {| x | f1( x ) }, i ) ]...........................0.23
[ T028: Eval( bc := {| x | f1( x ) }, i ) ].....................0.17
[ T029: Eval( bc := &( "{| x | f1( x ) }" ), i ) ]..............0.20
[ T030: x := &( "f1(" + Str( i ) + ")" ) ]......................1.59
[ T031: bc := &( "{| x | f1( x ) }" ), Eval( bc, i ) ]..........1.92
[ T032: x := ValType( x ) + ValType( i ) ]......................0.23
[ T033: x := StrZero( i % 100, 2 ) $ a[ i % 16 + 1 ] ]..........0.45
[ T034: x := a[ i % 16 + 1 ] == s ].............................0.20
[ T035: x := a[ i % 16 + 1 ] = s ]..............................0.22
[ T036: x := a[ i % 16 + 1 ] >= s ].............................0.22
[ T037: x := a[ i % 16 + 1 ] <= s ].............................0.22
[ T038: x := a[ i % 16 + 1 ] < s ]..............................0.20
[ T039: x := a[ i % 16 + 1 ] > s ]..............................0.27
[ T040: AScan( a, i % 16 ) ]....................................0.23
[ T041: AScan( a, {| x | x == i % 16 } ) ]......................1.84
[ T042: iif( i % 1000 == 0, a := {}, ), AAdd(a,{i,1,.T.,s, ]....0.55
[ T043: x := a ]................................................0.03
[ T044: x := {} ]...............................................0.08
[ T045: f0() ]..................................................0.03
[ T046: f1( i ) ]...............................................0.08
[ T047: f2( c[1...8] ) ]........................................0.08
[ T048: f2( c[1...40000] ) ]....................................0.08
[ T049: f2( @c[1...40000] ) ]...................................0.06
[ T050: f2( @c[1...40000] ), c2 := c ]..........................0.09
[ T051: f3( a, a2, s, i, s2, bc, i, n, x ) ]....................0.23
[ T052: f2( a ) ]...............................................0.08
[ T053: x := f4() ].............................................0.28
[ T054: x := f5() ].............................................0.12
[ T055: x := Space( 16 ) ]......................................0.11
[ T056: f_prv( c ) ]............................................0.22
====================================================================
[ total application time: ]....................................14.84
[ total real time: ]...........................................15.17

2017-04-22 17:02:48 Windows 7 6.1.7601 Service Pack 1
Harbour 3.2.0dev (r1703151339) LLVM/Clang C 3.3.1 (35832.6139226.5cda94d) (32-bit) x86
THREADS: 0
N_LOOPS: 1000000
[ T000: empty loop overhead ]...................................0.02
====================================================================
[ T001: x := L_C ]..............................................0.06
[ T002: x := L_N ]..............................................0.05
[ T003: x := L_D ]..............................................0.03
[ T004: x := S_C ]..............................................0.06
[ T005: x := S_N ]..............................................0.05
[ T006: x := S_D ]..............................................0.05
[ T007: x := M->M_C ]...........................................0.06
[ T008: x := M->M_N ]...........................................0.05
[ T009: x := M->M_D ]...........................................0.05
[ T010: x := M->P_C ]...........................................0.06
[ T011: x := M->P_N ]...........................................0.03
[ T012: x := M->P_D ]...........................................0.06
[ T013: x := F_C ]..............................................0.03
[ T014: x := F_N ]..............................................0.05
[ T015: x := F_D ]..............................................0.03
[ T016: x := o:Args ]...........................................0.16
[ T017: x := o[ 2 ] ]...........................................0.09
[ T018: Round( i / 1000, 2 ) ]..................................0.20
[ T019: Str( i / 1000 ) ].......................................0.67
[ T020: Val( s ) ]..............................................0.20
[ T021: Val( a [ i % 16 + 1 ] ) ]...............................0.37
[ T022: DToS( d - i % 10000 ) ].................................0.41
[ T023: Eval( {|| i % 16 } ) ]..................................0.30
[ T024: Eval( bc := {|| i % 16 } ) ]............................0.20
[ T025: Eval( {| x | x % 16 }, i ) ]............................0.25
[ T026: Eval( bc := {| x | x % 16 }, i ) ]......................0.20
[ T027: Eval( {| x | f1( x ) }, i ) ]...........................0.27
[ T028: Eval( bc := {| x | f1( x ) }, i ) ].....................0.23
[ T029: Eval( bc := &( "{| x | f1( x ) }" ), i ) ]..............0.22
[ T030: x := &( "f1(" + Str( i ) + ")" ) ]......................1.81
[ T031: bc := &( "{| x | f1( x ) }" ), Eval( bc, i ) ]..........2.07
[ T032: x := ValType( x ) + ValType( i ) ]......................0.25
[ T033: x := StrZero( i % 100, 2 ) $ a[ i % 16 + 1 ] ]..........0.73
[ T034: x := a[ i % 16 + 1 ] == s ].............................0.27
[ T035: x := a[ i % 16 + 1 ] = s ]..............................0.30
[ T036: x := a[ i % 16 + 1 ] >= s ].............................0.30
[ T037: x := a[ i % 16 + 1 ] <= s ].............................0.30
[ T038: x := a[ i % 16 + 1 ] < s ]..............................0.28
[ T039: x := a[ i % 16 + 1 ] > s ]..............................0.30
[ T040: AScan( a, i % 16 ) ]....................................0.25
[ T041: AScan( a, {| x | x == i % 16 } ) ]......................1.97
[ T042: iif( i % 1000 == 0, a := {}, ), AAdd(a,{i,1,.T.,s, ]....0.62
[ T043: x := a ]................................................0.05
[ T044: x := {} ]...............................................0.09
[ T045: f0() ]..................................................0.05
[ T046: f1( i ) ]...............................................0.09
[ T047: f2( c[1...8] ) ]........................................0.09
[ T048: f2( c[1...40000] ) ]....................................0.08
[ T049: f2( @c[1...40000] ) ]...................................0.08
[ T050: f2( @c[1...40000] ), c2 := c ]..........................0.11
[ T051: f3( a, a2, s, i, s2, bc, i, n, x ) ]....................0.31
[ T052: f2( a ) ]...............................................0.08
[ T053: x := f4() ].............................................0.41
[ T054: x := f5() ].............................................0.17
[ T055: x := Space( 16 ) ]......................................0.14
[ T056: f_prv( c ) ]............................................0.23
====================================================================
[ total application time: ]....................................16.80
[ total real time: ]...........................................17.02
Hope that useful :idea:
Kind Regards,
Grigory Filatov

"Everything should be made as simple as possible, but no simpler." Albert Einstein
User avatar
BeGeS
Posts: 125
Joined: Fri Jul 14, 2017 10:45 am
DBs Used: DBF
Location: La Mancha, Spain

Re: Harbour MiniGUI Extended Edition build 17.08 is published

Post by BeGeS »

Thank you for such a detailed response. ;)

However, my question was not related to speed (of relative importance) but to the final result: the executable program.

The doubt arises because I do not understand why HMG Extended is offered with two compilers, being 10.1 the modern version (2016) of 5.5 (2000), father and son of the same family. The logical thing would be to default the most current, right?

I've been watching and doing tests. The folders \LIB, both MiniGUI and Harbour, have the same similarity as a crocodile and a pepper (they are long and green...), and the size difference of hbmk2 I do not understand it, so I deduce that there are two different packages that do not even share \SOURCE to 100%, resulting in different minigui.lib

Needless to say I tried to ride a hybrid, but without any success. :oops:

So I stay as I am, with the "main" package and Borland 5.5 :D

P.S .: You do not have to thank me for my interest. No way. Unlike, is me who is very grateful to you for your work. And now that no one is listening, I confess that I've moved from HMG Official to HMG Extended. I have only a short time with the GUI and I can afford it. Many things that I was looking for and did not find, were in the house next door. :o :!: :idea:
I get by with a little help from my friends
User avatar
gfilatov
Posts: 1060
Joined: Fri Aug 01, 2008 5:42 am
Location: Ukraine
Contact:

Re: Harbour MiniGUI Extended Edition build 17.08 is published

Post by gfilatov »

BeGeS wrote: Thu Sep 14, 2017 9:05 am The doubt arises because I do not understand why HMG Extended is offered with two compilers, being 10.1 the modern version (2016) of 5.5 (2000), father and son of the same family. The logical thing would be to default the most current, right?
Hello,

Thanks for your kind words!

There are a few reasons for it.

1) BCC 5.5 is most often used by MiniGUI users :)

2) Harbour 3.2 is not supoorted BCC 10.1 officially (and therefore I doing Harbour build for BCC 10.1 with a trick).

3) BCC 5.5 works on the ALL Windows platforms (since Win 98 to Win 10) but BCC 10.1 supports since Windows Vista only.

And you are right about a different packages:
for BCC 5.5 it is a stable and for BCC 10.1 it's a test. :o

BTW I saw a growing interest to MinGW-based build of MiniGUI Ex at http://sourceforge.net/projects/hbpidew/
Kind Regards,
Grigory Filatov

"Everything should be made as simple as possible, but no simpler." Albert Einstein
User avatar
BeGeS
Posts: 125
Joined: Fri Jul 14, 2017 10:45 am
DBs Used: DBF
Location: La Mancha, Spain

Re: Harbour MiniGUI Extended Edition build 17.08 is published

Post by BeGeS »

gfilatov wrote: Thu Sep 14, 2017 9:57 am Harbour 3.2 is not supoorted BCC 10.1 officially (and therefore I doing Harbour build for BCC 10.1 with a trick).
That clarifies everything. :lol:

gfilatov wrote: Thu Sep 14, 2017 9:57 am BCC 5.5 works on the ALL Windows platforms (since Win 98 to Win 10) but BCC 10.1 supports since Windows Vista only.
Powerful reason. I had not thought about it, and there are still many machines that work (and well) with WXP.

gfilatov wrote: Thu Sep 14, 2017 9:57 am BTW I saw a growing interest to MinGW-based build of MiniGUI Ex at http://sourceforge.net/projects/hbpidew/
This is a excellent news.


The compiler issue was just curiousity. It is settled and well explained. Now what I have to do is start studying. :geek:

Thank you very much. ;)
I get by with a little help from my friends
PeteWG
Posts: 176
Joined: Sun Mar 21, 2010 5:45 pm

Re: Harbour MiniGUI Extended Edition build 17.08 is published

Post by PeteWG »

BeGeS wrote: Thu Sep 14, 2017 8:44 pm
gfilatov wrote: Thu Sep 14, 2017 9:57 am BTW I saw a growing interest to MinGW-based build of MiniGUI Ex at http://sourceforge.net/projects/hbpidew/
This is a excellent news.
Hi,
just a clarification: the above link at sourceforge refers to a quite old bundle of MiniGui-ex
pre-compiled with MinGW gcc compiler.
I was maintaining it for some years ago, as an alternative to bcc bundle.
About a year and a half ago I have ported it to GitHub and it can be reached using this link (MgM).
Currently, it includes Minigui version 17.06u2 (Jun 2017), along with MinGW32 7.1.0 and Harbour 3.4.0dev (Viktor's fork).

regards,
Pete
User avatar
BeGeS
Posts: 125
Joined: Fri Jul 14, 2017 10:45 am
DBs Used: DBF
Location: La Mancha, Spain

Re: Harbour MiniGUI Extended Edition build 17.08 is published

Post by BeGeS »

PeteWG wrote: Fri Sep 15, 2017 5:41 pm ... and Harbour 3.4.0dev (Viktor's fork).
Pete, I take this opportunity to ask you a question:
Has there been any schism within the Harbour Project?
Do Szakáts and Czerpak walk each one for their side? :(
I get by with a little help from my friends
PeteWG
Posts: 176
Joined: Sun Mar 21, 2010 5:45 pm

Re: Harbour MiniGUI Extended Edition build 17.08 is published

Post by PeteWG »

BeGeS wrote: Sun Sep 17, 2017 7:23 pm Has there been any schism within the Harbour Project?
Do Szakáts and Czerpak walk each one for their side? :(
Hi,
I wouldn't say that. Besides, I cannot and I won't speak on behalf of Viktor or Czerpak,
(or anybody other) regarding their plans and moves. And especially when I'm not aware
of anything relevant to what you are wondering, about "schism" or whatever.
Both of them have been and still are the major core-developers and Harbour leaders.
As far as I know, Viktor created 3.4 as a fork of the upstream "official" Harbour project (known as 3.2).
This is a very usual practice in the realm of open-source software;
in fact, "forking" an existing project, most of the times (if not always), is a welcomed
and encouraged tactic, which helps towards more active contributions
and enhancements of the original code-base.

regards,
Pete
Post Reply