First release of SPVM::File::Temp and SPVM::File::Find
Tags: perl, spvm
Published: 2023-02-24 22:24:27

This week we released <a href="https://metacpan.org/pod/SPVM::File::Temp">SPVM::File::Temp</a> and <a href="https://metacpan.org/pod/SPVM::File::Find">SPVM::File::Find</a> for the first time.

<a href="https://dev.to/yukikimoto/spvmfilepath-and-spvmfileglob-are-newly-released-1lpe">Last week we released SPVM::File::Temp</a>, and this week we continue with the first successful release of a file-related module.

<a href="https://metacpan.org/pod/SPVM::File::Temp">SPVM::File::Temp</a> is the porting of Perl's File::Temp to <a href="https://github.com/yuki-kimoto/SPVM">SPVM</a>. It implements the most frequently used newdir method to create temporary directories.

<a href="https://metacpan.org/pod/SPVM::File::Find">SPVM::File::Find</a> is a porting of Perl's File::Find to SPVM. We implemented a find method that can retrieve all file names in a subdirectory.

We have now implemented all the major filename-related features that the Perl core has, and since our goal for February was to release these modules, we have accomplished our goal.

You can see all the modules created by SPVM to date here.

```
SPVM::Digest::MD5
SPVM::Digest::SHA
SPVM::Errno
SPVM::File::Basename
SPVM::File::Copy
SPVM::File::Find
SPVM::File::Glob
SPVM::File::Path
SPVM::File::Spec
SPVM::File::Temp
SPVM::FindBin
SPVM::IO
SPVM::JSON
SPVM::Math
SPVM::MIME::Base64
SPVM::Regex
SPVM::Resource::Re2-V2022_06_01
SPVM::Resource::SocketUtil
SPVM::Resource::Zlib
SPVM::Resource::Zlib::V1_2_11
SPVM::Sys
SPVM::Time::Local
SPVM::Unicode
```

The implementation of the main features of the modules that the Perl core has is scheduled to be completed by the end of June 2023. We hope to port the relevant functionality of the Perl core modules that enable the implementation of web frameworks to SPVM by this time.

## Goals for March 2023

Our goal for March 2023 is to make SPVM::Regex work on the latest version of Windows. Currently the basis of SPVM::Regex, compiling and linking Google/RE2, does not succeed on the latest version of Windows 2022; it works on Windows 2019, but not yet on the latest version. This bug needs to be investigated and fixed.

The file-related modules depend on regular expressions, so if this part is not resolved, the file-related modules will not work on the latest version of Windows.

Another goal is to support symbolic links. The latest version of Windows has a symbolic link feature that is not highly compatible with Linux, but can be created and deleted with the same API, albeit with some limitations. If the symbolic link function improves compatibility, it will be possible to handle symbolic links on Windows and Linux with the same API. We would like to make sure that this part of the system is well developed.

SPVM aims to be a high-level cross-platform language.

SPVM will be transpiled to C language on a function-by-function basis. Since SPVM interfaces with C functions, C compilers such as GCC, Clang, and JIT compilers for C can be used. Engineers with high intuition and high experience in engineering will be very surprised by this. This is because writing in SPVM means that all transpilers, compilers, linkers, and other tools written in C can be used without modification. This means that you can also output code to LLVM and Web assembly.


Translated with www.DeepL.com/Translator (free version)