Article View: pl.comp.lang.pascal
Article #92626Re: Kolejna prowokacja do dyskusji
From: Andrzej Grażyński
Date: Mon, 22 Sep 2008 19:52
Date: Mon, 22 Sep 2008 19:52
74 lines
3630 bytes
3630 bytes
Łukasz 'Maly' Ostrowski pisze: > Andrzej Grażyński wrote: >> 1. Co można by powiedzieć o metodach obiektów deklarowanych lokalnie? > > Ża są lokalne względem scope'u zmiennych outer metody, i lokalne względem > pól obiektu, czyli tak jakby, podwójnie lokalne(?). Błądzę w ciemnościach > po omacku, żeby nie skłamać. napisalem o tym, bo osobiście z tą tematyką jestem związany emocjonalnie. Metody obiektó lokalnych musiałyby byc procedurami/funkcjami ZAGNIEŻDZONYMI. Sposób wywoływania takich procedur nie da się pogodzić ze sposobem wywoływania metod wirtualnych (rozpatrz przykład, gdy obiekt macierzysty jest globalny, a dziedziczący niego - lokalny i mają metodę wirtualną). Osobiście miałem kiedyś pomysł, jak to rozwiązać, akurat wtedy powstawał TP 5.5 i wprowadzano obiekty do Turbo Pascala, a ja byłem w ścisłym kontakcie (jako jeden z tysięcy entuzjastów) z autorami. Po długich dyskusjach główny Guru Turbo Pascala zdecydował, że będzie za trudne i że za mało czasu itd. itp. > >> 2. Co można by powiedzieć o tablicach VMT obiektów deklarowanych >> lokalnie? > > > Tutaj podejrzewam jakichś internalowy myk z zajętymi rejestrami > zarezerwowanymi na przekazanie adresu instancji obiektu / VMT > albo coś w ten ton, ale tak samo jak powyżej, ciemność, szczerze > mówiąc :). Chodzi o to, że zestaw tabel VMT ustalony jest już na etapie kompilacji. W BP to jest konieczne, bo VMT są w segmencie DS, a tego nie można ruszyć po uruhcomieniu programu, bo jest absolutnie ustalony. Gdyby można było dynamicznie powoływać unicestwiać deklaracje, trzeba by było dynamicznie tworzyć i unicestwiać tablice VMT. Moje opinia z czasów tworzenia TP 5.5, że upychanie tablic VMT w segmencie ograniczonym do 64K jest szalone (jako niezmienne powinny być w statycznym segmencie kodu (lub kilku segmentach), tworzonym ad hoc) została zwyczajnie olana. Bo gdyby wyszło na moje, pole VMT Link musiałoby mieć 4 bajty, a to rzekomo marnotrawstwo. I jak pojawił się BP 7.0 z trybem protected i pamięci na stercie można było wycisnąć co najmniej 32 MB (w XP, w Win98 udało mi się przydzielić na raty prawie 512 MB - ok. 8K segmentów po 64K.) to wszystko rozbija się o segment DS, który dalej może mieć tylko 64K i w którym siedzą wszystkie VMT. Na szczęście w Delphi tego problemu juz nie ma. Przejrzenie pobieżne asma nic mi nie dało. Przjerzenie > google tez. Zbyt niskopoziomowe problemy to są dla > mnie, chyba... :-/. >
Technical Details
Message-ID:
<gb8t32$mv$1@news.onet.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.onet.pl!not-for-mailReferences:
<20080905121945.03f2cdf2.solaris@be.inspired> <gb5u6p$icj$2@news.onet.pl> <gb6o7c$td5$1@news.dialog.net.pl> <gb8ish$ra6$1@news.onet.pl> <gb8p84$6ss$1@news.dialog.net.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.onet.pl!not-for-mail From: Andrzej Grażyński <grazynsk@petex.com.pl> Newsgroups: pl.comp.lang.pascal Subject: Re: Kolejna prowokacja do dyskusji Date: Mon, 22 Sep 2008 21:52:58 +0200 Organization: Onet.pl Lines: 74 Message-ID: <gb8t32$mv$1@news.onet.pl> References: <20080905121945.03f2cdf2.solaris@be.inspired> <gb5u6p$icj$2@news.onet.pl> <gb6o7c$td5$1@news.dialog.net.pl> <gb8ish$ra6$1@news.onet.pl> <gb8p84$6ss$1@news.dialog.net.pl> NNTP-Posting-Host: 83-238-226-107.adsl.inetia.pl Mime-Version: 1.0 X-Trace: news.onet.pl 1222113186 735 83.238.226.107 (22 Sep 2008 19:53:06 GMT) X-Complaints-To: usenet@news.onet.pl NNTP-Posting-Date: Mon, 22 Sep 2008 19:53:06 +0000 (UTC) X-Sender: 2ysppuKZfnIJFd8Xm5/5BA== In-Reply-To: <gb8p84$6ss$1@news.dialog.net.pl> User-Agent: Thunderbird 2.0.0.16 (Windows/20080708) Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit