Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2008.06.22;
Скачать: [xml.tar.bz2];

Вниз

CodeGear продалось Ebarcadero, вроде как :)   Найти похожие ветки 

 
pasha_golub ©   (2008-05-07 17:08) [0]

Сабж: http://dn.codegear.com/article/38132


 
pasha_golub ©   (2008-05-07 17:09) [1]

Детали: http://www.codegear.com/about/news/embt


 
Kolan ©   (2008-05-07 17:15) [2]

Мда, вроде собираются дальше работать, но все равно как-то боязно&#133


 
Игорь Шевченко ©   (2008-05-07 17:16) [3]

Не радует


 
pasha_golub ©   (2008-05-07 17:19) [4]


> Не радует

Не могу знать чего ждать, но перемены всегда к лучшему, я так думаю


 
Игорь Шевченко ©   (2008-05-07 17:41) [5]

pasha_golub ©   (07.05.08 17:19) [4]


> но перемены всегда к лучшему


Ты это древним китайцам скажи.

По сабжу - лучше бы их Оракл купил :)


 
PEAKTOP ©   (2008-05-07 17:43) [6]

Может хоть эти возродят CLX.

Одно радует: теперь будет только лучше.


 
тимохов   (2008-05-07 17:49) [7]


> По сабжу - лучше бы их Оракл купил :)

и утопил?
нафига они ораклу


 
Ega23 ©   (2008-05-07 17:51) [8]


> Ты это древним китайцам скажи.


Почему именно китайцам??????


 
Игорь Шевченко ©   (2008-05-07 18:00) [9]


> Почему именно китайцам??????


"Чтоб тебе жить во время перемен" - это древние китайцы придумали. Недоброго желали


 
DrPass ©   (2008-05-07 18:04) [10]


> Чтоб тебе жить во время перемен" - это древние китайцы придумали.
>  Недоброго желали

Нынешние тоже добра нам не желают


 
Ega23 ©   (2008-05-07 18:06) [11]


> "Чтоб тебе жить во время перемен"


А, в этом плане...


 
Германн ©   (2008-05-07 18:18) [12]


> "Чтоб тебе жить во время перемен" - это древние китайцы
> придумали. Недоброго желали
>

