@mettlelabs/mettle 0.0.0-beta.3 → 0.0.0-beta.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/package.json +13 -13
  2. package/postinstall.mjs +12 -3
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mettlelabs/mettle",
3
- "version": "0.0.0-beta.3",
3
+ "version": "0.0.0-beta.5",
4
4
  "license": "MIT",
5
5
  "repository": {
6
6
  "type": "git",
@@ -22,17 +22,17 @@
22
22
  "x64"
23
23
  ],
24
24
  "optionalDependencies": {
25
- "@mettlelabs/mettle-darwin-arm64": "npm:@mettlelabs/mettle@0.0.0-0.beta.3.darwin-arm64",
26
- "@mettlelabs/mettle-darwin-x64": "npm:@mettlelabs/mettle@0.0.0-0.beta.3.darwin-x64",
27
- "@mettlelabs/mettle-darwin-x64-baseline": "npm:@mettlelabs/mettle@0.0.0-0.beta.3.darwin-x64-baseline",
28
- "@mettlelabs/mettle-linux-arm64": "npm:@mettlelabs/mettle@0.0.0-0.beta.3.linux-arm64",
29
- "@mettlelabs/mettle-linux-arm64-musl": "npm:@mettlelabs/mettle@0.0.0-0.beta.3.linux-arm64-musl",
30
- "@mettlelabs/mettle-linux-x64": "npm:@mettlelabs/mettle@0.0.0-0.beta.3.linux-x64",
31
- "@mettlelabs/mettle-linux-x64-baseline": "npm:@mettlelabs/mettle@0.0.0-0.beta.3.linux-x64-baseline",
32
- "@mettlelabs/mettle-linux-x64-baseline-musl": "npm:@mettlelabs/mettle@0.0.0-0.beta.3.linux-x64-baseline-musl",
33
- "@mettlelabs/mettle-linux-x64-musl": "npm:@mettlelabs/mettle@0.0.0-0.beta.3.linux-x64-musl",
34
- "@mettlelabs/mettle-windows-arm64": "npm:@mettlelabs/mettle@0.0.0-0.beta.3.windows-arm64",
35
- "@mettlelabs/mettle-windows-x64": "npm:@mettlelabs/mettle@0.0.0-0.beta.3.windows-x64",
36
- "@mettlelabs/mettle-windows-x64-baseline": "npm:@mettlelabs/mettle@0.0.0-0.beta.3.windows-x64-baseline"
25
+ "@mettlelabs/mettle-darwin-arm64": "npm:@mettlelabs/mettle@0.0.0-0.beta.5.darwin-arm64",
26
+ "@mettlelabs/mettle-darwin-x64": "npm:@mettlelabs/mettle@0.0.0-0.beta.5.darwin-x64",
27
+ "@mettlelabs/mettle-darwin-x64-baseline": "npm:@mettlelabs/mettle@0.0.0-0.beta.5.darwin-x64-baseline",
28
+ "@mettlelabs/mettle-linux-arm64": "npm:@mettlelabs/mettle@0.0.0-0.beta.5.linux-arm64",
29
+ "@mettlelabs/mettle-linux-arm64-musl": "npm:@mettlelabs/mettle@0.0.0-0.beta.5.linux-arm64-musl",
30
+ "@mettlelabs/mettle-linux-x64": "npm:@mettlelabs/mettle@0.0.0-0.beta.5.linux-x64",
31
+ "@mettlelabs/mettle-linux-x64-baseline": "npm:@mettlelabs/mettle@0.0.0-0.beta.5.linux-x64-baseline",
32
+ "@mettlelabs/mettle-linux-x64-baseline-musl": "npm:@mettlelabs/mettle@0.0.0-0.beta.5.linux-x64-baseline-musl",
33
+ "@mettlelabs/mettle-linux-x64-musl": "npm:@mettlelabs/mettle@0.0.0-0.beta.5.linux-x64-musl",
34
+ "@mettlelabs/mettle-windows-arm64": "npm:@mettlelabs/mettle@0.0.0-0.beta.5.windows-arm64",
35
+ "@mettlelabs/mettle-windows-x64": "npm:@mettlelabs/mettle@0.0.0-0.beta.5.windows-x64",
36
+ "@mettlelabs/mettle-windows-x64-baseline": "npm:@mettlelabs/mettle@0.0.0-0.beta.5.windows-x64-baseline"
37
37
  }
38
38
  }
package/postinstall.mjs CHANGED
@@ -43,13 +43,22 @@ function supportsAvx2() {
43
43
  }
44
44
  }
45
45
  if (platform === "windows") {
46
- const script =
46
+ // PowerShell 7 reads the CPU flag from .NET directly. Windows PowerShell has to compile a
47
+ // kernel32 binding with Add-Type first, which can take several seconds on a cold machine;
48
+ // timing out would quietly install the slower baseline build.
49
+ const intrinsic = "[System.Runtime.Intrinsics.X86.Avx2]::IsSupported"
50
+ const kernel32 =
47
51
  '(Add-Type -MemberDefinition "[DllImport(""kernel32.dll"")] public static extern bool IsProcessorFeaturePresent(int ProcessorFeature);" -Name Kernel32 -Namespace Win32 -PassThru)::IsProcessorFeaturePresent(40)'
48
- for (const executable of ["powershell.exe", "pwsh.exe", "pwsh", "powershell"]) {
52
+ for (const [executable, script] of [
53
+ ["pwsh.exe", intrinsic],
54
+ ["pwsh", intrinsic],
55
+ ["powershell.exe", kernel32],
56
+ ["powershell", kernel32],
57
+ ]) {
49
58
  try {
50
59
  const result = childProcess.spawnSync(executable, ["-NoProfile", "-NonInteractive", "-Command", script], {
51
60
  encoding: "utf8",
52
- timeout: 3000,
61
+ timeout: 20_000,
53
62
  windowsHide: true,
54
63
  })
55
64
  if (result.status !== 0) continue