Skip to content

Add support for cpp in for compute - #1773

Merged
anthony-gomez-fastly merged 14 commits into
mainfrom
CDTOOL-1313-add-cpp-support-for-compute
May 13, 2026
Merged

Add support for cpp in for compute#1773
anthony-gomez-fastly merged 14 commits into
mainfrom
CDTOOL-1313-add-cpp-support-for-compute

Conversation

@anthony-gomez-fastly

@anthony-gomez-fastlyanthony-gomez-fastly commented May 1, 2026

Copy link
Copy Markdown
Member

Change summary

Adds ability to build C++ services and publish them

test service here

All Submissions:

  • Have you followed the guidelines in our Contributing document?
  • Have you checked to ensure there aren't other open Pull Requests for the same update/change?

New Feature Submissions:

  • Does your submission pass tests?

Changes to Core Features:

  • Have you written new tests for your core changes, as applicable?
  • Have you successfully run tests with your changes locally?

@anthony-gomez-fastly
anthony-gomez-fastlyforce-pushed the CDTOOL-1313-add-cpp-support-for-compute branch from 0e1f5e1 to fee97dbCompareMay 1, 2026 16:26
@anthony-gomez-fastly
anthony-gomez-fastly marked this pull request as ready for review May 4, 2026 13:30
@anthony-gomez-fastly
anthony-gomez-fastly requested a review from a team as a code ownerMay 4, 2026 13:30
kpfleming
kpfleming previously requested changes May 4, 2026

@kpflemingkpfleming left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One extraneous file, and a couple of 'nice to have' improvements. Otherwise this looks great.

Comment thread.github/workflows/pr_test.yml
Comment threadpkg/commands/compute/build_test.go Outdated
Comment threadfastly-dev Outdated

@philippschultephilippschulte left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some of my findings are the same as Kevin's:

  1. Please remove the committed fastly-dev binary from the repo root.
  2. cpp is now exposed in compute init, but I do not see matching C++ starter-kit config. This could break the init flow if the starter-kit list is empty.
  3. The new config.CPP defaults do not appear to be added to the static/generated config, so real users may get empty C++ config values.
  4. WasmWasiTarget is defined but not used; either use it in the default build command or remove it for now.
  5. Add an init test for --language cpp, especially covering the no-starter-kit case.

@kpfleming

Copy link
Copy Markdown
Member

2. cpp is now exposed in compute init, but I do not see matching C++ starter-kit config. This could break the init flow if the starter-kit list is empty.

We don't have starter kits yet, that will happen next week. We do know what their URLs will be though, if those need to be included in the build.

@anthony-gomez-fastly

Copy link
Copy Markdown
MemberAuthor

@philippschulte

  1. Please remove the committed fastly-dev binary from the repo root.
    Done in d5685ea
  2. cpp is now exposed in compute init, but I do not see matching C++ starter-kit config. This could break the init flow if the starter-kit list is empty.
    Kevin addressed this already, I have included a test that has the starter kit URL, which fails now but should pass once we're ready and the url is public.
  3. The new config.CPP defaults do not appear to be added to the static/generated config, so real users may get empty C++ config values.
    I added them to fastly.toml in c1dc0443
  4. WasmWasiTarget is defined but not used; either use it in the default build command or remove it for now.
    it is used in the build process from what i understand, as demonstarted in the config.
  5. Add an init test for --language cpp, especially covering the no-starter-kit case.
    done in c632e09

Comment threadpkg/commands/compute/init_test.go

@kpflemingkpfleming left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One very small change and this is ready to go; the tests will fail until the starter kits are made public, so we can either just accept that for a couple of weeks or skip them for now.

@philippschultephilippschulte left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the updates. Point 4 still looks unresolved to me.

I see wasm_wasi_target is now present in .fastly/config.toml and mapped onto config.CPP.WasmWasiTarget, but I do not see that value being read anywhere in the C++ build path. The default build command still hardcodes wasm32-wasip1:

varCPPDefaultBuildCommand=fmt.Sprintf("clang++ -O3 --target=wasm32-wasip1 -o %s main.cpp", binWasmPath)

and Build() assigns that constant directly when [scripts.build] is missing.

So unless I am missing another code path, WasmWasiTarget is configured but currently unused.

@anthony-gomez-fastly

Copy link
Copy Markdown
MemberAuthor

@philippschulte you're right, i missed the hardcoded value not being used, added support in 02965bcb

@philippschultephilippschulte left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you!

@anthony-gomez-fastly
anthony-gomez-fastly merged commit 763f163 into mainMay 13, 2026
13 checks passed
@anthony-gomez-fastly
anthony-gomez-fastly deleted the CDTOOL-1313-add-cpp-support-for-compute branch May 13, 2026 14:50
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@anthony-gomez-fastly@kpfleming@jedisct1@philippschulte
, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Add support for cpp in for compute by anthony-gomez-fastly · Pull Request #1773 · fastly/cli · GitHub
Skip to content