И ведь и в самом деле кончилось всё для древних китайцев плохо. Никто не уцелел. Все вымерли (((


 
Palladin ©   (2008-05-07 18:52) [13]

остались неокитайцы... все как на подбор... избранные :)


 
iZEN   (2008-05-07 21:32) [14]

JBuilder ещё жив?


 
Anatoly Podgoretsky ©   (2008-05-07 21:36) [15]


> Interestingly, Embarcadero vice president - Nigel Brown
> - came to
> Embarcadero after more than 10 years at Borland where he
> headed up the
> Developer Tools business (Code Gear) in 2006. Prior to that,
>  he was
> Vice-President-EMEA, growing it to be Borland"s largest
> and most successful
> region in 2000-2004.

Вот откуда ноги растут


 
Игорь Шевченко ©   (2008-05-07 21:56) [16]

Anatoly Podgoretsky ©   (07.05.08 21:36) [15]

Мафия :)


 
Anatoly Podgoretsky ©   (2008-05-07 22:25) [17]

> Игорь Шевченко  (07.05.2008 21:56:16)  [16]

Кумовство, Борланд поставляет свои кадры Микрософту и другим компаниям. Я не знаю как сейчас оценивать текущий уровень разработчиков, но это по уровню ниже отцов разработчиков и их попсовые действия у меня вызывают огорчение. Я думаю, если бы старые не ушли, то мы бы имели Юникод или в Д3 или максимум в Д5
Зато сейчас МС имеет С#, другие другое, а Борланд в одном известном месте.
Еще не известно чем может закончиться эта покупка, я еще помню попытку продажи Корелу, тогда стоимость акции упала в несколько раз. Борланд еще легко отделался, в основном пострадал Корел.

Я знаю кому надо продавать, но они не покупают, тогда мы жили бы безбедно, без страха на будущее. Скажи что они испортили, уничтожили в отличии от ИБМ, Корела? Все их покупки давали вторую жизнь продуктам. А вспомним судьбу продуктов, которые продал Борланд, большинство прикратили свое существование.


 
tesseract ©   (2008-05-07 23:09) [18]


> Зато сейчас МС имеет С#, другие другое, а Борланд в одном
> известном месте.


C# своеобразная ерундовина. Скрестили java с VCL. Причём С++  списали в утиль, под него новые вкусности не работают. А так в принципе, сам язык не плохой, читаемость повысили. Но вот "Рога" торчат. Борланда больше убило отсутсвие проектирования - в D2006 иногда в ступор становишься, при чтениии  VCL.


 
tesseract ©   (2008-05-07 23:11) [19]


>platform-independent software provider of database and application >development tools.


Иде же оно ?  Хочу фрэймворк QT за 1000, а не за 3.500  Евро.


 
vuk ©   (2008-05-08 00:41) [20]

Хм... Мне Embarcadero вспоминаются исключительно, как производитель какой-то маловнятной глючной тулзовины для работы с БД... :(


 
Германн ©   (2008-05-08 00:48) [21]

А мне ничем оно не вспоминается. У меня есть ТР7.0, Д4, Д6. Все меня полностью устраивают. А мафия и кумовство пусть идут лесом.
:)


 
Тыщ ©   (2008-05-08 01:09) [22]

Если бы в Delphi сделали прямой вызов функций WinAPI (call без jmp), naked функции, {$CODEALIGN x} и поддержку COFF .obj, было бы здорово.


 
Германн ©   (2008-05-08 01:47) [23]


> Тыщ ©   (08.05.08 01:09) [22]
>
> Если бы в Delphi сделали прямой вызов функций WinAPI (call
> без jmp), naked функции, {$CODEALIGN x} и поддержку COFF
> .obj, было бы здорово.
>

Ты о своём, личном?


 
Тыщ ©   (2008-05-08 07:15) [24]

Германн ©   (08.05.08 1:47) [23]

> Ты о своём, личном?

Я думаю, оное не только мне полезно было бы.


 
Игорь Шевченко ©   (2008-05-08 09:42) [25]


> Если бы в Delphi сделали прямой вызов функций WinAPI (call
> без jmp),


Это как ?


 
koha ©   (2008-05-08 10:14) [26]


> Тыщ ©   (08.05.08 01:09) [22]
> Если бы в Delphi сделали прямой вызов функций WinAPI (call
> без jmp)



Var
 szDlgTitle,szMsg: PChar;
begin
 szDlgTitle := "  --- Assembler Pure and Simple ---  ";
 szMsg      := "halo world!";

 asm
   push MB_OK
   push szDlgTitle
   push szMsg
   push 0
   call MessageBox
   push 0
   call ExitProcess
 end;
end;


а так не канает?


 
Дмитрий С   (2008-05-08 10:49) [27]


> koha ©   (08.05.08 10:14) [26]

А теперь посмотри в CPU что получилось

Вот так это делается =)
program Project1;

uses
 windows;

var
MessageBox : function (hWnd: HWND; lpText, lpCaption: PChar; uType: UINT): Integer; stdcall;
begin
 MessageBox := GetProcAddress(LoadLibrary(User32), "MessageBoxA");
 MessageBox(0, "Hi", "", 0);
end.


 
tesseract ©   (2008-05-08 10:49) [28]


> Тыщ ©   (08.05.08 01:09) [22]


У детей свои проблемы. Delphi для офисных преложений предназначено, а не для 3D маньяков.


 
Rouse_ ©   (2008-05-08 11:08) [29]


> Если бы в Delphi сделали прямой вызов функций WinAPI (call
> без jmp)

Ты про jmp который из секции импорта делается? ;)


> naked функции

Пиши на асме, чем тебе пролог с эпилогом помешал?
Да и inline уже давно появились :)


> {$CODEALIGN x} и поддержку COFF .obj

Зачем?


 
Игорь Шевченко ©   (2008-05-08 11:19) [30]

Кистате о naked-функциях: Когда мне потребовалось сымитировать их поведение, был написан такой код:

function HSNtUserCreateWindowEx (p1,p2,p3,p4,p5,
 X, Y, Width, Height : Integer; hWndParent : HWND;
 p11, p12,p13,p14,p15 : Integer) : HWND; stdcall;
asm
 pop ebp
 mov eax,00001157h
 mov edx,7FFE0300h
 call edx
 ret 60
end;


 
@!!ex ©   (2008-05-08 11:28) [31]

> Delphi для офисных преложений предназначено, а не для 3D
> маньяков.

Это вы решили?


 
Тыщ ©   (2008-05-08 13:19) [32]

Rouse_ ©   (08.05.08 11:08) [29]

> Ты про jmp который из секции импорта делается?

Ага. Сейчас call -> jmp [API], а надо бы call [API].

> Пиши на асме, чем тебе пролог с эпилогом помешал?

Иногда хочется, чтоб ret не вставлялся. Можно было бы произвольные данные asm..end генерировать, ret зачастую все портит.
Конечно, можно и костылями обходиться, но из-за какой мелкой отсутствующей фичи...

>> {$CODEALIGN x} и поддержку COFF .obj
> Зачем?

Первое - для оптимизации, второе - для совместимости с большинством объектников, в OMF сейчас мало что может компилировать. А конвертеры глючные, для больших вещей не годятся.
Либо Delphi очень привередлив (то invalid format, то просто не видит символы).


 
Mystic ©   (2008-05-08 13:41) [33]

> Ага. Сейчас call -> jmp [API], а надо бы call [API].

Предложи другую схему?

Адрес функции из библиотеки DLL неизвестен на этапе компиляции/линковки. Получается, чтобы реализовать твою схему, необходимо будет при загрузке EXE-файла иметь дополнительно специальную таблицу, в которой бы хранились все обращения к этой функции и их подправить. Это может быть как вызов этой функции, так и взятие адреса. Это приводит к тому, что страницы кода с памяти и на диске будут отличаться друг от друга. Возникнут проблемы с тем, чтобы организовать для нескольких приложений использование одних и тех же кодовых страниц. В общем никому не нужный геморрой. Если для какой-то функции тебе так важно не терять на промежуточный JMP, правь адрес руками :)


 
Игорь Шевченко ©   (2008-05-08 13:52) [34]


> Ага. Сейчас call -> jmp [API], а надо бы call [API].


Так это не только в Delphi, не переживай


 
Тыщ ©   (2008-05-08 14:04) [35]

Mystic ©   (08.05.08 13:41) [33]

Ты меня не понял. Я не хочу вызывать функции API настолько напрямую и тем самым терять всю совместимость (это годится разве что для демосценок).
Я хочу вызывать через импорт напрямую, как это делают многие другие компиляторы.


 
Rouse_ ©   (2008-05-08 14:06) [36]


> Так это не только в Delphi, не переживай

Нет, тут все-же различается. Специально проверял сторонним отладчиком, чтоб не грешить на то как отображает внутренний дизасм у обоих сред.

У Delphi
E8 B4FFFFFF   CALL <JMP.&user32.CreateWindowExA> ; \CreateWindowExA

У VC++
FF15 94514400 CALL DWORD PTR DS:[<&USER32.CreateWindowExA>] ; \CreateWindowExA


 
Игорь Шевченко ©   (2008-05-08 14:17) [37]

Тыщ ©   (08.05.08 14:04) [35]


> Я не хочу вызывать функции API настолько напрямую и тем
> самым терять всю совместимость (это годится разве что для
> демосценок).


пардон, какая совместимость и кого с кем имеется в виду.

