compileopts: don't filter build tags, use specific build tags instead

This basically reverts https://github.com/tinygo-org/tinygo/pull/3357
and replaces it with a different mechanism to get to the same goal.

I do not think filtering tags like this is a good idea: it's the wrong
part of the compiler to be concerned with such tags (that part sets
tags, but doesn't modify existing tags). Instead, I've written the
//go:build lines in such a way that it has the same effect: WASI
defaults to leveldb, everything else defaults to fnv, and it's possible
to override the default using build tags.
This commit is contained in:
Ayke van Laethem
2023-05-13 13:26:34 +02:00
committed by Ron Evans
parent af76c807e2
commit 4c682680ca
5 changed files with 10 additions and 161 deletions
+4 -1
View File
@@ -1,4 +1,7 @@
//go:build !runtime_memhash_tsip && !runtime_memhash_leveldb
//go:build (!wasi && !runtime_memhash_tsip && !runtime_memhash_leveldb) || (wasi && runtime_memhash_fnv)
// This is the default for all targets except WASI, unless a more specific build
// tag is set.
package runtime
+4 -1
View File
@@ -1,4 +1,7 @@
//go:build runtime_memhash_leveldb
//go:build runtime_memhash_leveldb || (wasi && !runtime_memhash_fnv && !runtime_memhash_tsip)
// This is the default for WASI, but can also be used on other targets with the
// right build tag.
// This is the hash function from Google's leveldb key-value storage system. It
// processes 4 bytes at a time making it faster than the FNV hash for buffer