-
Notifications
You must be signed in to change notification settings - Fork 12
Q: How does Data.Row.Records compare to other extensible record approaches? #29
Comments
Hi @Wizek. That's a really great spreadsheet you have going there with a lot of valuable information. I can definitely provide some data for the row-types row, and with just a bit of tweaking, I can update the benchmark suite to include the benchmarks you care about. For the purposes of write permissions on the sheet, my gmail address is dwincort. I have one question though: How is |
Wonderful, thank you. Going to give you edit permissions right away. |
@strake Huh, I was just playing around with some benchmarks, and while I was right that making records is O(n) compile time, Note: I think |
Oh, and about your supercast vs merge question. We have that distinction in there because even though for most approaches these are the same, not for all of them. And the philosophy behind this sheet is that in that case we differentiate by splitting columns. Case in point: generic-lens has supercast, and last I checked it doesn't have a notion of merge. But if you/we find that it's the same for all rows, then of course we can merge the two columns. |
Furthermore, thank you again for filling in as many cells as you have so far. I'm quite impressed by how many fields are green. I might want to give this package a spin based on this! Although that 90..600 second compile time sounds more troublesome, I don't yet know enough of what But if my experiments point towards that I can't, I am a bit worried that there may be something more fundamental at play here, because the superrecord, bookkeeper, rawr and even some scala folks have all run into similar compile time performance issues. We'll see. So thanks, and please also feel free to fill in or correct cells in other rows as well; you may know much more about CTRex for example than any of our editors did so far. |
Feel free to play around with the Examples module and the benchmark suite if you'd like to see some of this in action. I'm going to try to update the benchmarks properly, but I have a lot on my plate right now and a vacation coming up soon that's acting as a pretty big deadline. Do let me know if there's any documentation you don't understand. As for
Actually, we've run into issues in the past where |
row-types started as a fork of CTRex, so I may be able to fill in some details on that line. |
For example, does compile time suffer exponentially, having ~ 1+ minute builds past 8-10 fields similar to turingjump/bookkeeper#13 and agrafix/superrecord#12? Or has
row-types
managed to avoid that particular issue?If one of you are willing, I'd love to read a comprehensive comparison to some other approaches to find out the strengths and limitations of this implementation. The most efficient way I know how to compare to most other packages at once is to fill in cells in this Google Sheet.
I've added
row-types
at row 33, under the section titled "Looking for reports:".Is one of you up for filling in some cells there? Maybe @strake, @atzeus, @dwincort, or someone else?
p.s.: I've heard of this package from this talk. Some more background can be gleaned from this reddit thread.
The text was updated successfully, but these errors were encountered: