Чтобы добавлять сообщения и комментарии, .

@drvlat:
drvlat

Рабочая заметка. Я просто оставлю это здесь.
Если Haxe (3.2.0) при попытке запустить в NekoVM на маке проект с Nape – ругается на uncaught exception, в xml проекта надо добавить:

<haxedef name="no-inline" if="neko" />
<haxedef name="dce=full" if="neko" />

Ошибка связана с тем, что проект слишком большой для неки.
Есть одно "но". После полного DCE и выключения инлайнов — он все равно может остаться слишком большим.
В некоторых случаях придется делать lime test mac и ждать компиляции, вместо lime test neko.

@drvlat:
drvlat

Оу йес. Я наконец-то сделал это. Поднял на крайней OS X полноценный стек haxe + flixel + neko + lime + openfl + hxcpp + работающий flixel-ui. Так как в смутном мире haxe традиционно стоит разброд и шатания (версия X библиотеки Y, не работает с компилятором версии Z)— задача была слегка нетривиальной.

@nibb13:
nibb13

Написал (ну, как "написал", украл и тяжело модифицировал) свой первый полноэкранный GLSL шейдер на заказ на Upwork. Почти физически ощущаю пальцами кусок хлеба, который вырвал из холодеющих рук голодного @lurker'а.

momingmy.tk

@CaufMAN:
CaufMAN

Вопросы хаксоводам:
1. Действительно ли код универсален при компиляции в любой из доступных яп (прям написал один раз и откомпилял в десяток целевых яп разом), или все же приходится под разные целевые яп разные хаки/велосипеды/костыли использовать?
2. Насколько реально осилить его при реальном опыте прогпаммирования только на питоне?

@OCTAGRAM:
OCTAGRAM

Повтыкав недельку в код, который получается, если скомпилировать haXe через C++ в ARM, я уже могу нормально смотреть на эти инструкции. Благодаря неявной метаинформации haXe код читаю пока ещё не как открытую книгу, но всё же на удивление много информации получается извлечь. Собственно, самый интересный метод — это hx.Object.__Field, который в каждом классе переопределяется. Находить этот метод можно по VMT. Смещения в VMT я вычислил, вглядевшись в hx/Object.h и отметив там каждый virtual. Дальше у любого другого класса можно находить все те же методы, но __Field — самый интерсный. Если смотреть его реализацию, он сравнивает свой аргумент со всем, что есть в классе, и при совпадении создаёт завёрнутый в Dynamic объект. Если это было поле, он вызывает конструктор, который завернёт число, строку или объект в Dynamic, и так можно понять, по какому смещению и какого типа находится поле. Каждый метод haXe соответствует собственно его реализации в C++, а также есть невиртуальная обёртка, которая на вход получает аргументы типа Dynamic&, и результат у неё тоже Dynamic. В __Field оно идёт подряд — memcmp с названием методом, и если да, то обёртка заворачивается в Dynamic. Смотрим, что внутри обёртки, а там, допустим, в первых строках:

