OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Воскресенье, 16 Декабрь, 2018 01:34

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 40 ]  На страницу Пред.  1, 2
Автор Сообщение
 Заголовок сообщения: Re: Component Pascal на github
СообщениеДобавлено: Воскресенье, 18 Май, 2014 16:45 
Аватара пользователя

Зарегистрирован: Среда, 29 Март, 2006 12:09
Сообщения: 495
Давайте будем реалистами, GitHub не возьмет в библиотеку модуль для языка, который хранит данные в бинарном формате. И костыль в виде утилиты, перегоняющей исходник в текст тут тоже не поможет, вменяемые безопасники это не допустят.

Поэтому остается вопрос полного перевода исходников на текстовое представление.
В своей системе, локально, я могу настроить любые системы, мыслимые и немыслимые. Но в общем, для general-purpose системы это не подойдет.

Это преамбула, так сказать.

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

Фактически речь идет только о том, чтобы в модуль Stores вложить прослойку, которая для всех процедур, кроме WriteString, WriteChar и, возможно, WriteStore производит не прямую запись, а буферизацию и кодирование заданным кодировщиком (мне больше всего нравится Ascii85). Обратное преобразование также простое - для Stores, которые читаются из файла, производится сначала чтение, затем декодирование, затем уже возврат из процедур ReadXXX.

Требование «перевод каретки до и после» позволит локализовать изменения во вложенных Stores в рамках одной строки. Все diff будут вам признательны за такую локализацию.

Так что потенциальные изменения небольшие и не касаются интерфейса частей фреймворка. Межмодульный контракт не должен изменится. Однако, для большей части модулей мы получим просто текстовое представление с минимальными вкраплениями кодированных строк, локализованных к тому же.

Бережное сохранение канонiчной версии, это, конечно, похвально.
Но вот договороспособность, на мой взгляд, более ценное качество.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Component Pascal на github
СообщениеДобавлено: Воскресенье, 18 Май, 2014 16:53 

Зарегистрирован: Вторник, 30 Июнь, 2009 14:58
Сообщения: 1438
2 Роман
Ну в общем то все идет к тому чтобы разделить интерфейс и способ хранения.

Должен быть стандарт на абстрактный составной документ. Что он может содержать, как это отображается и как работает. А вот как это хранится пусть зависит от конкретной реализации.

Можно зафиксировать несколько эталонных реализаций для различных целей. Например реализация в виде XML была бы очень удобна для стороннего софта, а также для целей дифа и мерджа существующими инструментами и алгоритмами. Причем XML по максимуму, т.е. с минимумом кодирования в блобы.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Component Pascal на github
СообщениеДобавлено: Воскресенье, 18 Май, 2014 16:58 

Зарегистрирован: Вторник, 30 Июнь, 2009 14:58
Сообщения: 1438
2 Димыч
Не согласен. Все равно существующие инструменты дифа и мерджа не получится использовать, т.к. ты в них не увидишь что содержится в этих кодированных участках и соответственно не поймешь куда их приткнуть. Все равно нужно будет делать специальный инструмент. А под специальный инструмент лучше делать как предложил Роман. Т.е. обычный текст в UTF-8 и метаинформация в конце после специального маркера. Это позволит просматривать текст онлайн и просматривать текстовый диф. А полноценный диф и мердж делать с помощью специального инструмента


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Component Pascal на github
СообщениеДобавлено: Воскресенье, 18 Май, 2014 21:03 

Зарегистрирован: Вторник, 30 Июнь, 2009 14:58
Сообщения: 1438
Ах да. И лексер должен соображать что после специального маркера идет метаинформация.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Component Pascal на github
СообщениеДобавлено: Воскресенье, 18 Май, 2014 21:21 
Аватара пользователя

Зарегистрирован: Пятница, 25 Сентябрь, 2009 13:10
Сообщения: 1162
Откуда: Tel-Aviv
ilovb писал(а):
Ах да. И лексер должен соображать что после специального маркера идет метаинформация.

(*
А пофиг!
*)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Component Pascal на github
СообщениеДобавлено: Воскресенье, 18 Май, 2014 21:38 

Зарегистрирован: Вторник, 30 Июнь, 2009 14:58
Сообщения: 1438
Да, я об этом тоже подумал :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Component Pascal на github
СообщениеДобавлено: Понедельник, 19 Май, 2014 05:16 
Аватара пользователя

Зарегистрирован: Среда, 29 Март, 2006 12:09
Сообщения: 495
ilovb писал(а):
...ты в них не увидишь что содержится в этих кодированных участках и соответственно не поймешь куда их приткнуть.

  1. Правильно я понимаю, что в XML содержимое вложенных вьюшек будет понятным и читаемым?
  2. Правильно я понимаю, что использование иерархического формата, вроде JSON, позволит редактировать содержимое вложенных вьюшек прямо в тексте?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Component Pascal на github
СообщениеДобавлено: Понедельник, 19 Май, 2014 08:08 

Зарегистрирован: Вторник, 30 Июнь, 2009 14:58
Сообщения: 1438
1. Да
2. Да

ps Вот так это должно выглядеть: JsonDiff


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Component Pascal на github
СообщениеДобавлено: Среда, 04 Июнь, 2014 13:49 

