helloadhavan/github_issues huggingface dataset:
Repository: denoland/deno
Pull request: fix(ext/node): don't show deprecation warnings for dependencies


Changed files:
filename: ext/node/ops/util.rs
patch: @@ -106,6 +106,7 @@ pub fn op_node_call_is_from_dependency<
   let Some(stack_trace) = v8::StackTrace::current_stack_trace(scope, 20) else {
     return false;
   };
+  let mut only_internal = true;
   for i in 0..stack_trace.get_frame_count() {
     let Some(frame) = stack_trace.get_frame(scope, i) else {
       continue;
@@ -117,23 +118,31 @@ pub fn op_node_call_is_from_dependency<
       continue;
     };
     let name = script.to_rust_string_lossy(scope);
+
     if name.starts_with("node:") || name.starts_with("ext:") {
       continue;
-    } else if name.starts_with("https:")
+    } else {
+      only_internal = false;
+    }
+
+    if name.starts_with("https:")
       || name.contains("/node_modules/")
       || name.contains(r"\node_modules\")
     {
       return true;
-    } else {
-      let Ok(specifier) = url::Url::parse(&name) else {
-        continue;
-      };
-      return state.borrow::<NodeResolverRc<
+    }
+
+    let Ok(specifier) = url::Url::parse(&name) else {
+      continue;
+    };
+    if only_internal {
+      return true;
+    }
+    return state.borrow::<NodeResolverRc<
         TInNpmPackageChecker,
         TNpmPackageFolderResolver,
         TSys,
       >>().in_npm_package(&specifier);
-    }
   }
-  false
+  only_internal
 }

filename: ext/node/polyfills/util.ts
patch: @@ -1,6 +1,7 @@
 // Copyright 2018-2025 the Deno authors. MIT license.
 
 import { primordials } from "ext:core/mod.js";
