poke-devel
[Top][All Lists]
Advanced

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

Re: [PATCH 1/4] std.pk: Implement strrchr


From: Jose E. Marchesi
Subject: Re: [PATCH 1/4] std.pk: Implement strrchr
Date: Sun, 29 Jan 2023 17:46:03 +0100
User-agent: Gnus/5.13 (Gnus v5.13)

Hi Arsen.
Thanks for the patch.

> This patchset implements the pk_vercmp function, intended for comparing
> GNU poke version strings, as well as the requisite standard library
> facilities used in such a string manipulation heavy function.  The
> implementation in pk_vercmp is dual purpose, in that it both verifies
> and parses a version string.
>
> An alternative implementation could be written that populates a struct
> with broken out version information, rather than ad-hoc parsing two
> strings at once as is demonstrated here, as a pk_verparse, with
> pk_vercmp simply being a helper that returns the lexicographic
> comparison of two parsed versions.  I had initially opted to write a
> non-verifying lax version of this function, but bolted strictness onto
> it later, which is why this is the implementation I am presenting.  If
> you wish, I can upgrade to the approach described in this paragraph.
> Other patches are unaffected by this decision, and so, can be reviewed
> in either case.

I like the pk_parse_version approach you describe there.

The Pk_Version struct in pkl-rt could be something like:

type Pk_Version =
  struct
  {
    /* major.minor[.subminor][-BRANCH-OFFSET-HASH] */
    uint<8> major;
    uint<8> minor;
    uint<8> subminor;
    string branch : branch in ["dev", "maint"];
    uint<8> offset;
    string tag;
  };

And then we could have pk_ver_cmp = (Pk_Version a, Pk_Version b) int<32>.

>
> Are [1,3] OK for master?  What do you think about 4 (the discussion in
> the paragraph above?

Just this:

>  @menu
>  * ltrim::            Remove leading characters.
>  * rtrim::            Remove trailing characters.
> -* strchr::           Locate a character in a string.
> +* strchr::              Locate a character in a string, from the beginning.

Is the indentation there right?

> +* strrchr::          Locate a character in a string, from the end.
>  @end menu

Other than that, the strrchr patch is OK for master.
Thanks!



reply via email to

[Prev in Thread] Current Thread [Next in Thread]