Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Firebird, InterBase Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 27 28 29 30 31 [32] 33 34 35 36   вперед  Ctrl
 Re: Конкурс идей про Firebird  [new]
rashid.abzalov
Member

Откуда:
Сообщений: 108
Ivan_Pisarevsky
"Селективная процедура изменяющая данные" - вполне достаточно, что бы выписать написавшему "линейкой по пальцам" в назидательных целях.

С другой стороны, отсутствие var параметров вынуждают в некоторых случаях делать именно так. То, что suspend накладывает свои издержки - это особенности реализации селективных процедур, а не порочность самого подхода их использования.
5 мар 19, 00:39    [21824946]     Ответить | Цитировать Сообщить модератору
 Re: Конкурс идей про Firebird  [new]
rdb_dev
Member

Откуда: с болот
Сообщений: 2929
Front-end FirebirdSQL DML для LLVM уже предлагали?
20 мар 19, 09:29    [21838050]     Ответить | Цитировать Сообщить модератору
 Re: Конкурс идей про Firebird  [new]
Vlad F
Member

Откуда:
Сообщений: 873
rdb_dev,

А что это и, самое главное, что реально нам даст?
20 мар 19, 09:45    [21838069]     Ответить | Цитировать Сообщить модератору
 Re: Конкурс идей про Firebird  [new]
rdb_dev
Member

Откуда: с болот
Сообщений: 2929
Vlad F, LLVM, это относительно новый компилятор в машинный код (первый релиз вышел в далёком 2003-ем, сейчас уже v7.0.1), позволяющий, в сравнении GNUC, гораздо проще создавать front-end'ы для любых языков, за счёт использования в качестве промежуточного кода компиляции не ассемблер конкретной архитектуры, а некий универсальный (условный) ассемблер, похожий на ассемблер RISC архитектуры.

Можно, конечно, не выделываться и просто лепить на нём UDR, а можно прикрутить его к FirebirdSQL в качестве компилятора хранимых процедур и триггеров. Естественно, в таком случае вместе с дистрибутивом самого сервера FirebirdSQL придётся тащить некоторые утилиты данного компилятора и, возможно, make, если не заморачиваться собственной реализацией компоновки объектного кода и динамическим выделением "исполняемых" страниц в памяти, а компилить, скажем, под каждую БД динамически линкуемую библиотеку с реализацией хранимых процедур и триггеров.
20 мар 19, 10:10    [21838098]     Ответить | Цитировать Сообщить модератору
 Re: Конкурс идей про Firebird  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 9827
rdb_dev
Можно, конечно, не выделываться и просто лепить на нём UDR,


ну ты попробуй, а мы посмотрим. Только результаты не забудь показать. Ты уже научился их писать на чём-то из того, что официально поддерживается Firebird?

rdb_dev
а можно прикрутить его к FirebirdSQL в качестве компилятора хранимых процедур и триггеров


а что собственно ты компилировать собрался? PSQL код в некий универсальный (условный) ассемблер? Зачем? Чем это поможет?

Если ты предлагаешь дополнительный язык для процедур/триггеров/функций, то это можно сделать и сейчас, если плагин напишешь
20 мар 19, 10:27    [21838121]     Ответить | Цитировать Сообщить модератору
 Re: Конкурс идей про Firebird  [new]
rdb_dev
Member

Откуда: с болот
Сообщений: 2929
Симонов Денис
ну ты попробуй, а мы посмотрим. Только результаты не забудь показать. Ты уже научился их писать на чём-то из того, что официально поддерживается Firebird?
Чего тут пробовать? У LLVM уже есть front-end Clang, на котором, используя спецификацию UDR, уже можно компилировать машинный код хранимых процедур и триггеров. Ты же именно для подобных случаев разместил на ГитХабе руководство по написанию UDR на Паскале?