Зарегистрирован: Вторник, 30 Июнь, 2009 14:58
Сообщения: 1438
Merged: https://github.com/github/linguist/comm ... a922977749


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Component Pascal на github
СообщениеДобавлено: Четверг, 05 Июнь, 2014 00:33 
Аватара пользователя

Зарегистрирован: Пятница, 25 Сентябрь, 2009 13:10
Сообщения: 1162
Откуда: Tel-Aviv
ilovb писал(а):

linguist идёт второй по порядку. Сначала нужно было отправить pull request в pygments для добавления лексера КП.
Читай моё сообщение в теме Разработка лексера Pygments для Оберона/КП.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Component Pascal на github
СообщениеДобавлено: Четверг, 05 Июнь, 2014 09:33 

Зарегистрирован: Вторник, 30 Июнь, 2009 14:58
Сообщения: 1438
Тю. Какая разница?

Ну сделаю потом еще один пул реквест в linguist. Еще и поддержку оберона вкручу.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Component Pascal на github
СообщениеДобавлено: Четверг, 05 Июнь, 2014 14:30 
Аватара пользователя

Зарегистрирован: Пятница, 25 Сентябрь, 2009 13:10
Сообщения: 1162
Откуда: Tel-Aviv
ilovb писал(а):
Тю. Какая разница?

Ну сделаю потом еще один пул реквест в linguist. Еще и поддержку оберона вкручу.
Как писал ранее, что linguist является обёрткой над pygments.rb, в котором поддержки КП пока нет.
Ещё предстоит:
  1. pull request в pygments.rb для добавления лексера КП
  2. дождаться выхода новой версии pygments.rb
  3. pull request в linguist с одновременной просьбой обновить копию pygments.rb из основного хранилища.
  4. дождаться deploy на ГитХабе.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Component Pascal на github
СообщениеДобавлено: Четверг, 05 Июнь, 2014 20:04 

Зарегистрирован: Вторник, 30 Июнь, 2009 14:58
Сообщения: 1438
Роман М. писал(а):
Ещё предстоит:

Вот именно такой план у меня и был. :wink:


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Component Pascal на github
СообщениеДобавлено: Четверг, 12 Июнь, 2014 14:04 

Зарегистрирован: Вторник, 30 Июнь, 2009 14:58
Сообщения: 1438
На гитхабе уже заработала подсветка.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Component Pascal на github
СообщениеДобавлено: Четверг, 12 Июнь, 2014 14:28 
Аватара пользователя

Зарегистрирован: Пятница, 25 Сентябрь, 2009 13:10
Сообщения: 1162
Откуда: Tel-Aviv
Наконец-то. Спасибо.

Сообщил в форуме сообщества Блэкбокс.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Component Pascal на github
СообщениеДобавлено: Пятница, 13 Июнь, 2014 09:54 

Зарегистрирован: Понедельник, 30 Июль, 2007 10:53
Сообщения: 1537
Откуда: Беларусь, Минск
А решёточка специально так подсвечивается?
https://github.com/ilovb/LightBox/blob/ ... g.cps#L235
https://github.com/ilovb/LightBox/blob/ ... g.cps#L240

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

Начиная с
https://github.com/ilovb/LightBox/blob/ ... g.cps#L276
мы натыкаемся на двойной Ой: фигурная скобка - это не комментарий, и внутри строки лексемы распознаваться не должны.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Component Pascal на github
СообщениеДобавлено: Пятница, 13 Июнь, 2014 12:44 

Зарегистрирован: Вторник, 30 Июнь, 2009 14:58
Сообщения: 1438
Подсветка с косяками, т.к. она не для CP, а для Delphi. Для CP будет не скоро.

Если кто хочет ускорить процесс, то сделайте пулреквест в pygments.
У меня времени пока нет этим заниматься.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Component Pascal на github
СообщениеДобавлено: Суббота, 15 Ноябрь, 2014 00:19 

Зарегистрирован: Вторник, 30 Июнь, 2009 14:58
Сообщения: 1438
На гитхабе чегой-то изменилось. Теперь похоже используются лексеры TextMate.
Подсветка стала гораздо приятнее (хоть и не родная для CP)

https://github.com/ilovb/BB16Final/blob ... Models.cps


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Component Pascal на github
СообщениеДобавлено: Суббота, 15 Ноябрь, 2014 00:22 

Зарегистрирован: Вторник, 30 Июнь, 2009 14:58
Сообщения: 1438
Valery Solovey писал(а):
А решёточка специально так подсвечивается?
https://github.com/ilovb/LightBox/blob/ ... g.cps#L235
https://github.com/ilovb/LightBox/blob/ ... g.cps#L240

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

Начиная с
https://github.com/ilovb/LightBox/blob/ ... g.cps#L276
мы натыкаемся на двойной Ой: фигурная скобка - это не комментарий, и внутри строки лексемы распознаваться не должны.


Теперь лучше? :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Component Pascal на github
СообщениеДобавлено: Понедельник, 17 Ноябрь, 2014 23:54 

Зарегистрирован: Понедельник, 30 Июль, 2007 10:53
Сообщения: 1537
Откуда: Беларусь, Минск
Да, мне нравится.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 40 ]  На страницу Пред.  1, 2

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2018, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB