txt: ## dist_zef-jjmerelo-Native-FindVersion.md
  # Native::FindVersion [Test-install distro](https://github.com/JJ/raku-native-findversion/actions/workflows/test.yaml)
  
  Tries to find all available versions of the shared libraries used in `native` modules.
  
  ## Installing
  
  Just the usual `zef install Native::FindVersion`.
  
  ## Running
  
  It exports a single function, `latest-version`. An example (from the test)
  
  ```
  use Native::FindVersion;
  
  constant $lib-name = "gcc_s";
  my $version;
  BEGIN {
      $version = latest-version($lib-name);
  }
  
  sub __addvdi3( int32 $a, int32 $b) returns int32 is native($lib-name, $version )
  {*};
  
  say __addvdi3( 3, 3 )
  
  ```
  
  Since the version needs to be known at compile time, it needs to be assigned
  during the `BEGIN` phase. You can use either the short form (`foo`) or the
  long form (`libfoo`).
  
  In this case we're using a shared library and function that can be found in
  most Linux systems, `libgcc`.
  
  For ease of use, there's a function that returns directly the `native` argument:
  
  ```
  constant @native-arg = latest-version-arg("gcc_s");
  sub gcc-mod( int32 $a, int32 $b)
          returns int32
          is native(@native-arg)
          is symbol("__modti3")
  {*};
  
  ```
  
  ## See also
  
  [`NativeLibs`](https://raku.land/github:salortiz/NativeLibs) includes
  `NativeLib::Searcher` that will help you find a library using the symbols
  found in it and a range of possible versions.
  
  ## Caveats
  
  Untested in Windows and MacOS. If they don't append the version number to the
  extension, it will not work.
  
  ## License
  
  (c) JJ Merelo, [jj@raku.org](mailto:jj@raku.org) 2022
  
  This module will be licensed, by default, under the Artistic 2.0 License (the same as Raku itself).
  