2024/04/29

Newest at the top

2024-04-29 22:29:39 +0200 <tomsmeding> (which I why I responded :p)
2024-04-29 22:29:33 +0200 <tomsmeding> I don't myself, but I have a highlight on 'accelerate' here on irc
2024-04-29 22:29:19 +0200 <shapr> neato
2024-04-29 22:29:11 +0200 <tomsmeding> I share my office at the university with two PhDs who work on accelerate almost full-time :p
2024-04-29 22:28:35 +0200 <shapr> tomsmeding: oh, I didn't know you did your master's thesis on accelerate
2024-04-29 22:27:01 +0200waleee(~waleee@h-176-10-144-38.NA.cust.bahnhof.se)
2024-04-29 22:26:51 +0200 <shapr> I can't do much in <15 minutes
2024-04-29 22:26:38 +0200 <tomsmeding> which is not anything deep; egraphs are just more complex, I also cannot write a red-black tree in <15 minutes
2024-04-29 22:26:02 +0200 <tomsmeding> I cannot at all say the same for egraphs
2024-04-29 22:25:54 +0200 <tomsmeding> I can write a passable UF implementation in <15 minutes
2024-04-29 22:25:26 +0200 <dolio> Trickier than union-find?
2024-04-29 22:25:08 +0200 <tomsmeding> yes
2024-04-29 22:24:58 +0200flounders(~flounders@24.246.176.178)
2024-04-29 22:24:55 +0200 <monochrom> We also need a monoid-good group. :)
2024-04-29 22:24:03 +0200 <tomsmeding> aren't we in there?
2024-04-29 22:23:59 +0200 <tomsmeding> :D
2024-04-29 22:23:54 +0200 <tomsmeding> egraphs are trickier, but also more powerful
2024-04-29 22:23:54 +0200 <monochrom> Yeah I'm being sarcastic. Oh we missed the opportunity to form a function-programming-good group too! Oh wait... >:)
2024-04-29 22:23:38 +0200 <tomsmeding> though you can implement UF in like <20 lines of code if you're careful
2024-04-29 22:23:16 +0200 <tomsmeding> the same cannot be said for egraphs
2024-04-29 22:23:12 +0200 <tomsmeding> I think most academically trained programmers know of the existence of UF
2024-04-29 22:22:43 +0200 <monochrom> Hrm, I guess people who liked union-find missed the opportunity to form a union-find-good group.
2024-04-29 22:22:41 +0200 <tomsmeding> all of the commutative properties that are uninteresting but will come out of that
2024-04-29 22:22:24 +0200 <tomsmeding> after you filter out the useless stuff
2024-04-29 22:22:18 +0200 <tomsmeding> this discovered equivalence approach is not an automated testing method, but if you're lucky the synthesised equivalences could I guess be sufficiently abstract that it might genuinely tell you something useful
2024-04-29 22:21:38 +0200 <shapr> :-)
2024-04-29 22:21:31 +0200 <tomsmeding> some people working on egraphs and saying that they're good
2024-04-29 22:21:15 +0200 <tomsmeding> e-graphs-good
2024-04-29 22:21:11 +0200 <tomsmeding> it's an interesting way to do things, I hadn't thought about that
2024-04-29 22:21:09 +0200 <monochrom> What is the egg group?
2024-04-29 22:20:40 +0200 <shapr> probably :-)
2024-04-29 22:20:23 +0200 <tomsmeding> a human looks at those discovered equivalences and thinks hard about whether they make sense?
2024-04-29 22:20:20 +0200 <shapr> then it uses those to build an equivalence graph
2024-04-29 22:20:08 +0200 <tomsmeding> and then?
2024-04-29 22:20:01 +0200 <tomsmeding> I see
2024-04-29 22:19:59 +0200 <shapr> yup
2024-04-29 22:19:56 +0200 <tomsmeding> based on seeing whether your compiler produces the same output for them?
2024-04-29 22:19:47 +0200 <shapr> brute force from what I read
2024-04-29 22:19:44 +0200 <shapr> based on trying a bunch of things
2024-04-29 22:19:38 +0200 <tomsmeding> based on what? :p
2024-04-29 22:19:33 +0200 <shapr> I think in source programs
2024-04-29 22:19:26 +0200 <tomsmeding> source programs? target programs?
2024-04-29 22:19:21 +0200 <tomsmeding> equivalences in what
2024-04-29 22:19:13 +0200 <shapr> the egg group has a tool that discovers equivalences for you
2024-04-29 22:19:08 +0200 <tomsmeding> if you have semantics (interpreters) for source and target languages you can do model testing (a subset of PBT), i.e. generate source programs and test that interpret_src == interpret_tgt . compile
2024-04-29 22:18:18 +0200 <tomsmeding> maybe if your languages are easy toy languages writing an interpreter for them is easy
2024-04-29 22:17:55 +0200 <tomsmeding> which is not much easier than writing a compiler in the first place
2024-04-29 22:17:45 +0200 <tomsmeding> but then you need to define full semantics again
2024-04-29 22:17:32 +0200 <tomsmeding> s/, and an external proof that/and then test that/
2024-04-29 22:17:23 +0200 <tomsmeding> er