La diatriba “spazio” contro “tab” permea il mondo Unix da sempre tra gli sviluppatori che preferiscono una forma di spaziatura o l’altra. A volte è una questione quasi religiosa: nessuno vuole separarsi dalla sua modalità prediletta per indentare o spaziare il codice.
Vien da sé come in contesti ampi in cui più attori condividono lo stesso palco, il diverso metodo di spaziatura, se non correttamente interpretato, potrebbe essere fonte di problemi.
È il caso del Kernel Linux, e nello specifico di Kconfig, il sistema di configurazione utilizzato nel kernel Linux per gestire le opzioni di configurazione durante il processo di compilazione. Esso consiste in dei file di configurazione testuali (i file Kconfig) che definiscono le opzioni disponibili per configurare le funzionalità del kernel.
Se avete mai provato a compilare il Kernel Linux a mano (azione suggerita a tutti gli utilizzatori Linux almeno una volta nella vita) avrete certamente familiarità con strumenti come menuconfig, o xconfig, che forniscono interfacce per aiutare gli utenti a selezionare e modificare le opzioni in modo interattivo.
Ecco, quegli strumenti definiscono ed agiscono proprio sui file Kconfig.
Il problema è che esistono anche strumenti terzi che si occupano della questione e ce ne sono alcuni che il loro lavoro, quando si parla di uniformare l’interpretazione di spazi e tab, non lo fanno bene.
Come racconta Phoronix, la cosa è talmente sentita che Linus Torvalds stesso ha pensato bene di produrre una patch che inserisce, letteralmente a caso, degli spazi all’interno dei file Kconfig, poiché come spiega:
Yes, tab-vs-space confusion is sadly a traditional Unix thing, and ‘make’ is famous for being broken in this regard. But no, that does not mean that it’s ok.
I’d add more random tabs to our Kconfig files, but I don’t want to make things uglier than necessary. But it might be necessary if it turns out we see more of this kind of silly tooling.
Sì, la confusione tra tab e spazi è tristemente famosa in Unix, e ‘make’ è famoso per non saper gestire queste cose. Ma no, questo non significa che vada bene.Aggiungerò altri tab random ai nostri file Kconfig, ma non voglio rendere le cose più brutte del necessario. Ma potrebbe essere necessario se salteranno fuori altri tool simili a quelli che abbiamo visto.
Quindi in poche parole per smascherare i tool incapaci di gestire correttamente i tab, questi vengono chiamati in causa forzatamente, mediante appunto le trappole escogitate dal Dittatore Benevolo.
La notizia è interessante per due aspetti principali. Il primo è la risposta implicita alla domanda di quanti si chiedono “ma Torvalds sviluppa ancora effettivamente il Kernel Linux?” La risposta è evidentemente sì, quando lo ritiene necessario, come in questo caso, al creatore di Linux piace ancora sporcarsi le mani.
Il secondo aspetto è forse più rilevante. Il problema è stato esposto, elaborato ed indirizzato mediante la patch, senza nemmeno un insulto.
Se non è progresso questo!
Da sempre appassionato del mondo open-source e di Linux nel 2009 ho fondato il portale Mia Mamma Usa Linux! per condividere articoli, notizie ed in generale tutto quello che riguarda il mondo del pinguino, con particolare attenzione alle tematiche di interoperabilità, HA e cloud.
E, sì, mia mamma usa Linux dal 2009.