• Joined on 2026-01-12
alex-eg commented on pull request alex-eg/sex#39 2026-09-30 23:11:00 +02:00
type-inference

Replies to the review, each on the line it concerns. All eight are in 9daaa42..a860da6.

alex-eg commented on pull request alex-eg/sex#39 2026-09-30 23:11:00 +02:00
type-inference

Re 346. Solved from get-name-type alone, so a global names only what is declared above it.

alex-eg commented on pull request alex-eg/sex#39 2026-09-30 23:11:00 +02:00
type-inference

Re 347. The type gets what a fn header gets -- macro expansion and closure resolution, no walk.

alex-eg commented on pull request alex-eg/sex#39 2026-09-30 23:11:00 +02:00
type-inference

Re 344. decay has its caller.

alex-eg commented on pull request alex-eg/sex#39 2026-09-30 23:11:00 +02:00
type-inference

Re 345.

alex-eg commented on pull request alex-eg/sex#39 2026-09-30 23:11:00 +02:00
type-inference

Re 351. One per line, alphabetical. e87463b.

alex-eg commented on pull request alex-eg/sex#39 2026-09-30 23:11:00 +02:00
type-inference

Re 348. A closure literal answers with its own type. The receiver is walked before the call helper is registered, so the struct is declared ahead of the signature naming it.

alex-eg commented on pull request alex-eg/sex#39 2026-09-30 23:11:00 +02:00
type-inference

Re 342. Unsigned takes the tie whichever side it is written on, and a name with no declaration parsed has no rank to compare:

alex-eg commented on pull request alex-eg/sex#39 2026-09-30 23:11:00 +02:00
type-inference

Re 343.

alex-eg pushed to type-inference at alex-eg/sex 2026-09-30 22:58:22 +02:00
a860da6d7e show the cases the comments were describing
fe72a109bf read a var's type as a type, not as a call
e87463be87 type the operators the walk had no rule for
f5eee71eb7 declare the closure environment in c99
024e97553b keep closure signatures apart when mangled
Compare 8 commits »
alex-eg created pull request alex-eg/sex#39 2026-09-30 00:34:38 +02:00
type-inference
alex-eg pushed to type-inference at alex-eg/sex 2026-09-29 23:10:15 +02:00
9daaa42d6a ignore the attic directory
1f445f0f9b implement type inference
53f92727a5 mark multi-form macro expansions with $
6f54bfbe08 restore type inference layer 0
cd3016b6b8 fix (¤ int N) expanding to int N a[]
Compare 9 commits »
alex-eg created branch type-inference in alex-eg/sex 2026-09-29 23:10:15 +02:00
alex-eg created pull request alex-eg/sex#38 2026-09-27 18:37:08 +02:00
minor-language-improvements
alex-eg created branch minor-language-improvements in alex-eg/sex 2026-09-27 18:36:32 +02:00
alex-eg pushed to minor-language-improvements at alex-eg/sex 2026-09-27 18:36:32 +02:00
ca88d9b386 implement compound and designated literals support
a9b00f2135 use true bool, since we target c99 onwards
26e8e6c374 fix lambdas and add a test to prevent rotting
Compare 3 commits »
alex-eg commented on issue alex-eg/sex#36 2026-09-27 18:30:20 +02:00
Special forms shadow C identifiers silently, with no escape hatch

The case that prompted this — a compound form for C99 compound literals — was resolved by giving it syntax instead of a name, so it never joins the list.

: inside #(...) ends a type and…

alex-eg opened issue alex-eg/sex#37 2026-09-27 18:09:09 +02:00
C header parser
alex-eg opened issue alex-eg/sex#36 2026-09-27 18:06:05 +02:00
Special forms shadow C identifiers silently, with no escape hatch
alex-eg pushed to main at alex-eg/sex 2026-09-26 17:22:46 +02:00
62316e1e3d enable includes to have multiple targets