![]() |
Пред. тема | След. тема | ||
Форум Разговоры, обсуждение новостей | |||
---|---|---|---|
Изначальное сообщение | [ Отслеживать ] |
"Cheerp 3.0, компилятор C/C++ в JavaScript, переведён на лицензии Apache 2.0 и LLVM" | +/– | ![]() |
Сообщение от opennews (?), 17-Мрт-23, 08:31 | ||
Представлен компилятор Cheerp 3.0, позволяющий скомпилировать любой код C/C++ в WebAssembly или JavaScript. Новая ветка примечательна переводом компилятора и сопутствующих библиотек на использование пермиссивных лицензий Apache 2.0 и LLVM, вместо ранее применяемой ограниченной лицензионной политики, предлагающей вариант с лицензией GPLv2 для некоммерческих проектов и проприетарную лицензию для коммерческих. Код компилятора основан на наработках LLVM и Clang, и включает дополнительные оптимизации для повышения производительности и уменьшения размера скомпилированного результата... | ||
Ответить | Правка | Cообщить модератору |
Оглавление |
Сообщения | [Сортировка по ответам | RSS] |
5. Сообщение от Аноним (5), 17-Мрт-23, 08:41 | –5 +/– | ![]() |
это скорей интерпритатор, чем компилятор. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Ответы: #13, #93 |
9. Сообщение от ИмяХ (?), 17-Мрт-23, 08:48 | +3 +/– | ![]() |
А есть транслятор из ассемблера в пайтон? | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Ответы: #33, #34 |
13. Сообщение от Аноним (13), 17-Мрт-23, 08:52 | +9 +/– | ![]() |
Это скорее компилятор, чем интерпритатор (орфография автора сохранена). | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #5 Ответы: #32 |
24. Сообщение от Шарп (ok), 17-Мрт-23, 09:32 | +1 +/– | ![]() |
Emscripten это не только компилятор в wasm, но и эмуляция окружения (сокеты через websocket, printf в консоль браузера) и набор портированных библиотек (pthread, sdl2, openal и т.д.). | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Ответы: #31 |
27. Сообщение от Аноним (27), 17-Мрт-23, 10:06 | +/– | ![]() |
Интересная ситуация получается. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Ответы: #29 |
29. Сообщение от Аноним (32), 17-Мрт-23, 10:25 | –1 +/– | ![]() |
Так делают когда проект закрывается. Ну будем честны проект и раньше был мало кому нужен так как есть альтернативы. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #27 Ответы: #30 |
30. Сообщение от Аноним (30), 17-Мрт-23, 10:47 | +3 +/– | ![]() |
> Ну будем честны проект и раньше был мало кому нужен так как есть альтернативы | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #29 Ответы: #38 |
31. Сообщение от Аноним (13), 17-Мрт-23, 10:47 | +2 +/– | ![]() |
> сокеты через websocket, printf в консоль браузера | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #24 Ответы: #35, #40, #47, #85 |
32. Сообщение от Аноним (32), 17-Мрт-23, 11:00 | +2 +/– | ![]() |
Это скорее компилятор интерпретатора, чем интерпретатор. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #13 Ответы: #82 |
33. Сообщение от Аноним (32), 17-Мрт-23, 11:02 | +5 +/– | ![]() |
Конечно есть сначала ассемблерный код через Ida Pro перегоняешь в Си код. Потом через c2py перегоняешь в питон. Можно даже онлайн https://www.javainuse.com/c2py | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #9 Ответы: #59 |
34. Сообщение от _kp (ok), 17-Мрт-23, 11:33 | +/– | ![]() |
Есть. Эффективность поченного кода другой вопрос. Но есть. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #9 Ответы: #84 |
35. Сообщение от Anon62513512124 (?), 17-Мрт-23, 11:46 | +3 +/– | ![]() |
Ну, вообще есть радикальная альтернатива этому подходу - не использовать DOM дерево, а вместо него - QML | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #31 Ответы: #76 |
36. Сообщение от Аноним (36), 17-Мрт-23, 11:48 | –1 +/– | ![]() |
Сейчас как раз раздумываю над выбором инструмента для написания новой кросс платформенной игрушки. И если выбор платформ традиционный Desktop - Web(HTML5) - Android, то там где-то должен быть С++. Но я скорее склоняюсь к написанию игры на Haxe (этот язык ближе к ActionScript/TypeScript), кото рый умеет компилировать как в C++ , так и в JavaScript. И у которого уже есть графические фреймворки (OpenFL) и фреймворки для создания UI (HaxeUI), есть и разные bindings типа Raylib для Haxe. Кроме того у Haxe есть сборщик мусора и не надо напрямую работать с памятью, что облегчит создание прототипа и обеспечит быструю итерацию. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Ответы: #81, #89 |
37. Сообщение от burjui (ok), 17-Мрт-23, 12:06 | –3 +/– | ![]() |
Сайты и веб-приложения на C++ — это именно то, чего нашим коллегам так не хватало. Зато теперь на любые претензии в духе "а у вас электрон" можно будет с умным лицом возразить: "Заткнись! У нас C++, поэтому мы умнее, и у нас всё эффективно." | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Ответы: #39, #41, #96 |
38. Сообщение от Аноним (62), 17-Мрт-23, 12:15 | +/– | ![]() |
Это для разного. То, что в теме - это про Web, А HLS - это для FPGA. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #30 |
39. Сообщение от Аноним (62), 17-Мрт-23, 12:19 | +/– | ![]() |
Пиши на Rust, кто не мешает? | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #37 |
40. Сообщение от Рустик (?), 17-Мрт-23, 12:55 | –1 +/– | ![]() |
> Представляю, какой там оверхед при пересечении границы между WASM и DOM. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #31 |
41. Сообщение от Аноним (41), 17-Мрт-23, 12:55 | –1 +/– | ![]() |
На: https://www.webtoolkit.eu/ | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #37 |
43. Сообщение от Аноним (43), 17-Мрт-23, 13:31 | –1 +/– | ![]() |
вообще для трансляции в js есть nim, который уделывает по всем параметрам раст и по некоторым плюсы | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Ответы: #45, #52, #100 |
45. Сообщение от Аноним (32), 17-Мрт-23, 13:52 | +/– | ![]() |
Вообще то хорошие развивающиеся проекты на лицензию апач никто не переводит. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #43 Ответы: #55 |
47. Сообщение от Аноним (47), 17-Мрт-23, 14:17 | +/– | ![]() |
> яваскрипт в разы (в разЫ, Ы в конце) быстрее, чем WASM | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #31 Ответы: #49, #54 |
49. Сообщение от Аноним (32), 17-Мрт-23, 14:21 | +/– | ![]() |
Не подсказывай ему, пиши свой стартап. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #47 |
52. Сообщение от Анонимусс (?), 17-Мрт-23, 14:54 | –1 +/– | ![]() |
> есть nim | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #43 Ответы: #58 |
54. Сообщение от Аноним (13), 17-Мрт-23, 15:04 | +/– | ![]() |
Канва работает быстрее DOM? No shit, Sherlock! Правда решение "WASM + канва" нужно сравнивать с аналогичным "JS + канва", но ты настолько глубоко копать не стал. Давай я тебе немного напомню про то, что даже чтобы отправить строку из WASM в JS, нужно эту строку: 1) упаковать в UTF на стороне WASM, 2) посигналить яваскрипту, что ему нужно бы забрать строку вот отсюда, 3) распаковать из UTF на стороне JS при помощи TextDecoder. Отправка из JS в WASM делается аналогично. Это дорогостоящая операция в сравнении с JS-only-решением, где никакой boundary crossing не требуется. Примерно по этой же причине биндинги сишной libxml к node.js работают гораздо медленнее, чем xml-парсеры, написанные целиком на JS. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #47 Ответы: #57, #62 |
55. Сообщение от Аноним (43), 17-Мрт-23, 15:11 | +/– | ![]() |
ох уж эти любители поспорить о лицензиях вместо того, чтобы проги писать | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #45 Ответы: #83 |
57. Сообщение от Рустик (?), 17-Мрт-23, 15:39 | +/– | ![]() |
> нужно сравнивать с аналогичным "JS + канва" | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #54 Ответы: #61 |
58. Сообщение от burjui (ok), 17-Мрт-23, 15:43 | +/– | ![]() |
> именно с/с++ из-за накопленной огромной кодовой базы. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #52 Ответы: #72 |
59. Сообщение от Аноним (59), 17-Мрт-23, 15:55 | +3 +/– | ![]() |
далее через CPython собираешь бинарник и цикл можно повторять, до тех пор пока не сойдётся | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #33 Ответы: #74 |
61. Сообщение от Аноним (13), 17-Мрт-23, 16:18 | +/– | ![]() |
> wasm, рисующий на канве через прослойку emscripten, работает быстрее "классического" HTML + JS. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #57 Ответы: #64 |
62. Сообщение от Аноним (62), 17-Мрт-23, 16:20 | +/– | ![]() |
>распаковать из UTF на стороне JS при помощи TextDecoder | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #54 Ответы: #71, #92 |
64. Сообщение от Аноним (64), 17-Мрт-23, 16:25 | +/– | ![]() |
> Так ты и предъявляй | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #61 Ответы: #69 |
68. Сообщение от Аноним (68), 17-Мрт-23, 16:36 | +/– | ![]() |
> Также при компиляции используется PartialExecuter, который на основе анализа параметров функций удаляет код, который гарантированно не используется при выполнении. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Ответы: #79 |
69. Сообщение от Аноним (13), 17-Мрт-23, 16:39 | +/– | ![]() |
> разрыв в скорости перекодирования одного и того же файла просто чудовищный, wasm в разы быстрее | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #64 Ответы: #77, #87 |
71. Сообщение от Аноним (13), 17-Мрт-23, 16:47 | +/– | ![]() |
V8 хранит строки в формате WTF-16. Если хочется принять буфер, в которой лежит UTF-8, то нужно перекодировать (TextDecoder). Напрямую с буфером будешь работать именно как с массивом байт, но если тебе эту строку нужно показать пользователю, то придется перегнать в WTF-16. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #62 |
72. Сообщение от Анонимусс (?), 17-Мрт-23, 17:20 | +/– | ![]() |
С одной стороны - да. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #58 |
74. Сообщение от YetAnotherOnanym (ok), 17-Мрт-23, 17:49 | +1 +/– | ![]() |
Не факт, что сойдётся. В лучшем случае потребуется доопределение для сходимости, а в худшем - будет расходиться. Может быть, даже экспоненциально. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #59 |
76. Сообщение от Nope (?), 17-Мрт-23, 20:26 | +/– | ![]() |
реинкарнация апплетов | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #35 |
77. Сообщение от Рустик (?), 17-Мрт-23, 20:35 | +/– | ![]() |
Пока так, возможно потом оптимизируют и дадут прямой доступ к dom, на второе планы точно есть. Браузеры очень медленно развиваются к сожалению, взять хотя бы поддержку современных форматов изображений - браузероделы годами их внедряли и то недовнедрили. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #69 |
79. Сообщение от Аноним (79), 18-Мрт-23, 00:39 | +/– | ![]() |
Волобуев, вот ваш... код! | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #68 |
81. Сообщение от Аноним (-), 18-Мрт-23, 00:46 | –1 +/– | ![]() |
> Кроме того у Haxe есть сборщик мусора и не надо напрямую работать с памятью, что позволит | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #36 |
82. Сообщение от Аноним (82), 18-Мрт-23, 00:56 | +/– | ![]() |
Это медленнее | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #32 |
83. Сообщение от Аноним (-), 18-Мрт-23, 01:11 | –2 +/– | ![]() |
Бесплатно ублажать корпов - такое себе счастье. Тут им патентных прав, там прав сорц зажимать, а они взамен дырок от бублика насыпят. И все как бы честно. А, еще вы можете к ним рабом на галеру прийти, только хотя код пишете вы, командовать будут они и все как бы честно. Или таки нет? | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #55 Ответы: #103 |
84. Сообщение от Аноним (-), 18-Мрт-23, 01:23 | +6 +/– | ![]() |
> Есть. Эффективность поченного кода другой вопрос. Но есть. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #34 Ответы: #98 |
85. Сообщение от Аноним (-), 18-Мрт-23, 01:25 | +/– | ![]() |
> Представляю, какой там оверхед при пересечении границы между WASM и DOM. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #31 |
87. Сообщение от Аноним (87), 18-Мрт-23, 03:16 | +/– | ![]() |
> Потому что не приходится перегонять данные отсюда-туда сотни и тысячи раз, как это было бы в интерактивном приложении. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #69 |
88. Сообщение от Bobr (??), 18-Мрт-23, 05:04 | +3 +/– | ![]() |
Сейчас бы в 2023 смешивать js и плюсы. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Ответы: #97, #99 |
89. Сообщение от Bobr (??), 18-Мрт-23, 05:08 | +/– | ![]() |
Используй Kotlin MPP + rsocket, если нужен онлайн. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #36 Ответы: #91, #94, #95 |
91. Сообщение от Аноним (92), 18-Мрт-23, 07:30 | +/– | ![]() |
>Даже игровой движок под это есть. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #89 |
92. Сообщение от Аноним (92), 18-Мрт-23, 07:32 | +/– | ![]() |
В JavaScript единственная кодировка utf-16 | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #62 |
93. Сообщение от Tron is Whistling (?), 18-Мрт-23, 10:26 | +/– | ![]() |
Интертрепатор. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #5 |
94. Сообщение от Рустик (?), 18-Мрт-23, 10:44 | +/– | ![]() |
Б-гмеркзая проприетарь. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #89 |
95. Сообщение от Рустик (?), 18-Мрт-23, 10:47 | +/– | ![]() |
Шмотлин в wasm пытался, но не шмог, и компилится в обычный медленный js. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #89 |
96. Сообщение от Аноним (32), 18-Мрт-23, 11:33 | +/– | ![]() |
Какое бы не было качество кода. Код на C++ будет быстрее и надо для производительности на нагруженных сайтах. Как на той же самой Фигме. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #37 |
97. Сообщение от Аноним (32), 18-Мрт-23, 11:34 | –1 +/– | ![]() |
Твоему сайте визите C++ не нужен. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #88 |
98. Сообщение от _kp (ok), 18-Мрт-23, 11:43 | +/– | ![]() |
Осторожне с такими шутками. А то я чуть не подавися, и кофе пролил. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #84 |
99. Сообщение от burjui (ok), 18-Мрт-23, 12:39 | +/– | ![]() |
Минус на минус даёт плюс, а минусминус на минусминус — плюсплюс. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #88 |
100. Сообщение от Прохожий (??), 18-Мрт-23, 13:14 | +/– | ![]() |
По некоторым действительно уделывает. Но уж точно не по всем. Nim - язык с GB и не такой хорошей поддержкой конкурентности, как у Rust. Также программистов на Nim, пишут, гораздо меньше, чем программистов на Rust. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #43 |
102. Сообщение от КернелДиггер (?), 21-Мрт-23, 18:43 | +/– | ![]() |
Ничё нипонил! | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Ответы: #104 |
103. Сообщение от Аноним (-), 21-Мрт-23, 21:34 | +/– | ![]() |
Цеых 2 корпа не одобряют отсутствие халявы. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #83 |
104. Сообщение от nobody (??), 22-Мрт-23, 21:28 | +/– | ![]() |
А во что переводить, если нужно приложение для браузера? В ActiveX? | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #102 |
105.
Сообщение от Аноним![]() | +/– | ![]() |
я чистый плюсовик, я не знаю эти ваши жээсы и хтмл. Мне проще функционал описать внутри консольного экзешника и сделать обращение к порту программы. | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Ответы: #106 |
106. Сообщение от Аноним (106), 23-Мрт-23, 12:21 | +/– | ![]() |
libmicrohttpd | ||
Ответить | Правка | Наверх | Cообщить модератору | ||
Родитель: #105 |
Архив | Удалить |
Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема |
Закладки на сайте Проследить за страницей |
Created 1996-2025 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |