powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Разработчик ядра FIREBIRD: первые шаги
16 сообщений из 116, страница 5 из 5
Разработчик ядра FIREBIRD: первые шаги
    #39608680
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов ДенисSQL2008,

что за объекты, если не секрет?
Пока попробовал добавить объект JOB по аналогии с PACKAGE, но что-то не срастается.
Вот пытаюсь разобраться почему при компилляции пишет что в parse.h нет такого объекта, если в parse.y, fields.h,ids.h,metd.epp, relations.h, keywords.h все прописал аналогично (ну изменив наименjвание конечно) PACKAGE.
Добавил соответственнно новый JobNodes.epp (аналогично PackageNodes.epp) и включил его обработку в батник.
Но это пока не вопрос на форуме. Мне нужно все самому перепроверить, думаю, что что-то где-то упустил.
Дело-то новое :)
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39608681
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovSQL2008Это мне непонятно о чем речь. Разве я где-то хвастался, что могу что-то быстро сделать?

21188801
И правда было! Так вопрос лишь в этом? А где деньги, ЗИН?
Про энтузиазм я ничего не говорил
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39608745
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL2008 Добавил соответственнно новый JobNodes.epp (аналогично PackageNodes.epp) и включил его обработку в батник.
Но это пока не вопрос на форуме. Мне нужно все самому перепроверить, думаю, что что-то где-то упустил.
Дело-то новое :)
Разобрался!
Забыл включить
Parser.h#include "../dsql/JobNodes.h"
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39621201
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет всем!
Что может служить причиной сообщения при сборке сервера
SQL> Assertion (absVal(distance) < 128 * 1024) failure: ..\..\..\src\common\classes\alloc.cpp 2613
Вот место, откуда это пришло
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
void AutoStorage::ProbeStack() const
{
	//
	// AutoStorage() default constructor can be used only
	// for objects on the stack. ProbeStack() uses the
	// following assumptions to check it:
	//	1. One and only one stack is used for all kind of variables.
	//	2. Objects don't grow > 128K.
	//
	char probeVar = '\0';
	const char* myStack = &probeVar;
	const char* thisLocation = (const char*) this;
	ptrdiff_t distance = thisLocation - myStack;
	fb_assert(absVal(distance) < 128 * 1024);
}
#endif


из сообщения понятно, что разница между указателями thisLocation и myStack не должна превышать 128 кб.
Вопрос - в чем может быть причина? Что смотреть в первую очередь?
Доп. информация - версия 3.0.3, добавлено много функционала, но все компилируется без ошибок.
Только на этапе сборки, при обработке батника создания сообщений ломается на этом ассерте.

P.S. Убедительная просьба - держаться в рамках политеса и правил поведения джентльменов в общественных местах. Работать по алгоритму
Код: plaintext
1.
2.
opinion aboutMe = yourOpibionAboutMe < 0 ? NULL : yourOpibionAboutMe;
TellMeYourOpinion(aboutMe);
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39621206
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL2008в чем может быть причина?
слишком жирные стековые переменные.
Либо неправильное использование конструкторов, опционально требующих пул.

SQL2008Что смотреть в первую очередь?Стек вызовов, есс-но
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39621210
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladSQL2008в чем может быть причина?
слишком жирные стековые переменные.
Либо неправильное использование конструкторов, опционально требующих пул.

SQL2008Что смотреть в первую очередь?Стек вызовов, есс-но
Спасибо!
Все перепроверю.
Скорее всего второе.
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39626866
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброй всем пятницы.
Снова возник вопрос, на который очень хотелось бы получить ответ.
При сборке проекта, на одном из этапов вызывается препроцессор gpre_boot.exe, на вход которому подается файл .epp. Если говорить конкретно, то met.epp.
В тексте файла я вижу строку

Код: sql
1.
DATABASE DB = FILENAME "ODS.RDB";



которая после препроцессинга в файле met.cpp превращается в описание структуры blr.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
/*DATABASE DB = FILENAME "ODS.RDB";*/
static const UCHAR	jrd_0 [121] =
   {	// blr string 
blr_version4,
blr_begin, 
   blr_message, 1, 5,0, 
      blr_cstring2, 3,0, 32,0, 
      blr_cstring2, 3,0, 32,0, 
      blr_long, 0, 
      blr_short, 0, 
      blr_short, 0, 
   blr_message, 0, 1,0, 
      blr_cstring2, 3,0, 32,0, 
   blr_receive, 0, 
...


Но не могу взять в толк, как это происходит.
Хотя бы подскажите где поискать ответ?
Погуглил полдня, но кроме ссылок на описание препроцессора GPRE.EXE ничего не нашел.
В описании тоже нет ничего подобного.
Что все таки означает строка
Код: sql
1.
DATABASE DB = FILENAME "ODS.RDB";


заранее спасибо.
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39626871
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL2008Но не могу взять в толк, как это происходит.
Хотя бы подскажите где поискать ответ?

Никак. Структура не имеет отношения к данной строчке и порождается из другого кода. В
данном конкретном случае - из "FOR(REQUEST_HANDLE request) DAT IN RDB$DATABASE".

Искать ответ в Embedded SQL Guide.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39626875
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL2008При сборке проекта, на одном из этапов вызывается препроцессор gpre_boot.exeДобавлю, что gpre_boot - это специальная "облегчённая" версия препроцессора, которая использует известные метаданные системных объектов.
Она используется только для первой фазы boot_build, когда полноценный движок ещё не собран и запросы выполнять некому.
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39626886
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Было смутное предположение, что это компилится из
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
	FOR(REQUEST_HANDLE handle)
		FLD IN RDB$FIELDS WITH FLD.RDB$FIELD_NAME EQ name.c_str()
	{
		if (DSC_make_descriptor(desc,
								FLD.RDB$FIELD_TYPE,
								FLD.RDB$FIELD_SCALE,
								FLD.RDB$FIELD_LENGTH,
								FLD.RDB$FIELD_SUB_TYPE,
								FLD.RDB$CHARACTER_SET_ID,
								FLD.RDB$COLLATION_ID))
...


Смутило лишь то обстоятельство, что порядок расположения этих блоков не совпадает.
Но видимо у препроцессора иной метод обработки входящего текста.
Спасибо, теперь мне понятно.
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39626890
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Рискну предположить, что все это берется из ..\gen\dbs\METADATA.FDB
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39626903
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL2008Было смутное предположение, что это компилится изПосмотри в cpp файле - где используется jrd_0 - станет понятнее
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39626923
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну вот конкретный пример
MET.EPP
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
// Pick up relation ids
#include "../jrd/ini.h"

DATABASE DB = FILENAME "ODS.RDB";

using namespace Jrd;
using namespace Firebird;

static int blocking_ast_dsql_cache(void* ast_object);



MET.CPP
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
// Pick up relation ids
#include "../jrd/ini.h"

/*DATABASE DB = FILENAME "ODS.RDB";*/
static const UCHAR	jrd_0 [121] =
   {	// blr string 
blr_version4,
blr_begin, 
   blr_message, 1, 5,0, 
.............................................................................
         blr_send, 1, 
            blr_assignment, 
               blr_literal, blr_long, 0, 0,0,0,0,
               blr_parameter, 1, 2,0, 
         blr_end, 
   blr_end, 
blr_eoc

   };	// end of blr string 

using namespace Jrd;
using namespace Firebird;

static int blocking_ast_dsql_cache(void* ast_object);



Препроцессор вставляет сгенерированный код ровно в то место, в котором была строка, закомментировав её.
Код: plaintext
1.
DATABASE DB = FILENAME "ODS.RDB";


Логика мне подсказывает, что именно вследствие обработки этой строки там и появляется этот код.
Опять-таки и вам я не верить не могу... Как-то непонятно мне.
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39626926
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL2008,


Препроцессор должен где-то разместить "свои" объявления ?
Почему не сделать это в том месте, где он нашёл первую свою директиву ?

Проблема-то в чём ? Не нашёл в коде использования jrd_0 ?
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39626932
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Насчет декларации структур теперь стало понятно, что препроцессор просто их впихнул в начало файла.

Почему-то jrd_0 оказался самым последним в коде.
Он обрабатывает их в обратной последовательности?
...
Рейтинг: 0 / 0
Разработчик ядра FIREBIRD: первые шаги
    #39626985
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL2008,

честно - по барабану, как он их обрабатывает :)
...
Рейтинг: 0 / 0
16 сообщений из 116, страница 5 из 5
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Разработчик ядра FIREBIRD: первые шаги
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]