1.1, Аноним (1), 22:18, 16/04/2019 [ответить] [﹢﹢﹢] [ · · · ]
| +3 +/– |
Теперь скоро сообщество выпустит порты этих игр на GNU/Linux, Vulkan и Wayland - это лишь вопрос времени.
| |
|
2.2, Аноним (2), 22:21, 16/04/2019 [^] [^^] [^^^] [ответить]
| +13 +/– |
Вначале консоль, работающую поверх Vulkan и Wayland, придётся допилить. Игры то текстовые.
| |
|
3.18, Анонимкаааа (?), 08:27, 17/04/2019 [^] [^^] [^^^] [ответить]
| +2 +/– |
> Вначале консоль, работающую поверх Vulkan и Wayland, придётся допилить. Игры то текстовые.
alacritty
| |
3.26, Аноним (26), 10:30, 17/04/2019 [^] [^^] [^^^] [ответить]
| –2 +/– |
На кой хр.н там этот Vulkan, игры-то текстовые. Оно и поверх Xorg нормально побежит.
| |
|
2.4, Аноним (4), 22:40, 16/04/2019 [^] [^^] [^^^] [ответить]
| +1 +/– |
Не выпустит. Портирование на современные платформы не является "исследованием в области истории компьютерной техники", а это единственное, что они разрешили делать с этим кодом.
| |
|
3.8, НяшМяш (ok), 23:21, 16/04/2019 [^] [^^] [^^^] [ответить]
| +4 +/– |
Почему это вдруг? Как раз портирование на какой-нибудь вулкан под холодильник - и есть исследование. А потом попытаться это продать - вот это уже запрещено.
| |
|
|
1.5, Kuromi (ok), 22:47, 16/04/2019 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Ну вот Zork (кажется весь) доступен на GOG, интересно, есть ли шансы получить нормальный обновленный билд под современные системы?
| |
|
2.6, Kuromi (ok), 22:52, 16/04/2019 [^] [^^] [^^^] [ответить]
| +1 +/– |
Хмм, посмотрев поближе на то, что выложено в Гитхабе напрашивается вывод, что нет.
| |
|
3.12, Ordu (ok), 00:37, 17/04/2019 [^] [^^] [^^^] [ответить]
| –2 +/– |
Да ладно, всё не так плохо. Там внутре lisp, только он вместо () иногда использует <>. Всё что надо, это написать к нему read, а затем научить современный лисп работать с теми сорцами.
Например:
<DEFINE20 PSEUDO ("TUPLE" V)
<MAPF ,PLTABLE
<FUNCTION (OBJ)
<COND (<N==? <LENGTH .OBJ> 3>
<ERROR BAD-THING .OBJ PSEUDO>)>
<MAPRET <COND (<NTH .OBJ 2>
<VOC <SPNAME <NTH .OBJ 2>> NOUN>)>
<COND (<NTH .OBJ 1>
<VOC <SPNAME <NTH .OBJ 1>> ADJ>)>
<NTH .OBJ 3>>>
.V>>
Тут сложно сказать, что к чему -- макрос это объявляется или функция? если функция, то к чему , перед PLTABLE? И что значат точки -- это такой способ вызывать symbol-value? Но так или иначе, мне кажется, что если пару дней поломать голову над этими сорцами, то можно понять что к чему, и ещё за пару дней написать подходящий lisp, который это сможет прожевать. Потом, правда, можно отлаживать это всё месяц, но это другой вопрос.
А если вместо того, чтобы ломать голову над сорцами найти мануал к тому lisp'у, на котором всё это написано, то можно отлаживать не месяц, а за пару недель справится. Или даже быстрее -- сложно сказать. Главное писать на lisp'е, не переизобретая lisp. Не важно на каком -- common lisp, scheme, racket, elisp -- главное на lisp'е. Потому что если не на lisp'е, то придётся начать с написания lisp'а. То есть, в любом случае придётся начать с написания lisp'а, но написать lisp на lisp'е -- это как два пальца об асфальт, а вот на C написать лисп -- это уже хороший такой студенческий проект для постижения дзена.
| |
|
4.13, Stax (ok), 04:01, 17/04/2019 [^] [^^] [^^^] [ответить]
| +2 +/– |
> на C написать лисп -- это уже хороший такой студенческий проект для постижения дзена.
Ну это вы загнули. Лисп тем и отличается от языков со сложной грамматикой и хитростями, что его базовый интерпретатор написать несложно всегда, и вам не нужен для этого лисп. На C не то чтобы сильно сложнее (чуток заморочек с токенизацией и управлением памятью, но ничего особенно сложного там нет).
В качестве доказательства гуглится, например, это: https://carld.github.io/2017/06/20/lisp-in-less-than-200-lines-of-c.htmlhttps:
Да, ограничено, но тем не менее. А если взять язык выше уровнем, типа питона то на нем вообще халява.
Между прочим, "напишите реализацию лиспа (либо пролога)" на каком-нибудь языке (а можно просто каждого из них на другом) это вполне стандартное задание в рамках курса, где учат лисп (напр. матлогика в университете). И никакого "постижения дзена", обычное задание.
PS а для ответа на вопрос о том, что тут объявляется, можно смотреть спецификацию языка MDL: https://en.wikipedia.org/wiki/MDL_(programming_language)
| |
|
5.14, Ordu (ok), 04:34, 17/04/2019 [^] [^^] [^^^] [ответить] | +/– | Ну это очень ограничено Во-первых, в глаза бросается, оно без сборки мусора, ... большой текст свёрнут, показать | |
|
6.19, Stax (ok), 08:43, 17/04/2019 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Ну это *очень* ограничено. Во-первых, в глаза бросается, оно без сборки мусора,
> то есть заполняет память пока не упадёт с ООМ. А сборка
> мусора -- это значит выкидываем libc'овый malloc, расчехляем mmap и пишем
> свой аллокатор. Во-вторых, там нет очень многих вещей, которые для лиспа
> -- норма. Скажем целочисленных значений, массивов, хештабличек, компиляции/оптимизации
> -- оно ж убъётся что либо делать в том формате, в
> котором есть, и например к любой локальной переменной добираться через поиск
Это так, но... если с практической точки зрения в этой задаче - сколько там памяти может захотеть программа 80 года, работавшая на 8-битных железках с 64 КБ памяти? Мусор можно не собирать, а хэштаблицы и оптимизации для кода, который мог выполняться на 1 МГц процессоре?
| |
|
7.38, Ordu (ok), 16:19, 17/04/2019 [^] [^^] [^^^] [ответить]
| +1 +/– |
> сколько там памяти может захотеть программа 80 года, работавшая на 8-битных железках с 64 КБ памяти?
Сложно сказать. Тут можно только приблизительно прикинуть. Допустим вызовы функций в среднем имеют один аргумент. Допустим что это приводит к выделению одного cons из двух указателей, то есть 4 байта. Это значит, что 256 выполненых вызовов функций отожрут 1Kb под мусор. Имея гигабайты памяти можно перетерпеть.
> Мусор можно не собирать, а хэштаблицы и оптимизации для кода, который мог выполняться на 1 МГц процессоре?
Именно поэтому я и говорю, что надо писать на lisp'е. Рассуждения вида "если оно не тормозит, значит можно сделать тормознее" и приводят к тому, что сегодня тормозит всё. Если писать на lisp'е, ты получшь хэштаблички, оптимизирующую компиляцию в native код, сборку мусора и все прочие плюшки бесплатно, просто потому, что ты пишешь lisp на lisp'е, то есть компилируешь один lisp в другой lisp. Отказываться от бесплатных плюшек и писать на C, просто потому что можно сделать тормознее?
С другой стороны, что любопытно, современный lisp (типа sbcl, например) отожрёт больше памяти чем весь этот zork без сборки мусора. Там речь пойдёт про десятки мегабайт потребляемой памяти. Я думаю, меньше не выйдет. И вот это реально делает кейс интересным. Провоцирующим когнитивный диссонанс.
| |
|
6.27, myhand (ok), 10:59, 17/04/2019 [^] [^^] [^^^] [ответить]
| +/– |
> в глаза бросается, оно без сборки мусора
Ну, для этого, в принципе, можно просто libgc взять.
> Скажем целочисленных значений
gmp
> массивов, хештабличек
Массивов не было в scheme ... очень долго.
> оно ж убъётся что либо делать в том формате, в котором есть, и например к любой локальной переменной добираться через поиск этой локальной переменной по имени списке.
В конце 80-х так и делали, посмотрите на какой-нибудь siod 1.x. Тоже сейчас можно заменить, используя какую-нибудь готовую библиотеку.
Короче, действительно ничего сложного - в заявленный объем вполне могла влезть реализация scheme с define/set!, if, quote, lambda и даже макросами.
| |
|
7.33, Ordu (ok), 13:38, 17/04/2019 [^] [^^] [^^^] [ответить]
| +/– |
> Массивов не было в scheme ... очень долго.
> В конце 80-х так и делали, посмотрите на какой-нибудь siod 1.x.
> Тоже сейчас можно заменить, используя какую-нибудь готовую библиотеку.
И мне будут рассказывать, что Electron -- это бездарное разбазаривание ресурсов...
| |
|
8.34, myhand (ok), 14:02, 17/04/2019 [^] [^^] [^^^] [ответить] | +/– | Это можно записывать как признание в том, что electron - студенческая поделка ... текст свёрнут, показать | |
|
9.39, Ordu (ok), 16:26, 17/04/2019 [^] [^^] [^^^] [ответить] | +/– | Electron -- это студенческая поделка -- это заявление, которое имеет очень кос... текст свёрнут, показать | |
|
|
11.43, Ordu (ok), 18:10, 17/04/2019 [^] [^^] [^^^] [ответить] | +1 +/– | Если это была шутка, это не значит, что это была не политика Я бы сказал наобор... текст свёрнут, показать | |
|
|
|
|
|
6.47, Аноним (47), 01:21, 18/04/2019 [^] [^^] [^^^] [ответить]
| +/– |
>А сборка мусора -- это значит выкидываем libc'овый malloc, расчехляем mmap и пишем свой аллокатор.
О как, а мужики-то и не знали, что делать GC-кучи на malloc оказывается нельзя
| |
|
7.48, Ordu (ok), 02:02, 18/04/2019 [^] [^^] [^^^] [ответить]
| +/– |
>>А сборка мусора -- это значит выкидываем libc'овый malloc, расчехляем mmap и пишем свой аллокатор.
> О как, а мужики-то и не знали, что делать GC-кучи на malloc
> оказывается нельзя
Расскажи им обязательно, что glibc'овая куча даст им лишь ненужный оверхед. В качестве бесплатного бонуса mmap'а они могут получить возможность контролировать раскладку памяти и выдерживать во всех указателях часть битов константными, а это значит их можно использовать под что-то ещё.
И ещё скажи им, что харе пиво бухать в рекламе, вместо самообразования, тогда реже придётся сталкиваться с ситуаций "а мы не знали".
| |
|
|
|
4.16, Урри (?), 08:20, 17/04/2019 [^] [^^] [^^^] [ответить]
| +/– |
10 правило гринспена (есть на вики):
Любая достаточно сложная программа на Си или Фортране содержит заново написанную, неспецифицированную, глючную и медленную реализацию половины языка Common Lisp.
--
| |
|
|
|
1.17, Урри (?), 08:23, 17/04/2019 [ответить] [﹢﹢﹢] [ · · · ]
| +4 +/– |
Какая-то феноменальная жадность - код, которому от 40 до 50 лет и который, по сути, является давно протухшим никому не нужным говном мамонта, все равно прятать за проприетарной лицензией.
Я этого не могу понять никак.
| |
|
2.21, Аноним (3), 10:14, 17/04/2019 [^] [^^] [^^^] [ответить]
| +/– |
>The source code was contributed anonymously
можно предположить, что до копирайтодержателей достучаться - задача для частного лица невыполнимая. При этом один из них может оказаться "феноменально жадным" и аннулировать согласия, полученные от всех остальных.
| |
|
|
2.29, Аноним (26), 11:13, 17/04/2019 [^] [^^] [^^^] [ответить]
| +/– |
Какие там ваще текстурки, почитай новость внимательнее, г-н Неадекват.
| |
2.30, Аноним84701 (ok), 11:54, 17/04/2019 [^] [^^] [^^^] [ответить]
| +/– |
> а текстурки как всегда зажмут.
В смысле – буковки будут в виде голой сетки каркаса?
______ ______ ______ __ __ __
/\___ \ /\ __ \ /\ == \ /\ \/ / /\ \
\/_/ /__ \ \ \/\ \ \ \ __< \ \ _"-. \ \ \
/\_____\ \ \_____\ \ \_\ \_\ \ \_\ \_\ \ \_\
\/_____/ \/_____/ \/_/ /_/ \/_/\/_/ \/_/
0_o
| |
|
1.24, Аноним (24), 10:26, 17/04/2019 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
> компанией Infocom, просуществовавшей с 1979 по 1989 год
Return to Zork
Publisher: Infocom
Release: September 15, 1993
Поясните
| |
|
2.25, Аноним (24), 10:29, 17/04/2019 [^] [^^] [^^^] [ответить]
| +/– |
> Return to Zork
Хорошая была игра. У меня фирменный диск есть.
| |
2.49, Аноним (49), 16:18, 19/04/2019 [^] [^^] [^^^] [ответить]
| +/– |
В 1986 году компания была скуплена, в 1989 расформирована, от неё осталась только торговая марка.
| |
|
|