The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Представлен Cheerp 1.2, компилятор C++ в JavaScript"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Представлен Cheerp 1.2, компилятор C++ в JavaScript"  +/
Сообщение от opennews (??) on 02-Фев-16, 20:49 
Увидел свет (http://blog.leaningtech.com/2016/02/cheerp-12-c-to-javascrip...) стабильный релиз  Cheerp 1.2 (http://leaningtech.com/cheerp/) (бывший Duetto), открытого инструментария для разработки клиентских и серверных web-приложений на языке C++, а также для портирования существующих C++ программ для работы в Web-браузере. Код распространяется (https://github.com/leaningtech) под свободной лицензией UI/NCSA (http://llvm.org/releases/2.8/LICENSE.TXT), также используемой в проекте LLVM. Библиотеки поставляются под лицензией  GPLv2+.


По своей сути Cheerp напоминает систему Emscripten (https://www.opennet.me/opennews/art.shtml?num=35313) и также использует наработки LLVM для обеспечения компиляции кода C++ в представление на языке JavaScript. Ключевым отличием Cheerp от Emscripten является (https://github.com/leaningtech/cheerp-meta/wiki) ориентация на достижении более высокой производительности результирующего JavaScript-кода и предоставление средств для использования из С++ программ всех возможностей DOM, браузерного API и HTML5, в том числе WebGL. Cheerp не пытается как Emscripten эмулировать традиционное адресное пространство при помощи типизированных массивов, а обеспечивает прямой маппинг C++ объектов в объекты JavaScript, что позволяет снизить потребление памяти, так как сборщик мусора JavaScript имеет возможность удалять неиспользуемые объекты. Cheerp также поддерживает использование стандартных библиотек libc и libc++, и позволяет применять инструменты сборки cmake/autotool.

По поставленным перед проектом задачам Cheerp позиционируется как платформа для создания интегрированных клиент/серверных web-приложений на языке C++. В существующей практике, обычно используется выполняемый в браузере фронтэнд, написанный на языке JavaScript или компилируемый в JavaScript из  CoffeScript, Microsoft TypeScript, Google Dart, Google GWT, с раздельной серверной частью на языках  PHP, Python, Ruby или JavaScript/node.js. Cheerp предоставляет средства для создания целостных web-приложений на языке C++, в которых бэкенд и фронтэнд поддерживаются в единой кодовой базе. В процессе компиляции серверная часть компилируется в нативный код, а интерфейс преобразуется в JavaScript-представление. Отладка всех компонентов проекта, в том числе преобразуемых в JavaScript, осуществляется  по исходным текстам на языке C++ с использованием технологии Source Map (при возникновении ошибки можно увидеть участок кода на C++, поддерживается установка точек останова в коде C++ и построчного пошагового выполнения С++ кода).

Новый выпуск основан на кодовой базе LLVM/Clang 3.7 и примечателен существенным сокращением времени загрузки и  увеличением производительности выполнения результирующего JavaScript-кода. Итоговый JavaScript-код, генерируемый при помощи Cheerp с применением динамической системы управления памятью, всего в 2-6 раз медленнее скомпилированных из C++ машинных инструкций. По сравнению с Emscripten, JavaScript-код Cheerp заметно отстаёт при применении Asm.js в Emscripten, но в режиме Split Memory (без Asm.js) в 2-3 раза быстрее при исполнении средних и больших тестов и примерно на том же уровне при выполнении мелких тестов. По времени загрузки созданный в Cheerp код грузится в 10-11 раз быстрее, но так как разница в диапазоне миллисекунд, она не ощущается пользователем.

Из изменений, связанных с функциональностью, отмечается поддержка 64-разрядных целых чисел, возможность накопления информации о типах в процессе выполнения (RTTI - Runtime Type Information), расширение диагностических сообщений и экспериментальная поддержка изоляции генерируемого кода от других скриптов через его вынос в модули. Отдельно выделяется реализация техники PreExecuter, позволяющей преобразовывать C++-код инициализации глобальных структур в простые наборы данных, что существенно сокращает размер JavaScript-кода на выходе.


URL: http://blog.leaningtech.com/2016/02/cheerp-12-c-to-javascrip...
Новость: http://www.opennet.me/opennews/art.shtml?num=43804

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Представлен Cheerp 1.2, компилятор C++ в JavaScript"  +5 +/
Сообщение от Аноним (??) on 02-Фев-16, 20:49 
есть реальные примеры применения? только не надо про крузис в браузере на ультра
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

3. "Представлен Cheerp 1.2, компилятор C++ в JavaScript"  +/
Сообщение от Crazy Alex (ok) on 02-Фев-16, 21:04 
Вот, например, один товарищ роазвлекался: http://gamemusic.multimedia.cx/js-prototype/
Это Emscripten, правда.
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

8. "Представлен Cheerp 1.2, компилятор C++ в JavaScript"  –2 +/
Сообщение от Аноним (??) on 02-Фев-16, 21:22 
Linux firefox 44 - 30% firefox, 8% xorg. Почти всё тратится на вывод битмапа. Ну как всегда, я уже привык к тормозной графике в Linux :)
Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

17. "Представлен Cheerp 1.2, компилятор C++ в JavaScript"  +/
Сообщение от Crazy Alex (ok) on 03-Фев-16, 01:20 
а как смотрели, на что тратится?
Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

38. "Представлен Cheerp 1.2, компилятор C++ в JavaScript"  +/
Сообщение от Никто (??) on 03-Фев-16, 15:10 
Профилировщик?
Ответить | Правка | ^ к родителю #17 | Наверх | Cообщить модератору

49. "Представлен Cheerp 1.2, компилятор C++ в JavaScript"  +/
Сообщение от Crazy Alex (ok) on 05-Фев-16, 22:32 
Ну я вот не знаю, как в браузере выяснить, что время уходит именно на работу с битмапом,  а не на что-то ещё. во всяком случае, если не пытаться отлаживать сам браузер - а это очень стрёмное дело, и вышенаписавшйи аноним почти наверняка подобным не занимался.
Ответить | Правка | ^ к родителю #38 | Наверх | Cообщить модератору

4. "Представлен Cheerp 1.2, компилятор C++ в JavaScript"  +/
Сообщение от омномномнимус on 02-Фев-16, 21:11 
по эмскриптен есть дофига примеров, правда я не встречал что-то использующееся на продакшене.
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

7. "Представлен Cheerp 1.2, компилятор C++ в JavaScript"  +/
Сообщение от Аноним (??) on 02-Фев-16, 21:15 
вот именно( вышел компилятор sh->python->c++->php->ruby->java->c#->etc...
Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

10. "Представлен Cheerp 1.2, компилятор C++ в JavaScript"  +1 +/
Сообщение от Вареник on 02-Фев-16, 21:52 
Все это зациклить :)
Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

14. "Представлен Cheerp 1.2, компилятор C++ в JavaScript"  +1 +/
Сообщение от Аноним (??) on 02-Фев-16, 23:33 
> я не встречал что-то использующееся на продакшене.

Копаться в разы больше чем с компиляцией нативного бинаря для того чтобы получить огромный и лагучий JS - развлечение на любителя.

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

28. "Представлен Cheerp 1.2, компилятор C++ в JavaScript"  +1 +/
Сообщение от Alex (??) on 03-Фев-16, 09:35 
> не встречал что-то использующееся на продакшене.

https://regex101.com/

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

43. "Представлен Cheerp 1.2, компилятор C++ в JavaScript"  +/
Сообщение от Аноним (??) on 03-Фев-16, 21:27 
https://kagami.github.io/webm.js/ (как аналог онлайн-конвертверов, но не требующий сервера).
Вот ещё дофига примеров: https://github.com/kripken/emscripten/wiki/Porting-Examples-...
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

2. "Представлен Cheerp 1.2, компилятор C++ в JavaScript"  +4 +/
Сообщение от Аноним (??) on 02-Фев-16, 20:59 
Из пустого в порожнее.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

6. "Представлен Cheerp 1.2, компилятор C++ в JavaScript"  +11 +/
Сообщение от печень трески on 02-Фев-16, 21:14 
Нельзя не вспомнить анекдот. Висит объявление: "Перевожу с грузинского и армянского на Ваганьковсое"
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

9. "Представлен Cheerp 1.2, компилятор C++ в JavaScript"  –1 +/
Сообщение от Вареник on 02-Фев-16, 21:51 
На что "люди" время тратят...
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

23. "Представлен Cheerp 1.2, компилятор C++ в JavaScript"  +1 +/
Сообщение от Тот_Самый_Анонимус on 03-Фев-16, 06:49 
Некоторые, например, других осуждают...
Ответить | Правка | ^ к родителю #9 | Наверх | Cообщить модератору

25. "Представлен Cheerp 1.2, компилятор C++ в JavaScript"  +1 +/
Сообщение от Аноним (??) on 03-Фев-16, 07:52 
> На что "люди" время тратят...

Надо принять закон о правильной трате времени людьми, а то у россияненов остаётся слишком много времени на написание кода и на трындёж на форуме, что приводит к различным угрозам тысячелетней суверенной государственности.

Ответить | Правка | ^ к родителю #9 | Наверх | Cообщить модератору

41. "Представлен Cheerp 1.2, компилятор C++ в JavaScript"  –2 +/
Сообщение от Вареник on 03-Фев-16, 20:01 
>> На что "люди" время тратят...
> Надо принять закон о правильной трате времени людьми, а то у россияненов
> остаётся слишком много времени на написание кода и на трындёж на
> форуме, что приводит к различным угрозам тысячелетней суверенной государственности.

Три ошибочных утверждения в одном предложении:
- Причем здесь россияне к сабжу?
- Причем здесь российские законы к сабжу?
- Причем здесь российские законы ко мне?

Ваши навязчивые думы о россиянах пробивают потолки неадеквата.

Ответить | Правка | ^ к родителю #25 | Наверх | Cообщить модератору

11. "Представлен Cheerp 1.2, компилятор C++ в JavaScript"  –2 +/
Сообщение от Rodegast (??) on 02-Фев-16, 21:53 
Компиляция в Java это хороший способ поднять спрос на оперативку!
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

15. "Представлен Cheerp 1.2, компилятор C++ в JavaScript"  +1 +/
Сообщение от Аноним (??) on 03-Фев-16, 00:31 
> Компиляция в Java это хороший способ поднять спрос на оперативку!

Нет, компиляция в Script.

Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору

31. "Представлен Cheerp 1.2, компилятор C++ в JavaScript"  +1 +/
Сообщение от Аноним (??) on 03-Фев-16, 11:36 
> Нет, компиляция в Script.

Тем более.

Ответить | Правка | ^ к родителю #15 | Наверх | Cообщить модератору

24. "Представлен Cheerp 1.2, компилятор C++ в JavaScript"  +1 +/
Сообщение от Аноним (??) on 03-Фев-16, 07:49 
Шо ява, шо яваскрипт, какая в жепу разница?
Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору

40. "Представлен Cheerp 1.2, компилятор C++ в JavaScript"  +1 +/
Сообщение от Аноним (??) on 03-Фев-16, 18:51 
Большая. Например Java машина куда более прожорливая, чем все JS движки.
Ответить | Правка | ^ к родителю #24 | Наверх | Cообщить модератору

42. "Представлен Cheerp 1.2, компилятор C++ в JavaScript"  +1 +/
Сообщение от Вареник on 03-Фев-16, 20:03 
> Большая. Например Java машина куда более прожорливая, чем все JS движки.

Движки без фреймворка, конечно они легче.

Ответить | Правка | ^ к родителю #40 | Наверх | Cообщить модератору

37. "Представлен Cheerp 1.2, компилятор C++ в JavaScript"  +/
Сообщение от Аноним (??) on 03-Фев-16, 15:02 
Высокой страсти не имея
Для звуков жизни не щадить,
Не мог он джав от джаваскриптов,
Как мы ни бились, отличить.
Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору

13. "Представлен Cheerp 1.2, компилятор C++ в JavaScript"  +/
Сообщение от Lester on 02-Фев-16, 22:41 
Попробовал потыкать - выглядит интересно, особенно то, что есть API для коммуникации с браузером, а не просто тупо перегоняется абстрактный код.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

16. "Представлен Cheerp 1.2, компилятор C++ в JavaScript"  +/
Сообщение от fa email(??) on 03-Фев-16, 01:14 
Что это? Вот есть, например в C вызов bind. Что это будет в javascript?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

18. "Представлен Cheerp 1.2, компилятор C++ в JavaScript"  –1 +/
Сообщение от Crazy Alex (ok) on 03-Фев-16, 01:24 
враппер для websocket api
Ответить | Правка | ^ к родителю #16 | Наверх | Cообщить модератору

36. "Представлен Cheerp 1.2, компилятор C++ в JavaScript"  +2 +/
Сообщение от zy on 03-Фев-16, 14:09 
Во-первых bind конечно же есть не в C а в libc.
Во-вторых никакого враппера в вебсокеты не будет потому что websockets api и сокеты из сетевого стека ОС совершенно разного уровня фичи, и имеют слишком разные возможности, и соответственно семантику bind для сетевых сокетов замапить на вебсокеты не представляется возможным вообще никак.
Ответить | Правка | ^ к родителю #18 | Наверх | Cообщить модератору

45. "Представлен Cheerp 1.2, компилятор C++ в JavaScript"  –1 +/
Сообщение от Crazy Alex (ok) on 04-Фев-16, 18:29 
Тебе шашечки или ехать? Эти врапперы дают возможность более-менее простого портирования сетевого слоя приложений. Понятно, что вместо чистого TCP будет эмуляция поверх webSockets. Вот такая, например: https://github.com/kanaka/websockify
Ответить | Правка | ^ к родителю #36 | Наверх | Cообщить модератору

19. "Представлен Cheerp 1.2, компилятор C++ в JavaScript"  –2 +/
Сообщение от A.Stahl (ok) on 03-Фев-16, 02:57 
Я бы ещё понял если бы наоборот.
А так... Что-то на уровне Лиспа/Хаскелля. Круто, прикольно, но бесполезно.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

44. "Представлен Cheerp 1.2, компилятор C++ в JavaScript"  +/
Сообщение от freehck email(ok) on 04-Фев-16, 16:07 
Ну почему же бесполезно.

Вот например есть похожая штука Ocsigen js_of_ocaml: собственно то и делает, что перегоняет код на ocaml в код на js. Таким образом получаем код на js  с качественной проверкой типов, произведённой ещё на этапе компиляции.

Ну и по поводу лиспа/хаскеля -- это Вы заблуждаетесь, но я не намерен спорить об этом сейчас.

Ответить | Правка | ^ к родителю #19 | Наверх | Cообщить модератору

20. "Представлен Cheerp 1.2, компилятор C++ в JavaScript"  +/
Сообщение от Андрей (??) on 03-Фев-16, 05:52 
А они это оформили чище чем emscripten, который вообще вылетел из Debian, а то, что осталось в sid не обновляется.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

21. "Представлен Cheerp 1.2, компилятор C++ в JavaScript"  +1 +/
Сообщение от Аноним (??) on 03-Фев-16, 06:10 
Надо бы декодер H264 транслировать.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

27. "Представлен Cheerp 1.2, компилятор C++ в JavaScript"  +/
Сообщение от Аноним email(??) on 03-Фев-16, 08:41 
лучше бы из JS в С++ сделали транслтор
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

29. "Представлен Cheerp 1.2, компилятор C++ в JavaScript"  +/
Сообщение от anonymous (??) on 03-Фев-16, 10:19 
Но зачем?
Ответить | Правка | ^ к родителю #27 | Наверх | Cообщить модератору

30. "Представлен Cheerp 1.2, компилятор C++ в JavaScript"  +/
Сообщение от Аноним (??) on 03-Фев-16, 10:58 
Является Wt конкурентом для сабжа?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

32. "Представлен Cheerp 1.2, компилятор C++ в JavaScript"  +/
Сообщение от Аноним (??) on 03-Фев-16, 12:11 
Является ли сабж конкурентом для Wt?
Ответить | Правка | ^ к родителю #30 | Наверх | Cообщить модератору

33. "Представлен Cheerp 1.2, компилятор C++ в JavaScript"  +/
Сообщение от Аноним (??) on 03-Фев-16, 12:35 
Так что более предпочтительнее? В чем существенный выигрыш одной из фреймворков?
Ответить | Правка | ^ к родителю #32 | Наверх | Cообщить модератору

34. "Представлен Cheerp 1.2, компилятор C++ в JavaScript"  +/
Сообщение от Аноним (??) on 03-Фев-16, 12:37 
Т.е. одного фреймворка над другим?
Ответить | Правка | ^ к родителю #33 | Наверх | Cообщить модератору

35. "Представлен Cheerp 1.2, компилятор C++ в JavaScript"  +/
Сообщение от Аноним (??) on 03-Фев-16, 13:53 
А ты кого любишь больше - маму или папу? Тaщeмта одно - компилятор, второе - фреймворк.
Ответить | Правка | ^ к родителю #33 | Наверх | Cообщить модератору

39. "Представлен Cheerp 1.2, компилятор C++ в JavaScript"  +/
Сообщение от bOOster (ok) on 03-Фев-16, 17:47 
Все это от "лукавого". Все эти решения заметно деградировали уровень программного обеспечения в угоду сраным бизнесменам, которым надо быстрее, выше, сильнее за копейки.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

46. "Представлен Cheerp 1.2, компилятор C++ в JavaScript"  –1 +/
Сообщение от Аноним (??) on 04-Фев-16, 19:18 
Вот тут вы ошибаетесь. Что больше подходит для rapid разработки? Какой язык требует более высокой квалификации? То-то же! Давайте все писать на ссях!
Ответить | Правка | ^ к родителю #39 | Наверх | Cообщить модератору

47. "Представлен Cheerp 1.2, компилятор C++ в JavaScript"  +/
Сообщение от Витя2016 email on 04-Фев-16, 20:15 
Cheerp вроде быстрей делает javascript и работа с памятью C++ более эффективна чем javascript оригинал?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

51. "Представлен Cheerp 1.2, компилятор C++ в JavaScript"  +/
Сообщение от Аноним (??) on 08-Фев-16, 13:04 
после распостранения wasm надобность в вещах типа cheerp отпадет
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

52. "Представлен Cheerp 1.2, компилятор C++ в JavaScript"  +/
Сообщение от vn971 (ok) on 10-Фев-16, 23:09 
> или компилируемый в JavaScript из Coffe­Script, Microsoft Type­Script, Google Dart, Google GWT, с раздельной серверной частью на языках PHP, Python, Ruby или JavaScript/node.js

можно добавить Scala. Код на скале тоже может компилироваться в js: https://www.scala-js.org/

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру