Привет всем поклонникам Perl.
Хочу поделиться идеей и спросить совета.
Приболев жутким гриппом, наконец, я решил нормально поштудировать perlguts. Следует отметить, что у меня уже есть небольшой опыт написания XS расширейний, но взаимодействие с Perl там было минимизированно настолько, насколько это возможно. Основной код был именно на C.
Но хочется большего и понять этот страшный священный текст тоже хотелось очень давно.
Если не пишешь на C для Perl постоянно, то открывая perlguts, perlapi или любой чужой модуль с целью самообразования, лично я впадаю в ступор от названия перловых макросов и вызовов. В итоге, приходится постоянно прыгать по API reference и смотреть, а что же хотели сказать разработчики аббревиатурой svvsetpvfn и чем он отличается от svvsetpvf? Причем, это одни из более поздних макросов (как я понимаю), самые древние еще хуже.
Кошмарный кэмлкейс, обилие отличающихся одной буквой аббревиатур - это кошмар для новичка. Почему нужно было назвать синоним malloc не, скажем, perl_malloc, а Newx ??? WTF ?
Я понимаю, что человеку, который занимается разработкой постоянно это наверное даже удобно, можно кодить быстро без автокомплита, меньше печатать и тайная логика названий перловых конструкций не мешает.
Но я - новичок и мне тяжело. Почти сразу же возникла мысль, что надо бы сделать для себя хидер, который смапит "жуткие" перловые названия на что-то мнемоничное. Сказано - сделано. Я начал работу, которую можно посмотреть вот тут: https://github.com/hurricup/Perl-Mnemonic-API
На мой взгляд, код:
perl_scalar* my_scalar = create_scalar(0);
set_scalar_string( my_scalar, "This is a text" );
будет понятен даже незнакомому с Perl API вообще, в отличии от
SV* mySV = newSV(0);
sv_setpv( mySV, "This is a text" );
И список автокомплита должен выглядеть логичным и понятным, в отличии от нативного. Я попытался погуглить нечто подобное, но, либо я туп и искал не так, либо никто никогда ничего подобного не сделал. И это супер-странно.
В связи с вышеизложнным есть вопросы:
1. Не встречал ли кто-то чего-либо подобного? И если да, то покажите, пожалуйста.
2. У меня нет опыта разработки больших С проектов с большим количеством файлов и библиотек. Возник вопрос - как быть с пересечением имен? Можно, конечно, начинать все названия с perl_, но это будет оверхед. Вобщем, нужен совет от опытных людей.
3. Если вам покажется это начинание хорошим и полезным, то велком поучаствовать, покритиковать (конструктивно) и попредлагать.
Собственно, все. Спасибо за внимание.
_italic_
→ italic
**bold**
→ bold
[PP](http://pragmaticperl.com)
→
<http://pragmaticperl.com>
→
module:Plack
→
release:URI
→
author:VTI
→
`my $foo = 'bar'`
```
my $multi;
$line;
```