Форум » [x]Harbour » Обновился млин III » Ответить

Обновился млин III

Dima: Обновил Xharbour , пересобрал и теперь что не собери падает c виндовой ошибкой......... Откатился на прежний вариант.

Ответов - 72, стр: 1 2 3 4 All

Лукашевский: Dima пишет: падает c виндовой ошибкой У меня падает не с виндовой ошибкой, а, как я уже писал, с ошибкой в PROCNAME() - что тоже прикольно и месяца полтора уже эта ошибка в xHarbour'е сидит...

Dima: я обновился пол часа назад , до этого было все нормально. Откатился на версию от 10.10.2008

Dima: Лукашевский пишет: У меня падает не с виндовой ошибкой, а, как я уже писал, с ошибкой в PROCNAME() - что тоже прикольно Слухай может это у тебя глюк ? Можешь показать на не большом примере как именно падает (проверю как у меня) ?


Лукашевский: В принципе, конечно, могу, но проще попробовать "на пальцах" объяснить: в формирование любой колонки TBrowse ставишь любую фукнцию, внутри которой вызывается PROCNAME() - и при выполнении программы получаешь "глюк" по имени "Неисправимая ошибка 9000: Corrupted codeblock, points to invalid class id!" - причём это и через Errorsys идёт, и отдельным виндовым окошком в центре экрана... А кстати, с виндовой ошибкой у меня прога сразу после запуска падает, если ей сказать //GTWVT

Петр: тупой перенос кода из одного проекта в другой. даже ChangeLog не удосужился поменять, ! Added DBSELECTAREA(), DBSTRUCT(), HEADER(), RECSIZE(), LUPDATE() so that programs can be built with -b and hbnulrdd.lib. hbdebug.lib или + added set of new file functions (hb_file*()) which are designed to .. These functions operate on PHB_FILE structure instead of HB_FHANDLE. или * use PHB_FILE and hb_file*() functions instead of HB_FHANDLE (hb_fs*()) to access files. Когда это в xHb были такие библиотеки, или использовался HB_FHANDLE Причем уже без всякого borrowed from Harbour.. Но в принципе - ладно, но проверить на работоспособность перед сбросом можно ж было.

Лукашевский: Dima пишет: показать на не большом примере Если на пальцах получилось непонятно, то мой адрес kniga dog online ru, напомни свой чтобы я мог прислать пример.

Dima: Лукашевский Трудно выложить сюда не большой и рабочий пример ?

Лукашевский: Dima пишет: Трудно выложить сюда не большой и рабочий пример ? Знаешь, затруднительно... Четыре PRG-модуля (один из которых обработчик TBrowse - кто знает, может, дело и в нём тоже?), пара CH-файлов, файл для линковки и пара DBF-ников (Tbrowse ведь с DBF'ами должен работать, а не с воздухом - речь-то об ошибках времени выполнения!) Выложил пример по ссылке http://webcenter.ru/~kniga/default.zip

Dima: Ошибку исправили , НО , в MT режиме прога стала падать через несколько секунд работы. В предыдущей сборке такого не наблюдалось.

Лукашевский: Dima пишет: в MT режиме Дима, просвети плиз, а что это такое?

Dima: Лукашевский Это режим многопоточности (multithread) , хорошая штука однако , но в Xharbour она кривая по жизни , сам убедился. Правда лепить MT режим куда попало не следует ибо не даст ни чего :) Нужно для начала хоть чутка представить для чего он и как примерно работает.

Dima: Лукашевский пишет: Выложил пример по ссылке Не могу собрать в виду отсутствия "intercom.ch" И кстати для чего в процедуре main вот это ? #include "sixcdx2.ch" Это ведь не Clipper А так же в Main #include "gtinfo.ch" а надо #include "hbgtinfo.ch" PS Кстати сборка Xharbour у тебя от какого числа ?

Pager: Добавлю! По-моему, стала некорректно работать функция CURDIR(), она всегда возвращает тек. директорию с диска c:\ hb_GTINFO(GTI_WINTITLE,"ля-ля-ля") при повторном вызове слетает с win-ошибкой.

Dima: Pager пишет: По-моему, стала некорректно работать функция CURDIR() Так и есть. Откуда столько глюков ?

Петр: xHarbour с CVS стал нерабочий - можно относиться к этому как угодно, эмоции эмоциями, но в принципе надо товарищам дать время разрулить ситуацию. По ChangeLog видно - они хотели, как лучше. Так, что пока xHarbour CVS пользоваться не советую.

Лукашевский: *PRIVAT*

Dima: Лукашевский Пример собрал но по своему. Нет файла knigy.dbf и скорее всего индексов к нему.

Лукашевский: Dima пишет: Нет файла knigy.dbf и скорее всего Программа работает не с воздухом, а с базами, которые лежат в папке BASES. PROCNAME.EXE надо запустить в папке BASES.

Dima: Лукашевский пишет: Программа работает не с воздухом, а с базами, которые лежат в папке BASES Не дурак , сразу усёк ;) Там лежит всего 2 базы status.dbf sklad.dbf А месага такая Alias не существует Knigy Сам модуль я назвал не procname.exe а просто с.exe [pre2] Subsystem Call ....: BASE System Code .......: 1002 Default Status ....: .F. Description .......: Алиас не существует Operation .........: KNIGY Arguments .........: Involved File .....: Dos Error Code ....: 0 Trace Through: ---------------- GOTOBOOK : 896 in Module: MAIN.PRG (b)SKLAD : 168 in Module: SKLAD.PRG TBROWSE:CONFIGURE : 1,128 in Module: source\rtl\tbrowse.prg TBROWSE:PERFORMCONFIG : 2,459 in Module: source\rtl\tbrowse.prg TBROWSE:STABILIZE : 2,359 in Module: source\rtl\tbrowse.prg DBEDN : 128 in Module: DBEDN.PRG SKLAD : 218 in Module: SKLAD.PRG MAIN : 661 in Module: MAIN.PRG [/pre2]

Лукашевский: Dima пишет: Там лежит всего 2 базы Прощения просим, облажался. Открытия базы knigy тоже не было... Так что пример я обновил, качай снова.

Dima: Лукашевский Собрал , все работает. Если прогу назвать procname.exe , падает с GPF , если скажем c.exe все в норме. Кое что пришлось править в исходниках. например Procedure ASiLen Parameters Mass, nomber, par *memvar Mass, nomber, par // закоментировал PS По ходу кол-во Public переменных в main процедуре просто впечатляет ;) Молчу уже про кол-во полей в базе status

Лукашевский: Dima пишет: *memvar Mass, nomber, par // закоментировал То есть хочешь сказать, что так как было не работало? Странно, у меня работает. Тут фокус в том, что если их заремить, Clipper при компиляции предупреждения выдаёт на каждую из этих переменных... а оно мне надо? Dima пишет: Если прогу назвать procname.exe , падает с GPF Очень интересно... какая разница как файл запуска программы называется? Но у меня это роли не играет (кстати, и не падает... до определённого места), в любом случае вылетает: Неисправимая ошибка 9000: Corrupted codeblock, points to invalid class id! Called from PROCNAME(0) Called from SOKRKNIG(679) Called from SKLAD(168) Called from TBROWSE:CONFIGURE(1128) Called from TBROWSE:PERFORMCONFIGURATION(2459) Called from TBROWSE:STABILIZE(2359) Called from DBEDN(128) Called from SKLAD(218) Dima пишет: По ходу кол-во Public переменных в main процедуре просто впечатляет ;) Повторюсь, что делал пример уменьшением программы, в которой больше метра исходников!

Dima: Лукашевский Попробуй собрать прогу не через bat файл что ты прислал а с помощью hhmake Умеешь с ним работать ?

Лукашевский: Dima пишет: с помощью hhmake Умеешь с ним работать ? Сорри... нет. А, кстати, какой смысл? Хочешь сказать, что когда ты собираешь прогу через мой батник, у тебя тоже ошибка при выполнении?

Dima: Лукашевский Через твой бат файл собрать не удалось ,хотя его и исправил.

Dima: Pager пишет: стала некорректно работать функция CURDIR() Интересно когда же починят ? Петр пишет: Так, что пока xHarbour CVS пользоваться не советую. Когда же будет стартовый выстрел и его можно нормально эксплуатировать ?

Лукашевский: Сегодня обновился с CVS, собрал xHarbour и обломался при попытке сборки своей проги: в LIB'ах не оказалось библиотеки LIBNF.LIB... Что бы это значило?

Dima: Лукашевский пишет: Что бы это значило? Собери ее сам.

Лукашевский: Dima пишет: Собери ее сам. Собрать - собрал, но почему так вышло-то? Раньше вроде всё само собиралось... тем же самым make_b32.bat...

Dima: Лукашевский До что то чудят разработчики........

Лукашевский: Dima пишет: Попробуй собрать прогу не через bat файл Оказывается, в MAKE_B32.BAT нужно было изменить пути (где находится BCC и Bison) на фактические для данного компа. Хотя они там и в самом начале, но это ж надо было как-то догадаться или как минимум конкретно в этот батник влезть... Pager пишет: По-моему, стала некорректно работать функция CURDIR() Так пока и не работает... Правда, полный путь запуска программы можно получить как LEFT(EXENAME(), RAT("\", EXENAME())) Меня пока этого хватило.

Сергей Р: Лукашевский пишет: Очень интересно... какая разница как файл запуска программы называется? Напомню, procname(номер вызова) --> имя процедуры Возвращает имя текущей или предыдущей процедуры или функции пользователя. Может здесь собака порылась?

Dima: Вообщем пока криво пашет Curdir() , можно юзать функцию Сurdirx() PS что забавно Curdir("E:") // покажет текущую директорию диска D Curdir("F:") // покажет текущую директорию диска E если диск F: доступен и тд и тп

Dima: [pre2] 2008-12-03 * source\rtl\filesys.c * minor changes to CURDIR. [/pre2] Что правили не понятно Как не работало так и не работает..........

Dima: Сегодня обновился. Curdir починили ;)

Лукашевский: Ну да, CURDIR() вроде починили. Обнаружилась проблема в TBrowse - любая операция, которую хочешь произвести с текущей позицией списка TBrowse сразу при входе в этот список, выполняется не для текущей позиции, а для последней экранной позиции списка! Для проверки собрал из того же кода Clipper-программу - всё в порядке...

Dima: Лукашевский Юзай класс tbrowse из tests\tbrowse.prg

Лукашевский: Dima пишет: Юзай класс tbrowse из tests\tbrowse.prg А он сработает в Clipper'е? У меня один текст программы и для Clipper'а, и для xHarbour'а...

Pasha: Лукашевский пишет: А он сработает в Clipper'е? Для клиппера класс из харбора не нужен. Речь идет об альтернативном TBrowse из Harbour, который можно использовать в xHarbour, правда, с некоторыми корректировками

Лукашевский: Pasha пишет: Для клиппера класс из харбора не нужен Так и я о том же - текст программы у меня один и для Clipper'а, и для xHarbour'a...

Лукашевский: Pasha пишет: Для клиппера класс из харбора не нужен. Так бы и сказал, что этот файл tbrowse.prg нужно просто включить в компиляцию и сборку xHarbour'ной программы, ничего больше нигде не меняя! Та ошибка вроде исчезла, появилась другая: PgDown не высвечивает ту часть списка, которая была "за" первым экраном. Т.е. высвечиваются просто пустые строки. По этим пустым строкам можно бегать курсором вверх/вниз, с ними можно делать любые операции, предусмотренные в программе, без проблем! Их нельзя только увидеть Несколько другой результат, но тоже печальный, можно увидеть, если перед PgDown нажать Ctrl Home для выхода на начало списка. Тогда по PgDown экран вообще не меняется!

Pasha: Лукашевский пишет: Та ошибка вроде исчезла, появилась другая: PgDown не высвечивает ... по той причине, что в tbrowse.prg надо внести корректировки, связанные с особенностью диалекта harbour. Эти корректировки здесь приводились. Я выложил на harbour.nm.ru/xharbour/tbrowse.rar сырцы, уже готовые к употреблению

Dima: Лукашевский http://clipper.borda.ru/?1-4-30-00000349-000-0-0-1223207446

Лукашевский: Dima, ты ведь сам написал: Юзай класс tbrowse из tests\tbrowse.prg А я как человек чрезвычайно доверчивый - поверил и поюзал... Написал бы "Юзай tbrowse.prg из harbour.nm.ru/xharbour/tbrowse.rar", и вопросов бы не было. Pasha пишет: harbour.nm.ru/xharbour/tbrowse.rar Pasha, Спасибо большое.

Лукашевский: Dima пишет: Curdir починили ;) Починили, да не совсем... Если сразу после запуска программы CURDIR() выдаёт правильное значение текущего каталога, то потом, непонятно пока из-за чего, начинает выдавать пустое значение!

