Alexander
ибо некоторые фирмы могут сказать, что весь код написанный там рабочий и т.п.
Alexander
в net crackers был знакомый который с выданного виндоноута специально не трогал свои проекты
Alexander
чтобы не было таких вопросов
Святослав
осторожность почти никогда не вредит )
Andrei
Alexander
баш поставить можно и zsh
Alexander
на любителя
Alexander
Alexander
точнее в PS это вроде пишется как wget вместо curl
Святослав
PS C:\Users\siusvi> curl https://s3.amazonaws.com/haddock.stackage.org/snapshots.json
StatusCode : 200
StatusDescription : OK
Content : {"lts-2":"lts-2.22","lts-10":"lts-10.5","lts-9":"lts-9.21","lts-4":"lts-4.2","lts-3":"lts-3.22","lts-5":"lts-5.18","lts":"lts-10.5","lts-0":"lts-0.7","nightly":"
nightly-2018-02-17","lts-1":"lts-1.15",...
RawContent : HTTP/1.1 200 OK
x-amz-id-2: 2uyuSuvI0OihoxxPrudUOeV0UmBUG2Z/QN7s2R/k17pgqshoISH02/WU1qFcRviwl++aM0ekVpA=
x-amz-request-id: E1A19D72C2F84B5F
Accept-Ranges: bytes
Content-Length: 257
Content-Type: ...
Forms : {}
Headers : {[x-amz-id-2, 2uyuSuvI0OihoxxPrudUOeV0UmBUG2Z/QN7s2R/k17pgqshoISH02/WU1qFcRviwl++aM0ekVpA=], [x-amz-request-id, E1A19D72C2F84B5F], [Accept-Ranges, bytes], [Conte
nt-Length, 257]...}
Images : {}
InputFields : {}
Links : {}
ParsedHtml : mshtml.HTMLDocumentClass
RawContentLength : 257
Святослав
пашет
Alexander
у меня последняя гипотеза что криво поставилась платформа
Святослав
думаешь стоит почистить и переставить?
Святослав
ghc и ghci работают хотябы )
Святослав
вообще странно что файервол может так избирательно блокировать
Святослав
может и платформа виновата
Святослав
хз, не помогает удаление/установка
Святослав
буду пока ghc обходиться с этой машины
Alexander
http://dalila.sip.ucm.es/safe/index.html
Alexander
random nightly link
Anonymous
@qnikst , там линейных типов в комплекте нету?
Alexander
поидее должны, я не разбирался пока
Anonymous
@qnikst Я всё жду, когда у кого-нибудь дойдут руки сделать конкатенативный язык с линейными типами. Тем более, что их там можно сделать на обычном HM, запретив линейным объектам быть операндами "dup" (и быть захваченными в локальные переменные)
Oleg
Oleg
Anonymous
Конкатенативный
Cheese
а конкатенативный хоть с какими-нибудь типами уже есть?
Anton
Antilopa
"конкатенативный" это как, если по простому?
Anonymous
https://ru.wikipedia.org/wiki/%D0%9A%D0%BE%D0%BD%D0%BA%D0%B0%D1%82%D0%B5%D0%BD%D0%B0%D1%82%D0%B8%D0%B2%D0%BD%D1%8B%D0%B9_%D1%8F%D0%B7%D1%8B%D0%BA_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F
Aleksei (astynax)
Aleksei (astynax)
Ты можешь только стек-эффекты проверять анализом кода
Cheese
Cheese
вроде конкатенативный язык должен быть частным случаем кобина'торного
Aleksei (astynax)
Фишка в том, что при конкатенации последующая команда может брать со стека не всё из того что положила предыдущая, или наоборот - взять больше.
Aleksei (astynax)
Ты можешь положить на стек некий пакет (request к серверу, например), а следющим шагом взять только пару байт, обработать (на стеке же) и положить обратно.
Aleksei (astynax)
Впрочем реализации могут быть разные. Можно на стеке хранить указатели на данные, а не сами данные. Тогда можно и типами озаботиться
Alexander
мне кажется в итоге можно прийти к тому что C лучше
Alexander
чисто из соображений того что история повторяется
Oleg
Oleg
т.е. видимо нужно делать множество сортов quote для
!A -> !B
!A -o !B
A -o B
!(A -o B)
Oleg
и то же самое со всякими циклами/условиями
Anonymous
Для поглощения замыканием всё равно придётся делать dup. А те же while/cond следует реализовывать через базовые операции
Anonymous
Можно ещё сделать операцию view для получения слепка линейной переменной на момент вызова
Oleg
Oleg
это в любом случае сводится к сортам вайла как к сортам рекурсии
Anonymous
Я думаю, можно обойтись правилом, что линейные переменные unduppable, добавление их в замыкание (и любые другие базовые структуры) делает их тоже unduppable.
While-то, по сути, не должен дублировать "счётчик цикла", это задача блока-замыкания.
Oleg
Oleg
Anonymous
Что мешает запретить для них и drop тоже? Если язык продуман корректно, то у тебя не должно быть способа избавиться от/удвоить линейную переменную на стеке.
Oleg
Anonymous
#а S -> а #а S кладет на стек копию текущего состояния линейной переменной
Oleg
Oleg
#а - это линейная или интуиционисткая?
Anonymous
Да не у переменной копия, а у её текущего состояния. Переменная дальше может меняться, а копия остаётся "замороженной". Линейная.
Anonymous
Это как readIORef
Oleg
Полагаю, говоря о линейных типах мы должны смириться с тем, что способа скопировать линейную переменную нет
Anonymous
Чтобы ты не мог скопировать саму переменную вместе с её возможностью меняться, но мог выяснить её состояние
Oleg
Это как readIORef
Но линейная переменная она гораздо дальше, чем IORef в семантике. Что если копия состояния содержит какие-то технические указатели например на хэндл для чтения из файлов и этот снэпшот переживёт закрытие файла?
Oleg
Ну или если мы говорим о квантовых вычислениях, у нас вообще нет снэпшотов состояния
Anonymous
Тогда надо сделать подкласс линейных типов, которым можно сделать view
Anonymous
Где мы, а где квантовые вычисления :)
Oleg
Ну на самом деле обычно делают наоборот, просто !А, и функцию !A -> A
Oleg
ну или точнее
!(!A -o A)
Oleg
вместо viewable - тот факт, что интуиционистскую переменную ты можешь отсекать как линейный разовый срез
Anonymous
Результат перестает быть линейным, или его линейность встроена в -о?
Anonymous
А, вот оно что
undefined
Святослав
Святослав
undefined
Значит действительно чудеса)
Святослав
да, обидно )
совсем нет идеи как починить )
М
Проблема.
М
computeOffsets :: [ASMLine] -> [ASMLine]
computeOffsets [] = []
computeOffsets (a:as) = let
t = length (uniteBytecode (a:as))
v = foldl (+) 0 [ t - length (bytecode x) | x <- as ]
in a {offset = v}: computeOffsets as
М
t = length (uniteBytecode (a:as)) выполняется много раз, а надо чтоб один. При этом хотелось бы обойтись без do