On-line: Pasha, гостей 1. Всего: 2 [подробнее..]
АвторСообщение





Пост 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 прогрессивнее и могуче, но...
А?

Спасибо: 0 
Профиль
Ответов - 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 вспомнить о совместимости ,
а не разочаровываться.

Спасибо: 0 
Профиль
постоянный участник


Пост 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.




Спасибо: 0 
Профиль
постоянный участник


Пост N: 170
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 30.06.07 21:11. Заголовок: Re:


SergeJa пишет:

 цитата:
tbrowse - крив



В xHarbour тоже не ахти, но получше будет, по крайней мере время от времени что-то фиксится..
Но ведь не все используют приложения Harbour в консольном режиме.

Спасибо: 0 
Профиль
постоянный участник


Пост 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 $

Спасибо: 0 
Профиль
постоянный участник


Пост N: 172
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 30.06.07 21:33. Заголовок: Re:


SergeJa пишет:

 цитата:
поле c банальным именем FIELD в DBF перекашивает всё (при одинаковых /a для harbour.exe)



Не понял, что значит "перекашивает всё" и причем здесь /a.

Спасибо: 0 
Профиль
постоянный участник


Пост 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.

А ты говоришь - хвалёная скорость..


Спасибо: 0 
Профиль
постоянный участник


Пост N: 174
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 30.06.07 22:04. Заголовок: Re:


И резюме.

Большинству новичков, спрашивающих на этом форуме, рекомендуют использовать xHarbour.
При этом часто указывают на то, что последний развивается более динамично.

На мой взгляд, по крайней мере с 2005 года, когда фактически главным разработчиком Harbour стал Przemyslaw Czerpak, этот проект развивается довольно не плохо, не хуже xHarbour.

И при выборе в пользу xHarbour/Harbour нужно использовать другие критерии.

У Harbour есть свои недостатки, он плохо документирован.
Однако однозначно он не хуже xHarbour, по моему - даже лучше.



Спасибо: 0 
Профиль





Пост 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


Спасибо: 0 
Профиль
модератор




Пост N: 505
Зарегистрирован: 25.05.05
ссылка на сообщение  Отправлено: 02.07.07 12:19. Заголовок: Re:


SergeJa пишет:

 цитата:
FIELD QQ1, QQ2, FIELD


Думаю, что некорректно использовать зарезервированное слово FIELD для имени поля в базе.


Спасибо: 0 
Профиль
постоянный участник


Пост N: 178
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 02.07.07 13:41. Заголовок: Re:


gfilatov пишет:

 цитата:
Думаю, что некорректно использовать зарезервированное слово FIELD для имени поля в базе.



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

Думаю - это баг и надо бы Przemyslawа спросить.


Спасибо: 0 
Профиль
администратор




Пост N: 727
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 02.07.07 17:51. Заголовок: Re:


Интерестно уже ;) Как узнать в Harbour или Xharbour список всех зарезервированных слов ?
В Clipper по крайней мере про это есть в документации , а тут как ?

Спасибо: 0 
Профиль
постоянный участник


Пост 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 отдельное спасибо !


Спасибо: 0 
Профиль
постоянный участник


Пост N: 181
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 03.07.07 08:53. Заголовок: Re:


Петр пишет:

 цитата:
Как узнать в Harbour или Xharbour список всех зарезервированных слов ?



Похоже, что никак - я такого списка не видел.
И если Harbour таки плохо документирован, то отсутствие такого списка в xHarbour Language Reference Guide вызывает недоумение.

Остается только надеяться на совместимость с Clipper.


Спасибо: 0 
Профиль
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 108
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет