Merge pull request #4203 from karl-zylinski/file-tags-without-comments

Make tags use #+ syntax instead of //+
This commit is contained in:
gingerBill
2024-09-19 12:36:43 +01:00
committed by GitHub
332 changed files with 665 additions and 510 deletions

View File

@@ -1,5 +1,5 @@
// This is purely for documentation
//+build ignore
#+build ignore
package intrinsics
// Package-Related

View File

@@ -18,7 +18,7 @@
// This could change at a later date if the all these data structures are
// implemented within the compiler rather than in this "preload" file
//
//+no-instrumentation
#+no-instrumentation
package runtime
import "base:intrinsics"

View File

@@ -1,6 +1,6 @@
//+private
//+build linux, darwin, freebsd, openbsd, netbsd, haiku
//+no-instrumentation
#+private
#+build linux, darwin, freebsd, openbsd, netbsd, haiku
#+no-instrumentation
package runtime
import "base:intrinsics"

View File

@@ -1,6 +1,6 @@
//+private
//+build wasm32, wasm64p32
//+no-instrumentation
#+private
#+build wasm32, wasm64p32
#+no-instrumentation
package runtime
import "base:intrinsics"

View File

@@ -1,6 +1,6 @@
//+private
//+build windows
//+no-instrumentation
#+private
#+build windows
#+no-instrumentation
package runtime
import "base:intrinsics"

View File

