{
  "slug": "semgrep-adds-alpha-objective-c-parsing-105ae012c544",
  "title": "semgrep adds alpha Objective-C parsing",
  "tools": [
    "semgrep"
  ],
  "tags": [
    "agent"
  ],
  "introduced_at": "2026-10-20T20:27:41.000Z",
  "announced_at": "2026-10-20T20:27:41.000Z",
  "effective_at": null,
  "date_basis": "source-publication",
  "status": "unknown",
  "how": {
    "incantation": "For Objective-C `.m` code, define Semgrep rules with `languages: [objc]` and Semgrep pattern syntax, then scan with `semgrep scan`. v1.182.0 added alpha support for search-mode and taint-mode rules; Objective-C++ `.mm` is not included.",
    "examples": [
      "semgrep scan --config <rules.yml> <path-to-m-or-project>",
      "rules:\n  - id: objc-pattern-search\n    languages: [objc]\n    message: <finding message>\n    severity: WARNING\n    pattern: <Objective-C pattern>",
      "rules:\n  - id: objc-taint-flow\n    languages: [objc]\n    message: <finding message>\n    severity: WARNING\n    mode: taint\n    pattern-sources:\n      - pattern: <source pattern>\n    pattern-sinks:\n      - pattern: <sink pattern>"
    ],
    "gotchas": [
      "Version: 1.182.0",
      "Availability: alpha",
      "languages (required): Rule language selector; set to `objc` for Objective-C.",
      "mode: Set to `taint` for taint analysis; search mode is the default.",
      "pattern (required): Search-mode code pattern to match.",
      "pattern-sources (required): Taint-mode source patterns that mark data as tainted.",
      "pattern-sinks (required): Taint-mode sink patterns where tainted data is reported.",
      "--config <rules.yml> (required): CLI option selecting a YAML rule configuration file.",
      "<path-to-m-or-project>: Target file or folder; omitted targets default to the current working directory.",
      "Prerequisite: Objective-C parsing is alpha support added in Semgrep v1.182.0; `.m` files are supported.",
      "Prerequisite: No additional authentication requirement for local `semgrep scan` with specific rules is stated in the CLI reference.",
      "Objective-C++ (`.mm`) support will follow separately.",
      "Remaining constructs parse and degrade gracefully."
    ]
  },
  "why_it_matters": "When searching or applying taint-mode rules to Objective-C `.m` files, use Semgrep’s Objective-C language support.",
  "sources": [
    "https://github.com/semgrep/semgrep/releases/tag/v1.182.0",
    "https://semgrep.dev/docs/cli-reference",
    "https://semgrep.dev/docs/writing-rules/rule-syntax"
  ],
  "rank": 0.9602,
  "judge": {
    "publish": true,
    "judge_model": "codex-cli/gpt-6-luna+typesafe/jev-1.13.0",
    "prompt_version": "extract-v7+enrich-v2+judge-v2x3+jev-publish-v1"
  },
  "review_state": "approved",
  "provenance": {
    "run_id": "daily-20261026-04",
    "verdict_id": "daily-20261026-04:daily-20261026-04-4fa461c7a755ec6a-0:gate",
    "evidence_hash": "679fccd9a33f2b8bba62be25134f77f4201a3ceeea6ea91551a06b59640d82ac"
  },
  "review": {
    "draft_hash": "949e7f1c2acb2222ed8da4e22d07069836964280e302630c2d0622de61dd7bb1",
    "reviewer": "publication-gate",
    "reviewed_at": "2026-10-20T20:27:41.000Z",
    "decision": "daily-20261026-04:gate",
    "reason": "3 of 3 judge runs approved with p_yes >= 0.9 (mean 0.96 >= 0.9; 2 needed) and Jev gave 0.71 (>= 0.6 needed)."
  }
}