Add support for cpp in for compute - #1773

Merged
anthony-gomez-fastly merged 14 commits into
mainfrom
CDTOOL-1313-add-cpp-support-for-compute
May 13, 2026
Merged

Add support for cpp in for compute#1773
anthony-gomez-fastly merged 14 commits into
mainfrom
CDTOOL-1313-add-cpp-support-for-compute

Conversation

@anthony-gomez-fastly

@anthony-gomez-fastlyanthony-gomez-fastly commented May 1, 2026

Copy link
Copy Markdown
Member

Change summary

Adds ability to build C++ services and publish them

test service here

All Submissions:

  • Have you followed the guidelines in our Contributing document?
  • Have you checked to ensure there aren't other open Pull Requests for the same update/change?

New Feature Submissions:

  • Does your submission pass tests?

Changes to Core Features:

  • Have you written new tests for your core changes, as applicable?
  • Have you successfully run tests with your changes locally?

@anthony-gomez-fastly
anthony-gomez-fastlyforce-pushed the CDTOOL-1313-add-cpp-support-for-compute branch from 0e1f5e1 to fee97dbCompareMay 1, 2026 16:26
@anthony-gomez-fastly
anthony-gomez-fastly marked this pull request as ready for review May 4, 2026 13:30
@anthony-gomez-fastly
anthony-gomez-fastly requested a review from a team as a code ownerMay 4, 2026 13:30
kpfleming
kpfleming previously requested changes May 4, 2026

@kpflemingkpfleming left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One extraneous file, and a couple of 'nice to have' improvements. Otherwise this looks great.

Comment thread.github/workflows/pr_test.yml
Comment threadpkg/commands/compute/build_test.go Outdated
Comment threadfastly-dev Outdated

@philippschultephilippschulte left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some of my findings are the same as Kevin's:

  1. Please remove the committed fastly-dev binary from the repo root.
  2. cpp is now exposed in compute init, but I do not see matching C++ starter-kit config. This could break the init flow if the starter-kit list is empty.
  3. The new config.CPP defaults do not appear to be added to the static/generated config, so real users may get empty C++ config values.
  4. WasmWasiTarget is defined but not used; either use it in the default build command or remove it for now.
  5. Add an init test for --language cpp, especially covering the no-starter-kit case.

@kpfleming

Copy link
Copy Markdown
Member

2. cpp is now exposed in compute init, but I do not see matching C++ starter-kit config. This could break the init flow if the starter-kit list is empty.

We don't have starter kits yet, that will happen next week. We do know what their URLs will be though, if those need to be included in the build.

@anthony-gomez-fastly

Copy link
Copy Markdown
MemberAuthor

@philippschulte

  1. Please remove the committed fastly-dev binary from the repo root.
    Done in d5685ea
  2. cpp is now exposed in compute init, but I do not see matching C++ starter-kit config. This could break the init flow if the starter-kit list is empty.
    Kevin addressed this already, I have included a test that has the starter kit URL, which fails now but should pass once we're ready and the url is public.
  3. The new config.CPP defaults do not appear to be added to the static/generated config, so real users may get empty C++ config values.
    I added them to fastly.toml in c1dc0443
  4. WasmWasiTarget is defined but not used; either use it in the default build command or remove it for now.
    it is used in the build process from what i understand, as demonstarted in the config.
  5. Add an init test for --language cpp, especially covering the no-starter-kit case.
    done in c632e09

Comment threadpkg/commands/compute/init_test.go

@kpflemingkpfleming left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One very small change and this is ready to go; the tests will fail until the starter kits are made public, so we can either just accept that for a couple of weeks or skip them for now.

@philippschultephilippschulte left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the updates. Point 4 still looks unresolved to me.

I see wasm_wasi_target is now present in .fastly/config.toml and mapped onto config.CPP.WasmWasiTarget, but I do not see that value being read anywhere in the C++ build path. The default build command still hardcodes wasm32-wasip1:

varCPPDefaultBuildCommand=fmt.Sprintf("clang++ -O3 --target=wasm32-wasip1 -o %s main.cpp", binWasmPath)

and Build() assigns that constant directly when [scripts.build] is missing.

So unless I am missing another code path, WasmWasiTarget is configured but currently unused.

@anthony-gomez-fastly

Copy link
Copy Markdown
MemberAuthor

@philippschulte you're right, i missed the hardcoded value not being used, added support in 02965bcb

@philippschultephilippschulte left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you!

@anthony-gomez-fastly
anthony-gomez-fastly merged commit 763f163 into mainMay 13, 2026
13 checks passed
@anthony-gomez-fastly
anthony-gomez-fastly deleted the CDTOOL-1313-add-cpp-support-for-compute branch May 13, 2026 14:50
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@anthony-gomez-fastly@kpfleming@jedisct1@philippschulte
, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Add support for cpp in for compute by anthony-gomez-fastly · Pull Request #1773 · fastly/cli · GitHub
Skip to content

