LINUX.ORG.RU

Вышла новая версия Java-компилятора Jikes от IBM.


0

0

Правда, сама новость слегка с бородой, но лучше поздно, чем никогда.

1.21 -- bugfix-релиз:

A regression in 1.20 that caused us to complain about supposedly invalid .class files has been rectified. Some minor error message improvements have been made.

1.20 -- введена частичная поддержка особенностей Java 1.5, а именно:

Hexadecimal floating point literals, documented in java.lang.Float.valueOf(String) and similar to the C99 language. For example, 0x1.8p+0d is now the same as 1.5d.

The enhanced loop of JSR 201 is (mostly) supported. The only non-specified behavior is a compiler hack to allow using a non-Object variable when looping over an iterator, since generic iterators are not yet supported

Компилятор уже "узнаёт" generics, annotations, varargs, enumerations, static imports, но ещё не поддерживает их в полной мере. Будем ждать.

Ссылки по теме:

http://www-124.ibm.com/developerworks...

http://www-124.ibm.com/developerworks...

★★★★★

Проверено: Demetrio ()

Ответ на: комментарий от anonymous

Имеет смысл сравнивать либо jet-gcj (компиляция в native-код) либо jikes-javac-gcj (компиляция в байткод). По сравнению с javac (во второй категории) -- действительно лучше. Во-первых, быстрее (jikes написан на C); во-вторых -- предуперждения по семантике и стилю кода выдаёт (ключ +P).

Могу ответить короче: поставь и попробуй.

Bass ★★★★★
() автор топика
Ответ на: комментарий от Bass

Иногда jikes валится, потому что считает, что обнаружил семантическую ошибку, иногда повторный запуск помогает, а иногда нет (-:

anonymous
()
Ответ на: комментарий от anonymous

Если валится -- значит, действительно ошибка, только он не смог грамотно о ней сообщить. Обычно вываливается с segmentation fault в случае, когда чего-то не хватает в classpath (jikes более тщательно, чем javac, анализирует зависимости между классами). В любом случае, плюсов больше, чем минусов.

Bass ★★★★★
() автор топика
Ответ на: комментарий от Bass

Нет, сегфолта я в нём ещё ни разу не видел, а вот левых воплей много.

anonymous
()

писали бы саны виртуальную машину для явы на голом c а не на плюсах, тоже бы всё на порядок быстрее работало

swar0g ★★★★
()
Ответ на: комментарий от swar0g

2swar0g * (*) (07.07.2004 17:15:59):

> писали бы саны виртуальную машину для явы на голом c а не на плюсах,
> тоже бы всё на порядок быстрее работало

Нет, лучше на caml'е ;-)

anonymous
()
Ответ на: комментарий от Rolex

Скажите, а есть ли реальное увеличение скорости работы программ написаных на Java от компиляции их помощью Jikes или Jet в исполняемый файл?

anonymous
()
Ответ на: комментарий от Bass

>К примеру, если NetBeans откомпилировать с помощью Jet не пробывал, но идеа стала много быстрее

anonymous
()
Ответ на: комментарий от Robotron

Не забывай, что модель работы с памятью (gc etc.) остаётся той же и при компиляции в native-код. Ты можешь уменьшить время запуска, но *качественного* улучшения производительности не будет. Можешь использовать в C++ auto_ptr вместо new/delete -- тоже потеряешь в производительности, хотя код-то native!

Bass ★★★★★
() автор топика
Ответ на: комментарий от Bass

> Eclipse IDE, собранный Jikes'ом, бегает вроде быстрее.

LOL! И чем же это байт-код производимый Jikes отличается от байт-кода сгенерированного javac?

Cantor ★★
()
Ответ на: комментарий от Cantor

>LOL! И чем же это байт-код производимый Jikes отличается от байт-кода сгенерированного javac?<br>

Т.е. Jikes это не компилятор на подобии Jet, а всего лишь реализация IBM утилиты javac?

Robotron
()
Ответ на: комментарий от anonymous

Как минимум GC от caml-а жабе не помешал бы.

anonymous
()
Ответ на: комментарий от Bass

>>Можешь использовать в C++ auto_ptr вместо new/delete -- тоже потеряешь в
>>производительности, хотя код-то native!

Не понял, а чем auto_ptr отличаются от delete? Выход из области видимости - автовызов delete. Ничем не отличается. auto_ptr не делает отложеной чистки памяти :) Да и пишется этот auto_ptr руками за 3 минуты

Eugeny_Balakhonov ★★
()
Ответ на: комментарий от anonymous

Да помню в версии jikes примерно 1.16-1.18 ( я тогда был его поклонником) кроме частых падений были еще ошибки генерации байт-кода (в ряде случаев inner classes не линковались JVM в момент запуска - LinkageError). Получив такое однажды на рабочем сервере я навсегда остался с javac

fmike
()
Ответ на: комментарий от anonymous

> зависит от программ. некоторые вещи jet делает неузнаваемыми :)

скажите а сколько проценто ускорения получиться для моей любимой програмы FreeGet????

anonymous
()
Ответ на: комментарий от anonymous

>Нет, лучше на caml'е ;-)

Нет, лучше на Fortran'е!

anonymous
()
Ответ на: комментарий от Bass

>забывай, что модель работы с памятью (gc etc.) остаётся той же и при

Ай малацца! Более того - теоретически возможно уменьшение быстродействия. Однако это в пределах процентов. Когда начинает активно работать GC - производительность падает на порядки!

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.