Article 2774 of vmsnet.internals:
Path: jac.zko.dec.com!pa.dec.com!decwrl!tribune.usask.ca!rover.ucs.ualberta.ca!hookup!news.mathworks.com!mvb.saic.com!macro32
From: Hunter Goatley <goathunter@ALPHA.WKU.EDU>
Newsgroups: vmsnet.internals
Subject: RE: Var-length arg lists in Bliss on Alpha VMS?
Message-ID: <00991849.E5A1C9AE.5@ALPHA.WKU.EDU>
Date: Wed, 07 Jun 1995 10:28:30 CDT
Organization: Macro32<==>Vmsnet.Internals Gateway
X-Gateway-Source-Info: Mailing List
Lines: 26

jeh@cmkrnl.com (Jamie Hanrahan, Kernel Mode Systems) writes:
>
>What is the recommended way of handling variable-length argument lists 
>in Bliss on Alpha VMS?  Is the AP BUILTIN simulated (as it sort of is in the 
>Macro-32 compiler)?
>
No, AP is not available in BLISS-32E.  Instead, you can use the
ACTUALCOUNT(), ACTUALPARAMETER(), NULLPARAMETER(), and ARGPTR()
builtins.  ARGPTR() causes BLISS to build a fake argument block (like
homing in MACRO-32), while the former three do not.  Values referenced
with ARGPTR() are copies of the args, not the arguments themselves.

For example:

ROUTINE x (a, b, c, d) =
BEGIN
[...]
    IF (ACTUALCOUNT() GTR 2) THEN
        IF NOT NULLPARAMETER (c) THEN
[...]


Hunter
------
Hunter Goatley, Sr. Systems Analyst, The LOKI Group, Inc.
goathunter@ALPHA.WKU.EDU