LDR.W R2, [R0,#0xEC]Это значит, что реализация метода будет по смещению EC. Так, прочесав реализацию __Field, можно понять структуру и экземпляров, и VMT. Кроме того, в Dynamic–обёртках для методов делается приведение типов к Dynamic и обратно, и так можно определить типы аргументов и результата. Тип аргумента–объекта видно по вызовам __dynamic_cast. RTTI G++ не богат, но там есть замангленное название класса, а по обратной ссылке (Xref) можно от RTTI перейти к VMT, в VMT найти __Field и тоже проименовать все функции. Таким образом, когда читаешь код метода, можно понять, с объектами какого типа он работает и какие методы аргументов косвенно вызываются. А вот с полями и результатами такое не получается. Надо полагать, в обратном направлении любой объект к hx.Object перед завёртыванием в Dynamic приводится без RTTI, поэтому нет __dynamic_cast, и его точный тип статическим анализом не определить так просто.

IDA грешит тем, что не всегда в теле __Field нормально определяет адреса названий методов и Dynamic–обёрток. Смотришь, а там тупо большие числа, что странно. Ситуацию усугубляет то, что смещения везде относительные. Во многих местах IDA эти относительные смещения нормально просчитывает, но в __Field очень часто почему–то — нет. Лечится Ctrl+R, "_GLOBAL_OFFSET_TABLE_", Enter на каждом странном большом числе.

@OCTAGRAM:
OCTAGRAM

OpenFL Setup Windows
In order to build Neko applications for Windows, no further dependencies are required. However, in order to build C++ applications for Windows, you must have a compatible version of Visual Studio C++ installed on your system.
Currently, OpenFL requires a version of Visual Studio capable of targeting Win32. For newer versions of Visual Studio, this requires the "Windows Desktop" version of the software.
Что у них вместо мозгов? Выбирать компилятор от Microsoft? Чем они вообще думали? У меня уже есть компилятор C++, интегрированный с компилятором Ады и есть совместимый с Delphi C++ Builder. Зачем кто–то тащит ничем не интересный компилятор от Microsoft?

Это уже напоминает Яндекс.Бар, производитель которого доплачивает тем, кто спамит этим УГ в своих программах.

You can only target Windows from a Windows system right now
Ну ещё бы. Думать же надо было

@IPShuvaev:
IPShuvaev

При попытке удаления обработчика события, который не был назначен, получаем сегфолт.
```
stage.removeEventListener(KeyboardEvent.KEY_UP, handler);
```

@IPShuvaev:
IPShuvaev

Сегфолты, сегфолты, сегфолты

@deep:
deep

После того, что генерит il2cpp хаксовый генератор милый малый

@IPShuvaev:
IPShuvaev

lpaste.net Ленивый список Фиббоначи на Haxe. Еще бы функции можно было объявлять как лямбды в c#/java, было бы покрасивше.

@nibb13:
nibb13

Незаметно доползли до 0.1.2-alpha. Если кому интересно пощупать, оно доступно тут: momingmy.tk

@deep, пока в сторону mxml не двигаюсь, не до него в данный момент. Но в "когда-нибудь" присутствует.

@deep:
deep

Разчехлил все свои старые и новые библиотеки и взялся все приводить в порядок. Ждите скоро bindx новый (в очередной раз), скоро глядишь и hml (mxml для хакса) зарелижу. Правда пока без биндингов будет. Ну или таки впилю ))) Параллельно выкатил пару своих наработок в отдельную либу, но там еще куча легаси кода и ноль тестов.

@nibb13:
nibb13

В stablexui (GUI-либа хэксовая) нет такого нужного виджета как классический TreeView. День писанины и вуаля! Осталось только отладить и отрефакторить.

@nibb13:
nibb13

Сказал бы мне кто ещё пять лет назад, что я буду писать собственный RAD — плюнул бы в рожу!

@Zaphod:
Zaphod

Опять хочу все бросить.

@deep:
deep

Вчера взялся обновлять try-haxe до адекватной версии хакса, оказалось что codeMirror не обновлялся там с мая 2013 года, обновление выявило полностью невалидный код. Из всех вариантов решил откатить CM обратно и попровить только версию компилятора

@deep:
deep

