diff options
author | Ryan Dahl <ry@tinyclouds.org> | 2020-04-28 12:35:23 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-04-28 12:35:23 -0400 |
commit | e0ca60e7707b5896ce67301aefd1de4a76e3cf75 (patch) | |
tree | 4c5357a3d3482b14cbc3773374aa885e1e29e90c /cli | |
parent | f7ab19b1b7ba929f7fd1550e2e4ecebe91cd9ea3 (diff) |
BREAKING: Use LLVM target triple for Deno.build (#4948)
Deno.build.os values have changed to correspond to standard LLVM target triples
"win" -> "windows"
"mac" -> "darwin"
Diffstat (limited to 'cli')
35 files changed, 137 insertions, 156 deletions
diff --git a/cli/build.rs b/cli/build.rs index f49cde386..2ea00a25d 100644 --- a/cli/build.rs +++ b/cli/build.rs @@ -20,6 +20,11 @@ fn main() { deno_typescript::ts_version() ); + println!( + "cargo:rustc-env=TARGET={}", + std::env::var("TARGET").unwrap() + ); + let extern_crate_modules = include_crate_modules![deno_core]; // The generation of snapshots is slow and often unnecessary. Until we figure diff --git a/cli/js/build.ts b/cli/js/build.ts index f00c5b463..676e056eb 100644 --- a/cli/js/build.ts +++ b/cli/js/build.ts @@ -1,24 +1,19 @@ // Copyright 2018-2020 the Deno authors. All rights reserved. MIT license. -export type OperatingSystem = "mac" | "win" | "linux"; - -export type Arch = "x64" | "arm64"; - -// Do not add unsupported platforms. -export interface BuildInfo { - arch: Arch; - - os: OperatingSystem; -} - -export const build: BuildInfo = { - arch: "" as Arch, - os: "" as OperatingSystem, +export const build = { + target: "unknown", + arch: "unknown", + os: "unknown", + vendor: "unknown", + env: undefined as string | undefined, }; -export function setBuildInfo(os: OperatingSystem, arch: Arch): void { - build.os = os; +export function setBuildInfo(target: string): void { + const [arch, vendor, os, env] = target.split("-", 4); + build.target = target; build.arch = arch; - + build.vendor = vendor; + build.os = os; + build.env = env; Object.freeze(build); } diff --git a/cli/js/deno.ts b/cli/js/deno.ts index ed4c6d5c3..3e1a2b263 100644 --- a/cli/js/deno.ts +++ b/cli/js/deno.ts @@ -8,7 +8,7 @@ export { writeAll, writeAllSync, } from "./buffer.ts"; -export { build, OperatingSystem, Arch } from "./build.ts"; +export { build } from "./build.ts"; export { chmodSync, chmod } from "./ops/fs/chmod.ts"; export { chownSync, chown } from "./ops/fs/chown.ts"; export { transpileOnly, compile, bundle } from "./compiler/api.ts"; diff --git a/cli/js/lib.deno.ns.d.ts b/cli/js/lib.deno.ns.d.ts index 2f4ec2155..0c6f8ab18 100644 --- a/cli/js/lib.deno.ns.d.ts +++ b/cli/js/lib.deno.ns.d.ts @@ -40,7 +40,7 @@ declare namespace Deno { * * Deno.test({ * name: "example ignored test", - * ignore: Deno.build.os === "win" + * ignore: Deno.build.os === "windows" * fn(): void { * // This test is ignored only on Windows machines * }, @@ -2365,19 +2365,19 @@ declare namespace Deno { */ export function inspect(value: unknown, options?: InspectOptions): string; - export type OperatingSystem = "mac" | "win" | "linux"; - - export type Arch = "x64" | "arm64"; - - interface BuildInfo { - /** The CPU architecture. */ - arch: Arch; - /** The operating system. */ - os: OperatingSystem; - } - /** Build related information. */ - export const build: BuildInfo; + export const build: { + /** The LLVM target triple */ + target: string; + /** Instruction set architecture */ + arch: "x86_64"; + /** Operating system */ + os: "darwin" | "linux" | "windows"; + /** Computer vendor */ + vendor: string; + /** Optional environment */ + env?: string; + }; interface Version { deno: string; diff --git a/cli/js/ops/fs/stat.ts b/cli/js/ops/fs/stat.ts index 7f28614d2..c3563a8c4 100644 --- a/cli/js/ops/fs/stat.ts +++ b/cli/js/ops/fs/stat.ts @@ -45,7 +45,7 @@ export interface StatResponse { // @internal export function parseFileInfo(response: StatResponse): FileInfo { - const isUnix = build.os === "mac" || build.os === "linux"; + const isUnix = build.os === "darwin" || build.os === "linux"; return { isFile: response.isFile, isDirectory: response.isDirectory, diff --git a/cli/js/ops/fs/symlink.ts b/cli/js/ops/fs/symlink.ts index 4f9c85f7b..64074ec2d 100644 --- a/cli/js/ops/fs/symlink.ts +++ b/cli/js/ops/fs/symlink.ts @@ -8,7 +8,7 @@ export function symlinkSync( newpath: string, type?: string ): void { - if (build.os === "win" && type) { + if (build.os === "windows" && type) { return util.notImplemented(); } sendSync("op_symlink", { oldpath, newpath }); @@ -19,7 +19,7 @@ export async function symlink( newpath: string, type?: string ): Promise<void> { - if (build.os === "win" && type) { + if (build.os === "windows" && type) { return util.notImplemented(); } await sendAsync("op_symlink", { oldpath, newpath }); diff --git a/cli/js/ops/process.ts b/cli/js/ops/process.ts index fcfa7b9f5..4fba4d2de 100644 --- a/cli/js/ops/process.ts +++ b/cli/js/ops/process.ts @@ -4,7 +4,7 @@ import { assert } from "../util.ts"; import { build } from "../build.ts"; export function kill(pid: number, signo: number): void { - if (build.os === "win") { + if (build.os === "windows") { throw new Error("Not yet implemented"); } sendSync("op_kill", { pid, signo }); diff --git a/cli/js/ops/runtime.ts b/cli/js/ops/runtime.ts index 262e46231..247f0576d 100644 --- a/cli/js/ops/runtime.ts +++ b/cli/js/ops/runtime.ts @@ -2,11 +2,6 @@ import { sendSync } from "./dispatch_json.ts"; -// TODO(bartlomieju): these two types are duplicated -// in `cli/js/build.ts` - deduplicate -export type OperatingSystem = "mac" | "win" | "linux"; -export type Arch = "x64" | "arm64"; - export interface Start { cwd: string; pid: number; @@ -21,11 +16,10 @@ export interface Start { v8Version: string; tsVersion: string; noColor: boolean; - os: OperatingSystem; - arch: Arch; + target: string; } -export function start(): Start { +export function opStart(): Start { return sendSync("op_start"); } diff --git a/cli/js/runtime.ts b/cli/js/runtime.ts index d586503af..e16cee228 100644 --- a/cli/js/runtime.ts +++ b/cli/js/runtime.ts @@ -6,7 +6,7 @@ import * as util from "./util.ts"; import { setBuildInfo } from "./build.ts"; import { setVersions } from "./version.ts"; import { setPrepareStackTrace } from "./error_stack.ts"; -import { Start, start as startOp } from "./ops/runtime.ts"; +import { Start, opStart } from "./ops/runtime.ts"; import { handleTimerMacrotask } from "./web/timers.ts"; export let OPS_CACHE: { [name: string]: number }; @@ -36,12 +36,10 @@ export function start(source?: string): Start { // First we send an empty `Start` message to let the privileged side know we // are ready. The response should be a `StartRes` message containing the CLI // args and other info. - const s = startOp(); - + const s = opStart(); setVersions(s.denoVersion, s.v8Version, s.tsVersion); - setBuildInfo(s.os, s.arch); + setBuildInfo(s.target); util.setLogDebug(s.debugFlag, source); - setPrepareStackTrace(Error); return s; } diff --git a/cli/js/signals.ts b/cli/js/signals.ts index e7fd8c04d..2e29528e1 100644 --- a/cli/js/signals.ts +++ b/cli/js/signals.ts @@ -75,7 +75,7 @@ enum MacOSSignal { export const Signal: { [key: string]: number } = {}; export function setSignals(): void { - if (build.os === "mac") { + if (build.os === "darwin") { Object.assign(Signal, MacOSSignal); } else { Object.assign(Signal, LinuxSignal); @@ -83,7 +83,7 @@ export function setSignals(): void { } export function signal(signo: number): SignalStream { - if (build.os === "win") { + if (build.os === "windows") { throw new Error("not implemented!"); } return new SignalStream(signo); diff --git a/cli/js/tests/README.md b/cli/js/tests/README.md index ea8216d91..e48b03012 100644 --- a/cli/js/tests/README.md +++ b/cli/js/tests/README.md @@ -17,7 +17,7 @@ unitTest(function simpleTestFn(): void { }); unitTest({ - ignore: Deno.build.os === "win", + ignore: Deno.build.os === "windows", perms: { read: true, write: true }, }, function complexTestFn(): void { diff --git a/cli/js/tests/blob_test.ts b/cli/js/tests/blob_test.ts index af84c37a3..70f8fb3d5 100644 --- a/cli/js/tests/blob_test.ts +++ b/cli/js/tests/blob_test.ts @@ -66,7 +66,7 @@ unitTest(function nativeEndLine(): void { }; const blob = new Blob(["Hello\nWorld"], options); - assertEquals(blob.size, Deno.build.os === "win" ? 12 : 11); + assertEquals(blob.size, Deno.build.os === "windows" ? 12 : 11); }); unitTest(async function blobText(): Promise<void> { diff --git a/cli/js/tests/build_test.ts b/cli/js/tests/build_test.ts index 50c7b519c..987ed8d39 100644 --- a/cli/js/tests/build_test.ts +++ b/cli/js/tests/build_test.ts @@ -5,6 +5,6 @@ unitTest(function buildInfo(): void { // Deno.build is injected by rollup at compile time. Here // we check it has been properly transformed. const { arch, os } = Deno.build; - assert(arch === "x64"); - assert(os === "mac" || os === "win" || os === "linux"); + assert(arch.length > 0); + assert(os === "darwin" || os === "windows" || os === "linux"); }); diff --git a/cli/js/tests/chmod_test.ts b/cli/js/tests/chmod_test.ts index 8a534c701..d0d17629d 100644 --- a/cli/js/tests/chmod_test.ts +++ b/cli/js/tests/chmod_test.ts @@ -2,7 +2,7 @@ import { unitTest, assert, assertEquals } from "./test_util.ts"; unitTest( - { ignore: Deno.build.os === "win", perms: { read: true, write: true } }, + { ignore: Deno.build.os === "windows", perms: { read: true, write: true } }, function chmodSyncSuccess(): void { const enc = new TextEncoder(); const data = enc.encode("Hello"); @@ -21,7 +21,7 @@ unitTest( // Check symlink when not on windows unitTest( { - ignore: Deno.build.os === "win", + ignore: Deno.build.os === "windows", perms: { read: true, write: true }, }, function chmodSyncSymlinkSuccess(): void { @@ -73,7 +73,7 @@ unitTest({ perms: { write: false } }, function chmodSyncPerm(): void { }); unitTest( - { ignore: Deno.build.os === "win", perms: { read: true, write: true } }, + { ignore: Deno.build.os === "windows", perms: { read: true, write: true } }, async function chmodSuccess(): Promise<void> { const enc = new TextEncoder(); const data = enc.encode("Hello"); @@ -93,7 +93,7 @@ unitTest( unitTest( { - ignore: Deno.build.os === "win", + ignore: Deno.build.os === "windows", perms: { read: true, write: true }, }, async function chmodSymlinkSuccess(): Promise<void> { diff --git a/cli/js/tests/chown_test.ts b/cli/js/tests/chown_test.ts index 2d1dc7756..eb3a75ba7 100644 --- a/cli/js/tests/chown_test.ts +++ b/cli/js/tests/chown_test.ts @@ -2,7 +2,7 @@ import { unitTest, assertEquals, assert } from "./test_util.ts"; // chown on Windows is noop for now, so ignore its testing on Windows -if (Deno.build.os !== "win") { +if (Deno.build.os !== "windows") { async function getUidAndGid(): Promise<{ uid: number; gid: number }> { // get the user ID and group ID of the current process const uidProc = Deno.run({ diff --git a/cli/js/tests/dir_test.ts b/cli/js/tests/dir_test.ts index 75184587b..09236fa22 100644 --- a/cli/js/tests/dir_test.ts +++ b/cli/js/tests/dir_test.ts @@ -10,7 +10,7 @@ unitTest({ perms: { write: true } }, function dirCwdChdirSuccess(): void { const path = Deno.makeTempDirSync(); Deno.chdir(path); const current = Deno.cwd(); - if (Deno.build.os === "mac") { + if (Deno.build.os === "darwin") { assertEquals(current, "/private" + path); } else { assertEquals(current, path); @@ -20,7 +20,7 @@ unitTest({ perms: { write: true } }, function dirCwdChdirSuccess(): void { unitTest({ perms: { write: true } }, function dirCwdError(): void { // excluding windows since it throws resource busy, while removeSync - if (["linux", "mac"].includes(Deno.build.os)) { + if (["linux", "darwin"].includes(Deno.build.os)) { const initialdir = Deno.cwd(); const path = Deno.makeTempDirSync(); Deno.chdir(path); diff --git a/cli/js/tests/files_test.ts b/cli/js/tests/files_test.ts index eda484b2d..8952166db 100644 --- a/cli/js/tests/files_test.ts +++ b/cli/js/tests/files_test.ts @@ -172,7 +172,7 @@ unitTest( }); file.close(); const pathInfo = Deno.statSync(path); - if (Deno.build.os !== "win") { + if (Deno.build.os !== "windows") { assertEquals(pathInfo.mode! & 0o777, 0o626 & ~Deno.umask()); } } @@ -191,7 +191,7 @@ unitTest( }); file.close(); const pathInfo = Deno.statSync(path); - if (Deno.build.os !== "win") { + if (Deno.build.os !== "windows") { assertEquals(pathInfo.mode! & 0o777, 0o626 & ~Deno.umask()); } } diff --git a/cli/js/tests/fs_events_test.ts b/cli/js/tests/fs_events_test.ts index e31bb2619..ad8ba8502 100644 --- a/cli/js/tests/fs_events_test.ts +++ b/cli/js/tests/fs_events_test.ts @@ -20,7 +20,7 @@ unitTest({ perms: { read: true } }, function watchFsInvalidPath() { Deno.watchFs("non-existant.file"); } catch (err) { console.error(err); - if (Deno.build.os === "win") { + if (Deno.build.os === "windows") { assert( err.message.includes( "Input watch path is neither a file nor a directory" diff --git a/cli/js/tests/make_temp_test.ts b/cli/js/tests/make_temp_test.ts index 70ba01084..59fe8c5f5 100644 --- a/cli/js/tests/make_temp_test.ts +++ b/cli/js/tests/make_temp_test.ts @@ -31,7 +31,7 @@ unitTest( function makeTempDirSyncMode(): void { const path = Deno.makeTempDirSync(); const pathInfo = Deno.statSync(path); - if (Deno.build.os !== "win") { + if (Deno.build.os !== "windows") { assertEquals(pathInfo.mode! & 0o777, 0o700 & ~Deno.umask()); } } @@ -82,7 +82,7 @@ unitTest( async function makeTempDirMode(): Promise<void> { const path = await Deno.makeTempDir(); const pathInfo = Deno.statSync(path); - if (Deno.build.os !== "win") { + if (Deno.build.os !== "windows") { assertEquals(pathInfo.mode! & 0o777, 0o700 & ~Deno.umask()); } } @@ -119,7 +119,7 @@ unitTest( function makeTempFileSyncMode(): void { const path = Deno.makeTempFileSync(); const pathInfo = Deno.statSync(path); - if (Deno.build.os !== "win") { + if (Deno.build.os !== "windows") { assertEquals(pathInfo.mode! & 0o777, 0o600 & ~Deno.umask()); } } @@ -171,7 +171,7 @@ unitTest( async function makeTempFileMode(): Promise<void> { const path = await Deno.makeTempFile(); const pathInfo = Deno.statSync(path); - if (Deno.build.os !== "win") { + if (Deno.build.os !== "windows") { assertEquals(pathInfo.mode! & 0o777, 0o600 & ~Deno.umask()); } } diff --git a/cli/js/tests/mkdir_test.ts b/cli/js/tests/mkdir_test.ts index 20120f6b3..68755ef4d 100644 --- a/cli/js/tests/mkdir_test.ts +++ b/cli/js/tests/mkdir_test.ts @@ -4,7 +4,7 @@ import { unitTest, assert, assertEquals, assertThrows } from "./test_util.ts"; function assertDirectory(path: string, mode?: number): void { const info = Deno.lstatSync(path); assert(info.isDirectory); - if (Deno.build.os !== "win" && mode !== undefined) { + if (Deno.build.os !== "windows" && mode !== undefined) { assertEquals(info.mode! & 0o777, mode & ~Deno.umask()); } } @@ -126,7 +126,7 @@ unitTest( Deno.mkdirSync(path, { recursive: true }); Deno.mkdirSync(path, { recursive: true, mode: 0o731 }); assertDirectory(path, 0o737); - if (Deno.build.os != "win") { + if (Deno.build.os !== "windows") { const pathLink = path + "Link"; Deno.symlinkSync(path, pathLink); Deno.mkdirSync(pathLink, { recursive: true }); @@ -144,7 +144,7 @@ unitTest( await Deno.mkdir(path, { recursive: true }); await Deno.mkdir(path, { recursive: true, mode: 0o731 }); assertDirectory(path, 0o737); - if (Deno.build.os != "win") { + if (Deno.build.os !== "windows") { const pathLink = path + "Link"; Deno.symlinkSync(path, pathLink); await Deno.mkdir(pathLink, { recursive: true }); @@ -178,7 +178,7 @@ unitTest( Deno.mkdirSync(file, { recursive: true }); }, Deno.errors.AlreadyExists); - if (Deno.build.os !== "win") { + if (Deno.build.os !== "windows") { const fileLink = testDir + "/fileLink"; const dirLink = testDir + "/dirLink"; const danglingLink = testDir + "/danglingLink"; diff --git a/cli/js/tests/net_test.ts b/cli/js/tests/net_test.ts index 6eb0f0dc6..c8c9a893a 100644 --- a/cli/js/tests/net_test.ts +++ b/cli/js/tests/net_test.ts @@ -18,7 +18,7 @@ unitTest( { perms: { net: true }, // TODO: - ignore: Deno.build.os === "win", + ignore: Deno.build.os === "windows", }, function netUdpListenClose(): void { const socket = Deno.listen({ @@ -34,7 +34,7 @@ unitTest( ); unitTest( - { ignore: Deno.build.os === "win", perms: { read: true, write: true } }, + { ignore: Deno.build.os === "windows", perms: { read: true, write: true } }, function netUnixListenClose(): void { const filePath = Deno.makeTempFileSync(); const socket = Deno.listen({ @@ -48,7 +48,7 @@ unitTest( ); unitTest( - { ignore: Deno.build.os === "win", perms: { read: true, write: true } }, + { ignore: Deno.build.os === "windows", perms: { read: true, write: true } }, function netUnixPacketListenClose(): void { const filePath = Deno.makeTempFileSync(); const socket = Deno.listen({ @@ -82,7 +82,7 @@ unitTest( ); unitTest( - { ignore: Deno.build.os === "win", perms: { read: true, write: true } }, + { ignore: Deno.build.os === "windows", perms: { read: true, write: true } }, async function netUnixCloseWhileAccept(): Promise<void> { const filePath = await Deno.makeTempFile(); const listener = Deno.listen({ @@ -189,7 +189,7 @@ unitTest({ perms: { net: true } }, async function netTcpDialListen(): Promise< }); unitTest( - { ignore: Deno.build.os === "win", perms: { read: true, write: true } }, + { ignore: Deno.build.os === "windows", perms: { read: true, write: true } }, async function netUnixDialListen(): Promise<void> { const filePath = await Deno.makeTempFile(); const listener = Deno.listen({ address: filePath, transport: "unix" }); @@ -225,7 +225,7 @@ unitTest( ); unitTest( - { ignore: Deno.build.os === "win", perms: { net: true } }, + { ignore: Deno.build.os === "windows", perms: { net: true } }, async function netUdpSendReceive(): Promise<void> { const alice = Deno.listen({ port: 4500, transport: "udp" }); assert(alice.addr.transport === "udp"); @@ -253,7 +253,7 @@ unitTest( ); unitTest( - { ignore: Deno.build.os === "win", perms: { read: true, write: true } }, + { ignore: Deno.build.os === "windows", perms: { read: true, write: true } }, async function netUnixPacketSendReceive(): Promise<void> { const filePath = await Deno.makeTempFile(); const alice = Deno.listen({ address: filePath, transport: "unixpacket" }); @@ -293,7 +293,7 @@ unitTest( ); unitTest( - { ignore: Deno.build.os === "win", perms: { net: true } }, + { ignore: Deno.build.os === "windows", perms: { net: true } }, async function netUdpListenCloseWhileIterating(): Promise<void> { const socket = Deno.listen({ port: 8000, transport: "udp" }); const nextWhileClosing = socket[Symbol.asyncIterator]().next(); @@ -306,7 +306,7 @@ unitTest( ); unitTest( - { ignore: Deno.build.os === "win", perms: { read: true, write: true } }, + { ignore: Deno.build.os === "windows", perms: { read: true, write: true } }, async function netUnixListenCloseWhileIterating(): Promise<void> { const filePath = Deno.makeTempFileSync(); const socket = Deno.listen({ address: filePath, transport: "unix" }); @@ -320,7 +320,7 @@ unitTest( ); unitTest( - { ignore: Deno.build.os === "win", perms: { read: true, write: true } }, + { ignore: Deno.build.os === "windows", perms: { read: true, write: true } }, async function netUnixPacketListenCloseWhileIterating(): Promise<void> { const filePath = Deno.makeTempFileSync(); const socket = Deno.listen({ address: filePath, transport: "unixpacket" }); diff --git a/cli/js/tests/os_test.ts b/cli/js/tests/os_test.ts index 423cded50..58dcd1bc5 100644 --- a/cli/js/tests/os_test.ts +++ b/cli/js/tests/os_test.ts @@ -50,7 +50,7 @@ unitTest(function envPermissionDenied2(): void { // case-insensitive. Case normalization needs be done using the collation // that Windows uses, rather than naively using String.toLowerCase(). unitTest( - { ignore: Deno.build.os !== "win", perms: { env: true, run: true } }, + { ignore: Deno.build.os !== "windows", perms: { env: true, run: true } }, async function envCaseInsensitive() { // Utility function that runs a Deno subprocess with the environment // specified in `inputEnv`. The subprocess reads the environment variables @@ -116,7 +116,7 @@ unitTest(function osPid(): void { }); unitTest({ perms: { env: true } }, function getDir(): void { - type supportOS = "mac" | "win" | "linux"; + type supportOS = "darwin" | "windows" | "linux"; interface Runtime { os: supportOS; @@ -132,120 +132,120 @@ unitTest({ perms: { env: true } }, function getDir(): void { { kind: "config", runtime: [ - { os: "mac", shouldHaveValue: true }, - { os: "win", shouldHaveValue: true }, + { os: "darwin", shouldHaveValue: true }, + { os: "windows", shouldHaveValue: true }, { os: "linux", shouldHaveValue: true }, ], }, { kind: "cache", runtime: [ - { os: "mac", shouldHaveValue: true }, - { os: "win", shouldHaveValue: true }, + { os: "darwin", shouldHaveValue: true }, + { os: "windows", shouldHaveValue: true }, { os: "linux", shouldHaveValue: true }, ], }, { kind: "executable", runtime: [ - { os: "mac", shouldHaveValue: false }, - { os: "win", shouldHaveValue: false }, + { os: "darwin", shouldHaveValue: false }, + { os: "windows", shouldHaveValue: false }, { os: "linux", shouldHaveValue: true }, ], }, { kind: "data", runtime: [ - { os: "mac", shouldHaveValue: true }, - { os: "win", shouldHaveValue: true }, + { os: "darwin", shouldHaveValue: true }, + { os: "windows", shouldHaveValue: true }, { os: "linux", shouldHaveValue: true }, ], }, { kind: "data_local", runtime: [ - { os: "mac", shouldHaveValue: true }, - { os: "win", shouldHaveValue: true }, + { os: "darwin", shouldHaveValue: true }, + { os: "windows", shouldHaveValue: true }, { os: "linux", shouldHaveValue: true }, ], }, { kind: "audio", runtime: [ - { os: "mac", shouldHaveValue: true }, - { os: "win", shouldHaveValue: true }, + { os: "darwin", shouldHaveValue: true }, + { os: "windows", shouldHaveValue: true }, { os: "linux", shouldHaveValue: false }, ], }, { kind: "desktop", runtime: [ - { os: "mac", shouldHaveValue: true }, - { os: "win", shouldHaveValue: true }, + { os: "darwin", shouldHaveValue: true }, + { os: "windows", shouldHaveValue: true }, { os: "linux", shouldHaveValue: false }, ], }, { kind: "document", runtime: [ - { os: "mac", shouldHaveValue: true }, - { os: "win", shouldHaveValue: true }, + { os: "darwin", shouldHaveValue: true }, + { os: "windows", shouldHaveValue: true }, { os: "linux", shouldHaveValue: false }, ], }, { kind: "download", runtime: [ - { os: "mac", shouldHaveValue: true }, - { os: "win", shouldHaveValue: true }, + { os: "darwin", shouldHaveValue: true }, + { os: "windows", shouldHaveValue: true }, { os: "linux", shouldHaveValue: false }, ], }, { kind: "font", runtime: [ - { os: "mac", shouldHaveValue: true }, - { os: "win", shouldHaveValue: false }, + { os: "darwin", shouldHaveValue: true }, + { os: "windows", shouldHaveValue: false }, { os: "linux", shouldHaveValue: true }, ], }, { kind: "picture", runtime: [ - { os: "mac", shouldHaveValue: true }, - { os: "win", shouldHaveValue: true }, + { os: "darwin", shouldHaveValue: true }, + { os: "windows", shouldHaveValue: true }, { os: "linux", shouldHaveValue: false }, ], }, { kind: "public", runtime: [ - { os: "mac", shouldHaveValue: true }, - { os: "win", shouldHaveValue: true }, + { os: "darwin", shouldHaveValue: true }, + { os: "windows", shouldHaveValue: true }, { os: "linux", shouldHaveValue: false }, ], }, { kind: "template", runtime: [ - { os: "mac", shouldHaveValue: false }, - { os: "win", shouldHaveValue: true }, + { os: "darwin", shouldHaveValue: false }, + { os: "windows", shouldHaveValue: true }, { os: "linux", shouldHaveValue: false }, ], }, { kind: "tmp", runtime: [ - { os: "mac", shouldHaveValue: true }, - { os: "win", shouldHaveValue: true }, + { os: "darwin", shouldHaveValue: true }, + { os: "windows", shouldHaveValue: true }, { os: "linux", shouldHaveValue: true }, ], }, { kind: "video", runtime: [ - { os: "mac", shouldHaveValue: true }, - { os: "win", shouldHaveValue: true }, + { os: "darwin", shouldHaveValue: true }, + { os: "windows", shouldHaveValue: true }, { os: "linux", shouldHaveValue: false }, ], }, diff --git a/cli/js/tests/process_test.ts b/cli/js/tests/process_test.ts index 1bcdf26da..f0615193b 100644 --- a/cli/js/tests/process_test.ts +++ b/cli/js/tests/process_test.ts @@ -49,7 +49,7 @@ unitTest( unitTest( { // No signals on windows. - ignore: Deno.build.os === "win", + ignore: Deno.build.os === "windows", perms: { run: true }, }, async function runCommandFailedWithSignal(): Promise<void> { @@ -318,7 +318,7 @@ unitTest({ perms: { run: true } }, async function runClose(): Promise<void> { }); unitTest(function signalNumbers(): void { - if (Deno.build.os === "mac") { + if (Deno.build.os === "darwin") { assertEquals(Deno.Signal.SIGSTOP, 17); } else if (Deno.build.os === "linux") { assertEquals(Deno.Signal.SIGSTOP, 19); @@ -326,7 +326,7 @@ unitTest(function signalNumbers(): void { }); // Ignore signal tests on windows for now... -if (Deno.build.os !== "win") { +if (Deno.build.os !== "windows") { unitTest(function killPermissions(): void { let caughtError = false; try { diff --git a/cli/js/tests/read_link_test.ts b/cli/js/tests/read_link_test.ts index 156b31070..6e8c29a61 100644 --- a/cli/js/tests/read_link_test.ts +++ b/cli/js/tests/read_link_test.ts @@ -10,7 +10,7 @@ unitTest( Deno.mkdirSync(target); // TODO Add test for Windows once symlink is implemented for Windows. // See https://github.com/denoland/deno/issues/815. - if (Deno.build.os !== "win") { + if (Deno.build.os !== "windows") { Deno.symlinkSync(target, symlink); const targetPath = Deno.readlinkSync(symlink); assertEquals(targetPath, target); @@ -51,7 +51,7 @@ unitTest( Deno.mkdirSync(target); // TODO Add test for Windows once symlink is implemented for Windows. // See https://github.com/denoland/deno/issues/815. - if (Deno.build.os !== "win") { + if (Deno.build.os !== "windows") { Deno.symlinkSync(target, symlink); const targetPath = await Deno.readlink(symlink); assertEquals(targetPath, target); diff --git a/cli/js/tests/realpath_test.ts b/cli/js/tests/realpath_test.ts index 7725a3aa8..d76094366 100644 --- a/cli/js/tests/realpath_test.ts +++ b/cli/js/tests/realpath_test.ts @@ -4,7 +4,7 @@ import { unitTest, assert } from "./test_util.ts"; unitTest({ perms: { read: true } }, function realpathSyncSuccess(): void { const incompletePath = "cli/tests/fixture.json"; const realPath = Deno.realpathSync(incompletePath); - if (Deno.build.os !== "win") { + if (Deno.build.os !== "windows") { assert(realPath.startsWith("/")); } else { assert(/^[A-Z]/.test(realPath)); @@ -14,7 +14,7 @@ unitTest({ perms: { read: true } }, function realpathSyncSuccess(): void { unitTest( { - ignore: Deno.build.os === "win", + ignore: Deno.build.os === "windows", perms: { read: true, write: true }, }, function realpathSyncSymlink(): void { @@ -56,7 +56,7 @@ unitTest({ perms: { read: true } }, async function realpathSuccess(): Promise< > { const incompletePath = "cli/tests/fixture.json"; const realPath = await Deno.realpath(incompletePath); - if (Deno.build.os !== "win") { + if (Deno.build.os !== "windows") { assert(realPath.startsWith("/")); } else { assert(/^[A-Z]/.test(realPath)); @@ -66,7 +66,7 @@ unitTest({ perms: { read: true } }, async function realpathSuccess(): Promise< unitTest( { - ignore: Deno.build.os === "win", + ignore: Deno.build.os === "windows", perms: { read: true, write: true }, }, async function realpathSymlink(): Promise<void> { diff --git a/cli/js/tests/remove_test.ts b/cli/js/tests/remove_test.ts index b6f8aa320..4c0bb6768 100644 --- a/cli/js/tests/remove_test.ts +++ b/cli/js/tests/remove_test.ts @@ -90,7 +90,7 @@ unitTest( } catch (err) { errOnWindows = err; } - if (Deno.build.os === "win") { + if (Deno.build.os === "windows") { assertEquals(errOnWindows.message, "not implemented"); } else { const pathInfo = Deno.lstatSync(danglingSymlinkPath); @@ -123,7 +123,7 @@ unitTest( } catch (err) { errOnWindows = err; } - if (Deno.build.os === "win") { + if (Deno.build.os === "windows") { assertEquals(errOnWindows.message, "not implemented"); } else { const symlinkPathInfo = Deno.statSync(validSymlinkPath); @@ -326,7 +326,7 @@ unitTest( } catch (e) { errOnWindows = e; } - if (Deno.build.os === "win") { + if (Deno.build.os === "windows") { assertEquals(errOnWindows.message, "not implemented"); } else { const pathInfo = Deno.lstatSync(danglingSymlinkPath); @@ -359,7 +359,7 @@ unitTest( } catch (e) { errOnWindows = e; } - if (Deno.build.os === "win") { + if (Deno.build.os === "windows") { assertEquals(errOnWindows.message, "not implemented"); } else { const symlinkPathInfo = Deno.statSync(validSymlinkPath); diff --git a/cli/js/tests/rename_test.ts b/cli/js/tests/rename_test.ts index cbb3a55ce..b4047f906 100644 --- a/cli/js/tests/rename_test.ts +++ b/cli/js/tests/rename_test.ts @@ -22,7 +22,7 @@ function assertFile(path: string): void { function assertDirectory(path: string, mode?: number): void { const info = Deno.lstatSync(path); assert(info.isDirectory); - if (Deno.build.os !== "win" && mode !== undefined) { + if (Deno.build.os !== "windows" && mode !== undefined) { assertEquals(info.mode! & 0o777, mode & ~Deno.umask()); } } @@ -98,7 +98,7 @@ function writeFileString(filename: string, s: string): void { } unitTest( - { ignore: Deno.build.os === "win", perms: { read: true, write: true } }, + { ignore: Deno.build.os === "windows", perms: { read: true, write: true } }, function renameSyncErrorsUnix(): void { const testDir = Deno.makeTempDirSync(); const oldfile = testDir + "/oldfile"; @@ -173,7 +173,7 @@ unitTest( ); unitTest( - { ignore: Deno.build.os !== "win", perms: { read: true, write: true } }, + { ignore: Deno.build.os !== "windows", perms: { read: true, write: true } }, function renameSyncErrorsWin(): void { const testDir = Deno.makeTempDirSync(); const oldfile = testDir + "/oldfile"; diff --git a/cli/js/tests/signal_test.ts b/cli/js/tests/signal_test.ts index c2b4f878b..2f117f8d1 100644 --- a/cli/js/tests/signal_test.ts +++ b/cli/js/tests/signal_test.ts @@ -14,7 +14,7 @@ function defer(n: number): Promise<void> { } unitTest( - { ignore: Deno.build.os !== "win" }, + { ignore: Deno.build.os !== "windows" }, function signalsNotImplemented(): void { assertThrows( () => { @@ -104,7 +104,7 @@ unitTest( ); unitTest( - { ignore: Deno.build.os === "win", perms: { run: true, net: true } }, + { ignore: Deno.build.os === "windows", perms: { run: true, net: true } }, async function signalStreamTest(): Promise<void> { const resolvable = createResolvable(); // This prevents the program from exiting. @@ -135,7 +135,7 @@ unitTest( ); unitTest( - { ignore: Deno.build.os === "win", perms: { run: true } }, + { ignore: Deno.build.os === "windows", perms: { run: true } }, async function signalPromiseTest(): Promise<void> { const resolvable = createResolvable(); // This prevents the program from exiting. @@ -155,7 +155,7 @@ unitTest( ); unitTest( - { ignore: Deno.build.os === "win", perms: { run: true } }, + { ignore: Deno.build.os === "windows", perms: { run: true } }, function signalShorthandsTest(): void { let s: Deno.SignalStream; s = Deno.signals.alarm(); // for SIGALRM diff --git a/cli/js/tests/stat_test.ts b/cli/js/tests/stat_test.ts index 70ec5dc2e..7eaf73d58 100644 --- a/cli/js/tests/stat_test.ts +++ b/cli/js/tests/stat_test.ts @@ -193,7 +193,7 @@ unitTest({ perms: { read: true } }, async function lstatNotFound(): Promise< }); unitTest( - { ignore: Deno.build.os !== "win", perms: { read: true, write: true } }, + { ignore: Deno.build.os !== "windows", perms: { read: true, write: true } }, function statNoUnixFields(): void { const enc = new TextEncoder(); const data = enc.encode("Hello"); @@ -214,7 +214,7 @@ unitTest( ); unitTest( - { ignore: Deno.build.os === "win", perms: { read: true, write: true } }, + { ignore: Deno.build.os === "windows", perms: { read: true, write: true } }, function statUnixFields(): void { const enc = new TextEncoder(); const data = enc.encode("Hello"); diff --git a/cli/js/tests/symlink_test.ts b/cli/js/tests/symlink_test.ts index 0dde4fbad..681ace1db 100644 --- a/cli/js/tests/symlink_test.ts +++ b/cli/js/tests/symlink_test.ts @@ -16,7 +16,7 @@ unitTest( errOnWindows = e; } if (errOnWindows) { - assertEquals(Deno.build.os, "win"); + assertEquals(Deno.build.os, "windows"); assertEquals(errOnWindows.message, "not implemented"); } else { const newNameInfoLStat = Deno.lstatSync(newname); @@ -53,7 +53,7 @@ unitTest( err = e; } if (err) { - assertEquals(Deno.build.os, "win"); + assertEquals(Deno.build.os, "windows"); // from cli/js/util.ts:notImplemented assertEquals(err.message, "not implemented"); } diff --git a/cli/js/tests/umask_test.ts b/cli/js/tests/umask_test.ts index e381749ea..bfac65d52 100644 --- a/cli/js/tests/umask_test.ts +++ b/cli/js/tests/umask_test.ts @@ -3,7 +3,7 @@ import { unitTest, assertEquals } from "./test_util.ts"; unitTest( { - ignore: Deno.build.os === "win", + ignore: Deno.build.os === "windows", }, function umaskSuccess(): void { const prevMask = Deno.umask(0o020); diff --git a/cli/js/tests/write_file_test.ts b/cli/js/tests/write_file_test.ts index c06c5b330..80f711dbc 100644 --- a/cli/js/tests/write_file_test.ts +++ b/cli/js/tests/write_file_test.ts @@ -48,7 +48,7 @@ unitTest({ perms: { write: false } }, function writeFileSyncPerm(): void { unitTest( { perms: { read: true, write: true } }, function writeFileSyncUpdateMode(): void { - if (Deno.build.os !== "win") { + if (Deno.build.os !== "windows") { const enc = new TextEncoder(); const data = enc.encode("Hello"); const filename = Deno.makeTempDirSync() + "/test.txt"; @@ -164,7 +164,7 @@ unitTest( unitTest( { perms: { read: true, write: true } }, async function writeFileUpdateMode(): Promise<void> { - if (Deno.build.os !== "win") { + if (Deno.build.os !== "windows") { const enc = new TextEncoder(); const data = enc.encode("Hello"); const filename = Deno.makeTempDirSync() + "/test.txt"; diff --git a/cli/js/web/blob.ts b/cli/js/web/blob.ts index d30bb7e38..546ea7e82 100644 --- a/cli/js/web/blob.ts +++ b/cli/js/web/blob.ts @@ -13,7 +13,7 @@ export function containsOnlyASCII(str: string): boolean { } function convertLineEndingsToNative(s: string): string { - const nativeLineEnd = build.os == "win" ? "\r\n" : "\n"; + const nativeLineEnd = build.os == "windows" ? "\r\n" : "\n"; let position = 0; diff --git a/cli/js/write_file.ts b/cli/js/write_file.ts index af3f67251..6961b78ea 100644 --- a/cli/js/write_file.ts +++ b/cli/js/write_file.ts @@ -32,7 +32,7 @@ export function writeFileSync( if ( options.mode !== undefined && options.mode !== null && - build.os !== "win" + build.os !== "windows" ) { chmodSync(path, options.mode); } @@ -62,7 +62,7 @@ export async function writeFile( if ( options.mode !== undefined && options.mode !== null && - build.os !== "win" + build.os !== "windows" ) { await chmod(path, options.mode); } diff --git a/cli/ops/runtime.rs b/cli/ops/runtime.rs index 72555344c..96bf451ed 100644 --- a/cli/ops/runtime.rs +++ b/cli/ops/runtime.rs @@ -9,16 +9,6 @@ use deno_core::CoreIsolate; use deno_core::ZeroCopyBuf; use std::env; -/// BUILD_OS and BUILD_ARCH match the values in Deno.build. See js/build.ts. -#[cfg(target_os = "macos")] -static BUILD_OS: &str = "mac"; -#[cfg(target_os = "linux")] -static BUILD_OS: &str = "linux"; -#[cfg(target_os = "windows")] -static BUILD_OS: &str = "win"; -#[cfg(target_arch = "x86_64")] -static BUILD_ARCH: &str = "x64"; - pub fn init(i: &mut CoreIsolate, s: &State) { i.register_op("op_start", s.stateful_json_op(op_start)); i.register_op("op_metrics", s.stateful_json_op(op_metrics)); @@ -45,8 +35,7 @@ fn op_start( "denoVersion": version::DENO, "tsVersion": version::TYPESCRIPT, "noColor": !colors::use_color(), - "os": BUILD_OS, - "arch": BUILD_ARCH, + "target": env!("TARGET"), }))) } |