freenode/#clasp - IRC Chatlog
Search
7:26:22
scymtym
currently, INTERPRET-TOKEN receives an array of Booleans indicating whether a given token character was escaped
7:26:54
scymtym
this is insufficient for distinguishing .. from .||. (the former is illegal, the latter is a symbol)
7:28:13
scymtym
what i would like to do, and implemented prototypically, is passing a list of escaped ranges, which can be potentially empty
7:29:29
scymtym
this is also more efficient for a couple of things since in the common case, the current escape indicator array is all false
7:30:35
scymtym
this also allows CONVERT-ACCORDING-TO-READTABLE-CASE to take a shortcut instead of looking at each character if there are no escapes. again, the common case
12:27:56
frgo
Yeah we have a bit of a heated discussion going due to some statements POTUS has made towards Germany ;-)
12:42:17
frgo
Hi beach. Well, you sort of have to decide how to handle him. Love him, ignore him, or change him.
12:42:59
drmeister
Yeah - he's an obnoxious asshole that the republicans are using to distract us while they reverse 50 years of progress here in the states, and shift us to an oligarchy.
12:44:01
beach
frgo: It seems like, as a result of some of his behavior, some European countries have decided that the appropriate response it to create a common defense organization.
13:20:47
Bike
i guess not that weird since uaets are done at that point so the switch is faster, but still
15:36:50
beach
And we need to determine whether to have data with associated types or have the types implied by the instructions.
15:37:19
Bike
https://eli.thegreenplace.net/2014/sfinae-and-enable_if/ how is C++ this absurd. i want an ifdef, i get... this
15:37:41
beach
drmeister: I am open to suggestions. I mean not just "I vote for X", but that come with some analysis of pros and cons.
15:38:21
Bike
the particular reason for the types is so that LLVM knows what sizes to use for stack allocations.
15:39:21
beach
I see. But that's a biased argument in my opinion. Though it is entirely possible that it is the best solution anyway, of course.
15:40:19
beach
There is also the question of how much to cater to similarity of existing processor, possibly closing the door to more unusual ones.
15:41:00
beach
That sounds very reasonable. I just want to hear some more arguments before making a decision.
15:42:12
Bike
sizes also matter with whatever aref-instruction would lower toin mir. i believe the "memref" instruction says it works with word addressing, the reasonable assumption being that an object pointer will be word sized
15:43:24
beach
I guess it is safe to make instructions that assume that, and then have client code use a different set of instructions for other architectures.
15:43:57
beach
We can just label certain instructions as being usable only on byte-addressed processors. I don't have a problem with that.
15:50:40
beach
We just supply a MIR instruction set for byte-addressed architectures, and we can create a different set the day we need something else.
15:51:49
beach
Maybe Bike, drmeister, karlosz, and Shinmera can get together and write down a suggested initial set of instructions and data.
15:54:47
karlosz
an alternative representation of SSA (like SFA or some other variant) that avoids indices on inputs would help
15:54:50
beach
I would go one step further. SSA, as formulated in the literature, is not well suted.
15:55:52
karlosz
any variant of ssa that avoids the phi representation (the mlton people use something closer to cps)
15:56:06
beach
I find the idea of an "alternative representation for SSA" that is not S.S.A an interesting idea so to speak.
15:57:12
karlosz
i found ot thjat lots of compilers that use SSA dont represent phi nodes like in the literature
15:58:29
Bike
in llvm the phi nodes have a map from predecessor blocks to values. still would be trouble if you want to break up a predecessor block, though.
15:59:04
beach
karlosz: that is exactly my point. It is called SSA because it is S.S.A, and it turns out that nobody needs or wants that particular property of SSA.
15:59:59
Bike
with cleavir the obvious analog would be mapping predecessor /instructions/ to values, but then you have to be careful whenever you throw in new instructions.
16:01:29
beach
And then we can write an article about how none of these techniques actually need the S.S.A property of SSA.
16:04:37
karlosz
beach: i was just trying to point out that SFA might not be as novel as you think it is
16:05:10
karlosz
its a bit long but they essentially describe that their ssa notation is a bit lacking in the assignment department
16:06:12
karlosz
but whatever alternative way of expression the join points we decide to do as long as it satisfies the basic requirements of what makes SSA and CPS great then we can use it
16:07:33
karlosz
one could evaluate whether assignment instructions or a special instruction or even adding some kind of parameter like they do in MLton would be easier for Cleavir
16:19:34
beach
karlosz: Sorry this is one of the days of the week and the time of that day, where I make food for me and my (admittedly small) family.
16:24:51
beach
So am I the only one that thinks it is ironic that we have "alternative representations of SSA" that do not have the S.S.A property?
16:24:56
beach
I mean, the inventors of SSA went to great lengths to get the S.S.A property. They even invented a new instruction and made the order of the predecessors of that instruction significant, just so that they could call it SSA.
16:24:58
beach
And we still think we have the right to call it SSA when we totally destroy that property that they worked so hard to achieve.