@@ -1,5 +1,5 @@
//+build orca
//+private
#+build orca
#+private
package runtime
foreign {

View File

@@ -1,5 +1,5 @@
//+build js, wasi, freestanding, essence
//+private
#+build js, wasi, freestanding, essence
#+private
package runtime
_heap_alloc :: proc "contextless" (size: int, zero_memory := true) -> rawptr {

View File

@@ -1,5 +1,5 @@
//+build linux, darwin, freebsd, openbsd, netbsd, haiku
//+private
#+build linux, darwin, freebsd, openbsd, netbsd, haiku
#+private
package runtime
when ODIN_OS == .Darwin {

View File

@@ -1,4 +1,4 @@
//+vet !cast
#+vet !cast
package runtime
import "base:intrinsics"

View File

@@ -1,5 +1,5 @@
//+build freebsd, openbsd, netbsd
//+private
#+build freebsd, openbsd, netbsd
#+private
package runtime
foreign import libc "system:c"

View File

@@ -1,5 +1,5 @@
//+build darwin
//+private
#+build darwin
#+private
package runtime
import "base:intrinsics"

View File

@@ -1,5 +1,5 @@
//+build freestanding
//+private
#+build freestanding
#+private
package runtime
// TODO(bill): reimplement `os.write`

View File

@@ -1,5 +1,5 @@
//+build haiku
//+private
#+build haiku
#+private
package runtime
foreign import libc "system:c"

View File

@@ -1,5 +1,5 @@
//+build js
//+private
#+build js
#+private
package runtime
foreign import "odin_env"

View File

@@ -1,4 +1,4 @@
//+private
#+private
package runtime
import "base:intrinsics"

View File

@@ -1,5 +1,5 @@
//+build orca
//+private
#+build orca
#+private
package runtime
import "base:intrinsics"

View File

@@ -1,5 +1,5 @@
//+build wasi
//+private
#+build wasi
#+private
package runtime
foreign import wasi "wasi_snapshot_preview1"

View File

@@ -1,5 +1,5 @@
//+build windows
//+private
#+build windows
#+private
package runtime
foreign import kernel32 "system:Kernel32.lib"

View File

@@ -1,4 +1,4 @@
//+private
#+private
package runtime
foreign import "system:Foundation.framework"

View File

@@ -1,4 +1,4 @@
//+build js
#+build js
package runtime
init_default_context_for_js: Context

View File

@@ -1,4 +1,4 @@
//+build wasm32, wasm64p32
#+build wasm32, wasm64p32
package runtime
@(private="file")

View File

@@ -1,5 +1,5 @@
//+private
//+no-instrumentation
#+private
#+no-instrumentation
package runtime
foreign import kernel32 "system:Kernel32.lib"

View File

@@ -1,5 +1,5 @@
//+private
//+no-instrumentation
#+private
#+no-instrumentation
package runtime
@require foreign import "system:int64.lib"

View File

@@ -1,4 +1,4 @@
//+build wasm32, wasm64p32
#+build wasm32, wasm64p32
package runtime
import "base:intrinsics"

View File

@@ -1,4 +1,4 @@
//+vet !using-param
#+vet !using-param
package compress_zlib
/*

View File

@@ -1,4 +1,4 @@
//+build amd64
#+build amd64
package aes_hw_intel
import "core:sys/info"

View File

@@ -20,7 +20,7 @@
// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
// THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
//+build amd64
#+build amd64
package aes_hw_intel
import "base:intrinsics"

View File

@@ -20,7 +20,7 @@
// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
// THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
//+build amd64
#+build amd64
package aes_hw_intel
import "base:intrinsics"

View File

@@ -1,4 +1,4 @@
//+build amd64
#+build amd64
package chacha20_simd256
import "base:intrinsics"

View File

@@ -1,4 +1,4 @@
//+build !amd64
#+build !amd64
package chacha20_simd256
import "base:intrinsics"

View File

@@ -1,4 +1,4 @@
//+build amd64
#+build amd64
package aes
import "base:intrinsics"

View File

@@ -1,4 +1,4 @@
//+build amd64
#+build amd64
package aes
import "base:intrinsics"

View File

@@ -1,4 +1,4 @@
//+build amd64
#+build amd64
package aes
import "base:intrinsics"

View File

@@ -1,4 +1,4 @@
//+build !amd64
#+build !amd64
package aes
@(private = "file")

View File

@@ -1,4 +1,4 @@
//+build amd64
#+build amd64
package aes
import "core:crypto/_aes/hw_intel"

View File

@@ -1,4 +1,4 @@
//+build freebsd, openbsd, netbsd
#+build freebsd, openbsd, netbsd
package crypto
foreign import libc "system:c"

View File

@@ -1,10 +1,10 @@
//+build !linux
//+build !windows
//+build !openbsd
//+build !freebsd
//+build !netbsd
//+build !darwin
//+build !js
#+build !linux
#+build !windows
#+build !openbsd
#+build !freebsd
#+build !netbsd
#+build !darwin
#+build !js
package crypto
HAS_RAND_BYTES :: false

View File

@@ -1,5 +1,5 @@
//+private file
//+build linux, darwin
#+private file
#+build linux, darwin
package debug_trace
import "base:intrinsics"

View File

@@ -1,6 +1,6 @@
//+build !windows
//+build !linux
//+build !darwin
#+build !windows
#+build !linux
#+build !darwin
package debug_trace
import "base:runtime"

View File

@@ -1,5 +1,5 @@
//+private
//+build windows
#+private
#+build windows
package debug_trace
import "base:intrinsics"

View File

@@ -1,5 +1,5 @@
//+build js
//+private
#+build js
#+private
package dynlib
_load_library :: proc(path: string, global_symbols := false) -> (Library, bool) {

View File

@@ -1,5 +1,5 @@
//+build linux, darwin, freebsd, openbsd, netbsd
//+private
#+build linux, darwin, freebsd, openbsd, netbsd
#+private
package dynlib
import "core:os"

View File

@@ -1,5 +1,5 @@
//+build windows
//+private
#+build windows
#+private
package dynlib
import win32 "core:sys/windows"

View File

@@ -1,4 +1,4 @@
//+build netbsd, openbsd
#+build netbsd, openbsd
package flags
import "base:runtime"

View File

@@ -1,5 +1,5 @@
//+build !netbsd
//+build !openbsd
#+build !netbsd
#+build !openbsd
package flags
import "base:runtime"

View File

@@ -1,4 +1,4 @@
//+private
#+private
package flags
import "base:intrinsics"

View File

@@ -1,4 +1,4 @@
//+private
#+private
package flags
import "core:container/bit_array"

View File

@@ -1,4 +1,4 @@
//+private
#+private
package flags
import "base:intrinsics"

View File

@@ -1,6 +1,6 @@
//+private
//+build !netbsd
//+build !openbsd
#+private
#+build !netbsd
#+build !openbsd
package flags
import "core:net"

View File

@@ -1,4 +1,4 @@
//+private
#+private
package flags
@require import "base:runtime"

View File

@@ -1,4 +1,4 @@
//+build ignore
#+build ignore
package custom_formatter_example
import "core:fmt"
import "core:io"

View File

@@ -1,4 +1,4 @@
//+build js
#+build js
package fmt
import "core:bufio"

View File

@@ -1,6 +1,6 @@
//+build !freestanding
//+build !js
//+build !orca
#+build !freestanding
#+build !js
#+build !orca
package fmt
import "base:runtime"

View File

@@ -1,4 +1,4 @@
//+build js
#+build js
package core_image_bmp
load :: proc{load_from_bytes, load_from_context}

View File

@@ -1,4 +1,4 @@
//+build !js
#+build !js
package core_image_bmp
import "core:os"

View File

@@ -1,4 +1,4 @@
//+build js
#+build js
package image
load :: proc{

View File

@@ -1,4 +1,4 @@
//+build !js
#+build !js
package image
import "core:os"

View File

@@ -1,4 +1,4 @@
//+vet !using-stmt
#+vet !using-stmt
package netpbm
import "core:bytes"

View File

@@ -1,4 +1,4 @@
//+build js
#+build js
package netpbm
load :: proc {

View File

@@ -1,4 +1,4 @@
//+build !js
#+build !js
package netpbm
import "core:os"

View File

@@ -8,7 +8,7 @@
*/
//+vet !using-stmt
#+vet !using-stmt
package png
import "core:compress"

View File

@@ -1,4 +1,4 @@
//+build js
#+build js
package png
load :: proc{load_from_bytes, load_from_context}

View File

@@ -1,4 +1,4 @@
//+build !js
#+build !js
package png
import "core:os"

View File

@@ -1,4 +1,4 @@
//+build js
#+build js
package qoi
save :: proc{save_to_buffer}

View File

@@ -1,4 +1,4 @@
//+build !js
#+build !js
package qoi
import "core:os"

View File

@@ -1,4 +1,4 @@
//+build js
#+build js
package tga
save :: proc{save_to_buffer}

View File

@@ -1,4 +1,4 @@
//+build !js
#+build !js
package tga
import "core:os"

View File

@@ -1,5 +1,5 @@
//+build !freestanding
//+build !orca
#+build !freestanding
#+build !orca
package log
import "core:encoding/ansi"

View File

@@ -7,7 +7,7 @@
The code started out as an idiomatic source port of libTomMath, which is in the public domain, with thanks.
*/
//+build ignore
#+build ignore
package math_big
import "core:time"

View File

@@ -1,4 +1,4 @@
//+build !js
#+build !js
package math
import "base:intrinsics"

View File

@@ -1,4 +1,4 @@
//+build js
#+build js
package math
import "base:intrinsics"

View File

@@ -4,7 +4,7 @@
Ported from https://github.com/KdotJPG/OpenSimplex2.
Copyright 2022 Yuki2 (https://github.com/NoahR02)
*/
//+private
#+private
package math_noise
/*

View File

@@ -1,4 +1,4 @@
//+build !freestanding
#+build !freestanding
package mem
import "core:sync"

View File

@@ -1,4 +1,4 @@
//+build !freestanding
#+build !freestanding
package mem
import "base:runtime"

View File

@@ -1,5 +1,5 @@
//+build linux
//+private
#+build linux
#+private
package mem_virtual
import "core:sys/linux"

View File

@@ -1,10 +1,10 @@
//+private
//+build !darwin
//+build !freebsd
//+build !openbsd
//+build !netbsd
//+build !linux
//+build !windows
#+private
#+build !darwin
#+build !freebsd
#+build !openbsd
#+build !netbsd
#+build !linux
#+build !windows
package mem_virtual
_reserve :: proc "contextless" (size: uint) -> (data: []byte, err: Allocator_Error) {

View File

@@ -1,4 +1,4 @@
//+private
#+private
package mem_virtual
Platform_Memory_Block :: struct {

View File

@@ -1,5 +1,5 @@
//+build darwin, netbsd, freebsd, openbsd
//+private
#+build darwin, netbsd, freebsd, openbsd
#+private
package mem_virtual
import "core:sys/posix"

View File

@@ -1,5 +1,5 @@
//+build windows
//+private
#+build windows
#+private
package mem_virtual
foreign import Kernel32 "system:Kernel32.lib"

View File

@@ -1,4 +1,4 @@
// +build windows, linux, darwin, freebsd
#+build windows, linux, darwin, freebsd
package net
/*

View File

@@ -1,4 +1,4 @@
// +build windows, linux, darwin, freebsd
#+build windows, linux, darwin, freebsd
package net
/*

View File

@@ -1,4 +1,4 @@
// +build windows, linux, darwin, freebsd
#+build windows, linux, darwin, freebsd
package net
/*

View File

@@ -1,4 +1,4 @@
//+build linux, darwin, freebsd
#+build linux, darwin, freebsd
package net
/*
Package net implements cross-platform Berkeley Sockets, DNS resolution and associated procedures.

View File

@@ -1,4 +1,4 @@
//+build windows
#+build windows
package net
/*

View File

@@ -1,5 +1,5 @@
#+build darwin
package net
// +build darwin
/*
Package net implements cross-platform Berkeley Sockets, DNS resolution and associated procedures.

View File

@@ -1,4 +1,4 @@
//+build freebsd
#+build freebsd
package net
/*

View File

@@ -1,5 +1,5 @@
#+build linux
package net
// +build linux
/*
Package net implements cross-platform Berkeley Sockets, DNS resolution and associated procedures.

View File

@@ -1,5 +1,5 @@
#+build windows
package net
// +build windows
/*
Package net implements cross-platform Berkeley Sockets, DNS resolution and associated procedures.

View File

@@ -1,4 +1,4 @@
// +build windows, linux, darwin, freebsd
#+build windows, linux, darwin, freebsd
package net
/*

View File

@@ -1,5 +1,5 @@
#+build darwin
package net
//+build darwin
/*
Package net implements cross-platform Berkeley Sockets, DNS resolution and associated procedures.

View File

@@ -1,4 +1,4 @@
//+build freebsd
#+build freebsd
package net
/*

View File

@@ -1,5 +1,5 @@
#+build linux
package net
//+build linux
/*
Package net implements cross-platform Berkeley Sockets, DNS resolution and associated procedures.

View File

@@ -1,5 +1,5 @@
#+build windows
package net
//+build windows
/*
Package net implements cross-platform Berkeley Sockets, DNS resolution and associated procedures.

View File

@@ -1,4 +1,4 @@
// +build windows, linux, darwin, freebsd
#+build windows, linux, darwin, freebsd
package net
/*

View File

@@ -1,5 +1,5 @@
#+build darwin
package net
// +build darwin
/*
Package net implements cross-platform Berkeley Sockets, DNS resolution and associated procedures.

View File

@@ -1,4 +1,4 @@
//+build freebsd
#+build freebsd
package net
/*

View File

@@ -1,5 +1,5 @@
#+build linux
package net
// +build linux
/*
Package net implements cross-platform Berkeley Sockets, DNS resolution and associated procedures.

View File

@@ -1,5 +1,5 @@
#+build windows
package net
// +build windows
/*
Package net implements cross-platform Berkeley Sockets, DNS resolution and associated procedures.

View File

@@ -69,6 +69,7 @@ File :: struct {
fullpath: string,
src: string,
tags: [dynamic]tokenizer.Token,
docs: ^Comment_Group,
pkg_decl: ^Package_Decl,

View File

@@ -51,7 +51,7 @@ get_build_arch_from_string :: proc(str: string) -> runtime.Odin_Arch_Type {
parse_file_tags :: proc(file: ast.File, allocator := context.allocator) -> (tags: File_Tags) {
context.allocator = allocator
if file.docs == nil {
if file.docs == nil && file.tags == nil {
return
}
@@ -95,11 +95,9 @@ parse_file_tags :: proc(file: ast.File, allocator := context.allocator) -> (tags
build_project_names: [dynamic][]string
defer shrink(&build_project_names)
for comment in file.docs.list {
if len(comment.text) < 3 || comment.text[:2] != "//" {
continue
}
text := comment.text[2:]
parse_tag :: proc(text: string, tags: ^File_Tags, build_kinds: ^[dynamic]Build_Kind,
build_project_name_strings: ^[dynamic]string,
build_project_names: ^[dynamic][]string) {
i := 0
skip_whitespace(text, &i)
@@ -124,7 +122,7 @@ parse_file_tags :: proc(file: ast.File, allocator := context.allocator) -> (tags
groups_loop: for {
index_start := len(build_project_name_strings)
defer append(&build_project_names, build_project_name_strings[index_start:])
defer append(build_project_names, build_project_name_strings[index_start:])
for {
skip_whitespace(text, &i)
@@ -143,10 +141,10 @@ parse_file_tags :: proc(file: ast.File, allocator := context.allocator) -> (tags
}
scan_value(text, &i)
append(&build_project_name_strings, text[name_start:i])
append(build_project_name_strings, text[name_start:i])
}
append(&build_project_names, build_project_name_strings[index_start:])
append(build_project_names, build_project_name_strings[index_start:])
}
case "build":
kinds_loop: for {
@@ -156,7 +154,7 @@ parse_file_tags :: proc(file: ast.File, allocator := context.allocator) -> (tags
arch_positive: runtime.Odin_Arch_Types
arch_negative: runtime.Odin_Arch_Types
defer append(&build_kinds, Build_Kind{
defer append(build_kinds, Build_Kind{
os = (os_positive == {} ? runtime.ALL_ODIN_OS_TYPES : os_positive) -os_negative,
arch = (arch_positive == {} ? runtime.ALL_ODIN_ARCH_TYPES : arch_positive)-arch_negative,
})
@@ -200,6 +198,27 @@ parse_file_tags :: proc(file: ast.File, allocator := context.allocator) -> (tags
}
}
if file.docs != nil {
for comment in file.docs.list {
if len(comment.text) < 3 || comment.text[:2] != "//" {
continue
}
text := comment.text[2:]
parse_tag(text, &tags, &build_kinds, &build_project_name_strings, &build_project_names)
}
}
for tag in file.tags {
if len(tag.text) < 3 || tag.text[:2] != "#+" {
continue
}
// Only skip # because parse_tag skips the plus
text := tag.text[1:]
parse_tag(text, &tags, &build_kinds, &build_project_name_strings, &build_project_names)
}
tags.build = build_kinds[:]
tags.build_project_name = build_project_names[:]

Some files were not shown because too many files have changed in this diff Show More