The progress of the SPVM language 2022
Hi, I write the progress of the SPVM module 2022.
SPVM is a programming language that is build on top of the Perl ecosystem and provides fast calculation and array operation to Perl.
SPVM can be transpiled to C language, and it can be compiled to shared libraries and executable files.
SPVM can call C/C++/Cuda libraries by writing pure C/C++/Cuda language without XS.
I wrote SPVM from 2016. I finally implement the all features that I think they are needed for modern applications.
Next, I need to do many tests of SPVM module by creating modules and applications.
Documentations
The following are the official documentations of SPVM.
Tutorial
SPVM Tutorial.
Language Specification
SPVM Language Specification.
Standard Functions
SPVM Standard Functions
Standard Modules
SPVM Standard Modules.
Performance Benchmark
SPVM Performance Benchmark.
Exchange API
SPVM Exchange API converts Perl data structures to SPVM data structures, and vice versa.
Native API
SPVM Native API is C API used in SPVM native method.
Generate Execution File
spvmcc is a compiler to compile SPVM source codes to a execution file. The execution file can be run by itself.
Generate SPVM Modules
spvmgenlib is the command to generate SPVM native modules.
Modules and Applications that is being tested
The following are the modules and applications that is being tested.
SPVM::Math
C99 math functions.
SPVM::JSON
JSON.
SPVM::Resource::Zlib
zlib library of C language. This is reusable from other modules.
SPVM::Resource::Libpng
libpng library of C language. This is reusable from other modules and resolve zlib dependency cleanly.
SPVM::IO::File
File utilities.
Socket, select, HTTP, Base64
Tests of Socket, select, HTTP, Base64
Tests of Socket, select, HTTP, Base64
Deep Learning
I wrote the basic of MNIST Deep Learning using SPVM.
MNIST Deep Learning using SPVM
Windows Application
Build Windows Application using Direct2D and UTF-8. Current SPVM can output windows executable file using spvmcc command.
spvmcc -o cotton -c cotton.config -I lib/SPVM Cotton::Browser::Win
Modules and Applications that will be tested
Modules
Web Framework
SpreadSheet like Excel
Charts for data science
Applications
Windows applications
Android applications
iphone applications/ipad applications
As my first experimentation, I want to create gaming application for education.
Summary
I want to keep backword compatible of SPVM as possible, but when doing tests of modern libraries and applications, some adjustment will be needed.
I will try to make the adjustment reasonable as possible.
Well stable SPVM 1.0 will be released after finishing many testing of libraries and application.
Is more easy that PDL?
explorer
PDL is a framework to manipulate n-dimension array and set operations.
SPVM provides low-level numeric array data structure.
> Is more easy that PDL?
Depends on what you want to create.