Alexander
но в целом если много аллоцируешь и мало выживает то GC будет лучше refcount
Alexander
если ты не менеджеришь то, откуда у тебя доступ к структурам и тебе нужно будет синхронизация (Arc вместо RC в терминах rust) то опять же у GC есть плюсы
Евгений
Если язык тотальный, то можно регионами гарантировать выделение/освобождение же
Alexander
у нас есть тотальные языки на которых код писать можно, а не только теоремы доказывать?
A64m
прикольно
было бы, если бы было доделано и работало (чего не произошло)
Евгений
На тотальных языках нельзя писать код :)
Alexander
да, автор не выдержал и ушёл на ats писать
Апач
Это те что из разряда SMTLIB ?
Евгений
Но я надеюсь, что кто-нибудь сделает нормальный тьюринг-полный язык с явным тотальным подмножеством
A64m
сейчас есть помоднее штука, чем вывод регионов - ASAP гринтех собирается ASAP делать (но выйдет как всегда, конечно)
Евгений
Опять вы флудите не в блах
Евгений
А чо за ASAP?
Alexander
as soon as possible
A64m
А чо за ASAP?
https://www.cl.cam.ac.uk/techreports/UCAM-CL-TR-908.pdf
A64m
Опять вы флудите не в блах
это онтопик, для гринтеховского игрушечного бекенда есть игрушечный гхц-фронтенд
Alexander
блин сколько же буков
Alexander
когда читать?
A64m
можно не читать, на самом деле
Евгений
https://www.cl.cam.ac.uk/techreports/UCAM-CL-TR-908.pdf
Я бы делал всё-таки регионы для тотального подмножества и GC для остального
Евгений
А они гарантируют вообще этот -as-posible или это тупо название?
A64m
второе
Евгений
Потому что для меня очевидно, что чем круче рекурсивный ординал тотального подмножества будет, тем больше я смогу статично выделять
A64m
я, кстати, не думаю, что для тотального подмножества регионы работать будут. с чего бы? регионы работают для ферст ордер языка без рекурсиии, для всего остального проблемы будут
Alexander
я хочу написать свой язык с блекджеком и модулями!
Alexander
только мне нужно бесконечно времени
Alexander
и ум
Alexander
и знания
Алексей
а мне нужно только бесконечное время
Алексей
остальное приложится
Alexander
во посмотрите-ка, умным себя считает
Евгений
А мне нужно, чтобы меня кто-то кормил пока я этим занимаюсь
Алексей
во посмотрите-ка, умным себя считает
ну компилятор написать осилю
Алексей
он конечно будет так себе, но всё таки
Евгений
Самое сложно придумать язык
NC
Запилить бизнес, а потом возиться с компиляторами сколько влезет
Алексей
Самое сложно придумать язык
Лучше сказать спроектировать
Алексей
всё таки "придумать" это на мой взгляд более поверхностно
Евгений
я, кстати, не думаю, что для тотального подмножества регионы работать будут. с чего бы? регионы работают для ферст ордер языка без рекурсиии, для всего остального проблемы будут
В тотальных языках настоящей рекурсии-то нет, понятно как будет выделяться память при выполнении преобразований индуктивных типов, например. Конечно надо это всё формализовать, а потом обобщить для любого универсума, но в целом ход понятен
A64m
емнип и со структурной рекурсией уже были проблемы
Alexander
так надо подробно поиграться с deriving via и QualifiedContexts
Alexander
а то скоро уже и поздно будет
Зигохистоморфный
Alexander
все умнее меня станут
Зигохистоморфный
Alexander
уже стали?
Alexander
возможно
Зигохистоморфный
посмотри на соотношение программистов) вот на жс себя считают самыми умными и типа жс самый лучший конфы о какой-то херне или о новом css фреймворке или внимание! доклад - пересказ доки (некоторые вообще считают это целесобразным) реализуя какую-то идею считают это чем-то новым, хотя они сделали что-то давно забытое старое еще и криво-косо в общем король то голый
Зигохистоморфный
ну и пейперов еще сколько не реализовано, а они новые напиливают когда все остальные сделаны будут? (это уже не про жс, у них говно в основном)
Alexander
да какая разница что js думают
A64m
чет фичи в 8.8 не лезут, сделать пока такой гист про фичи для 8.6 что-ли. все равно потом пять лет рассказывать что нового в 8.6
Alexander
я ж с ними не конкурирую
Зигохистоморфный
да какая разница что js думают
но их большинство, они как саранча
Alexander
но это не важно
Kirill
а как rewrite rules работают в свете видимости функций?
Kirill
т.е. вот если в правиле используется не экспортируемая функция, а сработать правило должно где-то снаружи в другом модуле
Alexander
а можно поточнее вопрос?
Kirill
ну есть модуль A
Alexander
если левая часть подходит по типам то переписывается в правую, экспортирована функция или нет - не важно
Kirill
там скажем правилом я заменяю a1 на a2
Kirill
экспортирую только a1
Kirill
использую в B
Alexander
вроде как
Kirill
т.е. в итоговый код попадут неэкспортированые функции?
A64m
ну, неэкспортированные функции точно попадают, иначе как бы специализация работала?
Kirill
> Each variable mentioned in a rule must either be in scope (e.g. map), or bound by the forall (e.g. f, g, xs)
Kirill
чот тут как-то про скоуп речь
A64m
другой вопрос, как влияет экспортированность/неэкспортированность на шансы попасть в hi
A64m
вероятно никак
A64m
но может и нет
Alexander
[qnikst@nixos:~/tmp/rew]$ ghc --make -O2 Main.hs [1 of 2] Compiling A ( A.hs, A.o ) A.hs:11:11: warning: [-Winline-rule-shadowing] Rule "nonsence" may never fire because ‘a’ might inline first Probable fix: add an INLINE[n] or NOINLINE[n] pragma for ‘a’ | 11 | {-# RULES "nonsence" a = b; #-} | ^^^^^^^^^^^^^^^^ [2 of 2] Compiling Main ( Main.hs, Main.o ) Linking Main ... [qnikst@nixos:~/tmp/rew]$ ./Main 2 [qnikst@nixos:~/tmp/rew]$ cat A.hs module A ( a ) where a :: Int a = 1 b :: Int b = 2 {-# RULES "nonsence" a = b; #-}
Alexander
как сделать так чтобы b в .hi не попадала?
Alexander
я так понимаю если её нету в .hi то она просто не заспециализируется далее
Alexander
символ то будет в модуле в любом случае?
Kirill
т.е. доки врут чтоль?
A64m
не факт, если не экспортируется, то она может без остатка рассосаться, просто заинлайнится по месту единственного применения или вовсе как мертвый код исключена
Alexander
та дока что ты написал не врет
Kirill
а, или scope это для самого правила
Alexander
ты ж правило описываешь там где она есть
Kirill
не для места срабатывания, ну ок
Kirill
спсб