(no subject)
2/4/09 11:10А я тут решил встроить Lua в Wesnoth. Встраивается он интересно: API нехарактерное. Вместо объектной модели вызовов, из C надо доступаться к некоему стеку, в который надо заталкивать и извлекать параметры.
Подрублю к движку доменную модель на C++ - покажу и расскажу.
Заодно обнаружил, что кроме билда на autotools там есть билд на SCons, и развивается ещё один на cmake. Я знаю, что эти тулзы - уже года три как не новость, но сейчас на cmake переходит всё больше и больше проектов.
Например, KDE собирают на cmake. Вот статья о том, как они пытались в 2006-м сначала перейти на scons, но фич не хватало, и саппорт от коммюнити был дохлый.
Хотя лично мне уровень абстракции scons нравится больше. К тому же, я время от времени корябаю что-то на пайтоне.
Autotools с их тремя версиями и жутким синтаксисом давно пора сдохнуть. Как хорошо, что это, считай, произошло.
CDT 6.0 в Ecipse 3.5 работает. Тоже отлично билдит, и даже умеет extract method/mark occurencies.
Подрублю к движку доменную модель на C++ - покажу и расскажу.
Заодно обнаружил, что кроме билда на autotools там есть билд на SCons, и развивается ещё один на cmake. Я знаю, что эти тулзы - уже года три как не новость, но сейчас на cmake переходит всё больше и больше проектов.
Например, KDE собирают на cmake. Вот статья о том, как они пытались в 2006-м сначала перейти на scons, но фич не хватало, и саппорт от коммюнити был дохлый.
Хотя лично мне уровень абстракции scons нравится больше. К тому же, я время от времени корябаю что-то на пайтоне.
Autotools с их тремя версиями и жутким синтаксисом давно пора сдохнуть. Как хорошо, что это, считай, произошло.
CDT 6.0 в Ecipse 3.5 работает. Тоже отлично билдит, и даже умеет extract method/mark occurencies.
Tags:
(no subject)
6/4/09 10:03 (UTC)Тут надо или трусы одеть, или крестик снять.
Я, конечно, могу придумать другой механизм диспетчеризации. Сделать runtime type inference, определять, какие параметры подходят каждой реализации метода... но это решение будет хуже проблемы.
В Lua же нету даже defclass, потому что только таблицы.
(no subject)
6/4/09 11:33 (UTC)Мне кажется, что таким образом решится настолько общая задача, что это решение будет никому не нужно.
Но если очень хочется, то можно реализовать issubclass на том же метапрограммировании, приписывая инстансам классов подходящим образом сгенерированный тип, и проверяя его.
(no subject)
6/4/09 14:43 (UTC)(no subject)
6/4/09 19:25 (UTC)Так зачем тебе issubclass понадобилась?
(no subject)
7/4/09 05:40 (UTC)issubclass - чтобы корректно реализовать твой пример. Сейчас он нарушает принцип подстановки Лисков.
(no subject)
7/4/09 08:25 (UTC)Т.е. ты хочешь на место параметра подставлять класс или его подкласс? Если для подкласса нет специального правила? А кто-то так вообще делает?
Ну, собственно в упомянутом LOOP есть функции class(object), instanceof(object, class), subclassof(object, class) и superclass(class). Так что можно приниматься за дело. ;)
(no subject)
7/4/09 09:02 (UTC)За какое дело? Я пока остановился на Lua. Это зрелая технология.
(no subject)
7/4/09 09:31 (UTC)(это про принцип подстановочности)
И я про Lua. LOOP = Lua Object-Oriented Programming, если что. ;)
Хорошая, кстати, библиотека.
(no subject)
7/4/09 09:45 (UTC)Я ответил: все так делают, принцип Лисков - это базовый принцип ООП.
На LOOP посмотрим.
(no subject)
7/4/09 10:44 (UTC)