Add support for cpp in for compute - #1773

Merged
anthony-gomez-fastly merged 14 commits into
mainfrom
CDTOOL-1313-add-cpp-support-for-compute
May 13, 2026
Merged

Add support for cpp in for compute#1773
anthony-gomez-fastly merged 14 commits into
mainfrom
CDTOOL-1313-add-cpp-support-for-compute

Conversation

@anthony-gomez-fastly

@anthony-gomez-fastlyanthony-gomez-fastly commented May 1, 2026

Copy link
Copy Markdown
Member

Change summary

Adds ability to build C++ services and publish them

test service here

All Submissions:

  • Have you followed the guidelines in our Contributing document?
  • Have you checked to ensure there aren't other open Pull Requests for the same update/change?

New Feature Submissions:

  • Does your submission pass tests?

Changes to Core Features:

  • Have you written new tests for your core changes, as applicable?
  • Have you successfully run tests with your changes locally?

@anthony-gomez-fastly
anthony-gomez-fastlyforce-pushed the CDTOOL-1313-add-cpp-support-for-compute branch from 0e1f5e1 to fee97dbCompareMay 1, 2026 16:26
@anthony-gomez-fastly
anthony-gomez-fastly marked this pull request as ready for review May 4, 2026 13:30
@anthony-gomez-fastly
anthony-gomez-fastly requested a review from a team as a code ownerMay 4, 2026 13:30
kpfleming
kpfleming previously requested changes May 4, 2026

@kpflemingkpfleming left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One extraneous file, and a couple of 'nice to have' improvements. Otherwise this looks great.

Comment thread.github/workflows/pr_test.yml
Comment threadpkg/commands/compute/build_test.go Outdated
Comment threadfastly-dev Outdated

@philippschultephilippschulte left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some of my findings are the same as Kevin's:

  1. Please remove the committed fastly-dev binary from the repo root.
  2. cpp is now exposed in compute init, but I do not see matching C++ starter-kit config. This could break the init flow if the starter-kit list is empty.
  3. The new config.CPP defaults do not appear to be added to the static/generated config, so real users may get empty C++ config values.
  4. WasmWasiTarget is defined but not used; either use it in the default build command or remove it for now.
  5. Add an init test for --language cpp, especially covering the no-starter-kit case.

@kpfleming

Copy link
Copy Markdown
Member

2. cpp is now exposed in compute init, but I do not see matching C++ starter-kit config. This could break the init flow if the starter-kit list is empty.

We don't have starter kits yet, that will happen next week. We do know what their URLs will be though, if those need to be included in the build.

@anthony-gomez-fastly

Copy link
Copy Markdown
MemberAuthor

@philippschulte

  1. Please remove the committed fastly-dev binary from the repo root.
    Done in d5685ea
  2. cpp is now exposed in compute init, but I do not see matching C++ starter-kit config. This could break the init flow if the starter-kit list is empty.
    Kevin addressed this already, I have included a test that has the starter kit URL, which fails now but should pass once we're ready and the url is public.
  3. The new config.CPP defaults do not appear to be added to the static/generated config, so real users may get empty C++ config values.
    I added them to fastly.toml in c1dc0443
  4. WasmWasiTarget is defined but not used; either use it in the default build command or remove it for now.
    it is used in the build process from what i understand, as demonstarted in the config.
  5. Add an init test for --language cpp, especially covering the no-starter-kit case.
    done in c632e09

Comment threadpkg/commands/compute/init_test.go

@kpflemingkpfleming left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One very small change and this is ready to go; the tests will fail until the starter kits are made public, so we can either just accept that for a couple of weeks or skip them for now.

@philippschultephilippschulte left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the updates. Point 4 still looks unresolved to me.

I see wasm_wasi_target is now present in .fastly/config.toml and mapped onto config.CPP.WasmWasiTarget, but I do not see that value being read anywhere in the C++ build path. The default build command still hardcodes wasm32-wasip1:

varCPPDefaultBuildCommand=fmt.Sprintf("clang++ -O3 --target=wasm32-wasip1 -o %s main.cpp", binWasmPath)

and Build() assigns that constant directly when [scripts.build] is missing.

So unless I am missing another code path, WasmWasiTarget is configured but currently unused.

@anthony-gomez-fastly

Copy link
Copy Markdown
MemberAuthor

@philippschulte you're right, i missed the hardcoded value not being used, added support in 02965bcb

@philippschultephilippschulte left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you!

@anthony-gomez-fastly
anthony-gomez-fastly merged commit 763f163 into mainMay 13, 2026
13 checks passed
@anthony-gomez-fastly
anthony-gomez-fastly deleted the CDTOOL-1313-add-cpp-support-for-compute branch May 13, 2026 14:50
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@anthony-gomez-fastly@kpfleming@jedisct1@philippschulte
, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Add support for cpp in for compute by anthony-gomez-fastly · Pull Request #1773 · fastly/cli · GitHub
Skip to content

