Sujet : Re: Fun trick
De : johnrreagan (at) *nospam* earthlink.net (John Reagan)
Groupes : comp.os.vmsDate : 08. Jan 2025, 21:42:07
Autres entêtes
Organisation : i2pn2 (i2pn.org)
Message-ID : <6c113c2743a5d770b4641d92d1f40956deda07c9@i2pn2.org>
References : 1 2 3
User-Agent : Mozilla Thunderbird
On 1/8/2025 2:36 PM, Arne Vajhøj wrote:
On 1/8/2025 12:37 PM, John Reagan wrote:
On 1/7/2025 8:58 PM, Arne Vajhøj wrote:
During some troubleshooting over at VSI forum hb told me that
running a shareable image will execute LIB$INITIALIZE
functions.
>
That made me write this:
...
Pascal has an [INITIALIZE] attribute that you can put on the PROCEDURE CHECK and the compiler should do the contribution to the LIB$INITIALIZE PSECT.
>
And you should include LIB$INITIALIZE (the code module, not the data PSECT) from STARLET when linking. The x86 linker will do that for you, but the Alpha and Itanium linkers do not.
Zweite Sehr Verbesserte Ausgabe:
$ type lib.pas
[inherit('sys$library:pascal$lib_routines', 'sys$library:starlet')]
module lib(input, output);
[initialize]
procedure check;
var
imgnam : varying [1024] of char;
begin
lib$getjpi(item_code := jpi$_imagname, resultant_string := imgnam.body, resultant_length := imgnam.length);
if index(imgnam, ']libshr.EXE') > 0 then begin
writeln('This is a shareable image to link against not run');
$exit(ss$_normal);
end;
end;
[global]
procedure say;
begin
writeln('Hi');
end;
end.
$ type prg.pas
program prg(input,output);
[external]
procedure say; external;
begin
say;
end.
$ pas lib
$ link/share=libshr lib + sys$library:starlet/lib/incl=lib$initialize + sys$input/opt
SYMBOL_VECTOR=(say=PROCEDURE)
$
$ define/nolog libshr sys$disk:[]libshr
$ pas prg
$ link prg + sys$input/opt
libshr/share
$
$ run prg
Hi
$ run libshr
This is a shareable image to link against not run
Arne
And the compiler also supports the Extended Pascal TO BEGIN DO and TO END DO statements. TO BEGIN DO is just the same as [INITIALIZE] but allows any statement. TO END DO is an exit handler (registered with an initialization routine).
Date | Sujet | # | | Auteur |
8 Jan 25 | Fun trick | 39 | | Arne Vajhøj |
8 Jan 25 |  Re: Fun trick | 1 | | Lawrence D'Oliveiro |
8 Jan 25 |  Re: Fun trick | 11 | | John Reagan |
8 Jan 25 |   Re: Fun trick | 10 | | Arne Vajhøj |
8 Jan 25 |    Re: Fun trick | 9 | | John Reagan |
8 Jan 25 |     Re: Fun trick | 2 | | Arne Vajhøj |
8 Jan 25 |      Re: Fun trick | 1 | | Arne Vajhøj |
8 Jan 25 |     Re: Fun trick | 6 | | Arne Vajhøj |
14 Jan 25 |      Re: Fun trick | 5 | | John Reagan |
14 Jan 25 |       Re: Fun trick | 4 | | Lawrence D'Oliveiro |
14 Jan 25 |        Re: Fun trick | 3 | | Arne Vajhøj |
14 Jan 25 |         Re: Fun trick | 1 | | Arne Vajhøj |
15 Jan 25 |         Re: Fun trick | 1 | | John Reagan |
8 Jan 25 |  Re: Fun trick | 26 | | hb0815 |
8 Jan 25 |   Re: Fun trick | 25 | | Arne Vajhøj |
8 Jan 25 |    Re: Fun trick | 24 | | hb0815 |
9 Jan 25 |     Re: Fun trick | 23 | | Arne Vajhøj |
9 Jan 25 |      Re: Fun trick | 22 | | hb0815 |
13 Jan 25 |       Re: Fun trick | 11 | | Arne Vajhøj |
17 Jan 25 |        GNU diff command, was: Re: Fun trick | 10 | | Simon Clubley |
17 Jan 25 |         Re: GNU diff command, was: Re: Fun trick | 9 | | Craig A. Berry |
17 Jan 25 |          Re: GNU diff command, was: Re: Fun trick | 8 | | Craig A. Berry |
19 Jan 25 |           Re: GNU diff command, was: Re: Fun trick | 7 | | hb0815 |
21 Jan 25 |            Re: GNU diff command, was: Re: Fun trick | 6 | | Craig A. Berry |
22 Jan 25 |             Re: GNU diff command, was: Re: Fun trick | 5 | | hb0815 |
22 Jan 25 |              Re: GNU diff command, was: Re: Fun trick | 4 | | Lawrence D'Oliveiro |
23 Jan 25 |               Re: GNU diff command, was: Re: Fun trick | 3 | | Robert A. Brooks |
24 Jan 25 |                Re: GNU diff command, was: Re: Fun trick | 2 | | Simon Clubley |
25 Jan 25 |                 Re: GNU diff command, was: Re: Fun trick | 1 | | Dave Froble |
13 Jan 25 |       Re: Fun trick | 10 | | Arne Vajhøj |
13 Jan 25 |        Re: Fun trick | 9 | | Lawrence D'Oliveiro |
13 Jan 25 |         Re: Fun trick | 8 | | Arne Vajhøj |
14 Jan 25 |          Re: Fun trick | 6 | | John Reagan |
14 Jan 25 |           Re: Fun trick | 5 | | Arne Vajhøj |
3 Feb 25 |            Cobol (was Re: Fun trick) | 1 | | Arne Vajhøj |
3 Feb 25 |            Re: Fun trick | 3 | | Arne Vajhøj |
3 Feb 25 |             Cobol (was: Re: Fun trick) | 2 | | Arne Vajhøj |
5 Feb 25 |              Re: Cobol | 1 | | Arne Vajhøj |
14 Jan 25 |          Re: Fun trick | 1 | | Lawrence D'Oliveiro |