LINUX.ORG.RU
ФорумTalks

Присоединился к LLVM

 libc++, ,


2

1

Захотелось поделиться, видимо для этого и существует тег жж.

Пока Google начал создавать Carbon, и вероятно меньше ресурсов будет тратить на clang/libc++ я решил присоединиться к LLVM libc++ и показать силу OpenSource сообщества 💪

Я буду делать CTRL-C CTRL-V в свободное время пока в таблице cppreference Microsoft STL и LLVM libc++ не сравняются по зеленым квадратикам 😜

Уже добавил реализацию одной С++ фичи: P2499R0

Оригинальный PR: https://github.com/microsoft/STL/pull/2947

Мой патч: https://reviews.llvm.org/D130785

★★★★★

Последнее исправление: fsb4000 (всего исправлений: 1)

Ответ на: комментарий от ox55ff

Что с совместимостью лицензий?

Одинаковая. Apache License v2.0 with LLVM Exception

Microsoft специально выбрала такую лицензию( вместо обычной MIT как для своих других Open Source проектов), чтобы можно было обмениваться кодом.

https://github.com/microsoft/STL/blob/main/LICENSE.txt

The Microsoft C++ Standard Library is under the Apache License v2.0 with LLVM Exception:

https://github.com/llvm/llvm-project/blob/main/libcxx/LICENSE.TXT

The LLVM Project is under the Apache License v2.0 with LLVM Exceptions

fsb4000 ★★★★★
() автор топика
Последнее исправление: fsb4000 (всего исправлений: 1)
Ответ на: комментарий от firkax

в кеше гугла есть: https://webcache.googleusercontent.com/search?q=cache:wh6brffgHQkJ:https://ebanoe.it/2020/08/21/kumar-contributing-to-google/+&cd=1&hl=ru&ct=clnk&gl=ru

Как Кумар в Гугл контрибьютил

Около-приблизительный перевод:

Наконец-то мои 15 строчек кода замерджины в Гугль.

Пулл-реквест ревьювили около месяца несколько раз. Слава аллаху, его аппрувнули два стажера и замерджили сегодня >даже без юнит тестов.

Я улучшил HTTP-клиент проекта google/go-github, что привело к меньшему использованию ЦП и памяти на системном уровне. Кроме того, он устраняет некоторые потенциальные проблемы с повреждением данных.

Я очень счастлив и горжусь одновременно. 😇

«Молодец, парень» — подумал я. А подумав еще раз, решил все таки глянуть тот самый ПР, который >улучшает все улучшения и оптимизирует все оптимизации.

Скрин в студию: Как Кумар в Гугл контрибьютил код

И бомбалейло заиграло на полную! 15 строчек супер-мега-улучшения, теперь-то заживем по новой, не то что раньше. Из них, конечно, кода только пару строк. И их рентабельность вызывает очень большие сомнения. и больше походит >на воркэраунд…

Но зато звучит-то как, теперь на каждом собеседовании будет говорить: «Чем занимаюсь в свободное время? Да, так, ничего особенного, контрибьючу в гугл». И хрюшандросели будут таять от сего кандидата.

Та уже тают, гляньте кол-во лайков и комментов — 33к+ и 600+ И каждый пишет: «Вдохновляет. Молодец. Хорошая работа!» Так что хейчары, будьте бдительны, Кумар Саурабх уже стучится в ваши линкедыны!

Пост LinkedIn: https://www.linkedin.com/posts/itsksaurabh_google-opensource-go-activity-6698955502807859200-kmbF/

PR c github: https://github.com/google/go-github/pull/1576/files »

fsb4000 ★★★★★
() автор топика
Последнее исправление: fsb4000 (всего исправлений: 1)

Вот это шикарный жж!

Очень круто, поздравляю!

Dimez ★★★★★
()
Ответ на: комментарий от fsb4000

Так хороший годный фикс же. Что там у комментатора полыхнуло то? Оформлено правда сраненько, я бы вот ту всю логику в метод отдельный унес чтобы не загромождать основной метод

cobold ★★★★★
()
Ответ на: комментарий от bender

ну когда LLVM 16 выйдет напишу сколько замержил в итоге 🚀

fsb4000 ★★★★★
() автор топика
Ответ на: комментарий от fsb4000

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

firkax ★★★★★
()
Ответ на: комментарий от firkax

Ну я сам не буду ничего менять там, только в libc++.

Но я задал вопрос: https://discord.com/channels/636084430946959380/636732781086638081/1005041225449099285

Можешь тоже в Discord зайти, если ответят что-нибудь мне и уточнить: https://discord.gg/HVn5veZp

fsb4000 ★★★★★
() автор топика

Молодец! Не перетрудись. А я всё с каждой твоей темы думаю и чего это пацан с стандартов так упарывается, а это ты к экзаменам в ллвм липц-пус-пус готовился :D

LINUX-ORG-RU ★★★★★
()
Ответ на: комментарий от LINUX-ORG-RU

ты к экзаменам в ллвм липц-пус-пус готовился

Не было никаких экзаменов.

Отправил пару патчей.

После одного из них написали:

When you intend to keep working on LLVM, feel free to request commit access.

https://llvm.org/docs/DeveloperPolicy.html#obtaining-commit-access

Я написал письмо clattner@llvm.org

Hi Chris!
I'm fsb4000 (https://github.com/fsb4000)
I don't know if I qualify to get the commit access but I was advised to write an email to you.

мне ответили

No problem Igor - welcome to the LLVM team!

and welcome to another Standard library team!

-Chris

и всё, пару минут всё занимает.

fsb4000 ★★★★★
() автор топика
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)