Add support for cpp in for compute - #1773

Merged
anthony-gomez-fastly merged 14 commits into
mainfrom
CDTOOL-1313-add-cpp-support-for-compute
May 13, 2026
Merged

Add support for cpp in for compute#1773
anthony-gomez-fastly merged 14 commits into
mainfrom
CDTOOL-1313-add-cpp-support-for-compute

Conversation

@anthony-gomez-fastly

@anthony-gomez-fastlyanthony-gomez-fastly commented May 1, 2026

Copy link
Copy Markdown
Member

Change summary

Adds ability to build C++ services and publish them

test service here

All Submissions:

  • Have you followed the guidelines in our Contributing document?
  • Have you checked to ensure there aren't other open Pull Requests for the same update/change?

New Feature Submissions:

  • Does your submission pass tests?

Changes to Core Features:

  • Have you written new tests for your core changes, as applicable?
  • Have you successfully run tests with your changes locally?

@anthony-gomez-fastly
anthony-gomez-fastlyforce-pushed the CDTOOL-1313-add-cpp-support-for-compute branch from 0e1f5e1 to fee97dbCompareMay 1, 2026 16:26
@anthony-gomez-fastly
anthony-gomez-fastly marked this pull request as ready for review May 4, 2026 13:30
@anthony-gomez-fastly
anthony-gomez-fastly requested a review from a team as a code ownerMay 4, 2026 13:30
kpfleming
kpfleming previously requested changes May 4, 2026

@kpflemingkpfleming left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One extraneous file, and a couple of 'nice to have' improvements. Otherwise this looks great.

Comment thread.github/workflows/pr_test.yml
Comment threadpkg/commands/compute/build_test.go Outdated
Comment threadfastly-dev Outdated

@philippschultephilippschulte left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some of my findings are the same as Kevin's:

  1. Please remove the committed fastly-dev binary from the repo root.
  2. cpp is now exposed in compute init, but I do not see matching C++ starter-kit config. This could break the init flow if the starter-kit list is empty.
  3. The new config.CPP defaults do not appear to be added to the static/generated config, so real users may get empty C++ config values.
  4. WasmWasiTarget is defined but not used; either use it in the default build command or remove it for now.
  5. Add an init test for --language cpp, especially covering the no-starter-kit case.

@kpfleming

Copy link
Copy Markdown
Member

2. cpp is now exposed in compute init, but I do not see matching C++ starter-kit config. This could break the init flow if the starter-kit list is empty.

We don't have starter kits yet, that will happen next week. We do know what their URLs will be though, if those need to be included in the build.

@anthony-gomez-fastly

Copy link
Copy Markdown
MemberAuthor

@philippschulte

  1. Please remove the committed fastly-dev binary from the repo root.
    Done in d5685ea
  2. cpp is now exposed in compute init, but I do not see matching C++ starter-kit config. This could break the init flow if the starter-kit list is empty.
    Kevin addressed this already, I have included a test that has the starter kit URL, which fails now but should pass once we're ready and the url is public.
  3. The new config.CPP defaults do not appear to be added to the static/generated config, so real users may get empty C++ config values.
    I added them to fastly.toml in c1dc0443
  4. WasmWasiTarget is defined but not used; either use it in the default build command or remove it for now.
    it is used in the build process from what i understand, as demonstarted in the config.
  5. Add an init test for --language cpp, especially covering the no-starter-kit case.
    done in c632e09

Comment threadpkg/commands/compute/init_test.go

@kpflemingkpfleming left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One very small change and this is ready to go; the tests will fail until the starter kits are made public, so we can either just accept that for a couple of weeks or skip them for now.

@philippschultephilippschulte left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the updates. Point 4 still looks unresolved to me.

I see wasm_wasi_target is now present in .fastly/config.toml and mapped onto config.CPP.WasmWasiTarget, but I do not see that value being read anywhere in the C++ build path. The default build command still hardcodes wasm32-wasip1:

varCPPDefaultBuildCommand=fmt.Sprintf("clang++ -O3 --target=wasm32-wasip1 -o %s main.cpp", binWasmPath)

and Build() assigns that constant directly when [scripts.build] is missing.

So unless I am missing another code path, WasmWasiTarget is configured but currently unused.

@anthony-gomez-fastly

Copy link
Copy Markdown
MemberAuthor

@philippschulte you're right, i missed the hardcoded value not being used, added support in 02965bcb

@philippschultephilippschulte left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you!

@anthony-gomez-fastly
anthony-gomez-fastly merged commit 763f163 into mainMay 13, 2026
13 checks passed
@anthony-gomez-fastly
anthony-gomez-fastly deleted the CDTOOL-1313-add-cpp-support-for-compute branch May 13, 2026 14:50
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@anthony-gomez-fastly@kpfleming@jedisct1@philippschulte
, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' Add support for cpp in for compute by anthony-gomez-fastly · Pull Request #1773 · fastly/cli · GitHub
Skip to content

Add support for cpp in for compute - #1773

Merged
anthony-gomez-fastly merged 14 commits into
mainfrom
CDTOOL-1313-add-cpp-support-for-compute
May 13, 2026
Merged

Add support for cpp in for compute#1773
anthony-gomez-fastly merged 14 commits into
mainfrom
CDTOOL-1313-add-cpp-support-for-compute

Conversation

@anthony-gomez-fastly

@anthony-gomez-fastlyanthony-gomez-fastly commented May 1, 2026

Copy link
Copy Markdown
Member

Change summary

Adds ability to build C++ services and publish them

test service here

All Submissions:

  • Have you followed the guidelines in our Contributing document?
  • Have you checked to ensure there aren't other open Pull Requests for the same update/change?

New Feature Submissions:

  • Does your submission pass tests?

Changes to Core Features:

  • Have you written new tests for your core changes, as applicable?
  • Have you successfully run tests with your changes locally?

@anthony-gomez-fastly
anthony-gomez-fastlyforce-pushed the CDTOOL-1313-add-cpp-support-for-compute branch from 0e1f5e1 to fee97dbCompareMay 1, 2026 16:26
@anthony-gomez-fastly
anthony-gomez-fastly marked this pull request as ready for review May 4, 2026 13:30
@anthony-gomez-fastly
anthony-gomez-fastly requested a review from a team as a code ownerMay 4, 2026 13:30
kpfleming
kpfleming previously requested changes May 4, 2026

@kpflemingkpfleming left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One extraneous file, and a couple of 'nice to have' improvements. Otherwise this looks great.

Comment thread.github/workflows/pr_test.yml
Comment threadpkg/commands/compute/build_test.go Outdated
Comment threadfastly-dev Outdated

@philippschultephilippschulte left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some of my findings are the same as Kevin's:

  1. Please remove the committed fastly-dev binary from the repo root.
  2. cpp is now exposed in compute init, but I do not see matching C++ starter-kit config. This could break the init flow if the starter-kit list is empty.
  3. The new config.CPP defaults do not appear to be added to the static/generated config, so real users may get empty C++ config values.
  4. WasmWasiTarget is defined but not used; either use it in the default build command or remove it for now.
  5. Add an init test for --language cpp, especially covering the no-starter-kit case.

@kpfleming

Copy link
Copy Markdown
Member

2. cpp is now exposed in compute init, but I do not see matching C++ starter-kit config. This could break the init flow if the starter-kit list is empty.

We don't have starter kits yet, that will happen next week. We do know what their URLs will be though, if those need to be included in the build.

@anthony-gomez-fastly

Copy link
Copy Markdown
MemberAuthor

@philippschulte

  1. Please remove the committed fastly-dev binary from the repo root.
    Done in d5685ea
  2. cpp is now exposed in compute init, but I do not see matching C++ starter-kit config. This could break the init flow if the starter-kit list is empty.
    Kevin addressed this already, I have included a test that has the starter kit URL, which fails now but should pass once we're ready and the url is public.
  3. The new config.CPP defaults do not appear to be added to the static/generated config, so real users may get empty C++ config values.
    I added them to fastly.toml in c1dc0443
  4. WasmWasiTarget is defined but not used; either use it in the default build command or remove it for now.
    it is used in the build process from what i understand, as demonstarted in the config.
  5. Add an init test for --language cpp, especially covering the no-starter-kit case.
    done in c632e09

Comment threadpkg/commands/compute/init_test.go

@kpflemingkpfleming left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One very small change and this is ready to go; the tests will fail until the starter kits are made public, so we can either just accept that for a couple of weeks or skip them for now.

@philippschultephilippschulte left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the updates. Point 4 still looks unresolved to me.

I see wasm_wasi_target is now present in .fastly/config.toml and mapped onto config.CPP.WasmWasiTarget, but I do not see that value being read anywhere in the C++ build path. The default build command still hardcodes wasm32-wasip1:

varCPPDefaultBuildCommand=fmt.Sprintf("clang++ -O3 --target=wasm32-wasip1 -o %s main.cpp", binWasmPath)

and Build() assigns that constant directly when [scripts.build] is missing.

So unless I am missing another code path, WasmWasiTarget is configured but currently unused.

@anthony-gomez-fastly

Copy link
Copy Markdown
MemberAuthor

@philippschulte you're right, i missed the hardcoded value not being used, added support in 02965bcb

@philippschultephilippschulte left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you!

@anthony-gomez-fastly
anthony-gomez-fastly merged commit 763f163 into mainMay 13, 2026
13 checks passed
@anthony-gomez-fastly
anthony-gomez-fastly deleted the CDTOOL-1313-add-cpp-support-for-compute branch May 13, 2026 14:50
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@anthony-gomez-fastly@kpfleming@jedisct1@philippschulte
, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Add support for cpp in for compute by anthony-gomez-fastly · Pull Request #1773 · fastly/cli · GitHub
Skip to content

