From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=0.2 required=5.0 tests=BAYES_00,INVALID_MSGID, REPLYTO_WITHOUT_TO_CC autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,39771953fe5b2343 X-Google-Attributes: gid103376,public X-Google-Thread: fac41,39771953fe5b2343 X-Google-Attributes: gidfac41,public From: Joachim Durchholz Subject: Re: Enforcing assertions in Eiffel Date: 1997/09/30 Message-ID: <343174DF.CB2B2112@munich.netsurf.de>#1/1 X-Deja-AN: 277084823 References: <341A7F0E.66E46566@cistron.nl> <341EABAB.41C67EA6@eiffel.com> <341fddde.0@news.uni-ulm.de> <34201D40.CF490EC0@munich.netsurf.de> <342fc4bc.0@news.uni-ulm.de> Reply-To: "joachim.durchholz@"@munich.netsurf.de Newsgroups: comp.lang.eiffel,comp.lang.ada Date: 1997-09-30T00:00:00+00:00 List-Id: Joerg Rodemann wrote: > > Joachim Durchholz (joachim.durchholz@munich.netsurf.de) wrote: > > Well, no - I can't imagine what the GPL (a *legal* contract) has to > > do with Eiffel assertions (a *technical* contract). > > Well, are you trolling? Your statement is certainly true...and my > followup was not about assertions (you Eiffel guys seem to be a bit > obsessed but this thing, aren't you? :) ). Well, it is the one thing that makes a real difference. Most other issues of Eiffel-vs-the-rest-of-the-world are largely a matter of style, but this one is a real screamer. > What I was to question > about was how an Eiffel system could check against the specification > (short-flat form) of a class if it is already precompiled. The thread > I mentioned was this awfully long one about keeping the spec in a > seperate file or not. > > I received just one answer via email to my request. Sorry, I sort of dropped from that thread. I haven't looked at Eiffel library formats, but from the technical descriptions I think most library formats contain several compiled variants of the same code, one variant for each assertion checking level (there are about half a dozen levels). This can be optimized of course, and this is probably done; for example, the library could contain code with all assertion checking on and leave it to the linker to filter out the assertion checking code (easy enough to do when the library code is decorated). Remember Eiffel doesn't have a linker in the traditional sense; several important optimization steps (in particular inlining) are done only after pulling together all the required classes. In fact Eiffel libraries might be nothing more than decorated abstract syntax trees. Regards, Joachim -- Please don't send unsolicited ads. (The @@ is for confusing spambots.)