Оберон-клуб «ВЄДАsoft»
https://zx.oberon.org/forum/

Восток — транслятор Оберона-07 в Си
https://zx.oberon.org/forum/viewtopic.php?f=117&t=297
Страница 1 из 3

Автор:  Zorko [ 24 дек 2016, 17:14 ]
Заголовок сообщения:  Восток — транслятор Оберона-07 в Си

Comdiv писал(а):
Здравствуйте, Олег.

Проект я выложил после того, как он смог корректно собрать сам себя. Использовать можно с осторожностью - и транслятор может упасть после встречи с некоторыми ошибками в исходном коде, и больших гарантий правильности производимого кода я дать не могу. Сам факт сборки самого себя ещё не гарантия, так как я использую возможности языка не в полной мере. Впрочем, опыт разработки на данный момент у меня положительный - и язык сам по себе, и идеи по контролю корректности, заложенные в транслятор, помогают справиться с сыростью проекта.

Я не против создания раздела на вашем форуме, но вряд ли буду там писать. Что-то вроде новостей проекта появляется в моём блоге, когда у меня появляется желание написать.


Автор:  S.Atan [ 24 дек 2016, 19:09 ]
Заголовок сообщения:  Re: Восток — транслятор Оберона-07 в Си

К стати я так и не дотюмкал сразу как и где его собирать, а главное чем и в чем?

Автор:  Comdiv [ 25 дек 2016, 01:50 ]
Заголовок сообщения:  Re: Восток — транслятор Оберона-07 в Си

Сборка производится стандартным в *NIX способом для проектов, использующие Makefile - запуском команды make в каталоге проекта - vostok. Для лучшей диагностики по умолчанию используются опции компилятора -fsanitize=*, появившиеся в gcc 5-й версии, поэтому старые версии компилятора могут не собирать проект. Это можно обойти такой командой:
Код: "OBERON"
Что убирает из компиляции опции -fsanitize .

Я дополнил Makefile справочной целью, дающей краткую справку по важным целям и переменным Makefile. Вызвать её можно выполнив команду
Код: "OBERON"

Автор:  Comdiv [ 08 дек 2017, 22:34 ]
Заголовок сообщения:  Re: Восток — транслятор Оберона-07 в Си

Транслятор можно попробовать и в Windows. Для его сборки нужно использовать make.cmd, в котором используется tcc, но можно использовать и mingw.
Тестировал в WINE.

Автор:  ivan_denisov [ 12 янв 2018, 04:44 ]
Заголовок сообщения:  Re: Восток — транслятор Оберона-07 в Си

Решил попробовать ваш транслятор, а запустить не получается.
Код: "OBERON"
  1. ivan@dell:~/desktop/vostok-master/demo-server$ go run server.go
  2. listen tcp :80: bind: permission denied
  3. exit status 1
  4. ivan@dell:~/desktop/vostok-master/demo-server$ sudo go run server.go
  5. sudo: go: команда не найдена
  6.  

Автор:  Comdiv [ 12 янв 2018, 11:34 ]
Заголовок сообщения:  Re: Восток — транслятор Оберона-07 в Си

По умолчанию, сервер использует 80-й порт, который у Вас, похоже, занят другим WEB-сервером. Для этого предусмотрена опция -port INTEGER.
Вместе с sudo не запускается из-за того, что у пользователя root не прописан путь к go, в любом случае, это бы не помогло.

Также, я сейчас обнаружил ошибку со сборкой кода через сервер, связанную с обновлениями транслятора. На завтра я её исправлю.

Автор:  Comdiv [ 12 янв 2018, 23:12 ]
Заголовок сообщения:  Re: Восток — транслятор Оберона-07 в Си

Недостающие ссылки были добавлены.

Автор:  ivan_denisov [ 13 янв 2018, 03:39 ]
Заголовок сообщения:  Re: Восток — транслятор Оберона-07 в Си

80 порт не используется.
Прописал PATH=$PATH:/usr/local/go/bin в /root/.profile но почему-то sudo go все равно не работает.

Помогло использование полного пути :)
sudo /usr/local/go/bin/go run server.go

Автор:  ivan_denisov [ 13 янв 2018, 03:44 ]
Заголовок сообщения:  Re: Восток — транслятор Оберона-07 в Си

Пересобрал исправленный вариант, вроде работает пример.
Вложение:
Снимок экрана от 2018-01-13 08-42-59.png
Снимок экрана от 2018-01-13 08-42-59.png [ 22.12 КБ | Просмотров: 14909 ]


А как собрать без сервера? В README не хватает какого-то примера, как из терминала просто откомпилировать код на Oberon-07.

Автор:  Comdiv [ 13 янв 2018, 14:05 ]
Заголовок сообщения:  Re: Восток — транслятор Оберона-07 в Си

ivan_denisov писал(а):
80 порт не используется.
Прописал PATH=$PATH:/usr/local/go/bin в /root/.profile но почему-то sudo go все равно не работает.
Помогло использование полного пути :)
sudo /usr/local/go/bin/go run server.go

Странно, что запуск сервера позволен только от root, ведь это нежелательное действие. Вы не Ubuntu используете?

Кстати, я указал такой способ запуска, поскольку посчитал его самым простым. Так-то можно было разделить сборку сервера и его запуск:
Код: "OBERON"
  1. go build server.go && /usr/bin/sudo ./server

Страница 1 из 3 Часовой пояс: UTC + 2 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/