Rouse_ ©   (08.05.08 14:06) [36]


> Специально проверял сторонним отладчиком


убедился что в каких-то конкретных версиях конретных компиляторов это так. И что с того ? Тут экстраполяция неуместна.


 
Тыщ ©   (2008-05-08 14:21) [38]

Игорь Шевченко ©   (08.05.08 14:17) [37]

> пардон, какая совместимость и кого с кем имеется в виду.

Я так понял, Mystic говорил о вызове функций из dll напрямую, без таблицы импорта вообще. Это уже экстрим.


 
Игорь Шевченко ©   (2008-05-08 14:24) [39]

Тыщ ©   (08.05.08 14:21) [38]

Да, это экстрим.

Но все-таки я не совсем понимаю, чем тебе так jmp помешал :)


 
Тыщ ©   (2008-05-08 14:27) [40]

Игорь Шевченко ©   (08.05.08 14:24) [39]

Все модные компиляторы умеют обходиться без лишнего jmp, чем Delphi хуже? :)


 
Rouse_ ©   (2008-05-08 14:30) [41]


> чем Delphi хуже?

Как однажды сказал ЮЗ: "все-же плюсы Delphi не в его названии" ;)


 
Игорь Шевченко ©   (2008-05-08 14:31) [42]

Тыщ ©   (08.05.08 14:27) [40]

Не скажи - это невыгодно. Так загрузчику в одном месте менять ссылку на импортируемую функцию, а так в сотне мест. Таблица relocation распухает


 
Тыщ ©   (2008-05-08 14:34) [43]

Игорь Шевченко ©   (08.05.08 14:31) [42]

Согласен, но это в случае dll. В exe-шниках relocation ни к чему.


 
oxffff ©   (2008-05-08 14:36) [44]


> Тыщ ©   (08.05.08 14:27) [40]
> Игорь Шевченко ©   (08.05.08 14:24) [39]
>
> Все модные компиляторы умеют обходиться без лишнего jmp,
>  чем Delphi хуже? :)


А я бы даже сказал, что это может обернутся преимуществом.
Единый промежуточный порт,
например для единого перехвата может используется отладчиком для функции через таблицу импорта.

ЗЫ. Хотя действительно в Release версии можно убирать. По флагу например.


 
Rouse_ ©   (2008-05-08 14:36) [45]


> В exe-шниках relocation ни к чему.

Экзешник тоже может экспортировать функции и может быть подгружен не по стандартному адресу ;)


 
Тыщ ©   (2008-05-08 14:38) [46]

Rouse_ ©   (08.05.08 14:36) [45]

Не будем вдаваться в подробности. Relocation не нужен для обычных, ничего не экспортирующих exe-шников, а таких большинство.


 
Тыщ ©   (2008-05-08 14:39) [47]

oxffff ©   (08.05.08 14:36) [44]

Ну так можно и dword в таблице импорта поменять, тот же перехват.


 
oxffff ©   (2008-05-08 14:39) [48]


> Тыщ ©   (08.05.08 14:38) [46]
> Rouse_ ©   (08.05.08 14:36) [45]
>
> Не будем вдаваться в подробности. Relocation не нужен для
> обычных, ничего не экспортирующих exe-шников, а таких большинство.
>


Если таблица импорта съедет, то будешь править все CALL [API].


 
Тыщ ©   (2008-05-08 14:41) [49]

oxffff ©   (08.05.08 14:39) [48]

> Если таблица импорта съедет

Как она может съехать?


 
oxffff ©   (2008-05-08 14:43) [50]


> Тыщ ©   (08.05.08 14:39) [47]
> oxffff ©   (08.05.08 14:36) [44]
>
> Ну так можно и dword в таблице импорта поменять, тот же
> перехват.


Тогда будет перехватываться все.
А как быть в разными dcu?
Если нужно перехватывать только вызовы одного DCU.


 
Тыщ ©   (2008-05-08 14:44) [51]

oxffff ©   (08.05.08 14:43) [50]

Уж сильно специфический случай.


 
oxffff ©   (2008-05-08 14:45) [52]


> Тыщ ©   (08.05.08 14:41) [49]
> oxffff ©   (08.05.08 14:39) [48]
>
> > Если таблица импорта съедет
>
> Как она может съехать?


А что есть гарантия, что она всегда на том же месте?
Секция съедет и таблица вместе с ней.


 
Тыщ ©   (2008-05-08 14:46) [53]

oxffff ©   (08.05.08 14:43) [50]

Ах да, выяснилось еще одно - хотелось бы, чтоб вызовы одинаковых API из разных DCU объединялись. А то доходит до того, что kernel32.dll в таблице упомянут по 5 раз...


 
Тыщ ©   (2008-05-08 14:47) [54]

oxffff ©   (08.05.08 14:45) [52]

> А что есть гарантия, что она всегда на том же месте?
> Секция съедет и таблица вместе с ней.

А если секция кода съедет? Пиши пропало.


 
oxffff ©   (2008-05-08 14:50) [55]


> А если секция кода съедет? Пиши пропало.


Почему? Reloc поправит все.


 
Тыщ ©   (2008-05-08 14:53) [56]

oxffff ©   (08.05.08 14:50) [55]

Ах, вон ты о чем. Про это было сказано в [43].
А секции друг относительно друга всегда неподвижны.


 
Anatoly Podgoretsky ©   (2008-05-08 15:21) [57]


> Как однажды сказал ЮЗ: "все-же плюсы Delphi не в его названии"
> ;)

Зато теперь будут смеяться конкуренты, странное для русского слуха имя, я даже представляю как нас теперь будут называть, вместо благородного греческого имени.


 
^-k2-^ ©   (2008-05-08 15:32) [58]

http://www.embarcadero.com/company/executive_team.html
обратите внимание на трудовой путь третьего сверху товарища :)


 
Ins ©   (2008-05-08 15:43) [59]


> Экзешник тоже может экспортировать функции и может быть
> подгружен не по стандартному адресу ;)


Так вроде же виндовый загрузчик все равно игнорирует и таблицу импорта экзешника, и таблицу релокации.


 
Kerk ©   (2008-05-08 16:03) [60]


> Ins ©   (08.05.08 15:43) [59]
> Так вроде же виндовый загрузчик все равно игнорирует и таблицу
> импорта экзешника, и таблицу релокации.

Неправда :)


 
Ins ©   (2008-05-08 16:07) [61]


> Неправда :)


Если верить MSDN - то выходит что так. EXE можно загрузить с помощью LoadLibrary только для дерганья ресурсов. Да и мои эксперименты когда-то это подтвердили. Приходилось таблицу релоков самому ручками обходить после загрузки )


 
ZeroDivide ©   (2008-05-12 01:25) [62]

Как то все это не очень радостно... но! может ценовую политику изменят?

обратите внимание на трудовой путь третьего сверху товарища :)

Тоже не особо радует. У него значиться Management Sciences в графе "образование"... и вот, как раз, из-за этого сайнсеса некоторых "продвинутых" товарищей в Borland"е, Delphi и страдал на протяжении последних лет.



Страницы: 1 2 вся ветка

Форум: "Прочее";
Текущий архив: 2008.06.22;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.61 MB
Время: 0.049 c
3-1199904124
hero
2008-01-09 21:42
2008.06.22
Уважаемые мастера! Помогите восстановить базу данных!!!!!!


2-1212044089
pirks
2008-05-29 10:54
2008.06.22
Каскадные прокси


15-1210295046
Slider007
2008-05-09 05:04
2008.06.22
С днем рождения ! 9 мая 2008 пятница


2-1212066226
Sten
2008-05-29 17:03
2008.06.22
Вырезать в начале строки


15-1210102201
Маэстро
2008-05-06 23:30
2008.06.22
Программисты вопрос!!!!!





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский