freenode/#clim - IRC Chatlog
Search
6:39:41
beach
scymtym: I have some ideas for computing indentation of special forms and standard macro forms.
6:41:02
beach
scymtym: Most forms can be characterized by which (if any) arguments are distinguished, what the distinguished arguments contain (i.e. how they are supposed to be indented) and what the body (if any) contains.
6:43:48
beach
So I can see one indent function NO-DISTINGUISHED that takes a BODY-CONTENTS function as a parameter. A FIRST-DISTINGUISHED that takes an indent function for the distinguished argument and a BODY-CONTENTS function. Etc.
6:45:07
beach
Most arguments can be separated into groups. Each group has a sequence of comment lines followed by one expression, optionally followed by a comment.
6:45:54
beach
Each group is indented as a unit where the initial comments are indented the same and the same as the expression.
6:46:32
beach
A group that starts on a line by itself is indented according to the rules of the particular special operator or macro.
6:47:41
beach
A group that starts on the same line as the preceding group ends does not have its indentation computed. It is left where it is. The expression of each group has its indentation computed according to its contents.
6:49:02
beach
I think that most cases can be handled this way. We are left with some complicated stuff like LOOP or (less so) DEFMETHOD and other operators where the arity is variable.
8:57:07
beach
I think it won't happen before the end of the year, but I have made considerable progress.
8:59:09
scymtym
given (or because of?) the novel bootstrapping procedure, progress has been pretty quick i would say
9:59:41
jackdaniel
https://files.mastodon.social/media_attachments/files/022/594/776/original/735aed1663ffd99e.png that's how it looks right now, I've added information about propagated types (and I can tell from it that inlined locations does not have variable types propagated what is a bug)