Симонов Денис
rdb_dev
а можно прикрутить его к FirebirdSQL в качестве компилятора хранимых процедур и триггеров
а что собственно ты компилировать собрался? PSQL код в некий универсальный (условный) ассемблер? Зачем? Чем это поможет?
Зачем же? В универсальный ассемблер компилируется промежуточный код, который, затем, оптимизируется и компилируется LLVM в машинный. На начальном этапе можно было бы написать front-end DML для спецификации UDR. Впоследствии, как вариант, и вовсе заменить интерпретируемый BLR на машинный код, когда в метаданных БД, вместо BLR, будут храниться объектные модули, а встроенный в FirebirdSQL сервер компоновщик будет размещать эти модули на исполняемых страницах памяти и связывать с соответствующими функциями сервера.
20 мар 19, 10:55    [21838163]     Ответить | Цитировать Сообщить модератору
 Re: Конкурс идей про Firebird  [new]
Basil A. Sidorov
Member

Откуда:
Сообщений: 9302
rdb_dev
Зачем же? В универсальный ассемблер компилируется промежуточный код, который, затем, оптимизируется и компилируется LLVM в машинный. На начальном этапе можно было бы написать front-end DML для спецификации UDR. Впоследствии, как вариант, и вовсе заменить интерпретируемый BLR на машинный код, когда в метаданных БД, вместо BLR, будут храниться объектные модули, а встроенный в FirebirdSQL сервер компоновщик будет размещать эти модули на исполняемых страницах памяти и связывать с соответствующими функциями сервера.
Если вы хорошенько подумаете, то сами поймёте, что это бред.
20 мар 19, 11:06    [21838183]     Ответить | Цитировать Сообщить модератору
 Re: Конкурс идей про Firebird  [new]
rdb_dev
Member

Откуда: с болот
Сообщений: 2929
Basil A. Sidorov
Если вы хорошенько подумаете, то сами поймёте, что это бред.
В чём конкретно бред?
20 мар 19, 11:11    [21838190]     Ответить | Цитировать Сообщить модератору
 Re: Конкурс идей про Firebird  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 9827
rdb_dev
Ты же именно для подобных случаев разместил на ГитХабе руководство по написанию UDR на Паскале?


нет конечно. Оно размещено для тех кто хочет научится писать UDR на Delphi/FPC. LLVM и Clang не имеют к этому руководству никакого отношения. Оно даже ни где там не упоминается.
20 мар 19, 11:42    [21838242]     Ответить | Цитировать Сообщить модератору
 Re: Конкурс идей про Firebird  [new]
rdb_dev
Member

Откуда: с болот
Сообщений: 2929
Симонов Денис
нет конечно. Оно размещено для тех кто хочет научится писать UDR на Delphi/FPC. LLVM и Clang не имеют к этому руководству никакого отношения. Оно даже ни где там не упоминается.
Так что мешает использовать спецификацию UDR для написания хранимых процедур и триггеров на Си или C++ и компиляции их в машинный код? Есть какие-то принципиальные различия - пишешь ли ты UDR на Delphi или на Си?
20 мар 19, 11:52    [21838258]     Ответить | Цитировать Сообщить модератору
 Re: Конкурс идей про Firebird  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 9827
rdb_dev,

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

Теперь о спецификациях. За кулисами C++ делает примерно тоже самое, что и в Pascal. Но Адриано в своих C++ примерах хитровывернутые макросы, которые скрывают много специфики. Ты оригинальные примеры UDR смотрел хоть?

З.Ы. Лучше бы ты тему по UDR особо касаемо моего руководства обсуждал в отдельно выделенной для этого теме.
20 мар 19, 12:07    [21838287]     Ответить | Цитировать Сообщить модератору
 Re: Конкурс идей про Firebird  [new]
rdb_dev
Member

Откуда: с болот
Сообщений: 2929
Денис, давай-ка я ещё разок попытаюсь объяснить в чём смысл LLVM и чем он лучше GNUC.

В случае с GNUC, необходимо полностью создавать front-end какого-либо языка, компилирующий конструкции языка в мнемонику машинных кодов каждой из популярных архитектур, будь то X86, X86-64, PowerPC, PowerPC-64, ARM или MIPS, после чего, уже имеющийся под эти архитектуры back-end GNUC'а сможет этот промежуточный код оптимизировать и скомпилировать в объектные файлы.

