Skip to main content

MEP-49 research notes

These twelve notes are the deep research that fed MEP 49 (Mochi-to-Swift transpiler). They are informative; the MEP body, once landed, will be normative. Each note is self-contained and can be read independently. Cross-references use [[note-slug]] markers.

#TitleTopic
01Language surfaceMochi features mapped onto Swift 6.0 lowering obligations
02Design philosophyWhy Swift, why Swift 6.0 floor, why all platforms, why actors + AsyncStream
03Prior-art transpilersSkip.tools, J2ObjC, Swiftify, Sourcery, Hylo, Mojo, Embedded Swift, SwiftWasm, IL2CPP analogues, Macros, Obj-C / C++ interop
04Runtime building blocksSwift stdlib, Foundation, Apple-only frameworks, swift-collections / -algorithms / -async-algorithms, AsyncStream / Task / actor surface
05Codegen designSwift source via SwiftSyntax IR, aotir reuse, swift-format integration, monomorphisation, closure ABI
06Type-system loweringMochi types onto Int64 / Double / String / Array / Dictionary / OrderedDictionary / @frozen struct / enum with indirect cases
07Swift target and portabilitySwift 6.0 / 6.1 / 6.2 matrix, Apple deployment targets, Static Linux SDK, Windows MSVC, Embedded / SwiftWasm exclusions
08Dataset pipelineQuery DSL via Sequence / AsyncSequence + swift-collections + swift-algorithms, hash / merge / nested-loop joins
09Agents and streamsSwift actor + AsyncStream mailboxes, async colouring, AsyncSequence for streams
10Build systemSwiftPM canonical driver, deterministic Package.swift, xcodebuild + codesign + notarytool, WiX MSI
11Testing gatesPer-phase Go test gates, Swift version matrix, swiftc clean, swift-format fixed-point, App Store validation
12Risks and alternativesRisk register, Objective-C / Swift 5.10 / Apple-only / GCD / Macros / SwiftSyntax-required / Combine rejected and why

Each note's filename uses the NN-slug.md convention; the leading NN- is stripped by Docusaurus for the URL path, so cross-links inside the notes use the unprefixed slug (e.g. [[language-surface]]).

The companion MEP body lives at /docs/mep/mep-0049.