[ANN] eipp - Erlang C++ Language Binding
От: Mamut Швеция http://dmitriid.com
Дата: 17.05.07 07:59
Оценка: 2 (1)
Из рассылки по Эрлангу:

Я рад объявить о "eipp": erlang bindings for c++. Мой работодатель позволил мне опубликовать исходные коды этой библиотеки, за что спасибо http://www.norscan.com .

Целью eipp является предоставление простого, безопасного и эффективного интерфейса к эрланговскому External Term Format из c++. Работа все еще ведется (см. http://code.google.com/p/eipp/), но то, что уже есть, похоже, уже полезно в работе. Пример работающего кода лучше, чем описание в тысячу слов, поэтому ниже я привел полноценный пример порта. Юнит тесты тоже являются неплохими примерами работы, во всяком случае, пока я не создал нормальныю документацию

#include <iostream>
#include "eipp.h"
#include "eipp_packet.h"

using namespace eipp;
using namespace std;

int main()
{
    while(1)
    {
        atom_t cmd; // тип atom... ну, представьте себе std::string
        et data;    // общий тип "erlang term"

        // ожидаем кортеж в виде {CmdAtom, Data}
        untuple(cmd,data)=binary_to_term(receive4(cin));
       
        // Пока поддерживается только одна команда...
        if(cmd=="times2")
        {
            int num=data; // "et" может быть приведено ко множеству типов
            num*=2;
            send4(cout,term_to_binary(tuple("ok",num)));
        }
    }
}



dmitriid.comGitHubLinkedIn
Re: [ANN] eipp - Erlang C++ Language Binding
От: Курилка Россия http://kirya.narod.ru/
Дата: 17.05.07 08:02
Оценка:
Здравствуйте, Mamut, Вы писали:

M>Из рассылки по Эрлангу:


[skipped]

Мне интересно — чтож там лучше чем erl_interface? И в примере никакой "плюсовости"
Re[2]: [ANN] eipp - Erlang C++ Language Binding
От: Mamut Швеция http://dmitriid.com
Дата: 17.05.07 08:09
Оценка:
К>[skipped]

К>Мне интересно — чтож там лучше чем erl_interface? И в примере никакой "плюсовости"


Это задавай вопрос в рассылке Я просто "что вижу то пою"

Интересно, что для для того, чтобы собрать эту библиотеку, нуже ruby (см. http://eipp.googlecode.com/svn/trunk/ — eipp.h.rubygen и Makefile)

Возможно, упор делается на то, что не надо писать многого, когда можно писать мало:
erl_interface
ETERM *tuplep;

tuplep = erl_decode(buf);

if (strncmp(ERL_ATOM_PTR(fnp), "foo", 3) == 0) {
      res = foo(ERL_INT_VALUE(argp));
    } else if (strncmp(ERL_ATOM_PTR(fnp), "bar", 3) == 0) {
      res = bar(ERL_INT_VALUE(argp));
    }

/**/

intp = erl_mk_int(res); // получаем int


в eipp это все выглядит проще.

Хотя Я просто ни то ни другое за вымя не щупал


dmitriid.comGitHubLinkedIn
Re[3]: [ANN] eipp - Erlang C++ Language Binding
От: Курилка Россия http://kirya.narod.ru/
Дата: 17.05.07 08:27
Оценка:
Здравствуйте, Mamut, Вы писали:

M>Это задавай вопрос в рассылке Я просто "что вижу то пою"


Мопед не мой, я просто объяву разместил?

M>в eipp это все выглядит проще.


M>Хотя Я просто ни то ни другое за вымя не щупал


Я тоже, просто описание какое-то "никакое", в чём бенефиты плохо понятно, а качать и ещё руби ставить чтоб посмотреть — лень, если честно.
Re[3]: [ANN] eipp - Erlang C++ Language Binding
От: gandalfgrey  
Дата: 17.05.07 13:23
Оценка:
Здравствуйте, Mamut, Вы писали:

M>Возможно, упор делается на то, что не надо писать многого, когда можно писать мало:


Зараззза ! Как забрать с googlecode сабвершеном хоть что-то забрать ? Не дается ! Причем ни на один проект
Может, оно регистрацию жаждет ?

А освобождение термов по free_term() там автоматическое ?
Re[4]: [ANN] eipp - Erlang C++ Language Binding
От: Mamut Швеция http://dmitriid.com
Дата: 17.05.07 15:17
Оценка:
M>>Возможно, упор делается на то, что не надо писать многого, когда можно писать мало:

G>Зараззза ! Как забрать с googlecode сабвершеном хоть что-то забрать ? Не дается ! Причем ни на один проект

G>Может, оно регистрацию жаждет ?

http://code.google.com/p/eipp/source

# Non-members may check out a read-only working copy anonymously over HTTP.
svn checkout http://eipp.googlecode.com/svn/trunk/ eipp




У меня чекаутнулось нормально

G>А освобождение термов по free_term() там автоматическое ?


Сложно сказать Я особо в код не смотрел...

http://files.rsdn.ru/9088/eipp.zip

Здесь только что чекаутнутый eipp со сгенеренным eipp.h (в оригинале его нет, надо make прогонять)


dmitriid.comGitHubLinkedIn
Re[5]: [ANN] eipp - Erlang C++ Language Binding
От: gandalfgrey  
Дата: 18.05.07 05:59
Оценка:
Здравствуйте, Mamut, Вы писали:

M>

M># Non-members may check out a read-only working copy anonymously over HTTP.
M>svn checkout http://eipp.googlecode.com/svn/trunk/ eipp

Оттуда и пытался. Но — не выходит каменный цветок !

M>У меня чекаутнулось нормально

У меня с гуглкода вообще ничего не берется. Почему, не знаю

M>http://files.rsdn.ru/9088/eipp.zip

M>Здесь только что чекаутнутый eipp со сгенеренным eipp.h (в оригинале его нет, надо make прогонять)
Гран мерси
Re[4]: [ANN] eipp - Erlang C++ Language Binding
От: Курилка Россия http://kirya.narod.ru/
Дата: 18.05.07 06:05
Оценка:
Здравствуйте, gandalfgrey, Вы писали:

G>Здравствуйте, Mamut, Вы писали:


M>>Возможно, упор делается на то, что не надо писать многого, когда можно писать мало:


G>А освобождение термов по free_term() там автоматическое ?


Если ты вдруг на рассылку не подписан, глянь здесь
Re[5]: [ANN] eipp - Erlang C++ Language Binding
От: gandalfgrey  
Дата: 18.05.07 08:41
Оценка:
Здравствуйте, Курилка, Вы писали:

К>Если ты вдруг на рассылку не подписан, глянь здесь

Подписан, но как-то пропустил
Там используются boost::shared_ptr, так что можно полагаться на автоматическое освобождение ( надеюсь )
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.