| 1 Dec 2025 |
raitobezarius | and the full procedure is very complicated for dubious gains | 12:24:21 |
Qyriad | Haskell bans lambda equality iwrc | 12:24:54 |
raitobezarius | that's probably the healthiest thing to pursue | 12:25:22 |
Qyriad | We::Osiria would be in favor of allowing attrsets to define their own equality comparators to be used regardless of the presence of functions | 12:25:42 |
niko ⚡️ | I think properly specifying what constitutes “same instance of a function” would also be feasible, because importing the same file twice (or instantiating the same function twice?) to me doesn’t seem like it should result in the same pointer, just based on vibes | 12:25:55 |
Qyriad | __eq but like. hopefully less cursed | 12:25:55 |
raitobezarius | well it is very related to the concept of maximal sharing | 12:26:21 |
raitobezarius | https://wiki.lix.systems/books/lix-contributors/page/pointer-equality | 12:26:25 |
raitobezarius | i explained a bunch of things there | 12:26:28 |
raitobezarius | from what I gathered | 12:26:31 |
raitobezarius | the import machinery not caching things for example would break maximal sharing | 12:26:46 |
Qyriad | It's because imports are cached.
nix-repl> (scopedImport { } <nixpkgs/lib>).recursiveUpdate == (scopedImport { } <nixpkgs/lib>).recursiveUpdate
false
nix-repl> (scopedImport { } <nixpkgs/lib>).recursiveUpdate == (import <nixpkgs/lib>).recursiveUpdate
false
| 12:27:15 |
Qyriad | scopedImport disables that caching | 12:27:24 |
raitobezarius | yeah, it feels like a nixlang2 thing | 12:27:53 |
raitobezarius | not a fan of special meaning attributes | 12:28:10 |
Qyriad | We would be in favor of something more metatable-flavored over magic attributes | 12:28:37 |
raitobezarius | how would that look like? | 12:29:38 |
raitobezarius | setMetaAttributes attrs { __eq = x; } ? | 12:30:00 |
Qyriad | Yeah something like that | 12:30:14 |
Qyriad | Which would return a new attrset obvi, not mutate | 12:30:23 |
raitobezarius | ye | 12:30:32 |
K900 | Y'all are actualyl just going to reinvent metatables aren't you | 12:30:43 |
K900 | * Y'all are actually just going to reinvent metatables aren't you | 12:30:46 |
raitobezarius | lua arc for lix letsgo | 12:30:57 |
raitobezarius | personally idk yet | 12:31:12 |
raitobezarius | the idea is interesting for sure | 12:31:16 |
raitobezarius | and would provide a very nice way to escape from the funext mess | 12:31:25 |
Qyriad | It 110% needs like, to be very well thought out so we don't trap ourselves, but we do think something in that direction is the right direction for Lix | 12:32:36 |
K900 | I mean honestly I don't mind metatables | 12:33:07 |
K900 | I do mind the rest of Lua | 12:33:12 |