
Alexander
11.09.2018
09:42:16
смотря откуда смотреть

Meowfka
11.09.2018
09:42:39

Alexander
11.09.2018
09:42:40
но код для браузера и UI на нём писать можно, но с натяжками

Meowfka
11.09.2018
09:42:53
Я просто пробовал ghcjs и оно комплится как UE4, т.е. по минуте ждать + это норма

Google

Алексей
11.09.2018
09:42:55
надо будет сварганить маленький чистый ФП язык без GC на счётчике ссылок (как обязательное условие)
и посмотреть какой язык в итоге получится

Iva
11.09.2018
09:43:02
Числодробилки это не ФП

Alexander
11.09.2018
09:43:42
у ajhc вроде счетчик ссылок был
?

Artyom
11.09.2018
09:43:49
через полгодика опять прибегу

Alexander
11.09.2018
09:44:03
есть забавный язык ats2
https://en.wikipedia.org/wiki/ATS_%28programming_language%29

A64m
11.09.2018
09:44:37

Alexander
11.09.2018
09:44:59
> Garbage collection is not used unless explicitly stated with -D_ATS_GCATS.
в ats2
но я вот все его боюсь осиливать

A64m
11.09.2018
09:45:22
(гц для нулевого региона как бы опциональный)

Alexander
11.09.2018
09:45:52
но в целом если много аллоцируешь и мало выживает то GC будет лучше refcount

Google

Alexander
11.09.2018
09:46:37
если ты не менеджеришь то, откуда у тебя доступ к структурам и тебе нужно будет синхронизация (Arc вместо RC в терминах rust) то опять же у GC есть плюсы

Евгений
11.09.2018
09:46:51
Если язык тотальный, то можно регионами гарантировать выделение/освобождение же

Alexander
11.09.2018
09:47:17
у нас есть тотальные языки на которых код писать можно, а не только теоремы доказывать?

A64m
11.09.2018
09:47:35
прикольно
было бы, если бы было доделано и работало (чего не произошло)

Евгений
11.09.2018
09:47:37
На тотальных языках нельзя писать код :)

Alexander
11.09.2018
09:47:55
да, автор не выдержал и ушёл на ats писать

Iva
11.09.2018
09:48:09
Это те что из разряда SMTLIB ?

Евгений
11.09.2018
09:48:25
Но я надеюсь, что кто-нибудь сделает нормальный тьюринг-полный язык с явным тотальным подмножеством

A64m
11.09.2018
09:49:23
сейчас есть помоднее штука, чем вывод регионов - ASAP
гринтех собирается ASAP делать (но выйдет как всегда, конечно)

Евгений
11.09.2018
09:49:46
Опять вы флудите не в блах
А чо за ASAP?

Alexander
11.09.2018
09:50:05
as soon as possible

A64m
11.09.2018
09:50:27
А чо за ASAP?
https://www.cl.cam.ac.uk/techreports/UCAM-CL-TR-908.pdf

Alexander
11.09.2018
09:52:32
блин сколько же буков
когда читать?

A64m
11.09.2018
09:52:56
можно не читать, на самом деле

Евгений
11.09.2018
09:53:01
А они гарантируют вообще этот -as-posible или это тупо название?

A64m
11.09.2018
09:53:36
второе

Google

Евгений
11.09.2018
09:54:18
Потому что для меня очевидно, что чем круче рекурсивный ординал тотального подмножества будет, тем больше я смогу статично выделять

A64m
11.09.2018
09:54:56
я, кстати, не думаю, что для тотального подмножества регионы работать будут. с чего бы? регионы работают для ферст ордер языка без рекурсиии, для всего остального проблемы будут

Alexander
11.09.2018
09:55:54
я хочу написать свой язык с блекджеком и модулями!
только мне нужно бесконечно времени
и ум
и знания

Алексей
11.09.2018
09:56:19
а мне нужно только бесконечное время
остальное приложится

Alexander
11.09.2018
09:56:37
во посмотрите-ка, умным себя считает

Евгений
11.09.2018
09:56:50
А мне нужно, чтобы меня кто-то кормил пока я этим занимаюсь

Алексей
11.09.2018
09:57:03
он конечно будет так себе, но всё таки