Add support for cpp in for compute - #1773

Merged
anthony-gomez-fastly merged 14 commits into
mainfrom
CDTOOL-1313-add-cpp-support-for-compute
May 13, 2026
Merged

Add support for cpp in for compute#1773
anthony-gomez-fastly merged 14 commits into
mainfrom
CDTOOL-1313-add-cpp-support-for-compute

Conversation

@anthony-gomez-fastly

@anthony-gomez-fastlyanthony-gomez-fastly commented May 1, 2026

Copy link
Copy Markdown
Member

Change summary

Adds ability to build C++ services and publish them

test service here

All Submissions:

  • Have you followed the guidelines in our Contributing document?
  • Have you checked to ensure there aren't other open Pull Requests for the same update/change?

New Feature Submissions:

  • Does your submission pass tests?

Changes to Core Features:

  • Have you written new tests for your core changes, as applicable?
  • Have you successfully run tests with your changes locally?

@anthony-gomez-fastly
anthony-gomez-fastlyforce-pushed the CDTOOL-1313-add-cpp-support-for-compute branch from 0e1f5e1 to fee97dbCompareMay 1, 2026 16:26
@anthony-gomez-fastly
anthony-gomez-fastly marked this pull request as ready for review May 4, 2026 13:30
@anthony-gomez-fastly
anthony-gomez-fastly requested a review from a team as a code ownerMay 4, 2026 13:30
kpfleming
kpfleming previously requested changes May 4, 2026

@kpflemingkpfleming left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One extraneous file, and a couple of 'nice to have' improvements. Otherwise this looks great.

Comment thread.github/workflows/pr_test.yml
Comment threadpkg/commands/compute/build_test.go Outdated
Comment threadfastly-dev Outdated

@philippschultephilippschulte left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some of my findings are the same as Kevin's:

  1. Please remove the committed fastly-dev binary from the repo root.
  2. cpp is now exposed in compute init, but I do not see matching C++ starter-kit config. This could break the init flow if the starter-kit list is empty.
  3. The new config.CPP defaults do not appear to be added to the static/generated config, so real users may get empty C++ config values.
  4. WasmWasiTarget is defined but not used; either use it in the default build command or remove it for now.
  5. Add an init test for --language cpp, especially covering the no-starter-kit case.

@kpfleming

Copy link
Copy Markdown
Member

2. cpp is now exposed in compute init, but I do not see matching C++ starter-kit config. This could break the init flow if the starter-kit list is empty.

We don't have starter kits yet, that will happen next week. We do know what their URLs will be though, if those need to be included in the build.

@anthony-gomez-fastly

Copy link
Copy Markdown
MemberAuthor

@philippschulte

  1. Please remove the committed fastly-dev binary from the repo root.
    Done in d5685ea
  2. cpp is now exposed in compute init, but I do not see matching C++ starter-kit config. This could break the init flow if the starter-kit list is empty.
    Kevin addressed this already, I have included a test that has the starter kit URL, which fails now but should pass once we're ready and the url is public.
  3. The new config.CPP defaults do not appear to be added to the static/generated config, so real users may get empty C++ config values.
    I added them to fastly.toml in c1dc0443
  4. WasmWasiTarget is defined but not used; either use it in the default build command or remove it for now.
    it is used in the build process from what i understand, as demonstarted in the config.
  5. Add an init test for --language cpp, especially covering the no-starter-kit case.
    done in c632e09

Comment threadpkg/commands/compute/init_test.go

@kpflemingkpfleming left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One very small change and this is ready to go; the tests will fail until the starter kits are made public, so we can either just accept that for a couple of weeks or skip them for now.

@philippschultephilippschulte left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the updates. Point 4 still looks unresolved to me.

I see wasm_wasi_target is now present in .fastly/config.toml and mapped onto config.CPP.WasmWasiTarget, but I do not see that value being read anywhere in the C++ build path. The default build command still hardcodes wasm32-wasip1:

varCPPDefaultBuildCommand=fmt.Sprintf("clang++ -O3 --target=wasm32-wasip1 -o %s main.cpp", binWasmPath)

and Build() assigns that constant directly when [scripts.build] is missing.

So unless I am missing another code path, WasmWasiTarget is configured but currently unused.

@anthony-gomez-fastly

Copy link
Copy Markdown
MemberAuthor

@philippschulte you're right, i missed the hardcoded value not being used, added support in 02965bcb

@philippschultephilippschulte left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you!

@anthony-gomez-fastly
anthony-gomez-fastly merged commit 763f163 into mainMay 13, 2026
13 checks passed
@anthony-gomez-fastly
anthony-gomez-fastly deleted the CDTOOL-1313-add-cpp-support-for-compute branch May 13, 2026 14:50
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@anthony-gomez-fastly@kpfleming@jedisct1@philippschulte
, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Add support for cpp in for compute by anthony-gomez-fastly · Pull Request #1773 · fastly/cli · GitHub
Skip to content