Pager: По-моему еще сламалась DISKFREE(), она каким-то хитрым образом влияет на CURDIR(). Если юзать DISKSPACE, то все нормально.

Лукашевский: Точно! И сдаётся мне, что CURDIR() как раз работает нормально, а DISKFREE() просто делает корневой каталог диска текущим, поэтому CURDIR() пустоту и выдаёт!

Лукашевский: А что за фигня сейчас вылезает при сборке xHarbour из сырцов, кто знает? MAKE Version 5.2 Copyright (c) 1987, 2000 Borland source\common\hbfopen.c: source\common\hbfsapi.c: Warning W8017 include\inkey.ch 227: Redefinition of 'K_SH_UP' is not identical Warning W8017 include\inkey.ch 229: Redefinition of 'K_SH_DOWN' is not identical source\common\hbgete.c: source\common\hbhash.c: source\common\hbstr.c: source\common\hbtrace.c: source\common\hbver.c: source\common\expropt1.c: source\common\expropt2.c: source\common\reserved.c: source\common\hbdate.c: source\common\hbwince.c: TLIB 4.5 Copyright (c) 1987, 1999 Inprise Corporation +obj\b32\hbfopen.obj & +obj\b32\hbfsapi.obj & +obj\b32\hbgete.obj & +obj\b32\hbhash.obj & +obj\b32\hbstr.obj & +obj\b32\hbtrace.obj & +obj\b32\hbver.obj & +obj\b32\expropt1.obj & +obj\b32\expropt2.obj & +obj\b32\reserved.obj & +obj\b32\hbdate.obj & +obj\b32\hbwince.obj & + source\pp\ppgen.c: Warning W8017 include\inkey.ch 227: Redefinition of 'K_SH_UP' is not identical Warning W8017 include\inkey.ch 229: Redefinition of 'K_SH_DOWN' is not identical Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland 100 100 200 300 400 500 600 700 source\pp\pptable.c: source\pp\ppcore.c: source\pp\pplib.c: ........................................ ........................................ тут ещё много всего в таком же духе ........................................ source\vm\memvclip.c: source\vm\pcount.c: source\vm\proc.c: source\vm\pvalue.c: source\vm\runner.c: Warning W8017 include\inkey.ch 227: Redefinition of 'K_SH_UP' is not identical Warning W8017 include\inkey.ch 229: Redefinition of 'K_SH_DOWN' is not identical source\vm\thread.c: source\vm\throw.c: include\inkey.ch(227) Warning W0001 Redefinition or duplicate definition of #define K_SH_UP include\inkey.ch(229) Warning W0001 Redefinition or duplicate definition of #define K_SH_DOWN 0 error No code generated ** error 1 ** deleting obj\b32\harbinit.c И если ошибок ноль, почему "No code generated" ?

PSP: Лукашевский пишет: include\inkey.ch(227) Warning W0001 Redefinition or duplicate definition of #define K_SH_UP include\inkey.ch(229) Warning W0001 Redefinition or duplicate definition of #define K_SH_DOWN Двойные #define, имхо.

Лукашевский: PSP пишет: Двойные #define, имхо. Вопрос - где? Ну, одно объявление, понятно, в inkey.ch, а второе? И почему всё-таки не собирается? У меня прога прекрасно собирается с кучей предупреждений... главное, чтобы ошибок не было! И ещё вопрос - у тебя xHarbour собирается без ошибок?

PSP: Лукашевский пишет: у тебя xHarbour собирается без ошибок? Я использую Harbour.

Dima: Только что обновился , собрать не могу. Чё делать ? C:\CVS\xharbour>make_b32.bat all Creating System Files (ST) ... source\compiler\harbour.sly:350: unrecognized: %destructor source\compiler\harbour.sly:350: Skipping to next %

Dima: И все таки что делать ? Та же ошибка что была давно http://clipper.borda.ru/?1-4-0-00000274-000-0-0-1201702786 Пару недель назад все собиралось нормально.

Петр: Не могу подтвердить. Компилировал с bcc 5.8.2 и msvc 8.0. Все в порядке. Правда правил чуть-чуть файлы сборки под себя, но это мелочи и не столь важно. Если не поможет make_b32.bat clean перед make_b32.bat all разбирайтесь с bison. Где, сколько раз установлен, какая версия. У меня 2.3 из комплекта GnuWin32, установлен c:\GnuWin32\bin, включен в path. Не в тему: Результат speedtst.exe ( из harbour\tests\) ST (single thread), компилятор msvc 8.0 (msvs 5.0) xHarbour ~71 сек. Harbour ~35 сек. Harbour + mingw 4 ~29 сек. P.S.: Для сборки Harbour использовался ключ HB_HVM_ALL=yes, speedtst компилировался с -gc3. Как ускорять xHarbour - не знаю, gc3 не сильно помогает.

Dima: Петр пишет: У меня 2.3 из комплекта GnuWin32, установлен c:\GnuWin32\bin Петр выложите плиз на какой то обменник этот Bison. Спасибо !

Петр: Нет у меня сейчас такой возможности. Поскольку у меня xHarbour стоит только на домашней машине. А для Harbour bison в общем случае не нужен. А с ходу найти откуда я его стащил не получается..

Loach: http://www.xharbour.org/index.asp?page=download/windows/required_win Там всё...

Dima: Loach пишет: Там всё... Да но там Bison 2.1 , который у меня и установлен. А нужен более свежий насколько я понял.

Петр: Dima пишет: А нужен более свежий насколько я понял. Ну я не утверждал, просто у меня такой установлен, а может и Bison 2.1 работает.. Что никто больше из пользователей xHarbour сборок не делает ?

sashaBG: и Bison 2.1 работает без проблем xHarbour Compiler build 1.2.1 (SimpLex) (Rev. 6407) Copyright 1999-2009, http://www.xharbour.org http://www.harbour-project.org/ Harbour Build Info --------------------------- Version: xHarbour build 1.2.1 Intl. (SimpLex) (Rev. 6407) PCode Version: 10 Compiler: Borland C++ 5.8.2 (32 bit) Platform: Windows XP Professional 5.01.2600 Service Pack 3 Built on: Apr 13 2009 13:02:47 Last ChangeLog entry: 2009-04-11 23:35 UTC+0300 Phil Krylov <phil a t newstar.rinet.ru> ChangeLog CVS version: ChangeLog,v 1.6407 2009/04/11 19:45:46 likewolf Exp Harbour extensions: Yes CA-Clipper 5.2e undocumented: Yes CA-Clipper 5.2e strict compatibility: No CA-Clipper 5.3x compatible extensions: Yes Alaska Xbase++ compatible extensions: Yes CA-Visual Objects compatible extensions: No Multisoft Flagship compatible extensions: Yes Microsoft FoxPro compatible extensions: Yes dBase compatible extensions: No Object file generation support: No ANSI C usage: Non strict C++ mode: Off Compiler YACC debug mode: Off Memory tracing and statistics: Off Maximum symbol name length: 63 ---------------------------

Pasha: Петр пишет: Что никто больше из пользователей xHarbour сборок не делает ? Я успешно собирал примерно дней 10 назад. Но ошибку явно дает бизон

Dima: У меня BCC 5.5 , возможно в этом причина ?

TakOj: Dima пишет: ... А нужен более свежий насколько я понял. Может это то, что ты ищешь.

Pasha: Dima пишет: У меня BCC 5.5 , возможно в этом причина ? Нет, не в этом, у меня тоже bcc55 Разве что за последнюю неделю в сборку внесли ошибки. Хотя вряд ли, шума было бы много

Dima: Начнем с начала ;) Выполняю make_b32.bat clean Выполняю make_b32.bat all Попадаю в блокнот со следующим содержанием [pre] MAKE Version 5.2 Copyright (c) 1987, 2000 Borland source\common\hbfopen.c: source\common\hbfsapi.c: source\common\hbgete.c: source\common\hbhash.c: source\common\hbstr.c: source\common\hbtrace.c: source\common\hbver.c: source\common\expropt1.c: source\common\expropt2.c: source\common\reserved.c: source\common\hbdate.c: source\common\hbwince.c: TLIB 4.5 Copyright (c) 1987, 1999 Inprise Corporation +obj\b32\hbfopen.obj & +obj\b32\hbfsapi.obj & +obj\b32\hbgete.obj & +obj\b32\hbhash.obj & +obj\b32\hbstr.obj & +obj\b32\hbtrace.obj & +obj\b32\hbver.obj & +obj\b32\expropt1.obj & +obj\b32\expropt2.obj & +obj\b32\reserved.obj & +obj\b32\hbdate.obj & +obj\b32\hbwince.obj & + source\pp\ppgen.c: Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland 100 100 200 300 400 500 600 700 source\pp\pptable.c: source\pp\ppcore.c: source\pp\pplib.c: source\pp\pplib2.c: source\pp\pplib3.c: TLIB 4.5 Copyright (c) 1987, 1999 Inprise Corporation +obj\b32\pptable.obj & +obj\b32\ppcore.obj & +obj\b32\pplib.obj & +obj\b32\pplib2.obj & +obj\b32\pplib3.obj & + source\compiler\harbour.c: ** error 1 ** deleting obj\b32\harboury.c [/pre] Закрываем блокнот И видим [pre] source\compiler\harbour.sly:350: unrecognized: %destructor source\compiler\harbour.sly:350: Skipping to next % [/pre] Кто виноват и где копать ? папка с бизоном прописана в PATH (c:\cvs\bison.new\bin)

Петр: А попробуйте установить в make_b32.bat BISON_DIR=c:\cvs\bison.new\bin (BISON_DIR - это я по памяти, возможны варианты, но вроде бы так )

Dima: SET BISON_DIR=c:\cvs\bison.new\bin Делал , тож самое :(

Dima: Проблему решил ;) Странно все это........ В Path путь к бизону стоит раньше чем путь к с:\bcc55\bin То есть если из командной строки набрать bison , то выполнится тот который лежит в c:\cvs\bison.new\bin А вот время сборки бизон запускался из папки с:\bcc55\bin , где лежал какой то древний bison.exe Грохнул его там и все собралось. Все спасибо за идеи !!!!!!!!!!!!!!!

Петр: Поиск по диску bison.exe пробовали? Снести и переустановить пробовали? Не знаю, что и советовать - вечером попробую откомпилировать bcc 5.5 + bison 2.1. Ага уже решено. Это хорошо, но эти грабли вроде бы уже известные

TakOj: Пытаюсь собрать xHarbour после обновления и получаю такой Log: MAKE Version 5.2 Copyright (c) 1987, 2000 Borland source\ct\dattime3.c: Error E2140 source\ct\dattime3.c 154: Declaration is not allowed here in function _hb_timeValid Error E2140 source\ct\dattime3.c 155: Declaration is not allowed here in function _hb_timeValid *** 2 errors in Compile *** ** error 1 ** deleting obj\b32\dattime3.obj Текущая версия XHarbour - xHarbour Compiler build 1.1.0 (SimpLex). Собиря с помощью make_b32.bat Bison установлен в Program Files. Пытался прописать в PATH переменноы среды Win XP/ - результат тот же. Подскажите, пожалуйста, где и что править? Спасибо!

Петр: Обновитесь после 2009-06-07 13:20 UTC+0200 Enrico Maria Giordano * source\ct\dattime3.c - Moved two declarations at the start of the block in function _hb_timeValid()

TakOj: Петр пишет: Обновитесь после ... Обновился. Всё отлично собралось! Спасибо, Петр!



полная версия страницы