Skip to content

Commit df041fe

Browse files
authored
v.pref: cleanup conditions in os.v and arch.c.v (#21395)
1 parent b632ef6 commit df041fe

File tree

2 files changed

+113
-217
lines changed

2 files changed

+113
-217
lines changed

vlib/v/pref/arch.c.v

Lines changed: 13 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -29,42 +29,18 @@ pub fn get_host_arch() Arch {
2929
}
3030

3131
pub fn arch_from_string(arch_str string) !Arch {
32-
match arch_str {
33-
'amd64', 'x86_64', 'x64', 'x86' { // amd64 recommended
34-
return .amd64
35-
}
36-
'aarch64', 'arm64' { // arm64 recommended
37-
return .arm64
38-
}
39-
'aarch32', 'arm32', 'arm' { // arm32 recommended
40-
return .arm32
41-
}
42-
'rv64', 'riscv64', 'risc-v64', 'riscv', 'risc-v' { // rv64 recommended
43-
return .rv64
44-
}
45-
'rv32', 'riscv32' { // rv32 recommended
46-
return .rv32
47-
}
48-
'x86_32', 'x32', 'i386', 'IA-32', 'ia-32', 'ia32' { // i386 recommended
49-
return .i386
50-
}
51-
'js', 'js_node' {
52-
return .js_node
53-
}
54-
'js_browser' {
55-
return .js_browser
56-
}
57-
'js_freestanding' {
58-
return .js_freestanding
59-
}
60-
'wasm32', 'wasm' {
61-
return .wasm32
62-
}
63-
'' {
64-
return ._auto
65-
}
66-
else {
67-
return error('invalid arch: ${arch_str}')
68-
}
32+
return match arch_str {
33+
'amd64', 'x86_64', 'x64', 'x86' { .amd64 } // amd64 recommended
34+
'aarch64', 'arm64' { .arm64 } // arm64 recommended
35+
'aarch32', 'arm32', 'arm' { .arm32 } // arm32 recommended
36+
'rv64', 'riscv64', 'risc-v64', 'riscv', 'risc-v' { .rv64 } // rv64 recommended
37+
'rv32', 'riscv32' { .rv32 } // rv32 recommended
38+
'x86_32', 'x32', 'i386', 'IA-32', 'ia-32', 'ia32' { .i386 } // i386 recommended
39+
'js', 'js_node' { .js_node }
40+
'js_browser' { .js_browser }
41+
'js_freestanding' { .js_freestanding }
42+
'wasm32', 'wasm' { .wasm32 }
43+
'' { ._auto }
44+
else { error('invalid arch: ${arch_str}') }
6945
}
7046
}

vlib/v/pref/os.v

Lines changed: 100 additions & 180 deletions
Original file line numberDiff line numberDiff line change
@@ -37,196 +37,116 @@ pub enum OS {
3737

3838
// Helper function to convert string names to OS enum
3939
pub fn os_from_string(os_str string) !OS {
40-
match os_str {
41-
'' {
42-
return ._auto
43-
}
44-
'linux' {
45-
return .linux
46-
}
47-
'nix' {
48-
return .linux
49-
}
50-
'windows' {
51-
return .windows
52-
}
53-
'ios' {
54-
return .ios
55-
}
56-
'macos' {
57-
return .macos
58-
}
59-
'darwin' {
60-
return .macos
61-
}
62-
'freebsd' {
63-
return .freebsd
64-
}
65-
'openbsd' {
66-
return .openbsd
67-
}
68-
'netbsd' {
69-
return .netbsd
70-
}
71-
'dragonfly' {
72-
return .dragonfly
73-
}
74-
'js', 'js_node' {
75-
return .js_node
76-
}
77-
'js_freestanding' {
78-
return .js_freestanding
79-
}
80-
'js_browser' {
81-
return .js_browser
82-
}
83-
'solaris' {
84-
return .solaris
85-
}
86-
'serenity' {
87-
return .serenity
88-
}
89-
'qnx' {
90-
return .qnx
91-
}
92-
'plan9' {
93-
return .plan9
94-
}
95-
'vinix' {
96-
return .vinix
97-
}
98-
'android' {
99-
return .android
100-
}
101-
'termux' {
102-
return .termux
103-
}
104-
'haiku' {
105-
return .haiku
106-
}
107-
'raw' {
108-
return .raw
109-
}
110-
// WASM options:
111-
'wasm32' {
112-
return .wasm32
113-
}
114-
'wasm32_wasi' {
115-
return .wasm32_wasi
116-
}
117-
'wasm32_emscripten' {
118-
return .wasm32_emscripten
119-
}
120-
// Native WASM options:
121-
'browser' {
122-
return .browser
123-
}
124-
'wasi' {
125-
return .wasi
126-
}
127-
else {
128-
return error('bad OS ${os_str}')
129-
}
40+
return match os_str {
41+
'' { ._auto }
42+
'linux', 'nix' { .linux }
43+
'windows' { .windows }
44+
'ios' { .ios }
45+
'macos', 'darwin' { .macos }
46+
'freebsd' { .freebsd }
47+
'openbsd' { .openbsd }
48+
'netbsd' { .netbsd }
49+
'dragonfly' { .dragonfly }
50+
'js', 'js_node' { .js_node }
51+
'js_freestanding' { .js_freestanding }
52+
'js_browser' { .js_browser }
53+
'solaris' { .solaris }
54+
'qnx' { .qnx }
55+
'serenity' { .serenity }
56+
'plan9' { .plan9 }
57+
'vinix' { .vinix }
58+
'android' { .android }
59+
'termux' { .termux }
60+
'haiku' { .haiku }
61+
'raw' { .raw }
62+
'wasm32' { .wasm32 }
63+
'wasm32_wasi' { .wasm32_wasi }
64+
'wasm32_emscripten' { .wasm32_emscripten }
65+
'browser' { .browser }
66+
'wasi' { .wasi }
67+
else { return error('bad OS ${os_str}') }
13068
}
13169
}
13270

13371
pub fn (o OS) str() string {
134-
match o {
135-
._auto { return 'RESERVED: AUTO' }
136-
.ios { return 'iOS' }
137-
.macos { return 'MacOS' }
138-
.linux { return 'Linux' }
139-
.windows { return 'Windows' }
140-
.freebsd { return 'FreeBSD' }
141-
.openbsd { return 'OpenBSD' }
142-
.netbsd { return 'NetBSD' }
143-
.dragonfly { return 'Dragonfly' }
144-
.js_node { return 'NodeJS' }
145-
.js_freestanding { return 'JavaScript' }
146-
.js_browser { return 'JavaScript(Browser)' }
147-
.android { return 'Android' }
148-
.termux { return 'Termux' }
149-
.solaris { return 'Solaris' }
150-
.qnx { return 'QNX' }
151-
.serenity { return 'SerenityOS' }
152-
.plan9 { return 'Plan9' }
153-
.vinix { return 'Vinix' }
154-
.haiku { return 'Haiku' }
155-
.wasm32 { return 'WebAssembly' }
156-
.wasm32_emscripten { return 'WebAssembly(Emscripten)' }
157-
.wasm32_wasi { return 'WebAssembly(WASI)' }
158-
.browser { return 'browser' }
159-
.wasi { return 'wasi' }
160-
.raw { return 'Raw' }
161-
.all { return 'all' }
72+
return match o {
73+
._auto { 'RESERVED: AUTO' }
74+
.ios { 'iOS' }
75+
.macos { 'MacOS' }
76+
.linux { 'Linux' }
77+
.windows { 'Windows' }
78+
.freebsd { 'FreeBSD' }
79+
.openbsd { 'OpenBSD' }
80+
.netbsd { 'NetBSD' }
81+
.dragonfly { 'Dragonfly' }
82+
.js_node { 'NodeJS' }
83+
.js_freestanding { 'JavaScript' }
84+
.js_browser { 'JavaScript(Browser)' }
85+
.android { 'Android' }
86+
.termux { 'Termux' }
87+
.solaris { 'Solaris' }
88+
.qnx { 'QNX' }
89+
.serenity { 'SerenityOS' }
90+
.plan9 { 'Plan9' }
91+
.vinix { 'Vinix' }
92+
.haiku { 'Haiku' }
93+
.wasm32 { 'WebAssembly' }
94+
.wasm32_emscripten { 'WebAssembly(Emscripten)' }
95+
.wasm32_wasi { 'WebAssembly(WASI)' }
96+
.browser { 'browser' }
97+
.wasi { 'wasi' }
98+
.raw { 'Raw' }
99+
.all { 'all' }
162100
}
163101
}
164102

165103
pub fn get_host_os() OS {
166104
if os.getenv('TERMUX_VERSION') != '' {
167105
return .termux
168106
}
169-
$if android {
170-
return .android
107+
return $if emscripten ? {
108+
.wasm32_emscripten
109+
// TODO: make this work:
110+
// $else $if wasm32_emscripten {
111+
// .wasm32_emscripten
112+
} $else $if linux {
113+
.linux
114+
} $else $if ios {
115+
.ios
116+
} $else $if macos {
117+
.macos
118+
} $else $if windows {
119+
.windows
120+
} $else $if freebsd {
121+
.freebsd
122+
} $else $if openbsd {
123+
.openbsd
124+
} $else $if netbsd {
125+
.netbsd
126+
} $else $if dragonfly {
127+
.dragonfly
128+
} $else $if js_node {
129+
.js_node
130+
} $else $if js_freestanding {
131+
.js_freestanding
132+
} $else $if js_browser {
133+
.js_browser
134+
} $else $if js {
135+
.js_node
136+
} $else $if serenity {
137+
.serenity
138+
// } $else $if plan9 {
139+
// .plan9
140+
} $else $if android {
141+
.android
142+
} $else $if solaris {
143+
.solaris
144+
} $else $if vinix {
145+
.vinix
146+
} $else $if haiku {
147+
.haiku
148+
} $else {
149+
panic('unknown host OS')
150+
return ._auto
171151
}
172-
$if emscripten ? {
173-
return .wasm32_emscripten
174-
}
175-
// TODO: make this work:
176-
// $if wasm32_emscripten {
177-
// return .wasm32_emscripten
178-
// }
179-
$if linux {
180-
return .linux
181-
}
182-
$if ios {
183-
return .ios
184-
}
185-
$if macos {
186-
return .macos
187-
}
188-
$if windows {
189-
return .windows
190-
}
191-
$if freebsd {
192-
return .freebsd
193-
}
194-
$if openbsd {
195-
return .openbsd
196-
}
197-
$if netbsd {
198-
return .netbsd
199-
}
200-
$if dragonfly {
201-
return .dragonfly
202-
}
203-
$if serenity {
204-
return .serenity
205-
}
206-
//$if plan9 {
207-
// return .plan9
208-
//}
209-
$if vinix {
210-
return .vinix
211-
}
212-
$if solaris {
213-
return .solaris
214-
}
215-
$if haiku {
216-
return .haiku
217-
}
218-
$if js_node {
219-
return .js_node
220-
}
221-
$if js_freestanding {
222-
return .js_freestanding
223-
}
224-
$if js_browser {
225-
return .js_browser
226-
}
227-
$if js {
228-
return .js_node
229-
}
230-
panic('unknown host OS')
231-
return ._auto
232152
}

0 commit comments

Comments
 (0)