@haskellru

Страница 1047 из 1551
Alexander
02.04.2018
17:23:51
как ты отдашь его в си?

и как ты собираешься в си с ним работать

вопросы не риторические

Nick
02.04.2018
17:24:27
ну зная примерный layout в памяти, почему нельзя с ним работать?

Google
Alexander
02.04.2018
17:24:38
зная примерный - нельзя

зная точный - можно

Nick
02.04.2018
17:24:50
ок, зная точный)

Alexander
02.04.2018
17:24:59
ты знаешь точный layout?

можно через compact-ы

Leonid
02.04.2018
17:25:23
сомнительно и через компакты

Alexander
02.04.2018
17:25:54
вообще обычные haskell объекты unpinned

и если unsafe FFI call, или передаешь данные не через # ссылки, то их могут переместить

даже с unsafe надо передавать #

Alexander
02.04.2018
17:26:36
если ты не знаешь что такое kind # то не надо так делать

Denis
02.04.2018
17:26:45
задача непонятна для начала, звучит как будто хочется очень странного

Alexander
02.04.2018
17:26:51
да

Google
Nick
02.04.2018
17:26:59
Эта задача в вакууме

Alexander
02.04.2018
17:27:04
просто тут отвечают, что ты этого не хочешь

особенное если в вакууме

=)

но вообще, если хочешь работать с haskell heap, то тебе нужно класть объекты в compact region

тогда зная представление объектов на куче ты можешь с ними работать

но, тут есть сложность, это не питон или кложа

подключить haskell.h где будут хедеры для всех структур не получится

поэтому нужно будет читать мануалы ghc, разбирать все эти указатели и т.п.

и не знаю как гарантировать ABI

в общем так себе задача, я бы не решился

учитывая что складывание в компакт это копирование структуры

Denis
02.04.2018
17:29:47
главный вопрос вообще зачем это делать

Alexander
02.04.2018
17:29:49
это должен быть достаточно интересный алгоритм для которого прыжок в си для работы с деревом на haskell даст ощутимый бонус

because I can

например, вполне валидное желание

Denis
02.04.2018
17:30:15
разве что

Alexander
02.04.2018
17:30:35
но, я предпочитаю заниматься because I can когда я знаю почти все из области

Denis
02.04.2018
17:31:11
есть опасность because I can't

Google
Alexander
02.04.2018
17:31:18
@gurinderu доклад советую посмотреть, сможет снять ряд вопросов я думаю

я конечно не очень весело рассказываю

Denis
02.04.2018
17:32:05
ой-ой

а я не могу сделать ForallF C m, если C - тайп синоним

кажется приплыли

Leonid
02.04.2018
17:32:42
flexiblecontexts?

Imants
02.04.2018
17:32:42
как ты отдашь его в си?
Можно сериализовать, а в С соответственно десер. И обратно точно также. Т.е., передавать бин. Можно ведь так?

Denis
02.04.2018
17:32:46
хотя можно через класс

Nick
02.04.2018
17:33:04
Alexander
02.04.2018
17:33:40
и ответ упростится

Leonid
02.04.2018
17:44:33
А колбэки обратно в хаскель не могут же быть с замыканием, да?

Imants
02.04.2018
17:45:44
Ещё ни разу не вызывал C из H. Наверное, unpinned. Как удобнее или надёжнее, если бин небольшой, и памяти хватает?

Alexander
02.04.2018
17:47:46
что значит "наверное unpinned"?

вообще если что-то передаешь в си, то нужно в pinned писать

чтобы данные не уехали

это или bytestring или mallocPinnedBytearray и вся эта компания

если делать unsafe call и передавать unlifted данные #, то тоже норм

Google
Alexander
02.04.2018
17:49:49
но это из разряда "хочется очень странного и прострелить ногу"

кстати, сериализовать и с этим работать - это стандртная штука

Leonid
02.04.2018
17:51:07
почему нет?
Хм, указатель будет запинен а замыкание нет?

Nick
02.04.2018
17:51:47
а замыкание это ж Function ptr, наверное тоже все ок будет

Alexander
02.04.2018
17:51:51
ты ж ForeingPtr отдавать будешь

через makeWrapper которое делается

Function ptr да

https://wiki.haskell.org/GHC/Using_the_FFI#Callbacks_into_Haskell_from_foreign_code

Imants
02.04.2018
17:57:49
А http://book.realworldhaskell.org/read/interfacing-with-c-the-ffi.html намекает как-то на необходимость в pinned? Или это другая тема?

Alexander
02.04.2018
18:01:52
что-то не вижу, что там до этого доходит

там про енумы и превращение в си типы

я по той ссылке что выше и user manual в GHC читал

Imants
02.04.2018
18:09:47
Попробую примеры по C FFI из RW - из любопытства. Но уже не сегодня.

Alexander
02.04.2018
18:11:09
сейчас проще взять inline-c и не думать

Imants
02.04.2018
18:22:02
https://hackage.haskell.org/package/inline-c - на всякий случай. Я не сразу понял, что это - либа.

kana
02.04.2018
19:39:31
а теперь что?
а теперь он все еще эрланг-программист

Alexander
02.04.2018
19:40:03
но уже не такой успешный

где продакшн и n2o

не-не-не

kana
02.04.2018
19:41:05
ого, n2o это его, действительно успешный

Google
Denis
02.04.2018
19:43:13
как бы Максим на месте не сидит)

https://www.nynja.biz/

https://www.nynja.biz/our-team/

Namdak
02.04.2018
19:51:24
Сохацкого звали?

Anton
02.04.2018
19:53:00
?

Taras ?
02.04.2018
20:02:45
?

Vladimir
02.04.2018
20:44:01
?

Denis
03.04.2018
03:56:26
Ух ты, и HoTTaBitch тут! Приветствую!

Theta
03.04.2018
04:30:16
Товарищи, ведь ничего не мешает спискам быть строгими? Просто... мне на собеседлове кажется втирали дичь якобы не все типы данных можно определить строго, только конечные и привели в пример список. Якобы его строго нельзя определить так как заранее он не известен и может быть бесконечен. Насколько мне известно, строгие типы данных, в отличии от ленивых, не могут иметь заглушку в стиле undefined и должны быть вычислены сразу. Однонаправленный список. Каждая следующая голова ссылается на хвост, состоящий из голов. Что мешает минимальному хвосту и рекурсивно соответственно, всему хвосту быть сразу определённым, при образовании строгого списка? Ничего. data List a = Nil | !a :! !(List a) и пример тому https://hackage.haskell.org/package/strict-base-0.4.0.0/docs/Data-Strict-List.html Товарищи, мне ведь дичь втирали, да?

Что это? Грёбанное манипулятивное интервью чтобы посеять неуверенность?

Или я не прав?

Уважаемые гуру, пожалуйста, прокомментируйте, что думаете?

Dmitry
03.04.2018
04:55:08
Кажется, путаница в определении "строгости"

Haskell/Strictness - Wikibooks, open books for an open world https://en.m.wikibooks.org/wiki/Haskell/Strictness

Theta
03.04.2018
04:56:41
Обсуждали именно строгие типы данных

Страница 1047 из 1551