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 417 22.09.17 23:37 Сейчас в теме
о! рад вас видеть снова!
3. tormozit 7136 22.09.17 23:53 Сейчас в теме
Оно будет привязываться к версии платформы (будет ли работать на будущих версиях 8.3.*)?
4. dmpas 417 22.09.17 23:58 Сейчас в теме
(3)
Компилятор тестируется на v8.3.9.1818, толстый клиент. Планируется поддержка всей линейки 8.3. Когда все доделаю – тогда и будет окончательно понятно.


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

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

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

вот на такие вещи стоит тесты написать. Выходит новый релиз, скрипт его автоматом скачивает, запускает тесты на критические вещи и сразу будет видно, что сломалось, а что нет.
5. grumagargler 723 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 3033 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 417 25.09.17 08:47 Сейчас в теме
(10)
Можно было написать интерпретатор простого байткода как в самой платформе. И компилить в этот байткод.

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


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

лично я бы предпочёл копать в сторону "писать внешние компоненты **на любом** языке"
13. tsukanov 25.09.17 09:24 Сейчас в теме
(12) Так оно и с LLVM не быстро у автора получилось. Даже пикод васика быстрее.
11. ImHunter 312 25.09.17 06:48 Сейчас в теме
А как интересно с запросами к БД? Свой движок для трансляции реализован?
14. ImHunter 312 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 1448 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
Сообщение было скрыто модератором.
...
Оставьте свое сообщение
Вакансии
Программист 1С
Москва
зарплата от 180 000 руб. до 220 000 руб.
Полный день

Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)

Программист 1С
Москва
зарплата от 250 000 руб.
Полный день

Программист 1C
Волгоград
зарплата от 200 000 руб.
Полный день

Аналитик
Санкт-Петербург
зарплата от 200 000 руб. до 250 000 руб.
Полный день