Автор | Сообщение |
|
| модератор
|
Пост N: 635
Зарегистрирован: 25.05.05
|
|
Отправлено: 01.11.07 16:50. Заголовок: Свершилось... Опубликованы сырцы xHarbour 1.0.0 Beta
Свершилось... После длительного перерыва (декабрь 2006 - ноябрь 2007) компилятор xHarbour шагнул с версии 0.99.70 сразу на 1.0.0 Ура, товарищи! Качаем все Но пока есть только сырцы, бинарники обещают через несколько (?) дней /* * $Id: ChangeLog,v 1.5752.2.2 2007/10/31 16:38:34 likewolf Exp $ */ 2007-10-31 19:35 UTC+0300 Phil Krylov <phil a t newstar.rinet.ru> * include/hbver.h * Changed version to 1.0.0 from 1.00.00. 2007-10-31 13:30 UTC+0300 Phil Krylov <phil a t newstar.rinet.ru> * include/hbver.h ! Fixed "no newline at end of file" warning. * source/debug/dbgthsh.prg * source/debug/dbgtobj.prg ! Fixed a nasty RTE when monitoring hashes in the debugger. Branched as Release-1-0-0-Beta1-fix because Miguel has already committed massive RDD changes to CVS HEAD. I think some more last minute fixes can be committed to this branch. 2007-10-30 02:10 UTC+0100 Patrick Mast <patrick/dot/mast/at/xharbour.com> * include/hbver.h * bin/pack_bin.bat * bin/pack_src.bat * Increased to 1.00.00 2007-10-30 01:30 UTC+0100 Patrick Mast <patrick/dot/mast/at/xharbour.com> * xharbour/xharbour.spec * changed version number to 1.00.00
|
|
|
Ответов - 75
, стр:
1
2
3
4
All
[только новые]
|
|
|
| |
Пост N: 120
Зарегистрирован: 08.04.06
|
|
Отправлено: 28.11.07 11:34. Заголовок: Re: gfilatov
gfilatov пишет: цитата: | Запиши то же самое без скобок, и все заработает: DO &proc |
| За ссылку спасибо, а вот насчёт "запиши..." - думаешь, у меня это в одном-единственном месте? У меня исходников на мегабайт... Если стояла задача совместимости с Clipperом, то эта совместимость должна всё-таки быть, нет? По поводу GETа я тут разорялся именно поэтому - так-то добавить во все GETы MEMVAR-> один раз, и всего делов, но вот беда - GETов штук 200-300 в 50-ти модулях!
|
|
|
|
| модератор
|
Пост N: 657
Зарегистрирован: 25.05.05
|
|
Отправлено: 28.11.07 12:19. Заголовок: Лукашевский пишет: ..
Лукашевский пишет: цитата: | думаешь, у меня это в одном-единственном месте? У меня исходников на мегабайт |
| Search & Replace рулит Лукашевский пишет: цитата: | Если стояла задача совместимости с Clipperом, то эта совместимость должна всё-таки быть |
| Согласен, хотя бесплатный сыр знаешь где бывает?
|
|
|
|
| постоянный участник
|
Пост N: 37
Зарегистрирован: 27.01.07
|
|
Отправлено: 28.11.07 12:31. Заголовок: Лукашевский, а если ..
Лукашевский, а если бы (x)Harbour-а не было, тогда что? Пришлось бы вообще заново все переписывать. Разве это лучше? А 200-300 get-ов - это немного.
|
|
|
|
| Администратор
|
Пост N: 658
Зарегистрирован: 23.05.05
|
|
Отправлено: 28.11.07 12:45. Заголовок: Лукашевский пишет: ..
Лукашевский пишет: цитата: | Если стояла задача совместимости с Clipperом, то эта совместимость должна всё-таки быть, нет? |
| Стопроцентной совместимости с таким сложным коммерческим продуктом с закрытыми исходными текстами, как Клиппер, теоретически быть не может. Только 99%. Не надо требовать невозможного. Чудеса бывают только в Голливуде
|
|
|
|
| |
Пост N: 38
Зарегистрирован: 05.11.05
|
|
Отправлено: 28.11.07 12:56. Заголовок: Pasha пишет: продук..
Pasha пишет: цитата: | продуктом с закрытыми исходными текстами |
| А вроде выложили исходники Клиппера.
|
|
|
|
| |
Пост N: 124
Зарегистрирован: 28.06.05
|
|
Отправлено: 28.11.07 13:13. Заголовок: Лукашевский пишет: ..
Лукашевский пишет: цитата: | так-то добавить во все GETы MEMVAR-> один раз |
| ВСЕ переменные надо описывать. LOCAL, PRIVATE, MEMVAR и т.д. К полям БД обращаться через квалификаторы ( <ALIAS> )-> или <ALIAS>-> или FIELD-> Вроде азбука. Я бы начал с добавления компиллятору ключиков /w2 /es2 Убить хинты и варнинги в мегабайте исходников = работа на пару дней, но она того стоит. Устойчивость программы к внешним раздражителям повысится многократно. Упсехов в освоении.
|
|
|
|
| Администратор
|
Пост N: 659
Зарегистрирован: 23.05.05
|
|
Отправлено: 28.11.07 13:24. Заголовок: rvu пишет: А вроде ..
rvu пишет: цитата: | А вроде выложили исходники Клиппера. |
| Очень небольшую часть, только prg-код, который любой может получить с помощью валькирии из clipper.lib и extend.lib Все остальное закрыто
|
|
|
|
| |
Пост N: 121
Зарегистрирован: 08.04.06
|
|
Отправлено: 28.11.07 13:41. Заголовок: Re: Pasha
Pasha пишет: цитата: | Не надо требовать невозможного. |
| Если обнаружилась ошибка или неточность, исправить её - это ты называешь невозможным? По-моему, это называется программированием :-) Не помню, сколько там процентов от создания программы обычно занимает её отладка, но факт что больше 50% Ну и по крайней мере если в моей программе обнаруживается ошибка, я её ВСЕГДА исправляю. Может, кто-то и оставляет их для коллекции, но юзвери обычно таких вещей не понимают - это факт!
|
|
|
|
| Администратор
|
Пост N: 660
Зарегистрирован: 23.05.05
|
|
Отправлено: 28.11.07 15:09. Заголовок: Лукашевский пишет: ..
Лукашевский пишет: цитата: | Если обнаружилась ошибка или неточность, исправить её - это ты называешь невозможным? По-моему, это называется программированием :-) Не помню, сколько там процентов от создания программы обычно занимает её отладка, но факт что больше 50% Ну и по крайней мере если в моей программе обнаруживается ошибка, я её ВСЕГДА исправляю. Может, кто-то и оставляет их для коллекции, но юзвери обычно таких вещей не понимают - это факт! |
| Когда ты выложишь свою программу в OpenSource и будешь ставить ее бесплатно своим юзерам, тогда получишь право так рассуждать А сейчас у тебя такого права нет
|
|
|
|
| Администратор
|
Пост N: 661
Зарегистрирован: 23.05.05
|
|
Отправлено: 28.11.07 16:16. Заголовок: Вскрытие показало, ч..
Вскрытие показало, что пациент умер от вскрытия :) Оказывается, в клиппере тоже команда GET не учитывает ключ компилятора /v, и всегда рассматривает переменную как Memvar Только в клиппере приоритетным является Memvar, а в харборе - Field Этот приоритет можно изменить так: source\rtl\tgetint.prg - надо поменять порядок обработки Field и memvar FUNCTION __GET( bSetGet, cVarName, cPicture, bValid, bWhen ) LOCAL oGet IF bSetGet == NIL IF Left( cVarName, 3 ) == "M->" cVarName := SubStr( cVarName, 4 ) bSetGet := {|_1| IIF( _1 == NIL, __MVGET( cVarName ), __MVPUT( cVarName, _1 ) ) } ELSEIF FieldPos( cVarName ) > 0 // "{|_1| IIF( _1 == NIL, FIELD->&cVarName, FIELD->&cVarName := _1 )" bSetGet := &( "{|_1| IIF( _1 == NIL, FIELD->" + cVarName + ", FIELD->" + cVarName + " := _1 ) }" ) ELSEIF __MVEXIST( cVarName ) // "{|_1| IIF( _1 == NIL, M->&cVarName, M->&cVarName := _1 )" bSetGet := {|_1| iif( _1 == NIL, __MVGET( cVarName ), __MVPUT( cVarName, _1 ) ) } ELSE bSetGet := &( "{|_1| IIF( _1 == NIL, " + cVarName + ", " + cVarName + " := _1 ) }" ) ENDIF ENDIF oGet := Get():New( , ,bSetGet, cVarName, cPicture ) oGet:PreBlock := bWhen oGet:PostBlock := bValid RETURN oGet
|
|
|
|
| |
Пост N: 122
Зарегистрирован: 08.04.06
|
|
Отправлено: 28.11.07 16:27. Заголовок: Re: gfilatov
gfilatov пишет: цитата: | Прямая ссылка на Harbour Devel build 1.1-1 Intl. |
| Чем ты паковал этот архив? У меня не распаковывается (Unknown pack method)... нельзя было чем попроще запаковать? И в какой либе для Harbour лежат функции Clipper Tools? Я думал в libct.lib, но там не оказалось ни Expand(), ни DiskFree(), ни ShowTime(), ни многих других функций...
|
|
|
|
|
| Администратор
|
Пост N: 662
Зарегистрирован: 23.05.05
|
|
Отправлено: 28.11.07 16:29. Заголовок: К слову Такое повед..
К слову Такое поведение клиппера - это баг или фича ? И если бы кто нибудь борзый попробовал бы покачать права у Nantucket или CA, что бы он услышал в ответ ? На моей памяти один чел, купивший за немаленькие деньги Borland Deplpi. как-то попробовал поразговаривать по душам с Borland. Какой результат был вы догадываетесь... А с OpenSource проектом можно и пошуметь
|
|
|
|
| |
Пост N: 123
Зарегистрирован: 08.04.06
|
|
Отправлено: 28.11.07 16:35. Заголовок: Re: PSP
PSP пишет: цитата: | если бы (x)Harbour-а не было, тогда что? Пришлось бы вообще заново все переписывать. |
| Если бы (x)Harbour-а не было, я бы давно уже всё под FoxPro переписал!... наверное... И не так уж сильно это было бы и "заново" (знаю, работал когда-то, FoxPro 2.6 у меня даже официяльная имеется). Восторгов-то было по поводу Harbour - не передать! Ну я и думал, что всё будет по уму сделано...
|
|
|
|
| модератор
|
Пост N: 658
Зарегистрирован: 25.05.05
|
|
Отправлено: 28.11.07 17:01. Заголовок: Лукашевский пишет: ..
Лукашевский пишет: цитата: | Чем ты паковал этот архив? |
| Архиватор 7-Zip Игоря Павлова (http://www.7-zip.org) Лукашевский пишет: цитата: | в какой либе для Harbour лежат функции Clipper Tools? Я думал в libct.lib |
| Так и есть Лукашевский пишет: цитата: | там не оказалось ни Expand(), ни DiskFree(), ни ShowTime() |
| Функции Expand() и ShowTime() там есть, a для DiskFree() есть аналогичная Харбор-функция diskspace(cDisk, HB_DISK_FREE) Просто добавь в проект: цитата: | #include "fileio.ch" Function DiskFree(cDisk) Return diskspace(cDisk, HB_DISK_FREE) |
|
|
|
|
|
| |
Пост N: 124
Зарегистрирован: 08.04.06
|
|
Отправлено: 28.11.07 18:36. Заголовок: Re: gfilatov
gfilatov пишет: цитата: | Функции Expand() и ShowTime() там есть |
| Ну да, в новой есть, а в июньском варианте - не было Осталось ещё три вопроса: DISKREADYW() из CTOOLS, OL_ISNT из OSLIB и функция копирования текста в буфер обмена (хотя на SETWCLIPBOARD() линкер вроде не ругается - она и есть?).
|
|
|
|
| |
Пост N: 125
Зарегистрирован: 08.04.06
|
|
Отправлено: 28.11.07 18:50. Заголовок: Re: Pasha
Pasha пишет: цитата: | А сейчас у тебя такого права нет |
| А тут вопрос не в праве, а в ответственности. Если было сказано - будет совместимость, значит - надо её делать. Или не надо было говорить о совместимости... И поскольку я всегда стараюсь делать то что говорю (нет, конечно, бывает форс-мажор или там просто забыл :-), то на тему ответственности говорить имею полное право. К тому же, Pasha, это камень в общем-то наверное не в твой огород...
|
|
|
|
| |
Пост N: 126
Зарегистрирован: 08.04.06
|
|
Отправлено: 28.11.07 20:31. Заголовок: Re: Pasha
Pasha пишет: цитата: | Этот приоритет можно изменить так: source\rtl\tgetint.prg - надо поменять порядок обработки Field и memvar FUNCTION __GET( bSetGet, cVarName, cPicture, bValid, bWhen ) |
| Pasha, а точно нужно изменить только эту функцию? Я её воткнул в программу как просто функцию - и никакого эффекта. Или так не сработает? И ещё - у меня вместо русской "р" вводится латинская "h" - что в поле, что в переменную. Я помню, в Faq об этом было для gtwin.lib, но указанного там www.xharbour.nm.ru вроде как уже не существует?.. Откуда брать?
|
|
|
|
| постоянный участник
|
Пост N: 80
Зарегистрирован: 13.10.05
|
|
Отправлено: 24.12.07 10:21. Заголовок: xHarbour Compiler bu..
xHarbour Compiler build 1.1.0 (SimpLex) При работе с ADS какие-то неувязки.Библиотеку с contrib пересобрал. Программу компилирую без замечаний. Но при запуске Операционка выдает ошибку на всю программу. В сборке 1.0.0 таких вопросов не было
|
|
|
|
| Администратор
|
Пост N: 670
Зарегистрирован: 23.05.05
|
|
Отправлено: 24.12.07 10:36. Заголовок: В этой функции надо ..
В этой функции надо просто поменять местами последовательность обработки Memvar и Field Поставить сначала Field FUNCTION __GET( bSetGet, cVarName, cPicture, bValid, bWhen ) LOCAL oGet IF bSetGet == NIL IF FieldPos( cVarName ) > 0 // "{|_1| IIF( _1 == NIL, FIELD->&cVarName, FIELD->&cVarName := _1 )" bSetGet := &( "{|_1| IIF( _1 == NIL, FIELD->" + cVarName + ", FIELD->" + cVarName + " := _1 ) }" ) ELSEIF Left( cVarName, 3 ) == "M->" cVarName := SubStr( cVarName, 4 ) bSetGet := {|_1| IIF( _1 == NIL, __MVGET( cVarName ), __MVPUT( cVarName, _1 ) ) } ELSEIF __MVEXIST( cVarName ) // "{|_1| IIF( _1 == NIL, M->&cVarName, M->&cVarName := _1 )" bSetGet := {|_1| iif( _1 == NIL, __MVGET( cVarName ), __MVPUT( cVarName, _1 ) ) } ELSE bSetGet := &( "{|_1| IIF( _1 == NIL, " + cVarName + ", " + cVarName + " := _1 ) }" ) ENDIF ENDIF oGet := Get():New( , ,bSetGet, cVarName, cPicture ) oGet:PreBlock := bWhen oGet:PostBlock := bValid RETURN oGet
|
|
|
|
| |
Пост N: 127
Зарегистрирован: 08.04.06
|
|
Отправлено: 25.12.07 17:54. Заголовок: Re: Pasha
Pasha пишет: цитата: | В этой функции надо просто поменять местами последовательность обработки Memvar и Field Поставить сначала Field FUNCTION __GET( bSetGet, cVarName, cPicture, bValid, bWhen ) LOCAL oGet IF bSetGet == NIL IF FieldPos( cVarName ) > 0 |
| Это ещё зачем??? У меня сработал такой вариант: FUNCTION __GET( bSetGet, cVarName, cPicture, bValid, bWhen ) LOCAL oGet IF bSetGet == NIL IF Left( cVarName, 3 ) == "M->" .AND. ATrue( cVarName := SubStr( cVarName, 4 ) ) ; .OR. __MVEXIST( cVarName ) bSetGet := {|_1| IIF( _1 == NIL, __MVGET( cVarName ), __MVPUT( cVarName, _1 ) ) } ELSEIF FieldPos( cVarName ) > 0 bSetGet := &( "{|_1| IIF( _1 == NIL, FIELD->" + cVarName + ", FIELD->" + cVarName + " := _1 ) }" ) ELSE bSetGet := &( "{|_1| IIF( _1 == NIL, " + cVarName + ", " + cVarName + " := _1 ) }" ) ENDIF ENDIF oGet := Get():New( , ,bSetGet, cVarName, cPicture ) oGet:PreBlock := bWhen oGet:PostBlock := bValid RETURN oGet И кстати, не подскажешь, что всё-таки творится с русской "р"? А то я ввожу "Питер", а получаю "Питеh"!
|
|
|
Ответов - 75
, стр:
1
2
3
4
All
[только новые]
|
|