Skip to content

Commit

Permalink
module: skip NODE_COMPILE_CACHE when policy is enabled
Browse files Browse the repository at this point in the history
It might be worth designing a policy for the compilation cache. For
now, just skip the cache when policy is enabled.

PR-URL: #52577
Reviewed-By: Benjamin Gruenbaum <[email protected]>
Reviewed-By: Richard Lau <[email protected]>
Reviewed-By: Chengzhong Wu <[email protected]>
  • Loading branch information
joyeecheung authored and aduh95 committed Apr 29, 2024
1 parent 4f713fb commit 544c602
Show file tree
Hide file tree
Showing 2 changed files with 44 additions and 0 deletions.
6 changes: 6 additions & 0 deletions src/env.cc
Original file line number Diff line number Diff line change
Expand Up @@ -1096,6 +1096,12 @@ void Environment::InitializeCompileCache() {
dir_from_env.empty()) {
return;
}
if (!options()->experimental_policy.empty()) {
Debug(this,
DebugCategory::COMPILE_CACHE,
"[compile cache] skipping cache because policy is enabled");
return;
}
auto handler = std::make_unique<CompileCacheHandler>(this);
if (handler->InitializeDirectory(this, dir_from_env)) {
compile_cache_handler_ = std::move(handler);
Expand Down
38 changes: 38 additions & 0 deletions test/parallel/test-compile-cache-policy.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
'use strict';

// This tests NODE_COMPILE_CACHE is disabled when policy is used.

const common = require('../common');
if (!common.hasCrypto)
common.skip('missing crypto');

const { spawnSyncAndAssert } = require('../common/child_process');
const assert = require('assert');
const fs = require('fs');
const tmpdir = require('../common/tmpdir');
const fixtures = require('../common/fixtures');

{
tmpdir.refresh();
const dir = tmpdir.resolve('.compile_cache_dir');
const script = fixtures.path('policy', 'parent.js');
const policy = fixtures.path(
'policy',
'dependencies',
'dependencies-redirect-policy.json');
spawnSyncAndAssert(
process.execPath,
['--experimental-policy', policy, script],
{
env: {
...process.env,
NODE_DEBUG_NATIVE: 'COMPILE_CACHE',
NODE_COMPILE_CACHE: dir
},
cwd: tmpdir.path
},
{
stderr: /skipping cache because policy is enabled/
});
assert(!fs.existsSync(dir));
}

0 comments on commit 544c602

Please sign in to comment.