Форум: "Прочее";
Текущий архив: 2007.08.19;
Скачать: [xml.tar.bz2];
ВнизКомпилятор Дельфи Найти похожие ветки
← →
_Mike_ (2007-07-18 12:35) [40]
> Возраст наверное.
Хм. Я не скажу что вы на много старше меня. Так что, все-таки, наверное, желание :)
← →
_Mike_ (2007-07-18 12:36) [41]
> _Mike_ (18.07.07 12:35) [40]
Хотел выделить слова "на много".
← →
Игорь Шевченко © (2007-07-18 12:48) [42]_Mike_ (18.07.07 12:35) [40]
Твоего возраста я не знаю, анкеты нет, да и оффтопик это. Я к тому, что мне при моем бизнесе, зарплате и прочих атрибутах за трындение на форумах никак не платят. За репорты в QC, впрочем, тоже, но тем не менее, я полагаю, что отправив репорт в QC я хоть чем-то помогу не только себе.
← →
_Mike_ (2007-07-18 12:52) [43]
> Твоего возраста я не знаю, анкеты нет
Эт не ко мне вопрос - а к администрации форума куда делась моя анкета (MikePetrichenko раньше был). А повторно мне регистрироваться ну очень лень.
> помогу не только себе.
Возможно когда у меня будет желание после правки таких глюков что-то туда написать кроме не лестных отзывов - я это сделаю. А писать гадости - ну не собираюсь я - потому как продукт-то (Delphi) ну очень хороший. :)
← →
Игорь Шевченко © (2007-07-18 12:58) [44]
>
> Эт не ко мне вопрос - а к администрации форума куда делась
> моя анкета (MikePetrichenko раньше был). А повторно мне
> регистрироваться ну очень лень
Вот сюда наверное делась:
http://www.delphimaster.ru/cgi-bin/anketa.pl?id=1160185310
← →
_Mike_ (2007-07-18 13:00) [45]
> Игорь Шевченко © (18.07.07 12:58) [44]
Так не дает мне писать под тем ником - говорит не найдено.
← →
oxffff © (2007-07-18 13:03) [46]
> _Mike_ (18.07.07 12:25) [36]
>
> > Почему ты пишешь на Delphi, да еще и втихую?.
>
> Что значит в тихую? Почему? Не только на Delphi.
Можно получить код, который выявляет недостатки компилятора Delphi?
Да и не нужно все "более ста строк", достаточно только ключевые.
А в тихую потому, что громкое утверждение "Тупой он. Особенно оптимизатор. Да еще если локальные процедуры да и указатели в них."
А от delphi еще не отказался. Сам же указал с 5 по 2006
← →
_Mike_ (2007-07-18 13:04) [47]
> Можно получить код, который выявляет недостатки компилятора
> Delphi?
Я уже отправил одному форумчанину. Хватит - не благотворительная организация.
> А от delphi еще не отказался. Сам же указал с 5 по 2006
За что платят на том и пишу. Будут платить за BrainFuck буду писать на нем.
← →
_Mike_ (2007-07-18 13:06) [48]Да. В дагонку. Я ни где не говорил что Delphi плоха. Однако баги есть и оптимизатор туп.
← →
Думкин © (2007-07-18 13:06) [49]> _Mike_ (18.07.07 13:04) [47]
Письма пока нет. А объем какой?
← →
Kerk © (2007-07-18 13:06) [50]_Mike_, если ты такой весь из себя занятой и важный, чего на форуме-то делаешь?
← →
_Mike_ (2007-07-18 13:08) [51]
> Письма пока нет. А объем какой?
Маленький - там ссылка и пароль на архив с полной версией. мне в ломы было видирать код.
> Mike_, если ты такой весь из себя занятой и важный, чего
> на форуме-то делаешь?
Отпуск у меня. Это Ваш последний аргумент?
← →
Думкин © (2007-07-18 13:10) [52]> _Mike_ (18.07.07 13:08) [51]
А.....а архив насколько тяжел? И в Турбо это скомпилится? А то может, я не лучший представитель для такого?
← →
Kerk © (2007-07-18 13:10) [53][51] _Mike_ (18.07.07 13:08)
> Отпуск у меня.
Значит время нашлось на форум, да, занятой ты наш? Читать противно, снизошел блин до нас мессия.
← →
_Mike_ (2007-07-18 13:11) [54]
> .....а архив насколько тяжел? И в Турбо это скомпилится?
> А то может, я не лучший представитель для такого?
Тож не большой. Скомпилится.
← →
_Mike_ (2007-07-18 13:12) [55]
> Значит время нашлось на форум, да, занятой ты наш? Читать
> противно, снизошел блин до нас мессия.
Я Вас где-то оскорблял? Да и не Вам считать мое время (как и деньги тоже).
← →
oxffff © (2007-07-18 13:14) [56]to _Mike
Бывает конечно у компилятора delphi
mov eax,ebx;
mov ebx,eax
или аналогично
mov [ebp-$04],eax;
mov eax,[ebp-$04];
Давай твои изыскания. А так это только голословные утверждения с твоей стороны.
← →
_Mike_ (2007-07-18 13:16) [57]
> Давай твои изыскания. А так это только голословные утверждения
> с твоей стороны.
Еще раз. Я уже отправил человеку код. Больше никому отправлять не буду - я не благотворительная организация.
← →
Kerk © (2007-07-18 13:17) [58][55] _Mike_ (18.07.07 13:12)
> Я Вас где-то оскорблял?
Ты несешь бред, ничем его не обосновывая. Вместо обоснований идут ссылки на нехватку времени и занятость.
> Да и не Вам считать мое время (как и деньги тоже).
Я уже понял. У тебя очень много денег и очень мало времени. Ты это в каждой ветке объясняешь всем.
← →
oxffff © (2007-07-18 13:21) [59]
> _Mike_ (18.07.07 13:16) [57]
>
> > Давай твои изыскания. А так это только голословные утверждения
>
> > с твоей стороны.
>
> Еще раз. Я уже отправил человеку код. Больше никому отправлять
> не буду - я не благотворительная организация.
Тебе нужны деньги за это? Сколько?
← →
_Mike_ (2007-07-18 13:25) [60]
> Ты несешь бред, ничем его не обосновывая
Эта тема уже здесь обсуждалась. Это раз. Код я уже давал. Это два. Ваше право верить или не верить. У нас и у Вас свободная страна.
> У тебя очень много денег и очень мало времени
А это, простите, не Ваше дело.
> объясняешь всем.
Ни кому я ни чего не объясняю.
> Тебе нужны деньги за это? Сколько?
Нужны, а Вам нет? Но не за это (см. выше).
P.S. Поищите на просторах интернета - ваши любимые пираты (не лично Ваши, а вообще - ваши) не раз уже кардили - так что поиск рулит.
← →
db2admin © (2007-07-18 13:30) [61]почему если первую страницу читать интересно и полезно, то в последующих просто вьется снобизм?
← →
Kerk © (2007-07-18 13:35) [62]> [60] _Mike_ (18.07.07 13:25)
Ты крут, ты нереально крут, круче некуда :)
Вот что с людьми одна среднего уровня шароварка делает :)
← →
oxffff © (2007-07-18 13:46) [63]Оно?
http://mpetrichenko.moikrug.ru/
http://www.petergen.com/sources/petrich_k.shtml
http://www.download.ru/author/29888
← →
_Mike_ (2007-07-18 13:47) [64]
> Вот что с людьми одна среднего уровня шароварка делает :
> )
Сделайте лучше. Кто Вам мешает? А сидя на чьей-то шее все легче рассуждать.
P.S. С этого момента я буду Ваши личностные нападки игнорировать - если Вам нечего сказать по существу вопроса. Аль жаба душит?
← →
Игорь Шевченко © (2007-07-18 13:48) [65]Вот же людям делать нефиг
← →
_Mike_ (2007-07-18 13:50) [66]
> oxffff © (18.07.07 13:46) [63]
Последнее оно. Первые два - не оно. Полные тезки (или однофамильцы - хз как правильно).
← →
Kerk © (2007-07-18 13:52) [67][64] _Mike_ (18.07.07 13:47)
> Аль жаба душит?
Да. Так и есть. Тебе великому ВСЕ завидуют. Вообще все. И я тоже. Признаюсь честно. Хочу быть таким же великолепным как ты :)
← →
Panel (2007-07-18 13:53) [68]2 _Mike_
Миша, ты это, вообще, о чем? Опять курил? Небось, натощак?
Завязывай флудить.
Давай конкретику.
И побольше креатива.
← →
Игорь Шевченко © (2007-07-18 13:56) [69]Завязываем с оффтопиком.
← →
Kerk © (2007-07-18 13:58) [70]> [69] Игорь Шевченко © (18.07.07 13:56)
Да ладно. Не видишь, человек занят? Не мешай ему флудить :)
← →
db2admin © (2007-07-18 14:27) [71]Игорь Шевченко © (18.07.07 13:56) [69]
Не флудю действительно интересно
Вопрос лично к тебе какой вариант реализации ты предлагаеш для функции
function SomeFunction:String;
begin
Result := "";
try
//возможное исключение
except
// в обработке исключения что ли
// Result := "";
end;
end;
Почему такой вариант ошибочен?
_Mike_
Просьба не отвечать даже если знаеш твой снобизм показатель твоего професионалтзма.
← →
Игорь Шевченко © (2007-07-18 14:31) [72]
> Вопрос лично к тебе какой вариант реализации ты предлагаеш
> для функции
а какие хинты выдает компилятор ?
← →
Германн © (2007-07-18 14:42) [73]
> Игорь Шевченко © (18.07.07 10:28) [18]
>
...
> - чем меньше лишнего кода, тем проще работать.
> - при компилиции не должно быть ни хинтов ни предупреждений.
У меня как раз эти самые два правила очень часто конфликтуют между собой в оператореcase
:)
← →
Asail (2007-07-18 15:42) [74]
> Игорь Шевченко © (18.07.07 14:31) [72]
>
> > Вопрос лично к тебе какой вариант реализации ты предлагаеш
>
> > для функции
>
>
> а какие хинты выдает компилятор ?
См. мои предыдущие посты - на стрингах ни каких хинтов не выдаст.
← →
Asail (2007-07-18 15:44) [75]
> Игорь Шевченко © (18.07.07 13:56) [69]
> Не флудю действительно интересно
> Вопрос лично к тебе какой вариант реализации ты предлагаеш
> для функции
На мой взгляд - оба имеют право на жизнь, хотя лично я предпочитаю в except.
← →
Игорь Шевченко © (2007-07-18 15:57) [76]Asail (18.07.07 15:42) [74]
> См. мои предыдущие посты - на стрингах ни каких хинтов не
> выдаст.
function Foo (Bar, Baz: Integer): string;
begin
Result := "";
try
Result := IntToStr(Bar div Baz);
except
Result := "";
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Edit3.Text := Foo(StrToIntDef(Edit1.Text, 0), StrToIntDef(Edit2.Text, 0));
end;
end.
main.pas.30: begin
00454BC4 55 push ebp
00454BC5 8BEC mov ebp,esp
00454BC7 51 push ecx
00454BC8 53 push ebx
00454BC9 56 push esi
00454BCA 57 push edi
00454BCB 894DFC mov [ebp-$04],ecx
00454BCE 8BF2 mov esi,edx
00454BD0 8BD8 mov ebx,eax
main.pas.31: Result := "";
00454BD2 8B45FC mov eax,[ebp-$04]
00454BD5 E872FAFAFF call @LStrClr
main.pas.32: try
00454BDA 33C0 xor eax,eax
00454BDC 55 push ebp
00454BDD 68FF4B4500 push $00454bff
00454BE2 64FF30 push dword ptr fs:[eax]
00454BE5 648920 mov fs:[eax],esp
main.pas.33: Result := IntToStr(Bar div Baz);
00454BE8 8BC3 mov eax,ebx
00454BEA 99 cdq
00454BEB F7FE idiv esi
00454BED 8B55FC mov edx,[ebp-$04]
00454BF0 E84338FBFF call IntToStr
00454BF5 33C0 xor eax,eax
00454BF7 5A pop edx
00454BF8 59 pop ecx
00454BF9 59 pop ecx
00454BFA 648910 mov fs:[eax],edx
00454BFD EB12 jmp $00454c11
00454BFF E9FCF0FAFF jmp @HandleAnyException
main.pas.35: Result := "";
00454C04 8B45FC mov eax,[ebp-$04]
00454C07 E840FAFAFF call @LStrClr
00454C0C E8FFF4FAFF call @DoneExcept
main.pas.37: end;
00454C11 5F pop edi
00454C12 5E pop esi
00454C13 5B pop ebx
00454C14 59 pop ecx
00454C15 5D pop ebp
00454C16 C3 ret
Не выдаст
И так:
function Foo (Bar, Baz: Integer): string;
begin
try
Result := IntToStr(Bar div Baz);
except
Result := "";
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Edit3.Text := Foo(StrToIntDef(Edit1.Text, 0), StrToIntDef(Edit2.Text, 0));
end;
end.
main.pas.30: begin
00454BC4 55 push ebp
00454BC5 8BEC mov ebp,esp
00454BC7 51 push ecx
00454BC8 53 push ebx
00454BC9 56 push esi
00454BCA 57 push edi
00454BCB 894DFC mov [ebp-$04],ecx
00454BCE 8BF2 mov esi,edx
00454BD0 8BD8 mov ebx,eax
main.pas.31: try
00454BD2 33C0 xor eax,eax
00454BD4 55 push ebp
00454BD5 68F74B4500 push $00454bf7
00454BDA 64FF30 push dword ptr fs:[eax]
00454BDD 648920 mov fs:[eax],esp
main.pas.32: Result := IntToStr(Bar div Baz);
00454BE0 8BC3 mov eax,ebx
00454BE2 99 cdq
00454BE3 F7FE idiv esi
00454BE5 8B55FC mov edx,[ebp-$04]
00454BE8 E84B38FBFF call IntToStr
00454BED 33C0 xor eax,eax
00454BEF 5A pop edx
00454BF0 59 pop ecx
00454BF1 59 pop ecx
00454BF2 648910 mov fs:[eax],edx
00454BF5 EB12 jmp $00454c09
00454BF7 E904F1FAFF jmp @HandleAnyException
main.pas.34: Result := "";
00454BFC 8B45FC mov eax,[ebp-$04]
00454BFF E848FAFAFF call @LStrClr
00454C04 E807F5FAFF call @DoneExcept
main.pas.36: end;
00454C09 5F pop edi
00454C0A 5E pop esi
00454C0B 5B pop ebx
00454C0C 59 pop ecx
00454C0D 5D pop ebp
00454C0E C3 ret
Тоже не выдаст.
И что ?
← →
sniknik © (2007-07-18 17:14) [77]> А где здесь обращение к пропертям?
> Result := "a";
Result типа стринг, оно само и есть дефаултная "пропертя" для самой себя. и ему как раз "a" и присваивается.
> См. мои предыдущие посты - на стрингах ни каких хинтов не выдаст.
читай мой предыдущий пост про то что такое стринг.
если "обернуть" классом тот же интеджер для которого хинты выдает то их тоже не будет, причина очевидна, оптимизатор просто не знает что там делается(или может делаться) по присвоению проперти.
т.е. делаем вместо
function TForm1.MyFunct: Integer;
begin
result:= 2;
result:= 3;
end;
с хинтом
type
TMyInteger = class
FValue: integer;
public
property Value: integer read FValue write FValue;
end;
function TForm1.MyFunct: TMyInteger;
begin
result:= TMyInteger.Create;
result.Value:= 2;
result.Value:= 3;
end;
и хинта не будет...
отличие для стринга только в том что это "маджик" тип(клас), дельфя его сама создает/уничтожает и дополнительного ".Value" писать не надо.
оптимизатор же не разбирает, что это за класс, просто все "пропускает" т.к. в их случае определить определяется значение или там еще чтото делается нет возможности.
(более точно, имхо, представить стринг как аналог bstr из С++, только более встроенный в систему... уже не чистый класс но еще не тип)
← →
sniknik © (2007-07-18 17:53) [78]кстати может дело даже "глобальнее" чем кажется, оптимизатором игнорируются не только классовые переменные, а вообще все в которых указатели участвуют (х.з. почему);
т.е. если переписать интеджера на указатель
function TForm1.MyFunct: Pointer;
begin
result:= Pointer(1);
result:= Pointer(2);
end;
тоже нет хинта (тех нет, другие добавляются, если не отключать, о небезопасности типа)
← →
Германн © (2007-07-19 03:38) [79]А ещё меня достало писАть в каждой функции перед
begin
строчки:
var
Error : Integer;
:(((
← →
Германн © (2007-07-19 04:04) [80]
> Германн © (19.07.07 03:38) [79]
К компилятору не относится. Это так, сражаюсь с "земляными червяками" :)
Просто если я не вставлю эти две строчки, то компилятор меня обругает и не даст результат. А добавлять потом, после х.з. какого периода, обработку ошибок с выдачей "Номера ошибки" - это, имхо, геморрой ещё тот!
P.S.
В ТЗ написано так: "Возвращаемое значение свидетельствует об успехе операции"
а его тип BOOL (Си).
Страницы: 1 2 3 вся ветка
Форум: "Прочее";
Текущий архив: 2007.08.19;
Скачать: [xml.tar.bz2];
Память: 0.64 MB
Время: 0.044 c