Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.05.07;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.52 MB
Время: 0.026 c
15-1144594256
Gydvin
2006-04-09 18:50
2006.05.07
Сериалы


2-1144067569
haikaterine
2006-04-03 16:32
2006.05.07
помогите, плиз! создание БД "Сотрудники"


4-1139574743
Udaff
2006-02-10 15:32
2006.05.07
Список Com-портов


4-1140034908
Tailno
2006-02-15 23:21
2006.05.07
Эмитация нажатия сочетания клавиш в другой программе


15-1145005557
Ламот
2006-04-14 13:05
2006.05.07
Что делать, если мыслей 0 и хочется тупо кого-то убить?!!!