Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Предложение по улучшению #589

Open
hagz0r opened this issue Mar 4, 2024 · 3 comments
Open

Предложение по улучшению #589

hagz0r opened this issue Mar 4, 2024 · 3 comments
Labels
++ Популярная идея (более чем с 20 лайками) Помощь советом Идея прорабатывается другими участниками международного коммитета

Comments

@hagz0r
Copy link

hagz0r commented Mar 4, 2024

Я хочу чтобы программы на языке С++ выполнялись быстрее, были безопасными и не допускали ошибок!

Примеры мы можем увидеть в реализации таких языков как Rust, JavaScript.

Код:

fn main() {
  println!("Make C++ faster!");
}
console.log("Make C++ faster!")

Полезные ссылки:

  • https://quick-bench.com/ - онлайн бенчмарк, поможет вам продемонстрировать эффективность вашего подхода
  • https://godbolt.org/ - онлайн дизассемблер
  • https://eel.is/c++draft/ - черновик стандарта C++ с возможностью ссылаться на конкретные параграфы
  • https://wg21.link/ - универсальная ссылка на международные proposal или баги в С++, например https://wg21.link/P1000 ссылается на документ P1000, а https://wg21.link/cwg100 на 100 баг в ядре языка
@ansa-sequence
Copy link

Я думаю, что мы можем улучшить данную рекоммендацию до уровня пропозала с конкретными решениями по улучшению, но мне кажется, что в данный момент у Рабочей Группы С++ нет времени для данных импрувментов. Так что, тикет выглядит как солюшен в долгосрочной перспективе, но не возможен в данный момент.

@kirillsurkov
Copy link

kirillsurkov commented Mar 4, 2024

Предложение очень хорошее! Но, к сожалению, это сломает ABI.

@kov-serg
Copy link

kov-serg commented Mar 4, 2024

Я хочу чтобы программы на языке С++ выполнялись быстрее, были безопасными и не допускали ошибок!

Это в принципе не возможно по определению просто из-за постулатов заложенных в стандарте. Где вы видели большую программу на C++ без UB?
Что бы хоть как-то улучшить язык надо добавить фаз компиляции. Хотя бы отделить синтез кода от компиляции, а не присовывать всё в шаблоны, макросы и концепты пихая всё в кучу. Тоже самое касается и профилирования и оптимизации и проверок. Это должны быть отдельные фазы сборки. Более того пора бы уже добавить динамическую линковку функций с разными abi и ограничениями, а не просто по имени. Так как уже давно есть заопарк вариаций архитектур. Что мешает использовать обычную базу данных для поиска требуемых библиотек по имени функции и если такой нет собрать под нужную по мере надобностии, а не таскать фалый библиотек (которые сжимаются в сотни раз, что нимекает на чудовищную избыточность) с тьмой с суффиксов типа rv64imafdc_zicsr_zifencei. Да и клинковке есть вопросы почему нельзя указать опцию весь такой-то (селектор) namespace собери в отдельный файл и подгружай его динамичеси.
По поводу сломает ABI, так добавте механизм управления и контроя ABI.

@apolukhin apolukhin added Помощь советом Идея прорабатывается другими участниками международного коммитета ++ Популярная идея (более чем с 20 лайками) labels Mar 24, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
++ Популярная идея (более чем с 20 лайками) Помощь советом Идея прорабатывается другими участниками международного коммитета
Projects
None yet
Development

No branches or pull requests

5 participants