>Paul Fisher wrote:
>
>>
>> Why not just use require/ensure in the normal Kiev manner and use sed
>> to augment the source if Classpath is being compiled with a normal
>> java compiler?
>
>But please, release version without the debug checks.
>I don't think that this pre/post consdition checks are needed with
>javac. We can just say that you need kiev to compile debug version by
>yourself - after all, not everybody needs/wants to recompile core
>library !!
>
>Next thing is that classpath can distribute kiev as 'javac' of choice.
>For bootstrapping unoptimized version of core lib would be enough, and
>then user could build whatever he wants with kiev.


I fully agree.

>Think twice about using asserts inside the method code, especially in
>Debug.assert(cond, mess)
>form. This will cause major overhead in javac compiled version. Maybe
>something like
>/*ASSERT x>=0 :: message */
>will be better (ignored by javac, would be compiled in by kiev if assert
>flag is turned on, and is easy to read in code, in fact more readable
>than Debug.assert(...) */

Why not just

/*{ assert(...); */ or /*{ Debug.assert(...);  // if you do not wish import
Debug class */

? But if you'll find /*ASSERT ... */ to be more convinient or
more readable - it's half an hour to add this syntax.

>Next thing - maybe you can introduce require/insure/invariant inside
>javadoc generated code. Do it either by adding @ tag and writing doclet
>for it, or special parser that would hilite it in some way (second
>option would also allow std javadoc to generate this checks in plain
>text).

I think, just a @ tag will not help, since kiev adds a lot of new
syntax, javadoc simply will not parse the sources, if they aren't
written in compatible mode (and this is usually not possible
with most of kiev's features).

And writing somthing like kievdoc utility will take some time...
I should write it for shure, but there may be other more prioritive
tasks...

>BTW, I suppose that we will never be able to get java compatible mark
>from sun, if we would use enhanced compiler as std distribution one. It
>might be better to provide it in separate pack. I think about something
>similar to sun's runtime vs JDK, but our 'JDK' would just consist of
>additional .jar file.
>Of course both of them available in both debug and non-debug versions.

I don't know... Kaffe uses pizza compiler as standart (it do not compiler
with javac - be shure). How are they going to get "compatible mark"?

Also, I do not ask you to make kiev a standard compiler. Just keep
your work going, and if you'll find that kiev gives too many advantages -
use it as standard compiler. But it's not time to talk about it now.
More then that. Please, keep going with your current work.
Let's back to the posibility of *intensive* usage of kiev compiler
when you finish current tasks. Just try to add constraints
when you writing new classes, or heavily debug old classes - I'm
shure you'll see advantages. Nothing more, please ;-)



Reply via email to