Вариант для распечатки |
Пред. тема | След. тема | ||
Форум Разговоры, обсуждение новостей | |||
---|---|---|---|
Режим отображения отдельной подветви беседы | [ Отслеживать ] |
Оглавление |
Сообщения | [Сортировка по времени | RSS] |
1. "Выпуск MirageOS 3.5, платформы для запуска приложений поверх..." | –1 +/– | |
Сообщение от proninyaroslav (ok), 08-Мрт-19, 11:24 | ||
>приложения и библиотеки формируются на высокоуровневом языке OCaml, итоговые окружения демонстрируют достаточно неплохую производительность и минимальный размер | ||
Ответить | Правка | Наверх | Cообщить модератору |
3. "Выпуск MirageOS 3.5, платформы для запуска приложений поверх..." | +9 +/– | |
Сообщение от Ordu (ok), 08-Мрт-19, 11:58 | ||
Развитая система типов плюс статическая типизация позволяют создавать API, которые инкапсулируя всё, что требует тщательной проработки, обходятся везде где можно памятью со стека, не нагружая кучу и сборщик мусора. Это всё те же идеи, которые отрабатывались в haskell'е и в C++. Плюс к этому оно не прибито гвоздями к какой-то выбранной парадигме, позволяя использовать те парадигмы, которые лучше ложатся на задачу. | ||
Ответить | Правка | Наверх | Cообщить модератору |
12. "Выпуск MirageOS 3.5, платформы для запуска приложений поверх..." | –2 +/– | |
Сообщение от Vkni (ok), 08-Мрт-19, 15:35 | ||
> Туда лезут люди, которым чего-то не хватило в C++, в haskell и прочих. | ||
Ответить | Правка | Наверх | Cообщить модератору |
25. "Выпуск MirageOS 3.5, платформы для запуска приложений поверх..." | +/– | |
Сообщение от Аноним (25), 09-Мрт-19, 13:59 | ||
> обходятся везде где можно памятью со стека, | ||
Ответить | Правка | К родителю #3 | Наверх | Cообщить модератору |
27. "Выпуск MirageOS 3.5, платформы для запуска приложений поверх..." | +1 +/– | |
Сообщение от Ordu (ok), 09-Мрт-19, 14:14 | ||
>> обходятся везде где можно памятью со стека, | ||
Ответить | Правка | Наверх | Cообщить модератору |
29. "Выпуск MirageOS 3.5, платформы для запуска приложений поверх..." | +1 +/– | |
Сообщение от Аноним (25), 09-Мрт-19, 14:24 | ||
Во-первых, говоря о стеке процессора, ты забыл про пересылку данных. | ||
Ответить | Правка | Наверх | Cообщить модератору |
30. "Выпуск MirageOS 3.5, платформы для запуска приложений поверх..." | +/– | |
Сообщение от Ordu (ok), 09-Мрт-19, 15:35 | ||
> Во-первых, говоря о стеке процессора, ты забыл про пересылку данных. | ||
Ответить | Правка | Наверх | Cообщить модератору |
31. "Выпуск MirageOS 3.5, платформы для запуска приложений поверх..." | +/– | |
Сообщение от Ordu (ok), 09-Мрт-19, 15:41 | ||
Хотя я так подумал... про ocaml пишут, что у него generational gc, а выделение памяти из такой кучи, как я понимаю, не сильно дороже, чем выделение памяти из стека. | ||
Ответить | Правка | Наверх | Cообщить модератору |
32. "Выпуск MirageOS 3.5, платформы для запуска приложений поверх..." | +1 +/– | |
Сообщение от Аноним (25), 09-Мрт-19, 18:11 | ||
>> Во-первых, говоря о стеке процессора, ты забыл про пересылку данных. | ||
Ответить | Правка | К родителю #30 | Наверх | Cообщить модератору |
33. "Выпуск MirageOS 3.5, платформы для запуска приложений поверх..." | +/– | |
Сообщение от Ordu (ok), 09-Мрт-19, 18:49 | ||
> Так и сделано. Лимит можно задать перед выполнением. | ||
Ответить | Правка | Наверх | Cообщить модератору |
39. "Выпуск MirageOS 3.5, платформы для запуска приложений поверх..." | +/– | |
Сообщение от Аноним (25), 10-Мрт-19, 13:22 | ||
Контролем стека процессора занимается ОС (см. man limits.conf), ставит сторожевую страницу (в общем случае не даёт гарантий от переполнения). | ||
Ответить | Правка | Наверх | Cообщить модератору |
35. "Выпуск MirageOS 3.5, платформы для запуска приложений поверх..." | +/– | |
Сообщение от Vkni (ok), 09-Мрт-19, 21:11 | ||
> Кстати, в MLton эти проблемы решены, как и бесшовное взаимодействие с С. | ||
Ответить | Правка | К родителю #32 | Наверх | Cообщить модератору |
36. "Выпуск MirageOS 3.5, платформы для запуска приложений поверх..." | +/– | |
Сообщение от Vkni (ok), 09-Мрт-19, 21:14 | ||
> Один для нужд рантайма и параллельный стек для собственно | ||
Ответить | Правка | К родителю #30 | Наверх | Cообщить модератору |
37. "Выпуск MirageOS 3.5, платформы для запуска приложений поверх..." | +/– | |
Сообщение от Ordu (ok), 10-Мрт-19, 12:15 | ||
Потому что cache-locality. Стек хорош в этом: функции работают преимущественно с локальными переменными, которые либо в регистрах либо на стеке. Всякие там адреса возврата туда же попадают, и всё получается неплохо. Если же мы начинаем раскидывать это по трём стекам, то в кеш начинает попадать больше ненужного -- из стека же в кеш переносится не нужная переменная, а кусок памяти в 64 байта (cache line), содержащий эту переменную. Там где на одном стеке будет достаточно 1-2 линий кеша под всё актуальное, на трёх надо будет в два-три раза больше. | ||
Ответить | Правка | Наверх | Cообщить модератору |
38. "Выпуск MirageOS 3.5, платформы для запуска приложений поверх..." | +/– | |
Сообщение от Vkni (ok), 10-Мрт-19, 13:11 | ||
> Там где на одном стеке будет достаточно 1-2 линий кеша под всё актуальное, на трёх надо будет в два-три раза больше. | ||
Ответить | Правка | Наверх | Cообщить модератору |
40. "Выпуск MirageOS 3.5, платформы для запуска приложений поверх..." | +/– | |
Сообщение от Ordu (ok), 10-Мрт-19, 14:06 | ||
> рабочая глубина этих стеков будет меньше | ||
Ответить | Правка | Наверх | Cообщить модератору |
42. "Выпуск MirageOS 3.5, платформы для запуска приложений поверх..." | +/– | |
Сообщение от Аноним (25), 10-Мрт-19, 14:23 | ||
142 многовато, вот 128 | ||
Ответить | Правка | Наверх | Cообщить модератору |
46. "Выпуск MirageOS 3.5, платформы для запуска приложений поверх..." | +/– | |
Сообщение от Аноним84701 (ok), 10-Мрт-19, 22:05 | ||
> 142 многовато, вот 128 | ||
Ответить | Правка | Наверх | Cообщить модератору |
47. "Выпуск MirageOS 3.5, платформы для запуска приложений поверх..." | +/– | |
Сообщение от Аноним (47), 11-Мрт-19, 16:05 | ||
Это же MBR размером 512 байт (на некотором железе не запустится), а было "Smallest x86 ELF Hello World" (50 байт + файловый заголовок). | ||
Ответить | Правка | Наверх | Cообщить модератору |
48. "Выпуск MirageOS 3.5, платформы для запуска приложений поверх..." | +/– | |
Сообщение от Аноним84701 (ok), 11-Мрт-19, 17:07 | ||
> размером 512 байт | ||
Ответить | Правка | К родителю #47 | Наверх | Cообщить модератору |
49. "Выпуск MirageOS 3.5, платформы для запуска приложений поверх..." | +/– | |
Сообщение от Аноним (47), 12-Мрт-19, 06:51 | ||
>> размером 512 байт | ||
Ответить | Правка | К родителю #48 | Наверх | Cообщить модератору |
5. "Выпуск MirageOS 3.5, платформы для запуска приложений поверх..." | –1 +/– | |
Сообщение от Cradle (?), 08-Мрт-19, 12:31 | ||
популярен во франкоязычных странах. Сам по себе вполне не плох, но вот только в остальных странах к сожалению не особо популярен, нужно реально быть в голове французом чтобы предпочесть его плюсам или яве. В том смысле что начиная проект обычно сразу задумываешся с какими людьми будешь его делать вместе и как с ними будешь общаться; французы в этом плане довольно замкнуты. | ||
Ответить | Правка | К родителю #1 | Наверх | Cообщить модератору |
11. "Выпуск MirageOS 3.5, платформы для запуска приложений поверх..." | +/– | |
Сообщение от Vkni (ok), 08-Мрт-19, 15:34 | ||
Зависит от задачи. Вычислительный код писать, например, очень неудобно, если не переопределить операторы. Многопоточности пока нет. | ||
Ответить | Правка | Наверх | Cообщить модератору |
23. "Выпуск MirageOS 3.5, платформы для запуска приложений поверх..." | +/– | |
Сообщение от KonstantinB (ok), 09-Мрт-19, 00:41 | ||
Ну почему же? В фейсбуке используют (см. reasonml). Docker for Mac тоже на нем написан. | ||
Ответить | Правка | К родителю #5 | Наверх | Cообщить модератору |
10. "Выпуск MirageOS 3.5, платформы для запуска приложений поверх..." | –1 +/– | |
Сообщение от Vkni (ok), 08-Мрт-19, 15:34 | ||
И то, и другое. Ocaml - это в девичестве Caml Light, который был создан Ксавье Леруа и компанией в качестве высокопроизводительного компилятора функционального языка. И это у них осталось в культуре: одно из основных требований - это быстрота программ. Это требование, например, заставило их делать все вычисления "справа налево", сломав традиционное для ML слева направо. | ||
Ответить | Правка | К родителю #1 | Наверх | Cообщить модератору |
13. "Выпуск MirageOS 3.5, платформы для запуска приложений поверх..." | +/– | |
Сообщение от Vkni (ok), 08-Мрт-19, 15:37 | ||
Упомянутая выше dune, кстати, тоже отрабатывает мгновенно за счёт умного кеширования. В Jane Street недавно был доклад на эту тему. | ||
Ответить | Правка | Наверх | Cообщить модератору |
28. "Выпуск MirageOS 3.5, платформы для запуска приложений поверх..." | +/– | |
Сообщение от Аноним (25), 09-Мрт-19, 14:18 | ||
MLton для оптимизации выполняет unboxing, в аналогичных местах OCaml будет проверять младший бит, что бы различить значения и указатели. А за счёт чего "делать все вычисления "справа налево" может дать прирост скорости при выполнении? | ||
Ответить | Правка | К родителю #10 | Наверх | Cообщить модератору |
34. "Выпуск MirageOS 3.5, платформы для запуска приложений поверх..." | +1 +/– | |
Сообщение от Vkni (ok), 09-Мрт-19, 21:05 | ||
> А за счёт чего "делать все вычисления "справа налево" может дать прирост скорости при выполнении? | ||
Ответить | Правка | Наверх | Cообщить модератору |
41. "Выпуск MirageOS 3.5, платформы для запуска приложений поверх..." | +/– | |
Сообщение от Аноним (25), 10-Мрт-19, 14:12 | ||
Благодарю. Однако, там же сказано (со ссылкой на Драгонбук), что преимущество может дать неопределённый порядок вычисления аргументов, принятый в C. | ||
Ответить | Правка | Наверх | Cообщить модератору |
43. "Выпуск MirageOS 3.5, платформы для запуска приложений поверх..." | +/– | |
Сообщение от Vkni (ok), 10-Мрт-19, 14:47 | ||
Ну там лажа написана - надо поменять. Простейшая проверка показывает, что right to left: | ||
Ответить | Правка | Наверх | Cообщить модератору |
44. "Выпуск MirageOS 3.5, платформы для запуска приложений поверх..." | +/– | |
Сообщение от Аноним (25), 10-Мрт-19, 16:23 | ||
Если там перепутали порядок вычисления аргументов в существующих имплементациях, это одно. Другое дело, что кроме того там написано "порядок не определён; так получилось, что аргументы вычисляются так-то, но рассчитывать на эту особенность опасно, т.к. в будущем может измениться". | ||
Ответить | Правка | Наверх | Cообщить модератору |
45. "Выпуск MirageOS 3.5, платформы для запуска приложений поверх..." | +/– | |
Сообщение от Vkni (ok), 10-Мрт-19, 19:26 | ||
> но рассчитывать на эту особенность опасно, т.к. в будущем может измениться". | ||
Ответить | Правка | Наверх | Cообщить модератору |
26. "Выпуск MirageOS 3.5, платформы для запуска приложений поверх..." | +/– | |
Сообщение от Аноним (25), 09-Мрт-19, 14:08 | ||
print_endline "Hello World!";; | ||
Ответить | Правка | К родителю #1 | Наверх | Cообщить модератору |
Архив | Удалить |
Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема |
Закладки на сайте Проследить за страницей |
Created 1996-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |