Linus Torvalds critica trecho de código do Kernel Linux com palavrões
NotíciasSistemas operacionais

Linus Torvalds critica trecho de código do Kernel Linux com palavrões

Esse cara me diverte, sério, além de ter criando o núcleo de sistema mais popular do mundo, ter ganho uma boa grana, ele ainda parece revisar o código do Kernel Linux antes de uma release realmente, e isso bom… isso não é bom para quem faz “merdinha”.

Linus Torvalds não gosta de código arbitrário

O peso sobre os ombros da equipe do Kernel Linux é enorme, quantas empresas mundo à fora dependem da eficiência do núcleo criado por Linus Torvalds para operar diariamente? Com certeza muitas, por isso cada lançamento do Kernel Linux é algo que Linus dá uma grande importância, e ele não gosta de código ruim. Ele postou a seguinte resposta para um código que apareceu no Kernel 4.3.

Jesus Cristo, gente. Que m*rda é essa?

O conflito que eu vejo é devido a uma b*sta estúpida no novo arquivo cabeçalho gcc. Mas o que me deixa irritado é que isso tem motivos completamente ridículos.

Este é o código antigo em net/ipv6/ip6_output.c:

mtu -= hlen + sizeof(struct frag_hdr);

e este é o novo código “melhorado”, usando coisas que exigem suporte embutido e mágico no compilador, e tem funções wrapper [cujo principal propósito é chamar outra função] ridículas para quando ele não existir:

if (overflow_usub(mtu, hlen + sizeof(struct frag_hdr), &mtu) ||

mtu <= 7)

goto fail_toobig;

qualquer pessoa que achar que o código acima é (a) legível (b) eficiente (mesmo com o suporte mágico no compilador) (c) particularmente seguro é simplesmente louco e incompetente.

O código acima é uma m*rda, e gera código que é m*rda. É ruim e não tem nenhuma razão de ser.

O código poderia *facilmente* ter sido feito com apenas um condicional único e compreensível, e o compilador na verdade teria gerado código melhor, e o código ficaria melhor e mais compreensível. Por que isso não é:

if (mtu < hlen + sizeof(struct frag_hdr) + 8)

goto fail_toobig;

mtu -= hlen + sizeof(struct frag_hdr);

que tem o mesmo número de linhas, não usa funções auxiliares malucas que ninguém sabe o que fazem, e é muito mais óbvio sobre o que realmente faz? Eu garanto que a segunda versão é mais óbvia e mais fácil de ler e entender. Alguém realmente quer discordar disso?

Sério. Deem para mim *um* motivo pelo qual isso foi escrito dessa forma idiota com dois condicionais diferentes, e uma nova função fora do padrão que quer suporte especial no compilador para gerar um código pior? Uma função brilhante da qual jamais precisamos em qualquer outro lugar, e que é apenas masturbação de compilador.

E sim, você ainda poderia ter problemas de overflow com a expressão “hlen + xyz”, mas, francamente, o código “overflow_usub()” tinha isso também. Então, se você se preocupa com isso, você não fez a coisa certa para começo de conversa.

Então eu realmente não vejo nenhuma razão para este tipo de lixo completamente imbecil.

Diga-me porquê. Afinal, eu não vou autorizar este tipo de coisa completamente insana que gera conflitos no Release Candidate 7, e que parece não ter absolutamente nenhuma razão para ser uma bagunça ilegível e idiota.

O código parece *projetado* para usar esse novo “overflow_usub()”. Parece ser uma desculpa para usar essa função.

E é uma desculpa ruim para c*****o para essa lesão cerebral.

Sinto muito, mas nós não adicionamos novas interfaces idiotas como esta para código novo e idiota assim.

Sim, sim, se isso tivesse ficado dentro da camada de rede, eu nunca teria notado. Mas dado que eu *notei*, eu realmente não quero aprovar isso. Na verdade, eu quero deixar claro para *todo mundo* que um código como este é completamente inaceitável. Qualquer um que pensa que um código como este é “seguro” e “protegido” porque usa funções de detecção de overflow está tão maluco que não é nem engraçado. Tudo o que essa b*sta faz é tornar o código uma confusão ilegível, algo que nenhuma pessoa em sã consciência vai entender o que realmente faz.

Livrem-se disso. E eu *nunca* mais quero ver essa m*rda de novo.

Linus

Eis o controle de qualidade do Kernel Linux. xD

Veja também: 13  frases épicas de Linus Torvalds

Até a próxima!

Diolinux Ofertas - Aproveite os melhores descontos em diversos produtos!