compiler: add aliases for many hashing packages

This commit adds support for the following packages:

  - crypto/md5
  - crypto/sha1
  - crypto/sha256
  - crypto/sha512

They would normally need assembly implementations, but with these
aliases they already work everywhere.
Этот коммит содержится в:
Ayke van Laethem 2021-08-06 17:55:45 +02:00 коммит произвёл Ron Evans
родитель a3c4421f39
коммит 5e5ce98d42
3 изменённых файлов: 12 добавлений и 1 удалений

Просмотреть файл

@ -190,6 +190,10 @@ TEST_PACKAGES = \
container/list \
container/ring \
crypto/des \
crypto/md5 \
crypto/sha1 \
crypto/sha256 \
crypto/sha512 \
encoding \
encoding/ascii85 \
encoding/base32 \

Просмотреть файл

@ -15,6 +15,13 @@ package compiler
import "tinygo.org/x/go-llvm"
var stdlibAliases = map[string]string{
// crypto packages
"crypto/md5.block": "crypto/md5.blockGeneric",
"crypto/sha1.block": "crypto/sha1.blockGeneric",
"crypto/sha1.blockAMD64": "crypto/sha1.blockGeneric",
"crypto/sha256.block": "crypto/sha256.blockGeneric",
"crypto/sha512.blockAMD64": "crypto/sha512.blockGeneric",
// math package
"math.Asin": "math.asin",
"math.Asinh": "math.asinh",

Просмотреть файл

@ -23,7 +23,7 @@ import (
// Version of the compiler pacakge. Must be incremented each time the compiler
// package changes in a way that affects the generated LLVM module.
// This version is independent of the TinyGo version number.
const Version = 14 // last change: add math assembly aliases
const Version = 15 // last change: add crypto assembly aliases
func init() {
llvm.InitializeAllTargets()