Евгений
11.09.2018
09:57:30
Самое сложно придумать язык

Anton
11.09.2018
09:57:39
Запилить бизнес, а потом возиться с компиляторами сколько влезет

Алексей
11.09.2018
09:57:50
всё таки "придумать" это на мой взгляд более поверхностно

Евгений
11.09.2018
09:59:05

A64m
11.09.2018
10:24:34
емнип и со структурной рекурсией уже были проблемы

Alexander
11.09.2018
10:34:36
так надо подробно поиграться с deriving via и QualifiedContexts
а то скоро уже и поздно будет

Google

Denis
11.09.2018
10:37:58

Alexander
11.09.2018
10:38:12
все умнее меня станут

Denis
11.09.2018
10:38:49

Alexander
11.09.2018
10:38:57
уже стали?
возможно

Denis
11.09.2018
10:41:09
посмотри на соотношение программистов)
вот на жс себя считают самыми умными и типа жс самый лучший
конфы о какой-то херне или о новом css фреймворке или внимание! доклад - пересказ доки (некоторые вообще считают это целесобразным)
реализуя какую-то идею считают это чем-то новым, хотя они сделали что-то давно забытое старое еще и криво-косо
в общем король то голый
ну и пейперов еще сколько не реализовано, а они новые напиливают
когда все остальные сделаны будут?
(это уже не про жс, у них говно в основном)

Alexander
11.09.2018
10:44:37
да какая разница что js думают

A64m
11.09.2018
10:44:41
чет фичи в 8.8 не лезут, сделать пока такой гист про фичи для 8.6 что-ли. все равно потом пять лет рассказывать что нового в 8.6

Alexander
11.09.2018
10:44:43
я ж с ними не конкурирую

Admin
ERROR: S client not available

Denis
11.09.2018
10:45:17

Alexander
11.09.2018
10:50:18
но это не важно

Kirill
11.09.2018
11:01:58
а как rewrite rules работают в свете видимости функций?
т.е. вот если в правиле используется не экспортируемая функция, а сработать правило должно где-то снаружи в другом модуле

Alexander
11.09.2018
11:02:50
а можно поточнее вопрос?

Kirill
11.09.2018
11:03:14
ну есть модуль A

Alexander
11.09.2018
11:03:24
если левая часть подходит по типам то переписывается в правую, экспортирована функция или нет - не важно

Kirill
11.09.2018
11:03:26
там скажем правилом я заменяю a1 на a2
экспортирую только a1

Google

Kirill
11.09.2018
11:03:41
использую в B

Alexander
11.09.2018
11:03:44
вроде как

Kirill
11.09.2018
11:04:22
т.е. в итоговый код попадут неэкспортированые функции?

A64m
11.09.2018
11:05:21
ну, неэкспортированные функции точно попадают, иначе как бы специализация работала?

Kirill
11.09.2018
11:05:34
> Each variable mentioned in a rule must either be in scope (e.g. map), or bound by the forall (e.g. f, g, xs)
чот тут как-то про скоуп речь

A64m
11.09.2018
11:06:00
другой вопрос, как влияет экспортированность/неэкспортированность на шансы попасть в hi
вероятно никак
но может и нет

Alexander
11.09.2018
11:06:22
[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; #-}
как сделать так чтобы b в .hi не попадала?
я так понимаю если её нету в .hi то она просто не заспециализируется далее
символ то будет в модуле в любом случае?

Kirill
11.09.2018
11:09:00
т.е. доки врут чтоль?

A64m
11.09.2018
11:09:42
не факт, если не экспортируется, то она может без остатка рассосаться, просто заинлайнится по месту единственного применения или вовсе как мертвый код исключена

Alexander
11.09.2018
11:09:47
та дока что ты написал не врет

Kirill
11.09.2018
11:09:49
а, или scope это для самого правила

Alexander
11.09.2018
11:10:01
ты ж правило описываешь там где она есть

Kirill
11.09.2018
11:10:07
не для места срабатывания, ну ок
спсб

Alexander
11.09.2018
11:10:21
@A64m_qb0 не факт, что наличие правила не приведет к тому, что она останется
т.е. факт в том, что правило может сработать
а вот гарантировано ли оно сработает - этого я не знаю