Add support for cpp in for compute - #1773

Merged
anthony-gomez-fastly merged 14 commits into
mainfrom
CDTOOL-1313-add-cpp-support-for-compute
May 13, 2026
Merged

Add support for cpp in for compute#1773
anthony-gomez-fastly merged 14 commits into
mainfrom
CDTOOL-1313-add-cpp-support-for-compute

Conversation

@anthony-gomez-fastly

@anthony-gomez-fastlyanthony-gomez-fastly commented May 1, 2026

Copy link
Copy Markdown
Member

Change summary

Adds ability to build C++ services and publish them

test service here

All Submissions:

  • Have you followed the guidelines in our Contributing document?
  • Have you checked to ensure there aren't other open Pull Requests for the same update/change?

New Feature Submissions:

  • Does your submission pass tests?

Changes to Core Features:

  • Have you written new tests for your core changes, as applicable?
  • Have you successfully run tests with your changes locally?

@anthony-gomez-fastly
anthony-gomez-fastlyforce-pushed the CDTOOL-1313-add-cpp-support-for-compute branch from 0e1f5e1 to fee97dbCompareMay 1, 2026 16:26
@anthony-gomez-fastly
anthony-gomez-fastly marked this pull request as ready for review May 4, 2026 13:30
@anthony-gomez-fastly
anthony-gomez-fastly requested a review from a team as a code ownerMay 4, 2026 13:30
kpfleming
kpfleming previously requested changes May 4, 2026

@kpflemingkpfleming left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One extraneous file, and a couple of 'nice to have' improvements. Otherwise this looks great.

Comment thread.github/workflows/pr_test.yml
Comment threadpkg/commands/compute/build_test.go Outdated
Comment threadfastly-dev Outdated

@philippschultephilippschulte left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some of my findings are the same as Kevin's:

  1. Please remove the committed fastly-dev binary from the repo root.
  2. cpp is now exposed in compute init, but I do not see matching C++ starter-kit config. This could break the init flow if the starter-kit list is empty.
  3. The new config.CPP defaults do not appear to be added to the static/generated config, so real users may get empty C++ config values.
  4. WasmWasiTarget is defined but not used; either use it in the default build command or remove it for now.
  5. Add an init test for --language cpp, especially covering the no-starter-kit case.

@kpfleming

Copy link
Copy Markdown
Member

2. cpp is now exposed in compute init, but I do not see matching C++ starter-kit config. This could break the init flow if the starter-kit list is empty.

We don't have starter kits yet, that will happen next week. We do know what their URLs will be though, if those need to be included in the build.

@anthony-gomez-fastly

Copy link
Copy Markdown
MemberAuthor

@philippschulte

  1. Please remove the committed fastly-dev binary from the repo root.
    Done in d5685ea
  2. cpp is now exposed in compute init, but I do not see matching C++ starter-kit config. This could break the init flow if the starter-kit list is empty.
    Kevin addressed this already, I have included a test that has the starter kit URL, which fails now but should pass once we're ready and the url is public.
  3. The new config.CPP defaults do not appear to be added to the static/generated config, so real users may get empty C++ config values.
    I added them to fastly.toml in c1dc0443
  4. WasmWasiTarget is defined but not used; either use it in the default build command or remove it for now.
    it is used in the build process from what i understand, as demonstarted in the config.
  5. Add an init test for --language cpp, especially covering the no-starter-kit case.
    done in c632e09

Comment threadpkg/commands/compute/init_test.go

@kpflemingkpfleming left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One very small change and this is ready to go; the tests will fail until the starter kits are made public, so we can either just accept that for a couple of weeks or skip them for now.

@philippschultephilippschulte left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the updates. Point 4 still looks unresolved to me.

I see wasm_wasi_target is now present in .fastly/config.toml and mapped onto config.CPP.WasmWasiTarget, but I do not see that value being read anywhere in the C++ build path. The default build command still hardcodes wasm32-wasip1:

varCPPDefaultBuildCommand=fmt.Sprintf("clang++ -O3 --target=wasm32-wasip1 -o %s main.cpp", binWasmPath)

and Build() assigns that constant directly when [scripts.build] is missing.

So unless I am missing another code path, WasmWasiTarget is configured but currently unused.

@anthony-gomez-fastly

Copy link
Copy Markdown
MemberAuthor

@philippschulte you're right, i missed the hardcoded value not being used, added support in 02965bcb

@philippschultephilippschulte left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you!

@anthony-gomez-fastly
anthony-gomez-fastly merged commit 763f163 into mainMay 13, 2026
13 checks passed
@anthony-gomez-fastly
anthony-gomez-fastly deleted the CDTOOL-1313-add-cpp-support-for-compute branch May 13, 2026 14:50
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@anthony-gomez-fastly@kpfleming@jedisct1@philippschulte
, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })(); Add support for cpp in for compute by anthony-gomez-fastly · Pull Request #1773 · fastly/cli · GitHub
Skip to content

