[Info-vax] libvbisam for VMS

Arne Vajhøj arne at vajhoej.dk
Mon Mar 13 08:32:39 EDT 2023


On 3/13/2023 7:25 AM, JOUKJ wrote:
> Arne Vajhøj wrote:
>> https://www.vajhoej.dk/arne/vmsstuff/vbisam/
>>
>> vbisam-2_0.tar-gz   : original VBISAM 2.0 kit
>> vbisam-2_0-av.zip   : my changes to make VBISAM 2.0 build and work 
>> work (*) VMS
>>
>> vbisam-2_0_1.tar-gz : original VBISAM 2.0.1 kit
>> vbisam-2_0_1-av.zip : my changes to make VBISAM 2.0.1 build and work 
>> (*) on VMS
>>
>> vbisam-2_1_1.zip    : original VBISAM 2.1.1 kit
>> vbisam-2_1_1-av.zip : my changes to make VBISAM 2.1.1 build and work 
>> (*) on VMS
>>
>> *) Hacks:
>> - no locking in library only what RMS provides
>> - no check for if same file is opened twice with different name
>>
>> vbi.zip             : VBISAM extras
>>                         - VMS API callable from 
>> Cobol/Fortran/Pascal/Basic
>>                         - standalone utility to create simple VBISAM 
>> files
>>                         - JNI implementation for my Java ISAM library

> When compiling this stuff I got (apart from your specific directories) 2 
> problems
> 
>   1) in isam.com scan_globals_for_option.com is calledbut missing in the 
> distribution. However I can guess what happens here.

SCAN_GLOBALS_FOR_OPTION.COM and JAVA$BUILD_OPTION.EXE comes
with VMS Java.

I suppose I could leave the generated OPT file in the dist.

>   2) when running @vms_vbisam.com I get:
> spawn-tango-jj) @vms_vbisam.com
> 
>      *buflen = isreclen;
> ..............^
> %CC-E-UNDECLARED, In this statement, "isreclen" is not declared.
> at line number 78 in file 
> $DISK16:[JOUKJ.public.vbisam.vbisam-2^.1^.1]vms_vbisam
> .c;1
> 
>      *buflen = isreclen;
> ..............^
> %CC-E-UNDECLARED, In this statement, "isreclen" is not declared.
> at line number 94 in file 
> $DISK16:[JOUKJ.public.vbisam.vbisam-2^.1^.1]vms_vbisam
> .c;1
> 
>      *buflen = isreclen;
> ..............^
> %CC-E-UNDECLARED, In this statement, "isreclen" is not declared.
> at line number 100 in file 
> $DISK16:[JOUKJ.public.vbisam.vbisam-2^.1^.1]vms_vbisa
> m.c;1
> 
> isreclen is a member of a structure but not a global variable. No idea 
> what is meant here.

VMS_VBISAM is intended to be build against 2.0 or 2.0.1 - to build
against 2.1.1 then one need to replace isreclen with
vb_get_rtd()->isreclen.

I should probably create 2 COM files or make something conditional.

It is a bad breaking change, but apperently someone did not like
the idea of exposing data directly from a shareable image
(DLL on Windows).

Thanks for the error report. I will update.

Arne





More information about the Info-vax mailing list