+import { op_node_call_is_from_dependency } from "ext:core/ops";
 const {
   ArrayIsArray,
   ArrayPrototypeJoin,
@@ -272,7 +273,7 @@ export function deprecate(fn: any, msg: string, code?: any) {
   let warned = false;
   // deno-lint-ignore no-explicit-any
   function deprecated(this: any, ...args: any[]) {
-    if (!warned) {
+    if (!warned && !op_node_call_is_from_dependency()) {
       warned = true;
       if (code !== undefined) {
         if (!SetPrototypeHas(codesWarned, code)) {
Repository: nodejs/node
Pull request: test: skip `test-sqlinte-extension` when SQLite is not built by us

Refs: https://github.com/nodejs/node/pull/53900#discussion_r1894702821

The `libsqlite_extension` binary won't be found in the same directory as `node` when we build with `--shared-sqlite`.

<!--
Before submitting a pull request, please read:

- the CONTRIBUTING guide at https://github.com/nodejs/node/blob/HEAD/CONTRIBUTING.md
- the commit message formatting guidelines at
  https://github.com/nodejs/node/blob/HEAD/doc/contributing/pull-requests.md#commit-message-guidelines

For code changes:
1. Include tests for any bug fixes or new features.
2. Update documentation if relevant.
3. Ensure that `make -j4 test` (UNIX), or `vcbuild test` (Windows) passes.

If you believe this PR should be highlighted in the Node.js CHANGELOG
please add the `notable-change` label.

Developer's Certificate of Origin 1.1

By making a contribution to this project, I certify that:

(a) The contribution was created in whole or in part by me and I
    have the right to submit it under the open source license
    indicated in the file; or

(b) The contribution is based upon previous work that, to the best
    of my knowledge, is covered under an appropriate open source
    license and I have the right under that license to submit that
    work with modifications, whether created in whole or in part
    by me, under the same open source license (unless I am
    permitted to submit under a different license), as indicated
    in the file; or

(c) The contribution was provided directly to me by some other
    person who certified (a), (b) or (c) and I have not modified
    it.

(d) I understand and agree that this project and the contribution
    are public and that a record of the contribution (including all
    personal information I submit with it, including my sign-off) is
    maintained indefinitely and may be redistributed consistent with
    this project or the open source license(s) involved.
-->


Changed files:
filename: test/sqlite/test-sqlite-extensions.mjs
patch: @@ -7,6 +7,10 @@ import test from 'node:test';
 import fs from 'node:fs';
 import childProcess from 'child_process';
 
+if (process.config.variables.node_shared_sqlite) {
+  common.skip('Missing libsqlite_extension binary');
+}
+
 // Lib extension binary is named differently on different platforms
 function resolveBuiltBinary(binary) {
   const targetFile = fs.readdirSync(path.dirname(process.execPath)).find((file) => file.startsWith(binary));
Repository: ollama/ollama
Pull request: README typo fix

- Simple typo fix in README.md
- `13` changed to `13B` (the `B` was missing) on Nous-Hermes model in models table
- Also edited `hous-hermes` to `nous-hermes` (should be n instead of h)

Changed files:
filename: README.md
patch: @@ -59,7 +59,7 @@ Ollama includes a library of open-source, pre-trained models. More models are co
 | Llama2      | 7B         | 3.8GB | `ollama pull llama2`      |
 | Orca Mini   | 3B         | 1.9GB | `ollama pull orca`        |
 | Vicuna      | 7B         | 3.8GB | `ollama pull vicuna`      |
-| Nous-Hermes | 13         | 7.3GB | `ollama pull hous-hermes` |
+| Nous-Hermes | 13B         | 7.3GB | `ollama pull nous-hermes` |
 
 ## Building
Repository: ggml-org/llama.cpp
Pull request: chat : fix build on arm64

Attempt to fix build issue on linux ARM64: https://github.com/ggml-org/llama.cpp/actions/runs/17841412705/job/50731590434


Changed files:
filename: common/chat.cpp
patch: @@ -1741,10 +1741,12 @@ static void common_chat_parse_gpt_oss(common_chat_msg_parser & builder) {
 static common_chat_params common_chat_params_init_firefunction_v2(const common_chat_template & tmpl, const struct templates_params & inputs) {
     LOG_DBG("%s\n", __func__);
     common_chat_params data;
-    data.prompt = apply(tmpl, inputs, /* messages_override =*/ std::nullopt, /* tools_override= */ json(), json {
+    const std::optional<json> tools_override = json();
+    const std::optional<json> additional_context = json {
         {"datetime", format_time(inputs.now, "%b %d %Y %H:%M:%S GMT")},
         {"functions", json(inputs.tools.empty() ? "" : inputs.tools.dump(2))},
-    });
+    };
+    data.prompt = apply(tmpl, inputs, /* messages_override =*/ std::nullopt, tools_override, additional_context);
     if (inputs.tools.is_array() && !inputs.tools.empty()) {
         data.grammar_lazy = inputs.tool_choice != COMMON_CHAT_TOOL_CHOICE_REQUIRED;
         data.grammar = build_grammar([&](const common_grammar_builder & builder) {
Repository: electron/electron
Pull request: perf: avoid redundant map lookup in `WebContents::DevToolsIndexPath()`

Backport of #46254

See that PR for details.


Notes: none.

Changed files:
filename: shell/browser/api/electron_api_web_contents.cc
patch: @@ -4139,8 +4139,11 @@ void WebContents::DevToolsIndexPath(
     OnDevToolsIndexingDone(request_id, file_system_path);
     return;
   }
-  if (devtools_indexing_jobs_.contains(request_id))
+
+  auto& indexing_job = devtools_indexing_jobs_[request_id];
+  if (indexing_job)
     return;
+
   std::vector<std::string> excluded_folders;
   std::optional<base::Value> parsed_excluded_folders =
       base::JSONReader::Read(excluded_folders_message);
@@ -4150,19 +4153,18 @@ void WebContents::DevToolsIndexPath(
         excluded_folders.push_back(folder_path.GetString());
     }
   }
-  devtools_indexing_jobs_[request_id] =
-      scoped_refptr<DevToolsFileSystemIndexer::FileSystemIndexingJob>(
-          devtools_file_system_indexer_->IndexPath(
-              file_system_path, excluded_folders,
-              base::BindRepeating(
-                  &WebContents::OnDevToolsIndexingWorkCalculated,
-                  weak_factory_.GetWeakPtr(), request_id, file_system_path),
-              base::BindRepeating(&WebContents::OnDevToolsIndexingWorked,
-                                  weak_factory_.GetWeakPtr(), request_id,
-                                  file_system_path),
-              base::BindRepeating(&WebContents::OnDevToolsIndexingDone,
-                                  weak_factory_.GetWeakPtr(), request_id,
-                                  file_system_path)));
+
+  indexing_job = devtools_file_system_indexer_->IndexPath(
+      file_system_path, excluded_folders,
+      base::BindRepeating(&WebContents::OnDevToolsIndexingWorkCalculated,
+                          weak_factory_.GetWeakPtr(), request_id,
+                          file_system_path),
+      base::BindRepeating(&WebContents::OnDevToolsIndexingWorked,
+                          weak_factory_.GetWeakPtr(), request_id,
+                          file_system_path),
+      base::BindRepeating(&WebContents::OnDevToolsIndexingDone,
+                          weak_factory_.GetWeakPtr(), request_id,
+                          file_system_path));
 }
 
 void WebContents::DevToolsStopIndexing(int request_id) {
Repository: ollama/ollama
Pull request: attempt two for skipping files in the file walk


Changed files:
filename: server/routes.go
patch: @@ -195,7 +195,8 @@ func list(c *gin.Context) {
 		if !info.IsDir() {
 			fi, err := os.Stat(path)
 			if err != nil {
-				return err
+				log.Printf("skipping file: %s", fp)
+				return nil
 			}
 			path := path[len(fp)+1:]
 			slashIndex := strings.LastIndex(path, "/")
Repository: electron/electron
Pull request: perf: avoid redundant map lookup in `WebContents::DevToolsIndexPath()`

Backport of #46254

See that PR for details.


Notes: none.

Changed files:
filename: shell/browser/api/electron_api_web_contents.cc
patch: @@ -4259,8 +4259,11 @@ void WebContents::DevToolsIndexPath(
     OnDevToolsIndexingDone(request_id, file_system_path);
     return;
   }
-  if (devtools_indexing_jobs_.contains(request_id))
+
+  auto& indexing_job = devtools_indexing_jobs_[request_id];
+  if (indexing_job)
     return;
+
   std::vector<std::string> excluded_folders;
   std::optional<base::Value> parsed_excluded_folders =
       base::JSONReader::Read(excluded_folders_message);
@@ -4270,19 +4273,18 @@ void WebContents::DevToolsIndexPath(
         excluded_folders.push_back(folder_path.GetString());
     }
   }
-  devtools_indexing_jobs_[request_id] =
-      scoped_refptr<DevToolsFileSystemIndexer::FileSystemIndexingJob>(
-          devtools_file_system_indexer_->IndexPath(
-              file_system_path, excluded_folders,
-              base::BindRepeating(
-                  &WebContents::OnDevToolsIndexingWorkCalculated,
-                  weak_factory_.GetWeakPtr(), request_id, file_system_path),
-              base::BindRepeating(&WebContents::OnDevToolsIndexingWorked,
-                                  weak_factory_.GetWeakPtr(), request_id,
-                                  file_system_path),
-              base::BindRepeating(&WebContents::OnDevToolsIndexingDone,
-                                  weak_factory_.GetWeakPtr(), request_id,
-                                  file_system_path)));
+
+  indexing_job = devtools_file_system_indexer_->IndexPath(
+      file_system_path, excluded_folders,
+      base::BindRepeating(&WebContents::OnDevToolsIndexingWorkCalculated,
+                          weak_factory_.GetWeakPtr(), request_id,
+                          file_system_path),
+      base::BindRepeating(&WebContents::OnDevToolsIndexingWorked,
+                          weak_factory_.GetWeakPtr(), request_id,
+                          file_system_path),
+      base::BindRepeating(&WebContents::OnDevToolsIndexingDone,
+                          weak_factory_.GetWeakPtr(), request_id,
+                          file_system_path));
 }
 
 void WebContents::DevToolsStopIndexing(int request_id) {
Repository: huggingface/transformers
Pull request: Revert "fix `notification_service.py` about `time_spent`"

Reverts huggingface/transformers#40037

There were some edge case errors not detected until a full run was triggered

https://github.com/huggingface/transformers/actions/runs/16833364235/job/47693598035

```
  File "/home/runner/work/transformers/transformers/utils/notification_service.py", line 206, in time
    hours, minutes, seconds = int(time_parts[0]), int(time_parts[1]), float(time_parts[2])
ValueError: invalid literal for int() with base 10: '(0'
```

revert for now to avoid next daily CI failing to produce reports.

Will check and fix later.

Changed files:
filename: utils/notification_service.py
patch: @@ -1225,7 +1225,7 @@ def pop_default(l: list[Any], i: int, default: Any) -> Any:
                 matrix_job_results[matrix_name]["success"] += success
                 matrix_job_results[matrix_name]["errors"] += errors
                 matrix_job_results[matrix_name]["skipped"] += skipped
-                matrix_job_results[matrix_name]["time_spent"] += time_spent[:-1] + ", "
+                matrix_job_results[matrix_name]["time_spent"] += time_spent[1:-1] + ", "
 
                 stacktraces = handle_stacktraces(artifact["failures_line"])
 
@@ -1360,7 +1360,7 @@ def pop_default(l: list[Any], i: int, default: Any) -> Any:
             additional_results[key]["success"] += success
             additional_results[key]["errors"] += errors
             additional_results[key]["skipped"] += skipped
-            additional_results[key]["time_spent"] += time_spent[:-1] + ", "
+            additional_results[key]["time_spent"] += time_spent[1:-1] + ", "
 
             if len(artifact["errors"]):
                 additional_results[key]["error"] = True
Repository: denoland/deno
Pull request: feat(bundle): support text and bytes imports in bundle


Changed files:
filename: cli/tools/bundle/mod.rs
patch: @@ -447,6 +447,8 @@ fn requested_type_from_map(
   let type_ = map.get("type").map(|s| s.as_str());
   match type_ {
     Some("json") => RequestedModuleType::Json,
+    Some("bytes") => RequestedModuleType::Bytes,
+    Some("text") => RequestedModuleType::Text,
     Some(other) => RequestedModuleType::Other(other.to_string().into()),
     None => RequestedModuleType::None,
   }
@@ -792,7 +794,19 @@ impl DenoPluginHandler {
       Path::new(""), // should be absolute already, feels kind of hacky though
     )?;
     let (specifier, media_type, loader) =
-      if let Some((specifier, media_type, loader)) =
+      if let RequestedModuleType::Bytes = requested_type {
+        (
+          specifier,
+          MediaType::Unknown,
+          esbuild_client::BuiltinLoader::Binary,
+        )
+      } else if let RequestedModuleType::Text = requested_type {
+        (
+          specifier,
+          MediaType::Unknown,
+          esbuild_client::BuiltinLoader::Text,
+        )
+      } else if let Some((specifier, media_type, loader)) =
         self.specifier_and_type_from_graph(&specifier)?
       {
         (specifier, media_type, loader)

filename: tests/specs/bundle/raw_imports/__test__.jsonc
patch: @@ -0,0 +1,17 @@
+{
+  "tempDir": true,
+  "steps": [
+    {
+      "args": "bundle --unstable-raw-imports --output=out.js main.ts",
+      "output": "[WILDCARD]"
+    },
+    {
+      "args": ["eval", "Deno.removeSync('./other.ts')"],
+      "output": ""
+    },
+    {
+      "args": "run out.js",
+      "output": "expected_output.out"
+    }
+  ]
+}

filename: tests/specs/bundle/raw_imports/expected_output.out
patch: @@ -0,0 +1,15 @@
+Normal import: Hello from other.ts 42
+Text import:
+export const message = "Hello from other.ts";
+export const value = 42;
+
+Bytes import:
+Uint8Array(71) [
+  101, 120, 112, 111, 114, 116,  32,  99, 111, 110, 115,
+  116,  32, 109, 101, 115, 115,  97, 103, 101,  32,  61,
+   32,  34,  72, 101, 108, 108, 111,  32, 102, 114, 111,
+  109,  32, 111, 116, 104, 101, 114,  46, 116, 115,  34,
+   59,  10, 101, 120, 112, 111, 114, 116,  32,  99, 111,
+  110, 115, 116,  32, 118,  97, 108, 117, 101,  32,  61,
+   32,  52,  50,  59,  10
+]

filename: tests/specs/bundle/raw_imports/main.ts
patch: @@ -0,0 +1,9 @@
+import { message, value } from "./other.ts";
+import otherText from "./other.ts" with { type: "text" };
+import otherBytes from "./other.ts" with { type: "bytes" };
+
+console.log("Normal import:", message, value);
+console.log("Text import:");
+console.log(otherText);
+console.log("Bytes import:");
+console.log(otherBytes);

filename: tests/specs/bundle/raw_imports/other.ts
patch: @@ -0,0 +1,2 @@
+export const message = "Hello from other.ts";
+export const value = 42;
Repository: ggml-org/llama.cpp
Pull request: ggml webgpu: actually add softmax, fix rms_norm offset

In my previous PR (https://github.com/ggml-org/llama.cpp/pull/16357), I missed cherry-picking a commit and ended up missing the code to actually enable soft_max (oops). This PR actually adds it to `supports_op` and `encode_node`, as well as fixes a potential bug in `rms_norm` where it was using the wrong offset into the tensor.

Changed files:
filename: ggml/src/ggml-webgpu/ggml-webgpu.cpp
patch: @@ -424,6 +424,7 @@ static void ggml_backend_webgpu_build_and_enqueue(webgpu_context &
         ctx->staged_param_bufs.push_back(params_bufs);
         if (ctx->staged_command_bufs.size() == WEBGPU_COMMAND_SUBMIT_BATCH_SIZE) {
             ggml_backend_webgpu_submit_queue(ctx);
+            ggml_backend_webgpu_wait_on_submission(ctx);
         }
     }
 }
@@ -1060,6 +1061,9 @@ static bool ggml_webgpu_encode_node(webgpu_context ctx, ggml_tensor * node) {
         case GGML_OP_SCALE:
             ggml_webgpu_scale(ctx, src0, node);
             break;
+        case GGML_OP_SOFT_MAX:
+            ggml_webgpu_soft_max(ctx, src0, src1, src2, node);
+            break;
         default:
             return false;
     }
@@ -1806,6 +1810,9 @@ static bool ggml_backend_webgpu_device_supports_op(ggml_backend_dev_t dev, const
         case GGML_OP_SCALE:
             supports_op = op->type == GGML_TYPE_F32;
             break;
+        case GGML_OP_SOFT_MAX:
+            supports_op = op->type == GGML_TYPE_F32;
+            break;
         default:
             break;
     }
@@ -1949,6 +1956,7 @@ static ggml_backend_dev_t ggml_backend_webgpu_reg_get_device(ggml_backend_reg_t
     ggml_webgpu_init_rope_pipeline(ctx);
     ggml_webgpu_init_glu_pipeline(ctx);
     ggml_webgpu_init_scale_pipeline(ctx);
+    ggml_webgpu_init_soft_max_pipeline(ctx);
 
 #ifdef GGML_WEBGPU_DEBUG
     // Initialize debug buffers

filename: ggml/src/ggml-webgpu/wgsl-shaders/rms_norm.wgsl
patch: @@ -84,7 +84,7 @@ fn main(@builtin(workgroup_id) wid: vec3<u32>,
     let i2 = i / params.ne1;
     let i1 = i % params.ne1;
     let i_src_row = params.offset_src + i3 * params.stride_src3 + i2 * params.stride_src2 + i1 * params.stride_src1;
-    let i_dst_row = params.offset_src + i3 * params.stride_dst3 + i2 * params.stride_dst2 + i1 * params.stride_dst1;
+    let i_dst_row = params.offset_dst + i3 * params.stride_dst3 + i2 * params.stride_dst2 + i1 * params.stride_dst1;
 
     let elems = (params.ne0 + wg_size - 1) / wg_size;
 

filename: ggml/src/ggml-webgpu/wgsl-shaders/soft_max.tmpl.wgsl
patch: @@ -300,6 +300,7 @@ fn main(@builtin(workgroup_id) wid: vec3<u32>,
         workgroupBarrier();
     }
     let row_max = scratch[0];
+    workgroupBarrier();
 
     var sum = 0.0f;
     col = lid.x;
Repository: denoland/deno
Pull request: feat: stabilize --node-conditions flag

Stabilizes `--conditions` flag added in https://github.com/denoland/deno/pull/29586.

Closes https://github.com/denoland/deno/issues/23757

Changed files:
filename: cli/args/flags.rs
patch: @@ -4636,9 +4636,11 @@ fn lock_args() -> [Arg; 3] {
 }
 
 fn node_conditions_arg() -> Arg {
-  Arg::new("unstable-conditions")
-    .long("unstable-conditions")
-    .help("Use this argument to specify custom conditions for npm package exports. You can also use DENO_CONDITIONS env var.")
+  Arg::new("conditions")
+    .long("conditions")
+    .help("Use this argument to specify custom conditions for npm package exports. You can also use DENO_CONDITIONS env var.
+
+Docs: https://docs.deno.com/go/conditional-exports")
     .use_value_delimiter(true)
     .action(ArgAction::Append)
 }
@@ -6330,8 +6332,7 @@ fn lock_args_parse(flags: &mut Flags, matches: &mut ArgMatches) {
 }
 
 fn node_conditions_args_parse(flags: &mut Flags, matches: &mut ArgMatches) {
-  if let Some(conditions) = matches.remove_many::<String>("unstable-conditions")
-  {
+  if let Some(conditions) = matches.remove_many::<String>("conditions") {
     flags.node_conditions = conditions.collect();
   }
 }
@@ -12615,7 +12616,7 @@ Usage: deno repl [OPTIONS] [-- [ARGS]...]\n"
     let flags = flags_from_vec(svec![
       "deno",
       "run",
-      "--unstable-conditions",
+      "--conditions",
       "development",
       "main.ts"
     ])
@@ -12636,7 +12637,7 @@ Usage: deno repl [OPTIONS] [-- [ARGS]...]\n"
     let flags = flags_from_vec(svec![
       "deno",
       "run",
-      "--unstable-conditions",
+      "--conditions",
       "development,production",
       "main.ts"
     ])
@@ -12657,9 +12658,9 @@ Usage: deno repl [OPTIONS] [-- [ARGS]...]\n"
     let flags = flags_from_vec(svec![
       "deno",
       "run",
-      "--unstable-conditions",
+      "--conditions",
       "development",
-      "--unstable-conditions",
+      "--conditions",
       "production",
       "main.ts"
     ])

filename: tests/specs/run/conditional_exports/__test__.jsonc
patch: @@ -10,7 +10,7 @@
       "output": "no_condition.out"
     },
     {
-      "args": "run --unstable-conditions react-server -A main.js",
+      "args": "run --conditions react-server -A main.js",
       "output": "condition.out",
       "exitCode": 1
     },

filename: tests/specs/run/conditional_exports_from_require/__test__.jsonc
patch: @@ -1,4 +1,4 @@
 {
-  "args": "run --unstable-conditions some-condition main.cjs",
+  "args": "run --conditions some-condition main.cjs",
   "output": "good\n"
 }
Repository: ollama/ollama
Pull request: add logo

add logo

Changed files:
filename: README.md
patch: @@ -1,4 +1,9 @@
-![ollama](https://github.com/jmorganca/ollama/assets/251292/961f99bb-251a-4eec-897d-1ba99997ad0f)
+<div align="center">
+  <picture>
+    <source media="(prefers-color-scheme: dark)" height="200px" srcset="https://github.com/jmorganca/ollama/assets/3325447/318048d2-b2dd-459c-925a-ac8449d5f02c">
+    <img alt="logo" height="200px" src="https://github.com/jmorganca/ollama/assets/3325447/c7d6e15f-7f4d-4776-b568-c084afa297c2">
+  </picture>
+</div>
 
 # Ollama
Repository: ggml-org/llama.cpp
Pull request: vulkan: use a more appropriate amount of threads when generating shaders

The 16 threads default completely freezes up my 2 core 4 thread laptop with glslc runs while compiling :cry:.

Changed files:
filename: ggml/src/ggml-vulkan/vulkan-shaders/vulkan-shaders-gen.cpp
patch: @@ -1,5 +1,3 @@
-
-
 #include <iostream>
 #include <fstream>
 #include <sstream>
@@ -22,6 +20,7 @@
 #include <sys/types.h>
 
 #ifdef _WIN32
+    #define NOMINMAX
     #include <windows.h>
     #include <direct.h> // For _mkdir on Windows
 #else
@@ -306,7 +305,7 @@ using compile_count_guard = std::unique_ptr<uint32_t, decltype(&decrement_compil
 compile_count_guard acquire_compile_slot() {
     // wait until fewer than N compiles are in progress.
     // 16 is an arbitrary limit, the goal is to avoid "failed to create pipe" errors.
-    uint32_t N = 16;
+    uint32_t N = std::max(1u, std::min(16u, std::thread::hardware_concurrency()));
     std::unique_lock<std::mutex> guard(compile_count_mutex);
     compile_count_cond.wait(guard, [N] { return compile_count < N; });
     compile_count++;