GPT-5.6 Luna vs Grok 4.5 for coding

The verdict

GPT-5.6 Luna wins, 9388

Same 18 coding tasks, marked blind by three rival labs. GPT-5.6 Luna took 5 tasks, Grok 4.5 took 6, 7 tied. Tested 16 Aug 2026.

Where they differed most

The task — Typed debounce

Write a debounce function in TypeScript that preserves the argument types of the wrapped function, returns a function with a .cancel() method, and does not use 'any'. Explain in one sentence why the naive generic signature loses type information.

```ts
type Debounced<F extends (...args: never[]) => unknown> =
  ((...args: Parameters<F>) => void) & {
    cancel(): void;
  };

function debounce<F extends (...args: never[]) => unknown>(
  fn: F,
  delay: number
): Debounced<F> {
  let timer: ReturnType<typeof setTimeout> | undefined;
  let pendingArgs: Parameters<F> | undefined;

  const debounced = ((...args: Parameters<F>): void => {
    pendingArgs = args;

    if (timer !== undefined) {
      clearTimeout(timer);
    }

    timer = setTimeout(() => {
      const argsToUse = pendingArgs…
```typescript
function debounce<TArgs extends unknown[]>(
  fn: (...args: TArgs) => void,
  delay: number
): ((...args: TArgs) => void) & { cancel(): void } {
  let timeoutId: ReturnType<typeof setTimeout> | undefined;

  const debounced = (...args: TArgs) => {
    if (timeoutId !== undefined) clearTimeout(timeoutId);
    timeoutId = setTimeout(() => {
      fn(...args);
      timeoutId = undefined;
    }, delay);
  };

  debounced.cancel = () => {
    if (timeoutId !== undefined) {
      clearTimeout(timeoutId);
      timeoutId = undefined;…

Task by task

TaskGPT-5.6 LunaGrok 4.5
Duration parser910
Find the bug1010
SQL without window functions1010
Infinite useEffect910
Typed debounce105
Leftmost binary search1010
Security review99
Safe migration89
Fix the code not the test1010
Race condition109
Retry with backoff99
Recursive type910
Bash one-liner99
Explain and cost910
Regex with limits83
Callback to async108
Diagnose from a trace89
Idempotency108

Full receipts: GPT-5.6 Luna, Grok 4.5 · judges claude-sonnet-5, gemini-3.1-pro-preview, grok-4.5

Questions people ask

Which is better for coding: GPT-5.6 Luna or Grok 4.5?

GPT-5.6 Luna — it scored 93/100 against 88/100 on our 18-task coding suite, winning 5 tasks to 6 with 7 tied. Every answer was marked blind by three judges from three rival AI labs.

How was this tested?

Both models answered the identical published coding tasks. Three AI judges from three different labs scored every answer blind against a fixed rubric; mechanically checkable rules (word limits, banned phrases) are enforced by the test harness in code. The raw outputs and judge verdicts are downloadable.

More coding head-to-heads: GPT-5.6 Luna vs GPT-5.6 Terra · GPT-5.6 Luna vs GPT-5.6 Sol · GLM 5.2 vs GPT-5.6 Luna · GPT-5.3-Codex vs GPT-5.6 Luna · GPT-5.5 vs GPT-5.6 Luna · GPT-5.6 Luna vs Qwen3.7 Max

Full ranking: Best AI for coding · model pages: GPT-5.6 Luna, Grok 4.5