Harbour on AS/400

326 views
Skip to first unread message

Aleksander Czajczynski

unread,
Mar 23, 2020, 3:24:55 AM3/23/20
to harbou...@googlegroups.com
Hi there!

So nowadays it's called iSeries, runs i5/OS and also has PASE unix-like
enviroment.

Such issue appeared on GitHub, so i was kind of interested because of
earlier experiences with AIX
https://github.com/harbour/core/issues/205

It seems I made a correct binary using AIX. Thanks to folks at
PUB400.com i had a quick opportunity to test it.
Below are the results. Judging from the speedtst I think the load there
is quite substantial, it's been said that the machine already has 70000
user accounts.
But there it is.

Best regards, Aleksander

https://www.fki.pl/hb/as400.png

$ uname -a
OS400 PUB400 4 7 00210002307W

$ ./hbtest
Harbour Compatibility and Regression Test Suite
Copyright (c) 1999-2020, Viktor Szakats
---------------------------------------------------------------------------
Version: Harbour 3.2.0dev (r2002240732)
Compiler: GNU C 4.5.4 (32-bit)
OS: OS400 4 00210002307W
Date, Time: 2020-03-22 17:38:01
Shortcut opt.: On
Switches:
===========================================================================
R No. Line TestCall() -> Result | Expected
---------------------------------------------------------------------------
===========================================================================
Test calls passed: 4861 ( 100.00 % )
Test calls failed: 0 ( 0.00 % )
----------
Total: 4861 ( Time elapsed: 1.83 seconds )


$ ./speedtst

2020-03-22 17:39:33 OS400 4 00210002307W
Harbour 3.2.0dev (r2002240732) GNU C 4.5.4 (32-bit) POWER
THREADS: 0
N_LOOPS: 1000000
[ T000: empty loop overhead ]...................................0.04
====================================================================
[ T001: x := L_C ]..............................................0.04
[ T002: x := L_N ]..............................................0.03
[ T003: x := L_D ]..............................................0.03
[ T004: x := S_C ]..............................................0.03
[ T005: x := S_N ]..............................................0.03
[ T006: x := S_D ]..............................................0.04
[ T007: x := M->M_C ]...........................................0.03
[ T008: x := M->M_N ]...........................................0.04
[ T009: x := M->M_D ]...........................................0.04
[ T010: x := M->P_C ]...........................................0.03
[ T011: x := M->P_N ]...........................................0.04
[ T012: x := M->P_D ]...........................................0.03
[ T013: x := F_C ]..............................................0.16
[ T014: x := F_N ]..............................................0.14
[ T015: x := F_D ]..............................................0.06
[ T016: x := o:Args ]...........................................0.09
[ T017: x := o[2] ].............................................0.08
[ T018: round( i / 1000, 2 ) ]..................................0.18
[ T019: str( i / 1000 ) ].......................................0.67
[ T020: val( s ) ]..............................................0.14
[ T021: val( a [ i % 16 + 1 ] ) ]...............................0.27
[ T022: dtos( d - i % 10000 ) ].................................0.37
[ T023: eval( {|| i % 16 } ) ]..................................0.32
[ T024: eval( bc := {|| i % 16 } ) ]............................0.16
[ T025: eval( {| x | x % 16 }, i ) ]............................0.24
[ T026: eval( bc := {| x | x % 16 }, i ) ]......................0.14
[ T027: eval( {| x | f1( x ) }, i ) ]...........................0.29
[ T028: eval( bc := {| x | f1( x ) }, i ) ].....................0.20
[ T029: eval( bc := &("{| x | f1( x ) }"), i ) ]................0.19
[ T030: x := &( "f1(" + str(i) + ")" ) ]........................2.09
[ T031: bc := &( "{| x |f1(x)}" ), eval( bc, i ) ]..............2.16
[ T032: x := valtype( x ) + valtype( i ) ].....................0.28
[ T033: x := strzero( i % 100, 2 ) $ a[ i % 16 + 1 ] ]..........0.73
[ T034: x := a[ i % 16 + 1 ] == s ].............................0.20
[ T035: x := a[ i % 16 + 1 ] = s ]..............................0.19
[ T036: x := a[ i % 16 + 1 ] >= s ].............................0.20
[ T037: x := a[ i % 16 + 1 ] <= s ].............................0.19
[ T038: x := a[ i % 16 + 1 ] < s ]..............................0.20
[ T039: x := a[ i % 16 + 1 ] > s ]..............................0.20
[ T040: ascan( a, i % 16 ) ]....................................0.21
[ T041: ascan( a, {| x | x == i % 16 } ) ]......................1.56
[ T042: iif( i%1000==0, a:={}, ) , aadd(a,{i,1,.T.,s,s2,a2 ]....0.57
[ T043: x := a ]................................................0.04
[ T044: x := {} ]...............................................0.12
[ T045: f0() ]..................................................0.07
[ T046: f1( i ) ]...............................................0.11
[ T047: f2( c[1...8] ) ]........................................0.10
[ T048: f2( c[1...40000] ) ]....................................0.10
[ T049: f2( @c[1...40000] ) ]...................................0.10
[ T050: f2( @c[1...40000] ), c2 := c ]..........................0.13
[ T051: f3( a, a2, s, i, s2, bc, i, n, x ) ]....................0.28
[ T052: f2( a ) ]...............................................0.10
[ T053: x := f4() ].............................................0.37
[ T054: x := f5() ].............................................0.23
[ T055: x := space(16) ]........................................0.15
[ T056: f_prv( c ) ]............................................0.29
====================================================================
[ total application time: ]....................................17.34
[ total real time: ]..........................................952.35
$



Michael Poland

unread,
May 10, 2020, 12:25:20 PM5/10/20
to Harbour Developers
Can you expand this thread?

Kevin Monceaux

unread,
Sep 1, 2020, 11:58:58 AM9/1/20
to harbou...@googlegroups.com
On Mon, Mar 23, 2020 at 08:23:09AM +0100, Aleksander Czajczynski wrote:

> So nowadays it's called iSeries, runs i5/OS and also has PASE unix-like
> enviroment.

Actually now days it's called IBM i, and it runs IBM i OS. Most of the
people where I work still prefer the name AS/400.


--

Kevin
http://www.RawFedDogs.net
http://www.Lassie.xyz
http://www.WacoAgilityGroup.org
Bruceville, TX

What's the definition of a legacy system? One that works!
Errare humanum est, ignoscere caninum.
Reply all
Reply to author
Forward
0 new messages