OberonCore
https://forum.oberoncore.ru/

Бета-версия 1.7 от Центра Каркаса Блэкбокс
https://forum.oberoncore.ru/viewtopic.php?f=127&t=5680
Страница 1 из 4

Автор:  Иван Денисов [ Суббота, 23 Апрель, 2016 18:16 ]
Заголовок сообщения:  Бета-версия 1.7 от Центра Каркаса Блэкбокс

Господа, рад сообщить, что выпущена первая бета версия коллективного Блэкбокса, который родился в ЦКБ (Центре Каркаса Блэкбокс).
http://blackboxframework.org/lastdev
http://blackboxframework.org/lastdev/zip

Список нововведений
Список исправлений


Вот на этой странице я привел несколько типичных изменений, которые нужны для миграции с версии 1.6.
http://wiki.blackboxframework.org/index ... uilder_1.7

Этот список рекомендаций будет пополняться по ходу выявления типичных проблем.

Напоминаю, что доступен пакет русификации меню и форм: http://gitlab.molpit.org/blackbox/russian

Автор:  prospero78 [ Суббота, 23 Апрель, 2016 18:49 ]
Заголовок сообщения:  Re: Бета-версия 1.7 от Центра Каркаса Блэкбокс

Ты кого тут господином обозвал? Да я полдня сегодня на ленинском суботнике убил!

Прошёлся глазами по обоим спискам, смотрю народ шевелится. Dialog.Beep зацепил)))
Ваня, вопрос сопутствующий: если я правильно понимаю, сборка с сайта Цинна опоздывает или вообще не рекомендована?
Можно бетку в бой отправлять?

))) Смотрю, там круче тебя только Джозеф Темпл)

Мышко-отслеживане в отдельном процессе работает?)
Типа, чтобы при длительных процессах ГИП отзывчивый был?

Появился, имхо, полезнейший ключ /PORTABLE. Мультиверсии ББ полезная фишечка)

Автор:  Иван Денисов [ Суббота, 23 Апрель, 2016 19:14 ]
Заголовок сообщения:  Re: Бета-версия 1.7 от Центра Каркаса Блэкбокс

prospero78 писал(а):
Ты кого тут господином обозвал? Да я полдня сегодня на ленинском суботнике убил!

Тут «господа» в значении «джентльмены», т.е. образованные и воспитанные мужчины, почтенные и уравновешенные :)

prospero78 писал(а):
Прошёлся глазами по обоим спискам, смотрю народ шевелится. Dialog.Beep зацепил)))
Ваня, вопрос сопутствующий: если я правильно понимаю, сборка с сайта Цинна опоздывает или вообще не рекомендована?
Большая часть изменений синхронизирована с версией Цинна, но за ней не слежу, так как сконцентрирован на этой работе. Я рекомендую использовать версию Центра, поскольку изменения в ней более тщательно обсуждаются.

prospero78 писал(а):
Можно бетку в бой отправлять?
Ты на таком объекте работаешь, что всё исключительно под твою ответственность :)

prospero78 писал(а):
))) Смотрю, там круче тебя только Джозеф Темпл)
Йозеф (так говорят его имя правильно пишется) сделал основную работу по переносу правок из версии Цинна. В целом, все коммиты вносили только мы с ним в главную ветку, но это не умаляет вклад других участников. К тому-же сам код часто был взят от тех решений, которые предложены многими людьми вне Центра. Авторы и первопроходцы указаны иногда в описании задачи. В исходных кодах эти подробности сознательно опущены.

prospero78 писал(а):
Мышко-отслеживане в отдельном процессе работает?)

Нет, так нельзя делать, иначе рассинхронизируются ввод и вывод. В отдельном процессе только отлавливается Ctrl+Break и запускаются внешние вызовы.

Автор:  Kubanych [ Четверг, 28 Апрель, 2016 18:25 ]
Заголовок сообщения:  Re: Бета-версия 1.7 от Центра Каркаса Блэкбокс

ЦКБ - центральное конструкторское бюро.
Оригинально.

Автор:  Иван Денисов [ Пятница, 29 Апрель, 2016 04:59 ]
Заголовок сообщения:  Re: Бета-версия 1.7 от Центра Каркаса Блэкбокс

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

В бету после выпуска уже добавлено новое исправление для ODBC.

Автор:  Info21 [ Пятница, 29 Апрель, 2016 12:20 ]
Заголовок сообщения:  Re: Бета-версия 1.7 от Центра Каркаса Блэкбокс

Kubanych писал(а):
ЦКБ - центральное конструкторское бюро.
Оригинально.

Центральная клиническая больница -- тоже неплохо.

Автор:  Иван Денисов [ Пятница, 20 Май, 2016 16:08 ]
Заголовок сообщения:  Re: Бета-версия 1.7 от Центра Каркаса Блэкбокс

В бете исправляется сейчас еще пара багов.
Также на основе беты обновил Freenix сборку, все взлетело.

Кроме шуток, пишите тут свои отзывы о бете.

Попробуйте скомпилировать свои проекты, проверить все ли работает нормально и, что приходится исправлять для совместимости.
Мы соберем это потом в один документ.

Автор:  Иван Денисов [ Среда, 25 Май, 2016 18:08 ]
Заголовок сообщения:  Re: Бета-версия 1.7 от Центра Каркаса Блэкбокс

Выведен первый автоматический список изменений.
http://blackboxframework.org/unstable/m ... anges.html

Теперь такой список будет формироваться при любом слиянии с главной веткой хранилища.

Автор:  Пётр Кушнир [ Среда, 25 Май, 2016 18:46 ]
Заголовок сообщения:  Re: Бета-версия 1.7 от Центра Каркаса Блэкбокс

Не компилируется мой ypkTaskService, на вызов ypkDetails.objList.Length() ругается "this variable is readonly".

Автор:  Иван Денисов [ Среда, 25 Май, 2016 19:08 ]
Заголовок сообщения:  Re: Бета-версия 1.7 от Центра Каркаса Блэкбокс

Пётр Кушнир писал(а):
Не компилируется мой ypkTaskService, на вызов ypkDetails.objList.Length() ругается "this variable is readonly".

С твоей подсистемой я специально возился, чтобы все компилировалось. Вот тут выложил.
http://community.blackboxframework.org/ ... t=ypk#p622

Но у тебя наверное уже своя какая-то более новая версия. Поэтому можешь поправить следуя этим рекомендациям.

В данном случае надо экспортировать переменную, чтобы иметь возможность вызывать методы записи.
Код:
objList*: ObjList;

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

Автор:  Пётр Кушнир [ Среда, 25 Май, 2016 20:48 ]
Заголовок сообщения:  Re: Бета-версия 1.7 от Центра Каркаса Блэкбокс

Ну вообще, у меня версия с битбакет-репозитория OberonCore, да.
Иван Денисов писал(а):
Тут логика такая, что раз у тебя только для чтения, то методы нельзя вызывать, так как они могут поменять состояние объекта, а он ведь только для чтения.

Хм, какая-то новая семантика. Всегда считал, что read-only объект в данном случае это переменная типа УКАЗАТЕЛЬ НА Что-то. В компиляторе это и есть объект. И его содержимое действительно не менялось раньше. Даже при вызове метода, ресивер остаётся неизменным.

А как вы решили вопрос с Files.dir, например? Там ведь всё ещё есть методы?

Автор:  Иван Денисов [ Среда, 25 Май, 2016 21:36 ]
Заголовок сообщения:  Re: Бета-версия 1.7 от Центра Каркаса Блэкбокс

Пётр Кушнир писал(а):
А как вы решили вопрос с Files.dir, например? Там ведь всё ещё есть методы?

Интересный вопрос. Разбирался сейчас.

В Files не стоит VAR. Видимо в этом дело
Код:
PROCEDURE (d: Directory)

А тут стоит у тебя VAR.
Код:
PROCEDURE (VAR l: ObjList) Length* (): INTEGER, NEW;

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

Получается, что нельзя вызывать методы, в которых указан VAR в аргументе, для записей, которые экспортированы только для чтения.

Вроде этот фикс #38 за это отвечает:
http://blackboxframework.org/unstable/m ... #Target_38
http://forum.blackboxframework.org/view ... =205#p2039

Автор:  Пётр Кушнир [ Среда, 25 Май, 2016 22:20 ]
Заголовок сообщения:  Re: Бета-версия 1.7 от Центра Каркаса Блэкбокс

В случае со статическим объектом типа RECORD в режиме read-only ситуация ещё страннее, ведь у RECORD нет т.н. identity, адрес рекорда я сменить не могу, содержимое рекорда не есть сам рекорд, то есть его я менять могу.

То же самое с параметрами сейчас, да? Если мне приходит ANYREC-сообщение в IN-параметр, я не могу после охраны типа вызвать методы этого сообщения?

Кажется, такое поведение было в GPCP пару лет назад, но потом я автору написал в рассылке, он одумался, и сделал как в ББ.

Автор:  Иван Денисов [ Четверг, 26 Май, 2016 06:14 ]
Заголовок сообщения:  Re: Бета-версия 1.7 от Центра Каркаса Блэкбокс

Рекорд и есть его содержимое. Если бы у тебя был указатель только для чтения, то меняй сам рекорд как хочешь, а указатель закреплен. Но если у тебя рекорд только для чтения то его нельзя передавать в виде аргументов с VAR параметрами. На мой взгляд все логично.

Автор:  Пётр Кушнир [ Четверг, 26 Май, 2016 10:34 ]
Заголовок сообщения:  Re: Бета-версия 1.7 от Центра Каркаса Блэкбокс

Проблема в том, что от замены VAR на IN в ресивере возможность менять содержимое рекорда не исчезает. Да и вообще, непонятно, как быть с полностью экспортированными полями внутри такого рекорда.

Мне кажется, это некорректное изменение семантики модификатора "-".

Автор:  Борис Рюмшин [ Четверг, 26 Май, 2016 11:08 ]
Заголовок сообщения:  Re: Бета-версия 1.7 от Центра Каркаса Блэкбокс

Изменения в семантике языка? Это сильно. А не преждевременно ли?

Автор:  Илья Ермаков [ Четверг, 26 Май, 2016 14:32 ]
Заголовок сообщения:  Re: Бета-версия 1.7 от Центра Каркаса Блэкбокс

Пётр Кушнир писал(а):
То же самое с параметрами сейчас, да? Если мне приходит ANYREC-сообщение в IN-параметр, я не могу после охраны типа вызвать методы этого сообщения?

Кажется, такое поведение было в GPCP пару лет назад, но потом я автору написал в рассылке, он одумался, и сделал как в ББ.


Ну так всё правильно. Те методы, которые описаны как (VAR obj: Obj) Do - не можешь, а те, которые описаны как (IN obj: Obj) Do - можешь.

Автор:  Пётр Кушнир [ Четверг, 26 Май, 2016 16:00 ]
Заголовок сообщения:  Re: Бета-версия 1.7 от Центра Каркаса Блэкбокс

Тогда этот IN должен мешать мне менять содержимое рекорда.
Короче, не очень понятно, если для ресивера метода записи семантика IN и VAR в данный момент не отличается, так как рекорд не получится перенацелить на другую область памяти, то надо менять либо режим read-only либо IN.

Автор:  Иван Денисов [ Четверг, 26 Май, 2016 18:12 ]
Заголовок сообщения:  Re: Бета-версия 1.7 от Центра Каркаса Блэкбокс

Пётр, я проверил, что нельзя поменять поля записи, если у тебя стоит IN.
Вложение:
testExport.png
testExport.png [ 11.17 КБ | Просмотров: 13980 ]


Так что все четко в этом плане. Если запись только для чтения, то её можно передать только в IN, который в свою очередь проверит, что поля записи никто не меняет.

Автор:  Пётр Кушнир [ Четверг, 26 Май, 2016 21:29 ]
Заголовок сообщения:  Re: Бета-версия 1.7 от Центра Каркаса Блэкбокс

Ага, значит это тоже починили. Ну ок.

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