В случае с LLVM тебе не нужно парится с изучением мнемоник ассемблера всех упомянутых архитектур, а достаточно лишь знать LLVM instruction set, что значительно упрощает разработку front-end'а высокоуровневого языка.
20 мар 19, 12:09    [21838289]     Ответить | Цитировать Сообщить модератору
 Re: Конкурс идей про Firebird  [new]
rdb_dev
Member

Откуда: с болот
Сообщений: 2929
Симонов Денис
ты давай тему беседы не переводи. Ты что сказал? Ты обозначил цель руководства которое я пишу, а я тебе говорю, что я таких целей не ставил даже близко. Может мне лучше знать?
Погоди-ка... Ты хочешь сказать, что спецификация UDR неуниверсальна и расчитана на написание хранимых процедур и триггеров исключительно на Delphi?

Симонов Денис
Теперь о спецификациях. За кулисами C++ делает примерно тоже самое, что и в Pascal. Но Адриано в своих C++ примерах хитровывернутые макросы, которые скрывают много специфики. Ты оригинальные примеры UDR смотрел хоть?
Вот!
Кто, что и куда скрывает, это уже другой вопрос. Я бы вообще предпочёл иметь полную документацию по спецификации UDR не завязанную на конкретный язык реализации, так сказать, описание чистого API. Примеры на разных языках, это, конечно, очень хорошо и тот же Microsoft в документации своего API лепит примеры сразу для нескольких своих языков/фреймворков.

Симонов Денис
З.Ы. Лучше бы ты тему по UDR особо касаемо моего руководства обсуждал в отдельно выделенной для этого теме.
Обсуждения касаемо твоего руководства ведутся в созданном тобой топике, а здесь можно обсуждать самые бредовые идеи. ;)
20 мар 19, 12:19    [21838309]     Ответить | Цитировать Сообщить модератору
 Re: Конкурс идей про Firebird  [new]
Basil A. Sidorov
Member

Откуда:
Сообщений: 9302
rdb_dev
В чём конкретно бред?
В желании создать машинный код там, где он не требуется и, более того, даже вреден.
20 мар 19, 12:21    [21838313]     Ответить | Цитировать Сообщить модератору
 Re: Конкурс идей про Firebird  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 9827
rdb_dev,

спецификация интерфейсов и так есть в FirebirdInterface.idl файле, то во что ты его преобразуешь зависит от тебя и поддержки этого в клопе.

Для всяких Java и .NET там чуток иначе
20 мар 19, 12:38    [21838345]     Ответить | Цитировать Сообщить модератору
 Re: Конкурс идей про Firebird  [new]
rdb_dev
Member

Откуда: с болот
Сообщений: 2929
Симонов Денис
Для всяких Java и .NET там чуток иначе
Ну, это понятно!
20 мар 19, 12:55    [21838375]     Ответить | Цитировать Сообщить модератору
 Re: Конкурс идей про Firebird  [new]
rdb_dev
Member

Откуда: с болот
Сообщений: 2929
Basil A. Sidorov
rdb_dev
В чём конкретно бред?
В желании создать машинный код там, где он не требуется и, более того, даже вреден.
Не верю!
Так как скомпилированная в BLR хранимая процедура или триггер при интерпретации преобразуются в чёткую последовательность вызовов функций сервера с оверхедом на интерпретацию, её однозначно можно заменить на эквивалентный машинный код. Всё упирается лишь в реализацию, на которую, естественно уйдёт уйма времени.

Конечно, при хранении в метаданных объектных файлов с машинным кодом, в которых будут находится скомпилированные хранимые процедуры и триггеры, придётся, также, хранить атрибуты с идентификаторами архитектуры, семейства процессоров, а также уровнем оптимизации, использованные при компиляции конкретного объектного файла и при несовпадении этих атрибутов с идентифицируемыми через операционную систему (идентификаторы архитектуры и семейства процессоров) и конфигурационный файл сервера (уровень оптимизации), серверу необходимо будет перекомпилировать объектный файл налету.

