Форум: "Прочее";
Текущий архив: 2006.05.07;
Скачать: [xml.tar.bz2];
ВнизQuality Central от Borland а Найти похожие ветки
← →
Суслик © (2006-04-09 15:02) [0]Пользуется ли кто сабжем?
Странно, что я не видел ни одного репорта от знакомых фамилий :) Да и вообще от русских.
← →
Гаврила © (2006-04-09 15:11) [1]Один раз писал туда.
(баг репорт на 2005 по поводу использования имен юнитов с пространством имен но под win32)
Без результата
хотя с другой стороны, в 2006 этого бага (авто подстановка себя же в свой же uses список) нет
← →
Суслик © (2006-04-09 15:13) [2]
> Гаврила © (09.04.06 15:11) [1]
Я сейчас активно стал использовать qc.
Меня тоже удивило, что постишь репорт, а он в qc вроде как без ответа остается. Мне в новостной группе ответили, что борландовцы часто не обрабатывают репорты из qc т.к. возможно сами нашли эту багу и сами же занесли в свою внутреннюю базу. Т.е. они могут исправить ошибку, но не отразить это в qc. Т.е. писать все-таки смысл есть.
← →
Ketmar © (2006-04-09 15:39) [3]не знаю. писал, кажись, когда-то о баге компилятора (compiler fatal error на простом легальном коде) и баге с case (сжираем всю память и рушимся в процессе компиляции). ни ответа, ни привета, ни фикса. уже 3 версии как минимум (до 7 включительно, выше не проверял).
← →
Yanis © (2006-04-09 17:06) [4]
> не знаю. писал, кажись, когда-то о баге компилятора (compiler
> fatal error на простом легальном коде) и баге с case (сжираем
> всю память и рушимся в процессе компиляции). ни ответа,
> ни привета, ни фикса. уже 3 версии как минимум (до 7 включительно,
> выше не проверял).
Показывай.
← →
Суслик © (2006-04-09 17:11) [5]
> Ketmar © (09.04.06 15:39) [3]
кстати, да.
покажи, что за код.
или номер репорта скажи
← →
LexxX © (2006-04-09 17:58) [6]Ketmar © (09.04.06 15:39) [3]
Ketmar ©
Код, код!
← →
Ketmar © (2006-04-09 18:22) [7]код номер один. моя D5 и D7 в ступоре:
var
a: Integer = 10;
begin
case a of
$7FFFFFFB: WriteLn("cb");
$7FFFFFFC: WriteLn("cc");
$7FFFFFFD: WriteLn("cd");
$7FFFFFFE: WriteLn("ce");
$7FFFFFFF: WriteLn("cf");
end;
end.
← →
Ketmar © (2006-04-09 18:23) [8]код номер два щаз вырежу из большого проекта. %-)
← →
Ketmar © (2006-04-09 18:31) [9]вот, код вырезан на скорую руку. проект ОЧЕНЬ древний. %-) D5 и D7 в апофигее, если меняем {$O-} на {$O+} (сиречь, включаем оптимизацию).
unit aaa;
interface
uses
SysUtils, Classes;
const
NUL = -1;
HASHSIZE = 65536;
HASHMASK = (HASHSIZE - 1);
MINCOPY = 3;
MAXCOPY = 256;
SHORTRANGE = 4;
MaxSize = 87375 + MAXCOPY;
COPYRANGES = 7;
type
Copy_Type = array [0..CopyRanges - 1] of Integer;
const
CopyMin: Copy_Type = (0, 16, 80, 336, 1360, 5456, 21840);
CopyMax: Copy_Type = (15, 79, 335, 1359, 5455, 21839, 87375);
MaxDistance: Integer = 87375;
type
PHashType = ^THashType;
THashType = array [0..HashSize-1] of Integer;
PListType = ^TListType;
TListType = array [0..MaxSize] of Integer;
PBufferType = ^TBufferType;
TBufferType = array [0..MaxSize] of Byte;
type
TPack6Stream = class(TStream)
private
FHead: PHashType;
FNext: PListType;
FBuffer2: PBufferType;
FDistance: Integer;
FInsrt: Integer;
function Match(N, Depth: Integer): Integer;
end;
implementation
{!!!Delphi bug!}
{$O-}
function TPack6Stream.Match(N, Depth: Integer): Integer;
var
I, J, Index, Key: Integer;
Dist, Len, Best, Count: Integer;
begin
Best := 0;
Count := 0;
if (N = MaxSize) then N := 0;
Key := (FBuffer2^[N] xor (FBuffer2^[(N+1) mod MaxSize] shl 4)) xor
(FBuffer2^[(N+2) mod MaxSize] shl 8) and HASHMASK;
Index := FHead^[Key];
while (Index <> NUL) do
begin
Inc(Count);
if (Count > Depth) then break;
if (FBuffer2^[(N+Best) mod MaxSize] = FBuffer2^[(Index+Best) mod MaxSize]) then
begin
Len := 0;
I := N;
J := Index;
while (FBuffer2^[I] = FBuffer2^[J]) and (Len < MAXCOPY) and
((J <> N) and (I <> FInsrt)) do
begin
Inc(Len);
Inc(I);
if (I = MaxSize) then I := 0;
Inc(J);
if (J = MaxSize) then J := 0;
end;
Dist := N - Index;
if (Dist < 0) then Inc(Dist, MaxSize);
Dec(Dist, Len);
if (Len > Best) and (Dist <= MaxDistance) then
begin
if (Len > MINCOPY) or (Dist <= CopyMax[SHORTRANGE]) then
begin
Best := Len;
FDistance := Dist;
end;
end;
end;
Index := FNext^[Index];
end;
Match := Best;
end;
{$O+}
end.
← →
Ketmar © (2006-04-09 18:32) [10]за базар ответил? %-))
← →
Ketmar © (2006-04-09 18:38) [11]и уж чтобы совсем собой ветку зафлудить: да разве ж я помню номера? когда было-то? я даже не помню, как меня звали, когда регистрировался. %-) дело было на конторе, с честными Delphi. %-)
← →
LexxX © (2006-04-09 18:42) [12]Ketmar © (09.04.06 18:22) [7]
Мндя....
Ketmar © (09.04.06 18:32) [10]
за базар ответил? %-))
Угу :)
← →
LexxX © (2006-04-09 18:48) [13]Ketmar © (09.04.06 18:22) [7]
var
a: Integer = 10;
begin
case a of
$7FFFFFFB: WriteLn("cb");
$7FFFFFFC: WriteLn("cc");
$7FFFFFFD: WriteLn("cd");
$7FFFFFFE: WriteLn("ce");
$7FFFFFFF: WriteLn("cf");
end;
end.
Кстати, меняя на десятиричные значения$7FFFFFFC ... $7FFFFFFF
- получаем то же самое.
← →
Ketmar © (2006-04-09 18:56) [14]да это и понятно. у них таблица переходов переполняется. видимо, какие-то граничные значения не учли. %-) тут именно в самих числах дело, а не в форме их записи. хоть константой.
← →
Суслик © (2006-04-09 19:18) [15]
> Ketmar © (09.04.06 18:22) [7]
Дельфи 2006 prof - полет нормальный.
Все компилиться работает.
← →
Ketmar © (2006-04-09 19:24) [16]ну я же сказал, что проверял только до D7. выше у меня нет. значит, дочитали таки баглист до нужного места. %-)
← →
Суслик © (2006-04-09 19:30) [17]Ну вот видишь, не напрасен твой труд.
Жаль, что по моим наблюдениям интерес к qc из России слабоват :(
← →
Ketmar © (2006-04-09 19:32) [18]а зачем? xUSSR-кодерам проще хаком обойти, чем лезть куда-то и какие-то буквы буржуям дарить. %-) зато потом так интересно читать чудой код и долго офигевать...
← →
Суслик © (2006-04-09 19:45) [19]не смешно :(
нет бы побороться за качество продукта
← →
Yanis © (2006-04-11 19:07) [20]
> за базар ответил? %-))
Ага ;)
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2006.05.07;
Скачать: [xml.tar.bz2];
Память: 0.5 MB
Время: 0.01 c