LINUX.ORG.RU

Вышел Erlang/OTP R15B

 , ,


0

0

Вышла новая версия языка программирования общего назначения Erlang/OTP — R15B.

В этой версии включены следующие интересные новшества:

  • Вывод имени файла и номера строки в трассировке исключений. Эта информация будет выведена в отформатированной форме в командной строке оболочки, а также использована в отчетах сбоя. Поиск ошибок будет проще.
  • Интерфейс драйверов был изменен для поддержки 64 бит. Главным образом для этого, был изменен тип ErlDrvEntry, возвращаемый коллбеками 'call' и 'control'.
  • Этот релиз впервые поддерживает 64 битную версию Windows.
  • Обновлены CommonTest hooks.
  • Включена новая графическая утилита в приложениe observer, интегрирующая pman, etop, appmon и tv. Эта утилита также включает функцию более простой активации трассировки.
  • Дистрибутив Erlang теперь может работать с более новой реализацией SSL.


Исходный код доступен по ссылке:
http://www.erlang.org/download/otp_src_R15B.tar.gz

>>> Подробности

★★

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

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

это меня наводит на грустные мысли о невостребованости маргинальных язычков.

Второй раз говорю. Прочитайчто именно показывает tiobe index и напряги мозг что это обозначает. То что там logo в 20 о чем тебе говорит? Что на логе пишут тру энтерпрайз?

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

Да - походу многие дети умнее таких взрослых как ты.

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

С++ конечно не идеален

Совершенно точно неидеален, C лучше и быстрее.

но работа идет в нужном направлении

Тормоз, до сих пор не дотягивает до C

и популярность его растет

Среди школоты

вот новый стандарт недавно вышел

Бесполезная трата ценного времени, лучше бы на C потратили бы.

А такие детские проблемы роста, как отсутсвие порта под win64, там отсутствуют еще с прошлого века.

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

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

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

В случае с binary (а именно в них предполагается размещать десятки мегабайт) там используется shmem и ничего не копируется никуда. Только снаружи это не выглядит, как жонглирование указателями и нет боязни, что кто-то что-то похерит.

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

В случае с binary (а именно в них предполагается размещать десятки мегабайт) там используется shmem и ничего не копируется никуда.

А если тебе таки нужно поменять пару байт, что делается?

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

Вот подтверждение ваших слов о Java. Эти люди переписали Java коллекции под себя.

Естественно. С их 100kтранзакций в секунду нарываться на типичные решения в виде synchronized методов или клонов коллекций на каждом шагу - ни памяти ни процессора не хватит. О чем я и говорю - этот подход там описанный в отлаженном работающем виде - весьма нетривиален для реализации - это не жспшки выводящие результаты из гибернейта писать.

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

и посчитай сколько раз клонируется список объектов

А это ничего, что можно сделать свой класс «иммутабельный список» и возвращать его?

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

А это ничего, что можно сделать свой класс «иммутабельный список» и возвращать его?

А как в жабе к примеру сделать иммутабельный список содержащий все элементы старого плюс еще один?

EvilBlueBeaver
()
Ответ на: комментарий от anonymous

Я не помню где я это читал :) в принципе могу и ошибаться, но знатоки меня поправят.

EvilBlueBeaver
()
Ответ на: комментарий от no-dashi

можно сделать свой класс «иммутабельный список» и возвращать его?

дада, пусть народ снаружи порадуется ))

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

нельзя понять в какой последовательности они попадут в очередь сообщений.

А зачем понимать? Если ты написал _А_синхронное приложение, значит тебе ВСЁ РАВНО в каком порядке. А если порядок важен, пиши синхронное, делов-то!

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

это ты не мне отвечай, а анониму, который делал вброс.

Deleted
()
Ответ на: комментарий от no-dashi

А это ничего, что можно сделать свой класс «иммутабельный список» и возвращать его?

Да конечно можно! Потом фильтрование in-place заменить в фильтрование в результат, Потом посчиттать количество таких результатов - ввести ленивые структуры... поплакать про отсутствие нормальных лямбд и tco, понадеятся что скоро появиться....и т.д. что относится традиционно к типичной функциональщине. Я так и делал. В том то и поинт. Если пытаться писать на обычных жабьих фреймворках высоконагруженный сервис - то первое что придется сделать - не писать его на обычных жабьих фреймворках. У меня в старой конторе в проектах импорты из java.util уже хрен знает сколько лет не встречаются.

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

А как в жабе к примеру сделать иммутабельный список содержащий все элементы старого плюс еще один?

Как везде:)

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

в старой конторе в проектах импорты из java.util уже хрен знает сколько лет не встречаются.

А за что тебя выгнали с работы?

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

эти понятия антагонистичны.

Это расхожее заблуждение, в основном, от незнание .NET-а, что вполне простительно местным троллям.

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

А еще - луа как то не вштырила :( Не моё видимо ... Кстати - на пистоне вижу приложения среднего размера, просто скриптами их назвать уже нельзя. И хоть его тут ругают - но вот поди ж ты - исключения в питоне - лёгкие и ничего не стоят. Можно каждый open в них «одевать» (чем я и «злоупотребляю»).

А вообще - хорошо что есть море языков, есть шанс найти тот который и станет своим и родным :)

anonymous
()
Ответ на: комментарий от malbolge

эти понятия антагонистичны.