Единственное, в чём может быть вредно подобное использование машинного кода, так это в компиляции клиентских запросов, которые, как правило, невелики и в этом случае, оверхед на prepare - компиляцию запроса с вызовом компилятора LLVM, выделение страниц памяти, пометка этих страниц как исполняемых, помещение в эти страницы объектного файла со связыванием вызовов с функциями сервера и используемых в запросе таким же способом скомпилированных хранимых процедур, вероятнее всего перекроет выигрыш от использования машинного кода, если подготовленный запрос не будет использоваться достаточно часто, чтобы отыграть эти потери.
20 мар 19, 13:14    [21838410]     Ответить | Цитировать Сообщить модератору
 Re: Конкурс идей про Firebird  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 48155

rdb_dev
Не верю!

Убедись на собственном опыте, как тебе уже сказали.

Posted via ActualForum NNTP Server 1.5

20 мар 19, 13:38    [21838458]     Ответить | Цитировать Сообщить модератору
 Re: Конкурс идей про Firebird  [new]
rdb_dev
Member

Откуда: с болот
Сообщений: 2929
Dimitry Sibiryakov
rdb_dev
Не верю!
Убедись на собственном опыте, как тебе уже сказали.
Убедится в том, что интерпретация работает медленнее машинного года?
20 мар 19, 13:40    [21838463]     Ответить | Цитировать Сообщить модератору
 Re: Конкурс идей про Firebird  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 48155

rdb_dev
Убедится в том, что интерпретация работает медленнее машинного года?

Убедиться в том, что встроить компилятор в Firebird - задача непосильная.

Posted via ActualForum NNTP Server 1.5

20 мар 19, 13:45    [21838470]     Ответить | Цитировать Сообщить модератору
 Re: Конкурс идей про Firebird  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 9827
rdb_dev,

ты с малого начни. Напиши ка на этом хоть одну UDR. Просто у меня ощущение что ты даже не пытался разобраться, что там под капотом происходит
20 мар 19, 13:48    [21838476]     Ответить | Цитировать Сообщить модератору
 Re: Конкурс идей про Firebird  [new]
rdb_dev
Member

Откуда: с болот
Сообщений: 2929
Dimitry Sibiryakov
rdb_dev
Убедится в том, что интерпретация работает медленнее машинного года?
Убедиться в том, что встроить компилятор в Firebird - задача непосильная.
Непосильная или нерешаемая?
20 мар 19, 14:25    [21838517]     Ответить | Цитировать Сообщить модератору
 Re: Конкурс идей про Firebird  [new]
rdb_dev
Member

Откуда: с болот
Сообщений: 2929
Симонов Денис
rdb_dev,
ты с малого начни. Напиши ка на этом хоть одну UDR. Просто у меня ощущение что ты даже не пытался разобраться, что там под капотом происходит
Обязательно начну, причём, в ближайшее время.
20 мар 19, 14:26    [21838518]     Ответить | Цитировать Сообщить модератору
 Re: Конкурс идей про Firebird  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 48155

rdb_dev
Непосильная или нерешаемая?

В мягком мире нет нерешаемых задач. Есть только задачи на решение которых нет достаточных
ресурсов. Поэтому ты можешь начать с малого: взять готовую синтаксическую диаграмму PSQL и
прикрутить её к своему LLVM для компиляции PSQL в машинный код UDR.

Posted via ActualForum NNTP Server 1.5

20 мар 19, 14:37    [21838544]     Ответить | Цитировать Сообщить модератору
 Re: Конкурс идей про Firebird  [new]
rdb_dev
Member

Откуда: с болот
Сообщений: 2929
Dimitry Sibiryakov
rdb_dev
Непосильная или нерешаемая?
В мягком мире нет нерешаемых задач. Есть только задачи на решение которых нет достаточных
ресурсов.
Да, я прекрасно понимаю, что задача совсем непростая, требующая огромных усилий. Но это же не значит, что я не могу помечтать и "подкинуть" данную идею? :)
20 мар 19, 14:52    [21838570]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 27 28 29 30 31 [32] 33 34 35 36   вперед  Ctrl
Все форумы / Firebird, InterBase Ответить