tech-kern archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Some changes to autoconfiguration APIs



> On Aug 1, 2021, at 12:48 PM, David Brownlee <abs%absd.org@localhost> wrote:
> 
> On Sun, 1 Aug 2021 at 15:57, Jason Thorpe <thorpej%me.com@localhost> wrote:
>> 
>>> On Aug 1, 2021, at 5:15 AM, Martin Husemann <martin%duskware.de@localhost> wrote:
>>> 
>>> On Mon, May 10, 2021 at 10:30:09PM -0700, Jason Thorpe wrote:
>>>> 
>>>>> On May 10, 2021, at 7:58 PM, matthew green <mrg%eterna.com.au@localhost> wrote:
>>>>> 
>>>>> please, can we revert and re-do with a type-safe API.
>>>> 
>>>> I don't plan to revert, but I will consider a betterly-typed API
>>>> that's not extremely cumbersome to use.  I am not a fan of Taylor's
>>>> proposals.  Concrete proposals welcome.
>>> 
>>> Ping?
>>> 
>>> A decision on this API needs to happen before the netbsd-10 branch
>>> (this is on the branch blocker list) - we need to either backout or move
>>> forward some way.
>> 
>> The situation hasn’t changed.  I’m still waiting for concrete proposals.
>> 
> 
> Possible  thought to provide type safety with automatic versioning.
> 
> Use C99 initializers with a CF_VERSION define. When cfargs changes we
> bump CF_VERSION.
> 
> config_found() needs to check passed cf_version and convert for old
> versions. We are still left with a long tail of conversion code in
> config_found(), but callers Just Work.
> 
>       config_found(CF_VERSION, self, whatever, (const struct cfargs *){
>           .search = ...,
>           .locators = ...,
>       })

I would probably hide it in a macro (part of what I object to about this method, which was floated before, is that it is needlessly verbose).

What do you propose should be the behavior if the versions don't match?  I have an idea in mind, but I want to hear a concrete proposal first.

-- thorpej



Home | Main Index | Thread Index | Old Index