Este fim de semana ocorreu a solicitação pull de última hora do Kees Cook, do Google, para apresentar a nova macro sizeof_member () que havia sido rejeitada anteriormente no Linux 5.4. Bem, foi novamente rejeitado por Linus Torvalds antes de marcar o kernel do Linux 5.5-rc1 . Porém, mais uma vez, Linus Torvalds rejeita alteração “size of member” do kernel Linux 5.5 e gera discussão na equipe.
A macro size of_member () tem como objetivo unificar 2 a 3 outras macros dentro da árvore do kernel atualmente e usando o apelido de tamanho de campo. No entanto, Cook argumentou que, para medir o tamanho de um membro de uma estrutura C, a nova macro é uso mais apropriado e convertido das macros antigas para essa nova macro única.
Então, por que Linus rejeita “size of member” do kernel e gera discussão na equipe?
Linus Torvalds errou ao exagerar da cautela e evitando piadas juvenis com o tempo que significa “tamanho do membro”, decidiu não honrar essa solicitação de pull do Linux 5.5.
Sendo assim, Linus escreveu:
Portanto, ainda não estou convencido sobre este (recurso). Faz outro nome para algo que já tivemos antes, o que me irrita. E talvez tenha 13 anos em mim, mas “sizeof_member ()” apenas me faz pensar “que é pueril”.
Gostaria de ver porque nós queremos padronizar em uma das versões de árvores que temos, porém eu realmente não posso ver o problema com o #define existente que temos, e que é usado (reconhecidamente não tanto assim): sizeof_field ()
Linus
No entanto, parece que a briga continua. Na lista de discussão por e-mail, a resposta a Linus foi a seguinte:
Os 13 anos de idade em você podem crescer um dia. A maioria das crianças de 13 anos nem conhece essa palavra.
O bate-boca continuou. Linus retrucou:
… ou, você sabe, chame como as partes individuais de uma estrutura de dados são chamadas em ciência da computação em geral: campos. Isso também é um nome padrão, Joe. Apenas para citar a Wikipedia
“Um registro (também chamado de tupla ou estrutura) é uma estrutura de dados agregada . Um registro é um valor que contém outros valores, geralmente em número e sequência fixos e geralmente indexados por nomes. Os elementos dos registros são geralmente chamados de campos. ou membros ”
vêem?
Nós nomeamos as coisas pela implementação C ou pelos nomes genéricos de CS ? Às vezes um, às vezes o outro. Mas o fato é que “campo” realmente não está errado E É O QUE JÁ USAMOS.
E da última vez, apontei que pelo menos de acordo com um grep rápido, usamos “campo” muito mais do que “membro”. Possivelmente exatamente porque esse é o nome genérico típico.
Linus
Felizmente, para o Linux 5.6, veremos a unificação feita para size of_field (). Pelo menos o Linux 5.5 tem uma tonelada de mudanças práticas neste sentido.