Add support for cpp in for compute - #1773

Merged
anthony-gomez-fastly merged 14 commits into
mainfrom
CDTOOL-1313-add-cpp-support-for-compute
May 13, 2026
Merged

Add support for cpp in for compute#1773
anthony-gomez-fastly merged 14 commits into
mainfrom
CDTOOL-1313-add-cpp-support-for-compute

Conversation

@anthony-gomez-fastly

@anthony-gomez-fastlyanthony-gomez-fastly commented May 1, 2026

Copy link
Copy Markdown
Member

Change summary

Adds ability to build C++ services and publish them

test service here

All Submissions:

  • Have you followed the guidelines in our Contributing document?
  • Have you checked to ensure there aren't other open Pull Requests for the same update/change?

New Feature Submissions:

  • Does your submission pass tests?

Changes to Core Features:

  • Have you written new tests for your core changes, as applicable?
  • Have you successfully run tests with your changes locally?

@anthony-gomez-fastly
anthony-gomez-fastlyforce-pushed the CDTOOL-1313-add-cpp-support-for-compute branch from 0e1f5e1 to fee97dbCompareMay 1, 2026 16:26
@anthony-gomez-fastly
anthony-gomez-fastly marked this pull request as ready for review May 4, 2026 13:30
@anthony-gomez-fastly
anthony-gomez-fastly requested a review from a team as a code ownerMay 4, 2026 13:30
kpfleming
kpfleming previously requested changes May 4, 2026

@kpflemingkpfleming left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One extraneous file, and a couple of 'nice to have' improvements. Otherwise this looks great.

Comment thread.github/workflows/pr_test.yml
Comment threadpkg/commands/compute/build_test.go Outdated
Comment threadfastly-dev Outdated

@philippschultephilippschulte left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some of my findings are the same as Kevin's:

  1. Please remove the committed fastly-dev binary from the repo root.
  2. cpp is now exposed in compute init, but I do not see matching C++ starter-kit config. This could break the init flow if the starter-kit list is empty.
  3. The new config.CPP defaults do not appear to be added to the static/generated config, so real users may get empty C++ config values.
  4. WasmWasiTarget is defined but not used; either use it in the default build command or remove it for now.
  5. Add an init test for --language cpp, especially covering the no-starter-kit case.

@kpfleming

Copy link
Copy Markdown
Member

2. cpp is now exposed in compute init, but I do not see matching C++ starter-kit config. This could break the init flow if the starter-kit list is empty.

We don't have starter kits yet, that will happen next week. We do know what their URLs will be though, if those need to be included in the build.

@anthony-gomez-fastly

Copy link
Copy Markdown
MemberAuthor

@philippschulte

  1. Please remove the committed fastly-dev binary from the repo root.
    Done in d5685ea
  2. cpp is now exposed in compute init, but I do not see matching C++ starter-kit config. This could break the init flow if the starter-kit list is empty.
    Kevin addressed this already, I have included a test that has the starter kit URL, which fails now but should pass once we're ready and the url is public.
  3. The new config.CPP defaults do not appear to be added to the static/generated config, so real users may get empty C++ config values.
    I added them to fastly.toml in c1dc0443
  4. WasmWasiTarget is defined but not used; either use it in the default build command or remove it for now.
    it is used in the build process from what i understand, as demonstarted in the config.
  5. Add an init test for --language cpp, especially covering the no-starter-kit case.
    done in c632e09

Comment threadpkg/commands/compute/init_test.go

@kpflemingkpfleming left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One very small change and this is ready to go; the tests will fail until the starter kits are made public, so we can either just accept that for a couple of weeks or skip them for now.

@philippschultephilippschulte left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the updates. Point 4 still looks unresolved to me.

I see wasm_wasi_target is now present in .fastly/config.toml and mapped onto config.CPP.WasmWasiTarget, but I do not see that value being read anywhere in the C++ build path. The default build command still hardcodes wasm32-wasip1:

varCPPDefaultBuildCommand=fmt.Sprintf("clang++ -O3 --target=wasm32-wasip1 -o %s main.cpp", binWasmPath)

and Build() assigns that constant directly when [scripts.build] is missing.

So unless I am missing another code path, WasmWasiTarget is configured but currently unused.

@anthony-gomez-fastly

Copy link
Copy Markdown
MemberAuthor

@philippschulte you're right, i missed the hardcoded value not being used, added support in 02965bcb

@philippschultephilippschulte left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you!

@anthony-gomez-fastly
anthony-gomez-fastly merged commit 763f163 into mainMay 13, 2026
13 checks passed
@anthony-gomez-fastly
anthony-gomez-fastly deleted the CDTOOL-1313-add-cpp-support-for-compute branch May 13, 2026 14:50
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@anthony-gomez-fastly@kpfleming@jedisct1@philippschulte