1С+Компилятор. Анонс. Что бы откомпилировать???

1. IntelInside 128 22.09.17 22:09 Сейчас в теме
Доброго времени суток.
Этот материал изначально готовился как публикация, но модератор сказал идти с ним на форум. Полностью почитать с картинками можно скачав файл. Здесь выжимки.

Разрабатывается компилятор языка 1С в машинные коды. Компилятор разрабатывается на на основе LLVM\Clang компилятора С++. В результате компиляции получается DLL-файл наитивной компоненты для 1С, которую можно подключать обычным способом. Из компоненты допустимо вызывать все методы свойства платформы (*), все экспортируемые методы модулей конфигурации и глобального контекста и все допустимые объекты. Везде где можно используются родные механизмы платформы, а где они не доступны функциональность реализована идентично функциональности платформы(**). Т.е. можно взять практически любой код из конфигуратора, откомпилировать в компоненту и подключить в откомпилированном виде. Компилятор реализован в монолитном виде и никакая «специфика» работы с платформой не раскрывается.

Компилятор находится на финальной стадии разработки и в скором времени будет опубликован. В базовой функциональности он будет бесплатен и свободен для использования в целях ознакомления и обучения. Особое внимание в этот раз я хочу уделить демонстрационному примеру использования компилятора. В своей прошлой статье об ООП для 1С я его выбрал неудачно, что вызвало массу нареканий. Здесь я хотел бы сначала посоветоваться с сообществом и уже потом публиковать релиз. Конечно, сразу возникают мысли откомпилировать целиком какую-нибудь типовую конфигурацию или хотя бы сделать БСП.dll, но это слишком масштабно для примера. Также я очень благодарен MAGAZKA за предложение откомпилировать ее всю сверху донизу и пренепременно этим займусь, но все таки сразу после того как у меня заработает демонстрационный пример.
Что откомпилировать не такой простой вопрос. Кода должно быть все-таки относительно немного и на нем можно было бы демонстрировать производительность. Он должен быть достаточно разносторонним, а не только математика. Он должен иметь какую-то практическую пользу дабы люди его реально запускали и жаловались мне если что не так. Увы, но реализовать 1000++ юнит тестов для компилятора я не в состоянии. Также нужно учесть, что компилируются общие модули, а не модули объектов. Вернее откомпилировать-то можно, но подключить компоненту объекту виде модуля легальными средствами 1С нельзя. Также глобальный модуль после компиляции сам собой легально не станет глобальным.
Буду очень благодарен за идеи и помощь.

Очень большая просьба перед тем как задать вопрос почитать статью. Очень!

НИКАКИХ КОММЕНТАРИЕВ ПО ВНУТРЕННЕМУ УСТРОЙСТВУ ПЛАТФОРМЫ Я НЕ ДАЮ.
Прикрепленные файлы:
1C + Компилятор. Достигнутое и перспективы.docx
Bukaska; ryutao; корум; artbear; starik-2005; Alister; tormozit; grumagargler; dmpas; +9 Ответить
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. dmpas 418 22.09.17 23:37 Сейчас в теме
о! рад вас видеть снова!
3. tormozit 7143 22.09.17 23:53 Сейчас в теме
Оно будет привязываться к версии платформы (будет ли работать на будущих версиях 8.3.*)?
4. dmpas 418 22.09.17 23:58 Сейчас в теме
(3)
Компилятор тестируется на v8.3.9.1818, толстый клиент. Планируется поддержка всей линейки 8.3. Когда все доделаю – тогда и будет окончательно понятно.


будущее туманно ©
6. IntelInside 128 23.09.17 00:42 Сейчас в теме
(4) Спасибо, Сергей. Тоже рад Вас видеть. Я поздно увидел ваш вопрос о подвижках в в моих прошлых публикациях. Спасибо, что интересуетесь.

Расширение поддержки на будущие версии выглядит так. После каждой своей публикации я с замиранием сердца жду очередного релиза 1С и смотрю - не поменялось ли что-то критичное. И если поменялось, то что они хотели сказать. Пока все было тихо, спокойно и гм.. даже обнадеживающе, хотя это может быть и мои фантазии. Подождем и в этот раз. Не за горами.

Простите, но сейчас я пойду спать. До завтра.
7. dmpas 418 23.09.17 11:00 Сейчас в теме
(6)
и смотрю - не поменялось ли что-то критичное

вот на такие вещи стоит тесты написать. Выходит новый релиз, скрипт его автоматом скачивает, запускает тесты на критические вещи и сразу будет видно, что сломалось, а что нет.
5. grumagargler 724 23.09.17 00:25 Сейчас в теме
Этот материал изначально готовился как публикация, но модератор сказал идти с ним на форум

странно, материал достойный публикации.
starik-2005; +1 Ответить
8. tsukanov 23.09.17 13:29 Сейчас в теме
LLVM\Clang компилятора С++

Не понял при чем тут шланг.
Разработан компилятор в LLVM или таки транслятор в C++?
Если второе, то при чем тут LLVM? :)

ps Доку всю лень читать, сори (:


Поэтому это отношение можно читать так: «исполнение кода 1С на виртуальной машине в 2.4 раза медленнее, чем исполнение 1С-кода в скомпилированном виде».

Очень очень странно. Как вы добились такого медленного маш. кода на LLVM?
Можно подробнее про это?
9. starik-2005 3038 23.09.17 19:55 Сейчас в теме
(8)
Очень очень странно. Как вы добились такого медленного маш. кода на LLVM?
Ну с учетом того, что после компиляции появляется некая DLL, которая использует менеджер памяти платформы => механизм хранения переменных платформы и все остальное от платформы, работая только как внешняя нативная компонента платформы, то особой такой вот суперскорости взять неоткуда. Если бы автор вместо мучений по вскрытию вен платформы и использованию ее механизмов сделал бы простой транслятор из кода 1С в тот же CLang или иной какой компилируемый язык, и компилировался бы уже он, а ORM-механизмы платформы поддерживались бы плагинами, то итогом могла бы стать технология. позволяющая из кода 1С сделать отдельное приложение, не нуждающееся в ключе, лицензиях и всего прочего. Но при этом за автором такого решения бы уже давно пришли бы, поэтому те, у кого оно есть, никому об этом не говорят.
10. tsukanov 23.09.17 21:27 Сейчас в теме
(9) Тогда я не понимаю каким боком тут LLVM вообще.
Можно было написать интерпретатор простого байткода как в самой платформе. И компилить в этот байткод.
LLVM и шланг тут не требуются вообще ни разу. Думаю что можно сделать аналогичную компоненту немного (наверно) допилив onescript.

Сама идея писать внешние компоненты на простом языке мне нравится. У меня даже есть одна идея на этот счет.
Колупаться в плюсах и шарпах всяких одноэсники не очень любят. Потому думаю что подобный продукт может взлететь.
12. dmpas 418 25.09.17 08:47 Сейчас в теме
(10)
Можно было написать интерпретатор простого байткода как в самой платформе. И компилить в этот байткод.

это ж доооолго. Один из основных посылов этой и предыдущих статей - скорость работы.


(10)
Сама идея писать внешние компоненты на простом языке мне нравится

лично я бы предпочёл копать в сторону "писать внешние компоненты **на любом** языке"
13. tsukanov 25.09.17 09:24 Сейчас в теме
(12) Так оно и с LLVM не быстро у автора получилось. Даже пикод васика быстрее.
11. ImHunter 315 25.09.17 06:48 Сейчас в теме
А как интересно с запросами к БД? Свой движок для трансляции реализован?
14. ImHunter 315 25.09.17 12:35 Сейчас в теме
(11) Сам себе отвечаю после более внимательного прочтения:
Доступ к данным делается через интерфейсы 1С, а не напрямую. И т.д. и т.п. (возможно кое-где я даже излишне осторожничаю, но это дело будущего…)
15. pvlunegov 157 16.11.17 15:03 Сейчас в теме
А как же долгожданая и недоделанная (брошенная) публикация многоуважаемого Василия Демидова (https://infostart.ru/public/18681/ - [1C-to-EXE] Компилятор 1С кода)?
Есть какие то ссылки на это? Контактировали с автором?
Я честно говоря долго ждал релиза, недождался.
От тоски пошел осваивать Javascript, C# для реализации своих планов.
Вы честно говоря обнадежили меня.
Я думал я один как белая ворона мечтаю о компиляции 1с проектов в Win

Очень сильно ратую за ваш проект. Желаю вам фишек:
1. Возможность компиляции простых конф (самописных) в Exe
2. Минимальная оконная графика на платформе .Net для Win. Достаточно пока неуправляемые формы 1c с реализацией на GDK+.
3. В будущем желаю вам осваивания просторов Управляемых форм с реализацией в виде Wpf на Win.
3. В будущем желаю вам реализации прикручивания библиотек Javascript для простой графики в формах.

От себя могу помочь в части прикручивания Javascript к формам на Win при компиляции в exe.
16. artbear 1526 16.11.17 15:27 Сейчас в теме
(15) К сожалению, Василия Демидова больше нет с нами :( Первая, но не последняя потеря сообщества :(
17. pvlunegov 157 17.11.17 09:02 Сейчас в теме
(16) Звучит так как будто человек умер. Вы, Батенька в таких случаях не шутите, выражайтесь яснее... Умер или просто покинул сообщество?
19. Drfreeman 135 27.11.17 14:38 Сейчас в теме
(17)
тенька в таких случаях не шутите, выражайтесь яснее... Умер или просто покинул сообщество?


http://www.forum.mista.ru/topic.php?id=597601&page=1
20. IntelInside 128 08.04.23 14:41 Сейчас в теме
Пилотная версия библиотеки для интеграции 1С и с++ (ЕСБ)

Немного описана здесь
https://docs.google.com/document/d/13IRoRJTAjvyfsBqVZoiLehtfQa8MdRvFprFfwszKsdo/­
и
https://docs.google.com/document/d/1elL7J8KbqKLaciR9iZ_9AZpFdWPSr0_QpWigUtEPEcQ/­

Выложена здесь
https://github.com/int-unsigned/esb
21. пользователь 08.04.23 15:11
Сообщение было скрыто модератором.
...
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот