Автор | Сообщение |
|
| |
Пост N: 102
Зарегистрирован: 28.06.05
|
|
Отправлено: 29.06.07 22:30. Заголовок: попробовал harbour...
Приветик-с. Делюсь впечатлениями. Года три назад перевёл большой проект с клиппера на xharbour. После ядерной шлифовки вроде фурычит почти без проблем. Вчерась решил пробнуть harbour. Уж очень Przemyslaw Czerpak авторитетен. Собрал exe - кипу unresolved external функций взял из [x], часть дописал. Увы... Несколько разочарован. - Компиляченье с ключами /w2/es2 считает ошибкой, а не хинтом сообщение "declared but not used in function" - обращение к сString[nIndex] - вызывает проблемы. - tbrowse - крив. - tokeninit утекает память - поле c банальным именем FIELD в DBF перекашивает всё (при одинаковых /a для harbour.exe) -- беду буду искать. - а главное - хвалёная скорость - увы - только на 4% превышает xHarbor-ную. Резюме. То, что за последние годы починено в xHarbour, не borrowed to Harbour. Внутре, возможно, Harbour прогрессивнее и могуче, но... А?
|
|
|
Ответов - 13
[только новые]
|
|
|
| постоянный участник
|
Пост N: 168
Зарегистрирован: 09.10.06
|
|
Отправлено: 30.06.07 15:49. Заголовок: I do not want to create a flame war here :)
Очевидно твой пост как-то связан с еще одним вот этим , да ? Я всего лишь год назад познакомился с xHarbour и где-то месяцев десять с Harbour ( сейчас работаю преимущественно с Harbour ). По этому я б не хотел отвечать на твой пост, а, например, почитать ответ Григория Филатова или А.Кресина. Но первый ушел в отпуск, а Александр - не знаю появляется ли на этом форуме. По моему он и HwGui немного забросил - занимается портированием Harbour на Linux. Сначала небольшое, так сказать лирическое, отступление. Я не знаю какой xHarbour ( версию, коммерческий или бесплатный) ты использовал и какой Harbour, скачал ли ты бинарники или компилировал сам из сырцов CVS ( SVN ). При сравнении компиляторов было бы желательно все это указывать. На главной странице xHarbour.com утверждается. что xHarbour 100% обратно совместим с Клиппером. На главной странице xHarbour.org мы видим, что что xHarbour практически 100% обратно совместим с Клиппером. На главной странице harbour-project.org мы совместимости в % не видим, но читаем, что Harbour тоже каким-то боком связан с Клиппер. К слову, и там и там мы не прочитаем о совместимости xHarbour и Harbour( не увидим в % ), хотя, надеюсь, никто не будет оспаривать тот факт, что они вырасли из одного проекта, точнее xHarbour вышел из Harbour а. Теперь по делу - о твоих разочарованьях SergeJa пишет: цитата: | - Компиляченье с ключами /w2/es2 считает ошибкой, а не хинтом сообщение "declared but not used in function" |
| В Harbour\doc\en\compiler.txt мы прочитаем назначение ключей компилятора /es[<level>] set exit severity </par> * /es2 - all warnings are treated as errors and no output file is created. The exit code is set to a non-zero * value. /w[<level>] set warning level number (0..4, default 1) </par> * /w2 - some useful warnings missed in Clipper ( некоторые полезные предупреждения пропущенные в Clipper ) Так вот compiler warning в Clipper не так уж много ( 1001-1007 ) и среди них нет "declared but not used in function". Считать полезное или нет это предупреждение - разработчики Harbour (Czerpak) считают, что да - это полезно, поскольку каждая обьявленная неинициализированная переменная ведет к отводу от 16-96 байт памяти ( таких переменных в больших проектах может быть достаточно много, приложение Harbourg может выполнятся в среде DOS, на стареньком Pentium I с 16 Mb памяти и т.п.); разработчики xHarbour предлагают не уделять этому внимания. В любом случае Harbour программист может использовать /es1. А разработчик xHarbour вспомнить о совместимости , а не разочаровываться.
|
|
|
|
| постоянный участник
|
Пост N: 169
Зарегистрирован: 09.10.06
|
|
Отправлено: 30.06.07 21:04. Заголовок: Re:
SergeJa пишет: цитата: | - обращение к сString[nIndex] - вызывает проблемы. |
| Не встречал с этим никаких проблем. Если ты используешь Harbour с SVN в include\hbsetup.ch сними комментарии с строки #define HB_COMPAT_XHB /* Enable xHarbour extensions */ и запусти на выполнение make_bc32.bat сlean make_bc32.bat Кроме того, что сможешь работать со строкой как с массивом символов, станут доступны некоторые функции - RAScan, например и еще кое-что. Harbour, который скачивают в бинарниках, компилирован, по моему, без HB_COMPAT_XHB.
|
|
|
|
| постоянный участник
|
Пост N: 170
Зарегистрирован: 09.10.06
|
|
Отправлено: 30.06.07 21:11. Заголовок: Re:
SergeJa пишет: В xHarbour тоже не ахти, но получше будет, по крайней мере время от времени что-то фиксится.. Но ведь не все используют приложения Harbour в консольном режиме.
|
|
|
|
| постоянный участник
|
Пост N: 171
Зарегистрирован: 09.10.06
|
|
Отправлено: 30.06.07 21:31. Заголовок: Re:
Функция tokeninit из библиотеки ct. Статус этой библиотеки в xHarbour и Harbour разный, с вытекающим отношением к поддержке библиотеки. Посмотрим на размещение сырцов В xHarbour это \source\libct В Harbour - \contrib\ct А теперь на заголовки некоторых файлов Harbour * $Id: token1.c,v 1.6 2001/07/23 16:38:00 mbirdyg Exp $ * $Id: token2.c,v 1.2 2001/11/01 17:19:26 mbirdyg Exp $ xHarbour * $Id: token1.c,v 1.5 2007/02/13 19:02:24 druzus Exp $ * $Id: token2.c,v 1.2 2005/09/22 01:11:59 druzus Exp $
|
|
|
|
| постоянный участник
|
Пост N: 172
Зарегистрирован: 09.10.06
|
|
Отправлено: 30.06.07 21:33. Заголовок: Re:
SergeJa пишет: цитата: | поле c банальным именем FIELD в DBF перекашивает всё (при одинаковых /a для harbour.exe) |
| Не понял, что значит "перекашивает всё" и причем здесь /a.
|
|
|
|
| постоянный участник
|
Пост N: 173
Зарегистрирован: 09.10.06
|
|
Отправлено: 30.06.07 21:40. Заголовок: Re:
SergeJa пишет: цитата: | а главное - хвалёная скорость - увы - только на 4% превышает xHarbor-ную. |
| Ну во-первых 4% - это не так мало. По крайней мере это не 1-2%, которые можно списать на статистическую погрешность. А во-вторых.. Вот цитата из xdiff.txt ( скачан с xHarbour CVS ). Дата создания 03.05.2005 г. xHarbour is about twice as fast as Clipper on most common operations [excluding console screen output and DBF access], and about 25% to 1000% faster than Harbour. А ты говоришь - хвалёная скорость..
|
|
|
|
| постоянный участник
|
Пост N: 174
Зарегистрирован: 09.10.06
|
|
Отправлено: 30.06.07 22:04. Заголовок: Re:
И резюме. Большинству новичков, спрашивающих на этом форуме, рекомендуют использовать xHarbour. При этом часто указывают на то, что последний развивается более динамично. На мой взгляд, по крайней мере с 2005 года, когда фактически главным разработчиком Harbour стал Przemyslaw Czerpak, этот проект развивается довольно не плохо, не хуже xHarbour. И при выборе в пользу xHarbour/Harbour нужно использовать другие критерии. У Harbour есть свои недостатки, он плохо документирован. Однако однозначно он не хуже xHarbour, по моему - даже лучше.
|
|
|
|
| |
Пост N: 103
Зарегистрирован: 28.06.05
|
|
Отправлено: 02.07.07 12:06. Заголовок: Re:
Петр пишет: Собственно, тему открыл с целью послушать мнения.. А вот ошибка Harb. Его x-братец нормально работает. qq.bat: f:\harbour\bin\harbour qq.prg /m/a/n/w2/p/if:\harbour\include bcc32 @makefil makefil: -If:\harbour\include;$(BCC_DIR)\INCLUDE -Lf:\harbour\lib;$(BCC_DIR)\LIB -d -O2 -eqq.exe qq.c vm.lib gtwin.lib rtl.lib lang.lib rdd.lib debug.lib macro.lib pp.lib dbfntx.lib dbfcdx.lib dbffpt.lib common.lib codepage.lib hbsix.lib qq.prg: PROC Main FIELD QQ1, QQ2, FIELD //? version() dbCreate('qq.dbf', ; {{'QQ1' ,'C',10,0}, ; {'QQ2' ,'C',10,0}, ; {'FIELD','C',10,0}, ; {'QQ3' ,'L', 1,0}}) USE ( 'qq.DBF' ) INDEX ON QQ1+FIELD+QQ2 TO qq USE USE ( 'qq.DBF' ) SHARED SET INDEX TO qq // Error DBFNTX/1012 Corruption detected: qq.ntx RETURN
|
|
|
|
| модератор
|
Пост N: 505
Зарегистрирован: 25.05.05
|
|
Отправлено: 02.07.07 12:19. Заголовок: Re:
SergeJa пишет: Думаю, что некорректно использовать зарезервированное слово FIELD для имени поля в базе.
|
|
|
|
| постоянный участник
|
Пост N: 178
Зарегистрирован: 09.10.06
|
|
Отправлено: 02.07.07 13:41. Заголовок: Re:
gfilatov пишет: цитата: | Думаю, что некорректно использовать зарезервированное слово FIELD для имени поля в базе. |
| Да, но почему только FIELD? И почему тогда база создается с таким полем, REPLACE тоже без проблем. Проблемы начинаются когда мы хотим использовать индексные файлы Думаю - это баг и надо бы Przemyslawа спросить.
|
|
|
|
| |
Пост N: 727
Зарегистрирован: 17.05.05
|
|
Отправлено: 02.07.07 17:51. Заголовок: Re:
Интерестно уже ;) Как узнать в Harbour или Xharbour список всех зарезервированных слов ? В Clipper по крайней мере про это есть в документации , а тут как ?
|
|
|
|
|
| постоянный участник
|
Пост N: 179
Зарегистрирован: 09.10.06
|
|
Отправлено: 02.07.07 19:22. Заголовок: Re:
2007-07-02 18:10 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/source/macro/macro.yyc * harbour/source/macro/macro.y * harbour/source/macro/macrolex.c ! allow to use 'FIELD' and '_FIELD' as variable/function/field name. * allow to use 'IF' and 'IIF' as variable/field name. SergeJa отдельное спасибо !
|
|
|
|
| постоянный участник
|
Пост N: 181
Зарегистрирован: 09.10.06
|
|
Отправлено: 03.07.07 08:53. Заголовок: Re:
Петр пишет: цитата: | Как узнать в Harbour или Xharbour список всех зарезервированных слов ? |
| Похоже, что никак - я такого списка не видел. И если Harbour таки плохо документирован, то отсутствие такого списка в xHarbour Language Reference Guide вызывает недоумение. Остается только надеяться на совместимость с Clipper.
|
|
|
|