Skip to content

Burning the slurp juice at both ends to make the future we deserve

Notifications You must be signed in to change notification settings

doublemover/Slopjective-C

Repository files navigation

Slopjective-C

Burning the slurp juice at both ends to make the future we deserve

Try not to expend any real human effort on this, instead go buy the pro subscription for the LLM of your choice and have it do that for you.

Additionally, you should consider giving me money so I can buy more slurp juice (tokens)


Objective‑C 3.0 Draft Specification (Working Draft)

Working draft: v0.10
Last generated: 2025-12-28

This repository contains a working draft specification for Objective‑C 3.0. The draft is organized into small, implementable parts, with explicit contracts for separate compilation, module metadata, and (where needed) ABI/runtime hooks.

Published draft

The stitched draft is published on GitHub Pages: https://doublemover.github.io/Slopjective-C/ The build uses the Table of Contents ordering and excludes this README. Source markdown lives in spec/ for local edits.

What this spec is

  • A language-mode specification (“ObjC 3.0 mode”) layered on top of today’s de‑facto Objective‑C (Clang/LLVM + modern runtime behavior).
  • A set of normative requirements (RFC-style “shall/must”) intended to be testable by compilers/toolchains.
  • A design that prioritizes incremental adoption: new defaults and stricter rules are opt‑in via mode + strictness levels.

What this spec is not

  • Not a rewrite of baseline Objective‑C, ARC, or Blocks. Where those are relied upon, this draft references them as baseline behavior and specifies only the extensions/constraints needed for ObjC 3.0.
  • Not a full “standard library spec” for every API. Where features are library-defined (e.g., task spawning), this draft specifies the minimum required surface and the compiler hooks needed for diagnostics.

How the documents are organized

Start here:

Front matter (implementation-facing):

Language parts:

Suggested reading order

  1. Introduction (what the project is trying to accomplish)
  2. Part 1 — Versioning, Compatibility, and Conformance (how mode/strictness/conformance works)
  3. Attribute and Syntax Catalog / Lowering and Runtime Contracts / Module Metadata and ABI Tables (the “separate compilation contract” and canonical spellings)
  4. Then pick a feature slice:

Conformance model (quick summary)

A toolchain makes a conformance claim against named profiles:

  • Core: language mode + modules/metadata + types/errors/concurrency baseline.
  • Strict: stronger diagnostics and migration support.
  • Strict Concurrency: actor/executor/Sendable-like enforcement.
  • Strict System: resource/borrowed-pointer/capture-list enforcement.

See the Conformance Profile Checklist for the definitive checklist.

Contributing / feedback

This is a working draft. Each part ends with an Open issues section.

A practical contribution style:

  • pick one “Open issue”,
  • propose a concrete rule + lowering/metadata implications,
  • add (or outline) conformance tests for it.

Lint and CI requirements are documented in CONTRIBUTING.md.

License

(Not specified in this draft bundle — add a repository-level license file if you plan to publish/distribute.)

About

Burning the slurp juice at both ends to make the future we deserve

Resources

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published