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.

SPVM

Tutorial

SPVM Tutorial.

Tutorial

Language Specification

SPVM Language Specification.

Language Specification

Standard Functions

SPVM Standard Functions

Standard Functions

Standard Modules

SPVM Standard Modules.

Standard Modules

Performance Benchmark

SPVM Performance Benchmark.

Benchmark

Exchange API

SPVM Exchange API converts Perl data structures to SPVM data structures, and vice versa.

ExchangeAPI

Native API

SPVM Native API is C API used in SPVM native method.

NativeAPI

Generate Execution File

spvmcc is a compiler to compile SPVM source codes to a execution file. The execution file can be run by itself.

spvmcc

Generate SPVM Modules

spvmgenlib is the command to generate SPVM native modules.

spvmgenlib

Modules and Applications that is being tested

The following are the modules and applications that is being tested.

SPVM::Math

C99 math functions.

SPVM::Math

SPVM::JSON

JSON.

SPVM::JSON

SPVM::Resource::Zlib

zlib library of C language. This is reusable from other modules.

SPVM::Resource::Zlib

SPVM::Resource::Libpng

libpng library of C language. This is reusable from other modules and resolve zlib dependency cleanly.

SPVM::Resource::Libpng

SPVM::IO::File

File utilities.

SPVM::IO::File

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

cotton

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.

2 Comments

Is more easy that PDL?

Leave a comment

About Yuki Kimoto

user-pic I'm Perl Programmer. I LOVE Perl. I want to contribute Perl community and Perl users.