• Haxe Починили утечку памяти в случае запуска haxe в виде демона для инкрементной компиляции. Отлично. Ждем ночного билда. Сам я так и не осилил сборку :(

Replies (30)

  • @deep, а оно надо это хаксе ?
  • @segfault, ога. перхоть сразу прошла.
  • @deep, ну как бы не верится что можно на нем написать программу и скомпилировать во флеш или жаваскрипт или жабу или крестики, разве можно ?
  • @deep, ну вот приложения либо только под флеш и винду либо только под ведроид и айфон а так чтобы и флеш и линукс и винда и .... а что такое HP ?
  • @segfault, тебе не угодишь. собирали под то, на чем планировали продавать/раздовать
  • @deep, или не смогли сделать ? как хаксе компилирует один код под разные платформы ? под линуксом OpenGL под виндой директ на флеше и в джаваскрипте вообще свои методы (ну джава может тоже OpenGl я не в курсах)
  • @segfault, а еще странно что этот haxe русский o_0
  • @segfault, haxenme.org но это все про nme. А nme!=haxe. ВОт есть и такая либа, тоже кросплатформенно haxe.org . Есть code.google.com тоже интересно. В общем если интересно почитай. если не интересно иди дальше
  • @segfault, haxe не русский
  • @deep, круто но хаскель лучшее trollface.jpg
  • @segfault, да ты с самого начала спалился. отвечал тебе чисто из любопытства что на этолт раз
  • @deep, а фул аякс на нем можно ? для веб приложения работающего с веб сервисами ? и легче ли на нем будет
  • @segfault, на нем можно все тоже, что и на чистом js. И либы чужие можно подключать. Только все строго типизировано, дженерики, енумы, классы в конце концов, интерфейсы и т.д.
  • @deep, шаблоны проектирования а потом плюнул на все и динамик каст ?
  • @segfault, не понял
  • @deep, ну почему в крестах появился динамик каст .. потому что обезьянки не могли в шаблоны
  • @segfault, не, ну тут тоже можно динамик. но типизация тут параноедальная, замыкания все типизированы, даже динамические объекты можно типизировать с помощью typedef. даже инт в флоат надо руками приводить, компилятор ругается. объекты с нулл надо ставнивать и т.д.
  • @deep, да я смотрю у него нет метапрограммирования .. значит динамики будут спасать от необходимости одинаково работать с разными типами ?
  • @deep, конечно в случае js все это только на этапе компиляции проверяется, а дальше чистый js. А вот для c++ или флеша дженерики работают, особенно если учесть, что во флеше их даже и нету :)
  • @segfault, есть макросы, которы по сути тоже метопрограммирование
  • @deep, это компиляция по условию чтоли ? другого не нашел
  • @deep, вот haxe.org вот генерация целых типов на лету haxe.org
    вот моя либа, которая реализует перегрузку операторов чисто с помощью макросов github.com
  • @segfault, ну что, haxe уже не кажется таким не нужным?
  • @deep, дя нет я смотрю его макросы, они мягко говоря странные даже после задротства с лиспом питоном и хаскелем
  • @segfault, писал их как и haxe человек мягко говоря повернутый на написании компиляторов, от того и такой стиль. Но в целом макросы довольно удобные, а главное гибкие. Плюс они еще только развиваются и в скором времени появятся улучшения и дополнения.
  • @deep, import haxe.macro.Expr;
    import haxe.macro.Context;
    class Repeat {
    @:macro public static function times( n : Expr, expr : Expr ) : Expr {
    // check that our first expression is a constant Int
    switch( n.expr ) {
    case EConst(c):
    switch( c ) {
    case CInt(n):
    // create a { } block that execute n times 'expr'
    var block = new Array();
    for( i in 0...Std.parseInt(n) )
    block.push(expr);
    return { expr : EBlock(block), pos : Context.currentPos() }
    default:
    }
    default:
    }
    Context.error("Should be an integer",n.pos);
    return null;
    }
    }

    Я так понимаю что после развертывания получается типа

    var block = new Array();
    for( i in 0...Std.parseInt(n) )
    block.push(expr);
    return { expr : EBlock(block), pos : Context.currentPos()
    А коллизии имен с block и i после развертывания не будет ? ибо тупая подстановка же
  • @segfault, нет. после развертывания будет
    {
    x++;
    x++;
    x++;
    x++;
    x++; // 5 раз
    }
  • @deep, эффективненько
  • @segfault, да. мне тоже нравится