в гитлаб. Так вот анализатор говорит, что проект состоит на 94% из Perl и на 4% Raku. Насколько я понял, Raku - это Perl 6. И стало интересно, каким образом гитлаб определяет, что часть кода написана на Perl 6 и с чего он вообще считает, что это 6 перл? Файлов с расширением raku в проекте нет, только pl и pm
По тексту, который внутри :) find . -name '*.p[lm]' -exec head -1 {} +
Это понятно, но почему считает, что это perl6?) В начале файла у всех файлов прописано package Название, не более того)
То есть, конструкция package Info::Utils::Probackup; считается теперь конструкцией языка Perl6?
Я думаю, он не только одну строку анализирует, а совокупность выражений в файле, в котором нет шабанга
возможно, некоторые файлы достаточно короткие, чтобы анализатор успел составить чёткое представление
А он не нужен
В интернетах пишут что точной инфы нет, но вероятно что gitlab использует вот эту штуку для определения языков — https://github.com/github-linguist/linguist (пишут вот тут https://stackoverflow.com/questions/60282750/how-exactly-does-gitlab-detect-languages-in-a-project ) Так что можно поднять linguist , натравить его на исходник, посмотреть на результат и если он действительно неправильно определяет perl как raku можно покопать почему он это делать (и, вомзожно, зарепоритить issue или даже почнить)
да что же это делается 😱
а у тебя везде есть use strict? вот тут пишут что добавление этого, вроде как, должно решить эту проблему https://github.com/github-linguist/linguist/discussions/6263#discussioncomment-4775835 (ну и вообще, user strict везде совать очень неплохая идея на мой взгляд)
Ну вообще, стараюсь в любую библиотеку добавлять strict, ибо избавляет от непонятных проблем, но могу допускать, что в давно написанных либах этого не делал. Спасибо за наводку, посмотрю
Может у него use Modern::Perl; :-)
Или любой другой такой-же аналог
Обсуждают сегодня