Haxe плагин собирается на ура, но вот компилить haxe проекты на отрез перестал. В plugin.xml прописан <compiler implementation="com.intellij.plugins.haxe.compilation.HaxeCompiler"/> но ни один метод в этом классе не вызывается ( В офф доке вопрос компиляции вообще не раскрыт confluence.jetbrains.com Пичаль

@nibb13:
nibb13

Это HaXe + nekovm + lime (и openfl целиком) на Asus TF101 (Android 4.0.3). Флэш и HTML5 таргеты собираются без видимых проблем.

Fuck, yeah! Я почти год эту связку пытался собрать под ведроидом хоть в каком-то виде. Недо-тутор напишу, ждите на haxe.ru

@nibb13:
nibb13

Сбацали тут игрушку на остро-политическую тему.
Собсно, вопрос (даже, просьба, скорее) к неспящим камрадам с мобильными девайсами: не могли бы вы потестить версию HTML5 и сказать что работает а что — нет? Особо интересуют ябло-устройства, т.к. хотя бы один ведроид дома есть.

Линки:

640x480: maidan.momingmy.tk
Во всё окно браузера: maidan.momingmy.tk

Флэш билд, на всякий случай, тут: maidan.momingmy.tk

Нативный Андроид-билд будет завтра, если кому интересно.
Нативный виндовый тоже, если он кому-то вообще нужен.
Нативных MacOS и iOS скорей всего не будет совсем, извините.
Линуксоиды — серьёзные ребята, им не до игрушек. :P

Ах, да! Слава Україні!

@FIZZERS:
FIZZERS

Немного нашумевший проект русского (Укр.?) программиста AS3Boyan, среда разработки на Haxe была упомянута на haxe-foundation.org — почти целый абзац — неплохо.

@FIZZERS:
FIZZERS

Нашёл офигенный порт офигенной либы pdiff: bitbucket.org

@FIZZERS:
FIZZERS

*Jabber
Кстати, если кто-то ещё не знает. Их YouTrack имеет свой JID (Jabber ID) и с ним можно поговорить.
1. Удобно отслеживать изменения;
2. Удобно комментировать таски;
3. Он вообще умный и понимает команды разные.
jetbrainstracker@gmail.com <mailto:jetbrainstracker@gmail.com>

@FIZZERS:
FIZZERS

Господин Коротков сотворил пул-реквест в основную репу плагина. Ок, движуха какая-никакая есть. github.com

@FIZZERS:
FIZZERS

Товарищи, а на чём вы юнит-тесты творите? Я нашёл в haxelib два варианта: github.com и github.com . Что выбрать?

@FIZZERS:
FIZZERS

Проблемы с плагином продолжаются: s22.postimg.org
Абсолютно полностью и безвозвратно убежала конкретика из выдачи компилятора.

@FIZZERS:
FIZZERS

plugin updated with bug-fixes!

@FIZZERS:
FIZZERS

Товарищи, помогите, пожалуйста, решить проблему — не ставится OpenFL.


fzzr:~ ak$ haxelib install openfl
Downloading openfl-1,0,6.zip...
Download complete : 344919 bytes in 0.5s (622KB/s)
...
Current version is now 1.0.6
Done
fzzr:~ ak$ haxelib run openfl setup
Downloading openfl-tools-1,0,10.zip...
Download complete : 21205379 bytes in 66.6s (310.7KB/s)
...
Current version is now 1.0.10
Done
Called from flash/utils/ByteArray.hx line 713
Called from flash/Lib.hx line 233
Called from flash/Lib.hx line 308
Called from flash/Lib.hx line 180
Called from /usr/lib/haxe/std/neko/Lib.hx line 30
Uncaught exception — load.c(237) : Failed to load library
(....../libs/openfl-tools/1,0,10//ndll/Mac64/nme.ndll: mach-o, but wrong architecture)


Смотрел на github.com , всё как сказано ( gist.github.com ) сделал, суть беды вроде понимаю, но КАК это всё сделать правильно?

@Tarakan4ik:
Tarakan4ik

Рисую кружочки :) Плавно подбираюсь к анимации. It's a magic!

@FIZZERS:
FIZZERS

Я даже не надеялся на результат когда попросил поддержку поставить мне на шаред-хостинг NekoVM + Mod_neko. Теперь хвалюсь:
[fizzer@v00 ~]$ neko
NekoVM 1.8.1 (c)2005-2009 Motion-Twin
Usage : neko <file>

@deep:
deep

Саша взялся за старое haxe.ru

@deep:
deep

Прошла вторая онлайн конференция. Узнал много интересного. Большая часть видео уже есть тут youtube.com

@deep:
deep

только в h2d я увидил максимально простую и понятную двух этапную систему валидации. дающую правильный результат для авторесайз контейнеров.

@deep:
deep

Завтра вторая онлайн конференция по Haxe среди русскоязычных разработчиков. Подробности тут haxe.ru

@deep:
deep

Портировал AS3 либу https://code.google.com/p/bezier/ на Haxe. На гитхабе все тесты плюс немного моих github.com Можно установить через haxelib install bezier

@deep:
deep

Совсем забыл, мы затеяли вторую онлайн конференцию. Приходите haxe.ru

@deep:
deep

IDEA сказала, что не может найти стд, SL2 сказал что нет доступа из консоли все собирается тем же hxml файлом наотлично )

@deep:
deep

Очень редко стречаю использование необязательных аргументов в haxe. А особенно их интересное свойство. например

function ls(?path:String, ?patps:Array<String>);

который можно вызвать

ls("dirName);
ls("dirName", dirsList);
и даже
ls(dirsList); // без указания нулл для первого параметра.

по сути это такая перегрузка оператора в пределах одного оператора. Николас так часто делает, когда ожидается один элемент или массив элементов. Или когда ожидается переменных разных типов gotoAndPlay(?frame:Int, ?frameName:String)

@deep:
deep

Провели конференцию, в целом доволен youtube.com (4-го видео пока нет, но скоро будет)

@deep:
deep

если вы собираете swc либу с nape внутри. то возьмите от сюда доп флаги, чтобы все работало github.com

@deep:
deep

Все, кто еще сомневается делать ли swc из флеша, опасаясь кучи лишних публичных полей в автокомплите. Это в прошлом. Добавляете -D swf-protected и все приватные поля после компиляции становяться протектед. Плюс при компиляции в swc появляется класс haxe с методом initSwc(mc:flash.display.MovieClip):void; который надо вызвать как можно раньше, чтобы сработала вся магия хакса
FАчтобы в swc упали все нужные вам классы добавляем компилятору --macro include('package.name').

А еще, если вам надо чтобы сработали брейкпоинты в haxe проекте из swc запущенном в тойже ide нужно добавить компилятору -D fdb -debug. Проверенно в идее и в fd, везде работает дебаг, переход в haxe методы и брейкпоинты в нем