[Oberon] Variadic functions or procedures, VARARG ...

Douglas G. Danforth danforth at greenwoodfarm.com
Wed Jan 27 03:03:03 CET 2016


Lars,
I would side step the issue and replace the needed compiler functionality
with a run time solution where the variable number of arguments is 
replaced with
a pointer to a list (of arguments).  Very simple.
-Doug Danforth


On 1/26/2016 5:33 PM, Lars wrote:
> Hi, I can't find any information on Variadic functions for oberon or how
> one would interface to a C function that is variadic. Does oberon use any
> trick to support this, or it forbids you from using variadic or
> interfacing with variadic?
>
> Just to recap what variadic means, it's a function like this:
>
> PROCEDURE Something(param1: INTEGER; otherparams...)
>
> The ... means multiple parameters. In freepascal I believe this is known
> as VARARGS whereas C and golang call it variadic function.
>
> I'm guessing this is forbidden because oberon prefers everything to be
> fixed and known up front, and variadic functions go against the psychic
> programmer philosophy of huge design up front and knowning everything
> about everything. i.e. define the exact amount of parameters up front, or
> go home and you aren't welcome here... or something like that.
>
> But how would oberon interact with a C library with variadic function
> accepting multiple parameters?
>
> Varidiac functions have been proven to be extremely useful in Golang
> although they are one of those double edged swords that is extremely
> useful, until someone uses it for abuse. So I am guessing oberon outright
> forbids it...
>
> Any information would be helpful. Would also be nice to hear Wirth's
> comments on it in one of his books or articles since he refuses to
> communicate with Human DNA and only communicates with Wine and Cheese
> eating non spinach alien DNA's. (this is a serious question about variadic
> function support in oberon, but the email most definitely contains some
> humor worth every nickle)
> --
> Oberon at lists.inf.ethz.ch mailing list for ETH Oberon and related systems
> https://lists.inf.ethz.ch/mailman/listinfo/oberon
>



More information about the Oberon mailing list