LINUX.ORG.RU

Vala & XPath

 


0

0

ничего не понимаю...

error: The name `XPatchContext' does not exist in the context of `Xml'

почему? гугль ничего не говорит.

vala 0.7.5

★★★★★

Последнее исправление: CYB3R (всего исправлений: 1)

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

В Geany. В версии 0.17 вполне неплохая поддержка Vala.. Есть браузер классов, легкое (и тупое) автодополнение.. Ну неплохо так.

Язык нравится. Очень похож на C# в плане синтаксиса.. Огромное кол-во биндингов к разным гномо- и не только либам.

Попробуй. http://live.gnome.org/Vala

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

>Попробуй. http://live.gnome.org/Vala

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

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

Транслятор уже вполне стабильный. Скорость компиляции зависит полностью от gcc, потому как время трансляции в сишный код небольшое. Документации конечно не хватает.. Точнее не хватает примеров, но можно пользоваться сишной документацией и описанием vala api valadoc.org.

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

Без отладчика.. Терпимо. Лично мне.

А новых каких то возможностей vala не представляет. Так что все упирается в glib, gtk и прочих. На valadoc.org можно посмотреть список биндингов и описаний api к ним.

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

Тебе тут лор, или ты внезапно считаешь умным писать на поделке которая даже отладчика не имеет? Несомненно для удовлетворения мазахистских наклонностей это верный путь.

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

Ешё вопрос. Как оно относится к ошибкам программиста? Ну, там, разыменованые null-а, вылезание за границы массива, пропускание исключений за мэйн.

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

Проверок границ массивов нет.. И вообще использование указателей в Vala не приветствуется..

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

>Проверок границ массивов нет..

=(((

> И вообще использование указателей в Vala не приветствуется

Я имею ввиду ссылки. Типа

SomeObject o = null; o.do_something();

Сегментейшн слетит?

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

Хм.. не. Не слетит.

Вылетает ругань в stdout:

** (process:2137): CRITICAL **: someclass_do_something: assertion `self != NULL' failed

Но программа продолжает дальше работу.

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

Да нет, в принципе ничего странного.. Классы же разворачиваются в GObject'ы. И do_something - это просто функция, ее можно вызвать всегда. При трансляции этого примера получается такой код:

_tmp0_ = NULL;
o = (_tmp0_ = NULL, (o == NULL) ? NULL : (o = (someclass_unref (o), NULL)), _tmp0_);
someclass_do_something (o);


gobject-метод вызывается для пустого класса, о чем и рапартует glib.

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

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

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

ну Vala по сути это C+GObject на котором несколько удобней писать.

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

тогда я еще был здоров... но до этого я был анонимусом и не писал...

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

нет.. это не прописано в language-spec. Это поведение glib..

А в си вообще ООП нет и любой метод - функция. Си тоже закопать?

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

Не шлангу , в плюсах за такое бьют по рукам.

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

> А в си вообще ООП нет и любой метод - функция. Си тоже закопать?

А Си не претендует на выскоуровневость. И кстати, в Си при обращении по NULL бросается исключение - SIGSEGV называется.

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

> И кстати, в Си при обращении по NULL бросается исключение - SIGSEGV называется.

Да ну? mmap(0,... MAP_FIXED,...);

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

> Не, популярность гтк среди быдлокодеров снизится. Собстно теперь понятно за что его так любят.

Ёбна, кент, семачки, жыгуль и гтк!

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

>> И кстати, в Си при обращении по NULL бросается исключение - SIGSEGV называется.

> Да ну? mmap(0,... MAP_FIXED,...);

"Мама, ну я же просил вас..." (с)

И вообще, в последних ядрах это запрещено же? :-P После того самого взлома через PulseAudio.

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

> И вообще, в последних ядрах это запрещено же? :-P После того самого взлома через PulseAudio.

Ну, не запрещено, а есть tunable, позволяющий запретить... ;)

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

отладчик есть! ставите МоноДевелоп с плагином Вала и GDB и есть и отладчик и сборщик и пэкаджи мышкой выбираете, какие линковать и т.п. Т.е. всё как у людей.

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

>> Но программа продолжает дальше работу.

>И это поведение прописано в language spec? Тогда закапывайте.

Вполне смаллаталкообразное поведене. Там тоже нуллу сообщение можно послать.

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

>И кстати, в Си при обращении по NULL бросается исключение - SIGSEGV называется.

Для GUI это хреновый вариант. Даже если при нажатии на какую-то кнопку выскочил NPE незачем завершать работу программы - там несохраненные данные могут быть. В той же жабе NPE долетает до цикла обработки сообщении который ругается в stderr и продолжает работу.

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

>Для GUI это хреновый вариант.

Мне вообще сложно представить для чего это может быть хороший вариант. В языках с поддержкой исключения вполне есть удобный механизм реагирования (NPE например) потому что "проскакивать" такое не замечая это всё таки не то что нужно.

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

>Мне вообще сложно представить для чего это может быть хороший вариант.

В языках типа ObjectiveC можно "вызывать методы" под нулевой указатель. Типа [nil message]. Это вообще специфика такая в ГУЯх - окно имеет право проигнорировать любое сообщение которое ему идет. Null это такое окно которое игнорирует все.

>В языках с поддержкой исключения вполне есть удобный механизм реагирования (NPE например) потому что "проскакивать" такое не замечая это всё таки не то что нужно.

Ну в жабе будет именно проскакивание - NPE долетит до цикла обработки сообщений и будет там убито с руганью в stderr. При этом ловить Runtime исключения типа NPE это моветон, т.к причина появления RuntimeException-a это всегда баг и с ним ничего нельзя сделать пока программист его не исправит.

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

>с ним ничего нельзя сделать пока программист его не исправит.

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

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

>А писать код, в котором возможно часть кода не выполняется в силу Nullов мне кажется самоубийственным.

Запусти любое Qt или Gtk приложение из консоли. В любой насколько угодно зрелой опенсорцной программе туда посяпятся килобайты нотификаций о том что сигнал не дошел до нужного слота. И ничего, живы пока.

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