Автор Тема: Компилятор Oberon-07/11 для x86 Windows  (Прочитано 76640 раз)

akron1

  • Jr. Member
  • **
  • Сообщений: 76
    • Просмотр профиля
Re: Компилятор Oberon-07/11 для x86 Windows
« Ответ #135 : Март 13, 2013, 08:02:50 pm »
akron1, один знакомый оберонщик попросил уточнить насчёт лицензии на данный компилятор. Он опасается, что если её сейчас нет никакой, то потом ВДРУГ может появиться совсем неудобная (для его нужд).

О лицензии не задумывался... Ну ладно, значит будет GNU GPL со следующей версии.

Geniepro

  • Hero Member
  • *****
  • Сообщений: 1955
  • Знайте- истина в том, что повторено трижды подряд!
    • Просмотр профиля
Re: Компилятор Oberon-07/11 для x86 Windows
« Ответ #136 : Март 14, 2013, 04:30:10 am »
Лучше сделайте BSD или вообще Public Domain (как у SQLite).
С GPL проблемы возникают в коммерческом использовании.
to iterate is human, to recurse, divine

Салат «рекурсия»: помидоры, огурцы, салат…

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Компилятор Oberon-07/11 для x86 Windows
« Ответ #137 : Март 14, 2013, 09:11:14 am »
Лучше сделайте BSD или вообще Public Domain (как у SQLite).
С GPL проблемы возникают в коммерческом использовании.
Нет. GPL коммерческому использованию никак не мешает, ну, например у нас в конторе для создания сильно коммерческого продукта используется gcc (а у него лицензия как бы вообще GPLv3), и mono (лицензия GPL). А еще используется OpenJDK (GPL).

Тут не нужно путать компилятор и рантайм языка. Рантайм (равно как и стандартная либа) должен быть под лицензией аля LGPL или там GPL+linking exception.

Единственное чему может помешать лицензия GPL у компилятора - это проприентарным модификациям лицами не являющимися авторами данного компилятора.
Y = λf.(λx.f (x x)) (λx.f (x x))

Geniepro

  • Hero Member
  • *****
  • Сообщений: 1955
  • Знайте- истина в том, что повторено трижды подряд!
    • Просмотр профиля
Re: Компилятор Oberon-07/11 для x86 Windows
« Ответ #138 : Март 14, 2013, 12:04:11 pm »
Единственное чему может помешать лицензия GPL у компилятора - это проприентарным модификациям лицами не являющимися авторами данного компилятора.

Я это и имел в виду -- ведь для реального использования оберона его компилятор или RTL по-любому придётся допиливать...
to iterate is human, to recurse, divine

Салат «рекурсия»: помидоры, огурцы, салат…

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Компилятор Oberon-07/11 для x86 Windows
« Ответ #139 : Март 14, 2013, 12:12:07 pm »
Единственное чему может помешать лицензия GPL у компилятора - это проприентарным модификациям лицами не являющимися авторами данного компилятора.

Я это и имел в виду -- ведь для реального использования оберона его компилятор или RTL по-любому придётся допиливать...
Не вижу тут смысла не GPL лицензии -- допиленный компилятор в исходниках должен быть доступен всем, в том числе и первоначальному автору (akron1). См. как развивается тот же gcc.
Y = λf.(λx.f (x x)) (λx.f (x x))

akron1

  • Jr. Member
  • **
  • Сообщений: 76
    • Просмотр профиля
Re: Компилятор Oberon-07/11 для x86 Windows
« Ответ #140 : Август 17, 2013, 08:30:21 am »
Переписал редактор на обероне. Исходный код получился страшный -- я никогда раньше не писал GUI на winapi, к тому же сильно мешало отсутствие вшитой в язык поддержки юникода (в моей реализации) и отсутствие в языке операции конкатенации (не говоря уж о типе string). Но каким-то образом оно работает)). Немного расширил и доопределил язык. Усовершенствовал работу с вещественными числами. До промышленных компиляторов, конечно все равно далеко, но все-таки вещественная арифметика стала в несколько раз эффективнее. https://sites.google.com/site/oberon07compiler/versii

Kemet

  • Hero Member
  • *****
  • Сообщений: 587
    • Просмотр профиля
Re: Компилятор Oberon-07/11 для x86 Windows
« Ответ #141 : Август 17, 2013, 01:41:54 pm »
sys.ADR(s)Труъоберонщики могут за это забить ногами ))
В данном случае значения не имеет, но лучше писать
sys.ADR(s[0])в будущем при расширении будет меньше проблем.

Geniepro

  • Hero Member
  • *****
  • Сообщений: 1955
  • Знайте- истина в том, что повторено трижды подряд!
    • Просмотр профиля
Re: Компилятор Oberon-07/11 для x86 Windows
« Ответ #142 : Август 17, 2013, 05:26:13 pm »
Переписал редактор на обероне. Исходный код получился страшный -- я никогда раньше не писал GUI на winapi, к тому же сильно мешало отсутствие вшитой в язык поддержки юникода (в моей реализации) и отсутствие в языке операции конкатенации (не говоря уж о типе string). Но каким-то образом оно работает)).

Серьёзный шаг вперёд в проекте. Теперь осталось сделать библиотеку визуальных компонентов и прикрутить редактор форм -- может получиться не хуже чем в дельфях ))
to iterate is human, to recurse, divine

Салат «рекурсия»: помидоры, огурцы, салат…

satan

  • Newbie
  • *
  • Сообщений: 5
    • Просмотр профиля
Re: Компилятор Oberon-07/11 для x86 Windows
« Ответ #143 : Ноябрь 03, 2013, 11:41:30 pm »
В компиляторе небольшой косяк с форматом PE файла (где не разобрался ещё), при создании гуя антивирусник (Symantec Endpoint) удаляет файл как потенциально опасный. Такое было у меня, когда накосячил с размерностью полей структур.

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Компилятор Oberon-07/11 для x86 Windows
« Ответ #144 : Ноябрь 07, 2013, 07:19:24 pm »
Такс. А я чего-то не понял. Вот есть функция:
RegisterClassEx: PROCEDURE [winapi] (lpWndClass: tagWNDCLASSEX): sys.CARD16;

То есть именно функция, а не процедура.

А вот есть её вызов (в Editor'e):
RegisterClassEx(wc);

Насколько я понимаю, вызов не чистой процедуры (то есть функции) в виде Statement'a в Oberon'e запрещен, вызов таковой функции может быть только в составе expression'a.

Или я не прав?
Y = λf.(λx.f (x x)) (λx.f (x x))

Kemet

  • Hero Member
  • *****
  • Сообщений: 587
    • Просмотр профиля
Re: Компилятор Oberon-07/11 для x86 Windows
« Ответ #145 : Ноябрь 08, 2013, 03:27:17 am »
Данная особенность описана в документации:
Цитировать
Системные флаги
 
  При объявлении процедурных типов и глобальных процедур, после ключевого слова
PROCEDURE может быть указан системный флаг соглашения вызова.
Его формат: "[" ( "stdcall" | "cdecl" | "winapi" ) "]", то есть [stdcall], [cdecl] или [winapi]. Например:
 
PROCEDURE [cdecl] MyProc(x, y, z: INTEGER): INTEGER;
 
  Если указан флаг [winapi], то принимается соглашение stdcall и процедуру-функцию
можно вызвать как собственно процедуру, вне выражения. Флаг [winapi] доступен только для
платформы Windows.

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Компилятор Oberon-07/11 для x86 Windows
« Ответ #146 : Декабрь 18, 2013, 12:51:35 pm »
Биндинг к SDL еще никто не пробовал сделать для этого компилятора?
Y = λf.(λx.f (x x)) (λx.f (x x))

akron1

  • Jr. Member
  • **
  • Сообщений: 76
    • Просмотр профиля
Re: Компилятор Oberon-07/11 для x86 Windows
« Ответ #147 : Декабрь 18, 2013, 03:10:30 pm »
Хм... Могу попробовать. Все равно заняться в плане кодирования нечем -- новый кодогенератор и сборщик мусора пока делать не хочу.
А пока, изменений немного: улучшена поддержка Kolibri (dll, библиотеки, улучшена работа с динамической памятью), несколько увеличена скорость компиляции и плотность кода и некоторые мелкие поправки.
https://sites.google.com/site/oberon07compiler/versii

ilovb

  • Hero Member
  • *****
  • Сообщений: 2538
  • just another nazi test
    • Просмотр профиля
    • Oberon systems
Re: Компилятор Oberon-07/11 для x86 Windows
« Ответ #148 : Май 07, 2014, 11:23:25 am »
akron1, сделайте, пожалуйста, для своего детища репозиторий на гитхабе.

akron1

  • Jr. Member
  • **
  • Сообщений: 76
    • Просмотр профиля
Re: Компилятор Oberon-07/11 для x86 Windows
« Ответ #149 : Май 08, 2014, 08:34:58 pm »
Извините, Борис, но гитхабом пользоваться не умею и учиться не хочу, потому что мне это не нужно -- я не кодер и не собираюсь им быть.