Это расхожее заблуждение, в основном, от незнание .NET-а

Дооо

Вообще MS скоро мартышек опять кинет :) Они для 8-ки готовят кое чего другое :) Массажируй артерии - скоро резать будешь :)

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

С++

детские проблемы роста

И тут malbolge задумался о возрасте анонимуса...

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

Это расхожее заблуждение,

Не смей врать!

в основном, от незнание .NET-а,

Согласен, кто не знает, тот и делает вбросы о высоких нагрузках!

что вполне простительно местным троллям.

Похоже ты и есть местный тролль

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

Можно каждый open в них «одевать»

Однажды я так и сделал. :) Пришлось это говно на выходе исправлять-раздевать.

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

ерланг не нужен

тебе зачем мозг, если ты им не пользуешься?

anonymous
()
Ответ на: комментарий от malbolge

Можно каждый open в них «одевать»

Однажды я так и сделал. :) Пришлось это говно на выходе исправлять-раздевать.

злостный Get The Facts

for i in xrange(1000000):
    try:
        open('test').close()
    except:
        pass
$ time python t.py

real    0m4.599s
user    0m2.987s
sys     0m1.519s
for i in xrange(1000000):
    open('test').close()
$ time python t2.py

real    0m4.500s
user    0m2.932s
sys     0m1.469s

это при том, что никакой реальной полезности внутри try/except не происходит. в реале, расходами на try/except можно вообще пренебречь.

anonymous
()
Ответ на: комментарий от malbolge

Я вообще не за производительность вел речь

ты не всосал, для чего и как использовать exceptions и тупо понарасставлял try/except где только можно? я больше не буду никому говорить, что try/except ничено не стоит.

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

Можно каждый open в них «одевать» (чем я и «злоупотребляю»).
ты не всосал, для чего и как использовать exceptions и тупо понарасставлял try/except где только можно?

я «злоупотребляю»
не всосал

не всосал

Когда всосешь, то перестанешь срать в каменты, и задашь наконец-то вопрос:

Однажды я так и сделал.

А что там у тебя было?

И я тогда тебе расскажу, когда злоупотрблять хорошо, а когда - плохо.

А сейчас наш с тобой диалог просто-таки заставляет меня сравнивать тебя с яйцом, которое учит курицу, да еще и в виде оффтопа.

malbolge ★★
()

Я срусь с вас, пацаны. Который день наблюдаю за тредом и херею.

Думал, что это только в этом треде так, поэтому посмотрел другие — а там такая же нуяхй происходит.

Люди, перед тем, как говорить всякую хрень о том, чего не юзал никогда может нужно подумать хоть немного? Я сперва тоже думал, что Эрланг — какой-то бред сивой кобылы. Вот как же так, что нельзя дважды присвоить одному имени значение?

Однако уже через неделю восхищался всем этим. Потом, к сожалению, столкнулся с проблемами некоторыми, которые выливались в десятки вложенных case'ов, но потом заюзал let it crash и попёрло. Стал просто писать только «наилучший» вариант развития событий (т.е. никаких ошибок, ничего), а потом просто ловить эксепшены, что пошло не так.

Это же здорово, когда ты пишешь логику приложения, не задумываясь о том, чтобы обрамлять каждые две строки в try/catch, дабы оно всё не покрешилось изза того, что 1 бит оперативки пожелал испортиться. Пусть крешится — запишется в логи и я потом посмотрю, что таки да, случилась проблема и мы потеряли пару килобаксов. Но ведь могло быть и иначе — мы бы пропустили эту мелочь и она бы покрешила абсолютно всё приложение. Ну и потом бы выяснилось, что потеряли не кило, а мегабаксы.

Каждый язык предназначен для своих целей. И Эрланг решает некоторые цели. Мне, например, удобно на нём писать многопользовательские серверочки. И мне не особо важно, что на %languagename% мои серверочки работали бы быстрее. Мне вот нравится, какое вам до этого дело то?

Если вам что-то не нравится — просто не используйте/не смотрите/не обсуждайте. Но нет, нужно срать тут и кидаться говном.

Я использую python (django), Erlang, Flex/ActionScript3, C# (XNA), javascript (html/css/web). Почему я не срусь сам с собой? Или я говно?

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

Хоть одно трезвое сообщение в треде... Народ, вы хоть документацию на wikipedia почитайте, прежде чем язык обсирать.

Для тех кто в танке: erlang разрабатываля как язык для создания телекоммуникационных платформ. подразумевается работа 24*7* XXX допустимое время отказа около 15 минут за 60 лет. Могу слегка соврать не охота лезть на сайт сабжа проверять.

Главные фичи: share nothing что облегчает создание рапраралелленных систем нет разницы между локальными потоками и удаленными Есть OTP Open Telecom Platform, где умные люди подумали как надо писать высоконадежные приложения и создали готовую к использованию архитектуру. Одна из фич: если удаленный поток грохается, по какой-либо причине, то ваш поток гарантированно получит сообщение об этом.

Как вы блин собираетесь синхронизировать потоки которые на удаленных машинах выполняются? А если сетка грохнется, как отвешивать будете?

Есть какая фича как изменение кода приложения без остановки его работы. Как вы это на жабе делать собираетесь? Причем это ВСТРОЕННАЯ фича.

В общем курим мануалы а потом орем .....

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