Bonjour Nal,
/bin/true
est un programme qui ne fait rien et retourne le code de sortie 0
.
Par exemple, en C :
int main() {
return 0;
}
Si on compile ce dernier avec la commande suivante:
$ gcc true.c -o true
$ wc -c true
16464
$ ./true && echo $?
0
On obtient un binaire d'environ 16kb.
Si on pousse plus loin avec la version assembleur:
bits 64
global _start
section .text
_start:
mov eax, 1 ; exit syscall
mov ebx, 0 ; exit code
int 0x80
Après compilation :
$ nasm -felf64 true.asm -o true.o
$ ld -s true.o -o true
$ wc -c true
4320
$ ./true && echo $?
0
On obtient un binaire d'environ 4kb. Il y a du progrès !
Mais vous ne battrez jamais cette implémentation qui produit un binaire de 0 octets :
$ touch true
$ chmod +x true
$ wc -c true
0
$ ./true && echo $?
0
# Fun fact
Posté par David Delassus (site web personnel) . Évalué à 10.
En plus d'être un binaire, c'est également un script python, nodeJS, bash, … :
Si ça c'est pas de la portabilité !!
https://link-society.com - https://kubirds.com - https://github.com/link-society/flowg
[^] # Re: Fun fact
Posté par Gil Cot ✔ (site web personnel, Mastodon) . Évalué à 4.
La vérité ne vaut pas un clou… c'est nul :-D
“It is seldom that liberty of any kind is lost all at once.” ― David Hume
[^] # Re: Fun fact
Posté par David Delassus (site web personnel) . Évalué à 10.
La vérité c'est qu'on a enfin un programme sans bug, vu qu'il n'y a pas de code source
https://link-society.com - https://kubirds.com - https://github.com/link-society/flowg
[^] # Re: Fun fact
Posté par fasthm . Évalué à 10.
Et, a contrario, le même fichier renommé false nous donne un programme 100% erroné !
La gent féminine, pas la "gente", pas de "e" ! La gent féminine ! Et ça se prononce comme "gens". Pas "jante".
[^] # Re: Fun fact
Posté par Gil Cot ✔ (site web personnel, Mastodon) . Évalué à 6.
Oui mais là c'est un cas de faux positif non ?
“It is seldom that liberty of any kind is lost all at once.” ― David Hume
[^] # Re: Fun fact
Posté par 16aR . Évalué à 6.
À soumettre à: https://github.com/kelseyhightower/nocode
[^] # Commentaire supprimé
Posté par Anonyme . Évalué à 2.
Ce commentaire a été supprimé par l’équipe de modération.
# Et le code source il fait quoi ?
Posté par gUI (Mastodon) . Évalué à 10. Dernière modification le 07 avril 2022 à 08:36.
Du coup par curiosité je suis allé voir le code source du GNU
true
: quel bordel !Alors déjà c'est amusant parce que le même code source fait
true
etfalse
: allez voir le code source defalse
.Ensuite ce qui coûte beaucoup c'est la simple gestion des quelques options style
--help
et l'affichage surstdout
qui va avec. D'ailleurs je ne comprends pas la différence entreprintf()
etfputs(stdout)
.Quelqu'un a une idée ?
En théorie, la théorie et la pratique c'est pareil. En pratique c'est pas vrai.
[^] # Re: Et le code source il fait quoi ?
Posté par David Delassus (site web personnel) . Évalué à 7.
fputs
affiche une chaîne de caractères là oùprintf
formatte la chaîne (%s
et compagnie) avant de l'afficher.https://link-society.com - https://kubirds.com - https://github.com/link-society/flowg
[^] # Re: Et le code source il fait quoi ?
Posté par raphj . Évalué à 6. Dernière modification le 07 avril 2022 à 08:41.
fputs
ajoute également un retour à la ligne automatiquement.[^] # Re: Et le code source il fait quoi ?
Posté par Zenitram (site web personnel) . Évalué à 9.
Euh… Non. la chaîne en paramètre, par exemple HELP_OPTION_DESCRIPTION a un retour à la ligne parce que…
"
fputs
does not write additional characters, whileputs
appends a newline character at the end automatically."(source)
(à quel niveau de n'importe quoi de détail on est la? :) )
[^] # Re: Et le code source il fait quoi ?
Posté par raphj . Évalué à 6. Dernière modification le 07 avril 2022 à 10:27.
Ah oui, effectivement, c'est bien puts qui ajoute un caractère de fin de ligne et pas
fputs
. Vu qu'on comparaitprintf
etfputs
je me suis mélangé les pinceaux.. (et il y a aussifprintf
)dans le
man puts
:[^] # Re: Et le code source il fait quoi ?
Posté par PR . Évalué à 0.
C’est pour ça qu’on aime la libc, ce petit côté sadique¹ de ses rédacteurs pour pouvoir balancer du RTFM aux newbies.
Dans le même genre tu as les codes retour des fonctions, ou l’ordre des arguments de fputs & fprintf.
—
¹ En vrai c’est probablement une question de compatibilité ascendante.
Mort aux cons !
[^] # Re: Et le code source il fait quoi ?
Posté par Gil Cot ✔ (site web personnel, Mastodon) . Évalué à 0.
C'est pourtant un classique qu'on trouve un peu partout. Quand j'ai commencé le Pascal par exemple, j'ai appris les couples
write
/writeln
etread
/readln
et je n'ai jamais trouvé ça sadique.“It is seldom that liberty of any kind is lost all at once.” ― David Hume
[^] # Re: Et le code source il fait quoi ?
Posté par Zenitram (site web personnel) . Évalué à 6. Dernière modification le 07 avril 2022 à 22:04.
Le sadisme est dans le nommage, ton exemple est donc hors sujet ("écrit" et "écrit une ligne", ça se comprend que l'un a une notion de ligne et pas l'autre et que sinon c'est pareil, "affiche dans un fichier" et "dans un fichier pousse une chaîne de caractère" on n'a ni la notion de ligne ni la notion de similitude).
Et OK il y a besoin de compatibilité mais on pourrait avoir une API propre et l'ancien pour la compatibilité. Le C/C++ a des avantage de pérennité mais excuse pour ne pas évoluer non plus…
[^] # Re: Et le code source il fait quoi ?
Posté par FantastIX . Évalué à 4.
Fun fact: GCC remplace un appel à
printf()
par un appel àputs()
lorsque la chaîne de format n'est constituée que de caractères sans élément de formatage et se termine par un'\n'
. Optimisations actives s'entend.[^] # Re: Et le code source il fait quoi ?
Posté par gUI (Mastodon) . Évalué à 5. Dernière modification le 07 avril 2022 à 22:49.
Oui, c'est à dire que dans ce cas, écrire
printf("%s", str)
est un peu commecat file | grep toto
: c'est bien, mais peut mieux faire.En théorie, la théorie et la pratique c'est pareil. En pratique c'est pas vrai.
[^] # Re: Et le code source il fait quoi ?
Posté par PachaFonk . Évalué à 1.
Sauf que si on fait juste
printf(str)
et qu'on sait pas trop d'où vientstr
… on prends des risques avec la stack ![^] # Re: Et le code source il fait quoi ?
Posté par gUI (Mastodon) . Évalué à 3. Dernière modification le 11 avril 2022 à 07:40.
Si tu vas par là, tu prends aussi un risque avec
printf("%s", str)
: si ta string n'est pas correctement formatée (terminaison par\0
), tu vas aller lire la RAM jusqu'à ce que ça pète (ou qu'on trouve un\0
par chance).En théorie, la théorie et la pratique c'est pareil. En pratique c'est pas vrai.
[^] # Re: Et le code source il fait quoi ?
Posté par raphj . Évalué à 3.
Disons que la question du
\0
se pose pour n'importe quelle fonction C qui manipule deschar*
sans taille explicite. L'histoire de la chaine accidentellement formatée passée à printf est un problème de plus à penser. Heureusement, les compilateurs avertissent.[^] # Re: Et le code source il fait quoi ?
Posté par lolop (site web personnel) . Évalué à 2.
La chaîne de caractères du source oui. Mais si c'est traduit…
Votez les 30 juin et 7 juillet, en connaissance de cause. http://www.pointal.net/VotesDeputesRN
[^] # Re: Et le code source il fait quoi ?
Posté par David Demelier (site web personnel) . Évalué à 3.
On parle de remplacer
printf
parputs
quand il s'agit d'une chaine littérale, rien à voir avec gettext puisque c'est complètement déterminé à l'exécution.git is great because linus did it, mercurial is better because he didn't
[^] # Re: Et le code source il fait quoi ?
Posté par Zenitram (site web personnel) . Évalué à 4.
fputs
est plus rapide (ne regarde pas la chaine de caractère fournie et la balance directement à la sortie), mais ne formate pas en fonction de options dans la chaîne de caractères, ce que faitprintf
.Et comme ils veulent réutiliser USAGE_BUILTIN_WARNING, une chaîne générique qui a une option (le nom du programme), ils ne s'emmerdent pas et plutôt que de stocker statiquement la chaîne qui ne changera jamais il l'adapte dynamiquement à chaque appel (oui, si on regarde l'écologie à l’électron près on bouffe un peu de CPU pour rien à refaire toujours le même calcul; mais c'est déjà bien de en as appeler
printf
quand on sait que pas d'option dans la chaîne de caractères).[^] # Re: Et le code source il fait quoi ?
Posté par gUI (Mastodon) . Évalué à 3. Dernière modification le 07 avril 2022 à 08:43.
Clair, merci à tous les
deuxtrois !En théorie, la théorie et la pratique c'est pareil. En pratique c'est pas vrai.
[^] # Re: Et le code source il fait quoi ?
Posté par gUI (Mastodon) . Évalué à 5. Dernière modification le 07 avril 2022 à 08:40.
Hop un petit lien sur l'écriture des coreutils.
En théorie, la théorie et la pratique c'est pareil. En pratique c'est pas vrai.
[^] # Re: Et le code source il fait quoi ?
Posté par pulkomandy (site web personnel, Mastodon) . Évalué à 10.
Mon préféré c'est l'implémentation de "yes" dans les coreutils.
Ce programme doit juste envoyer des 'y' sur la sortie standard. L'implémentation triviale ressemble à ceci:
La version GNU le fait beaucoup plus rapidement que toutes les autres, elle est capable de générer 10 milliards de 'y' par seconde.void main() {
while(puts("y"));
}
[^] # Re: Et le code source il fait quoi ?
Posté par PR . Évalué à 0.
Juste une remarque, sur la conclusion du lien :
Vraisemblablement l’overhead vient du syscall et de la bascule de contexte entre noyau,
yes
etpv
.Mort aux cons !
[^] # Re: Et le code source il fait quoi ?
Posté par Glandos . Évalué à 4.
La version en Rust est plus rapide chez moi :
C'est peut-être lié aux options de compilation de ma Debian, va savoir…
[^] # Re: Et le code source il fait quoi ?
Posté par David Demelier (site web personnel) . Évalué à 5.
Oui c'est même pour ça que lors d'un hackaton FreeBSD (si je me trompe pas) les développeurs en ont fait une petite blague.
Tout ça pour rajouter des standard --help et copyright.
git is great because linus did it, mercurial is better because he didn't
[^] # Re: Et le code source il fait quoi ?
Posté par Gil Cot ✔ (site web personnel, Mastodon) . Évalué à 2.
Ça c'est encore autre chose discuté plus loin
“It is seldom that liberty of any kind is lost all at once.” ― David Hume
# Runtime
Posté par phoenix (site web personnel) . Évalué à 5.
Ne serait-ce pas parce-que le runtime est porté par quelqu'un d'autre ?
Le bash ?
Il me semble qu'il y a moyen en c de faire plus petit : gcc -nostdlib -m32
Mais cela a des conséquences (pas de main)
[^] # Re: Runtime
Posté par David Delassus (site web personnel) . Évalué à 6.
Oui c'est bien le shell qui ne trouvant pas de shebang ou de code exécutable va pas faire grand chose de plus.
https://link-society.com - https://kubirds.com - https://github.com/link-society/flowg
[^] # Re: Runtime
Posté par claudex . Évalué à 10.
Attention, le shebang n'est pas interprété par le shell mais par le kernel, on peut le voir avec cet excellent journal par exemple https://linuxfr.org/users/claudex/journaux/comment-rendre-le-shebang-plus-festif
« Rappelez-vous toujours que si la Gestapo avait les moyens de vous faire parler, les politiciens ont, eux, les moyens de vous faire taire. » Coluche
# Citer la source
Posté par MrLapinot (site web personnel) . Évalué à 10.
Ça serait chouette de citer la source ayant inspiré ce billet : http://rachelbythebay.com/w/2022/04/06/text/
Ou alors c'est un hasard mais dans ce cas il est absolument extraordinaire ;-)
[^] # Re: Citer la source
Posté par David Delassus (site web personnel) . Évalué à 10.
Merci pour le lien,
Il s'agissait d'un ami qui m'a parlé d'un article qu'il avait lu parlant de ça (très certainement cet article). J'ai testé en local et fut étonné que cela fonctionne et j'ai souhaité partager sans réfléchir plus que ça.
https://link-society.com - https://kubirds.com - https://github.com/link-society/flowg
[^] # Re: Citer la source
Posté par pulkomandy (site web personnel, Mastodon) . Évalué à 10.
Ce programme de 0 octets est également la plus courte implémentation possible d'une "quine", un programme qui affiche son propre code source.
Cela a conduit à modifier les règles de l'IOCCC (le concours international de programmes C illisibles) pour obliger les candidats à proposer un programme d'au moins 1 octet.
[^] # Re: Citer la source
Posté par David Delassus (site web personnel) . Évalué à 10.
Du coup, cette implémentation de
true
n'est pas bonne :true
est censé ne rien faire, hors ici il affiche son code source.Ok je sors…
https://link-society.com - https://kubirds.com - https://github.com/link-society/flowg
[^] # Re: Citer la source
Posté par Crag . Évalué à 3.
Et l'article est actuellement en première page de Hackernews : https://news.ycombinator.com/item?id=30936333
# Benchmark
Posté par Glandos . Évalué à 5.
Préparatifs:
Et c'est parti
Donc en fait, ça marche plus vite avec un gros fichier. Va savoir pourquoi.
[^] # Re: Benchmark
Posté par David Delassus (site web personnel) . Évalué à 5.
/bin/true
est un exécutable,./ahah
est """interprété""" par le shell. Je vous ai un peu induit en erreur en disant qu'il s'agissait d'un binaire de 0 octets.https://link-society.com - https://kubirds.com - https://github.com/link-society/flowg
[^] # Re: Benchmark
Posté par Gil Cot ✔ (site web personnel, Mastodon) . Évalué à 3. Dernière modification le 07 avril 2022 à 22:50.
Oui, un coup de
strace
ou degdb
sur le fichier montre qu'il n'est pas exécuté…Et pour l'interpréteur de commande, POSIX dit « If the execve() function fails due to an error equivalent to the [ENOEXEC] error defined in the System Interfaces volume of IEEE Std 1003.1-2001, the shell shall execute a command equivalent to having a shell invoked with the pathname resulting from the search as its first operand, with any remaining arguments passed to the new shell, except that the value of "$0" in the new shell may be set to the command name. If the executable file is not a text file, the shell may bypass this command execution. In this case, it shall write an error message, and shall return an exit status of 126. »
“It is seldom that liberty of any kind is lost all at once.” ― David Hume
# La même avec un, presque vrai, ELF
Posté par PR . Évalué à -2.
http://www.muppetlabs.com/~breadbox/software/tiny/teensy.html
https://nathanotterness.com/2021/10/tiny_elf_modernized.html
Mis à part ça :
Mort aux cons !
[^] # Re: La même avec un, presque vrai, ELF
Posté par PR . Évalué à 0.
D’ailleurs y’a une typo dans le journal:
Mort aux cons !
[^] # Re: La même avec un, presque vrai, ELF
Posté par David Delassus (site web personnel) . Évalué à 4.
Ah effectivement, merci!
Si les modos passent par la et peuvent corriger.
(Il serait grand temps de pouvoir éditer ou du moins avoir un système pour ne pas passer par les commentaires pour apporter les corrections)
https://link-society.com - https://kubirds.com - https://github.com/link-society/flowg
[^] # Re: La même avec un, presque vrai, ELF
Posté par gUI (Mastodon) . Évalué à 5. Dernière modification le 07 avril 2022 à 13:38.
Fait, c'est bon comme ça ? (je ne pratique pas l'ASM et les instructions pour la modification ne sont pas très claires)
Je pense que c'est plus ou moins voulu, pour éviter que les modifications n'impactent trop le sens du journal alors que les commentaires ont démarré.
En théorie, la théorie et la pratique c'est pareil. En pratique c'est pas vrai.
[^] # Re: La même avec un, presque vrai, ELF
Posté par David Delassus (site web personnel) . Évalué à 4.
Parfait merci !
Je pensais a un système ou l'auteur peu soumettre une demande de modification aux modérateurs, en arrivant sur linuxfr ils auraient une sorte de notification "machin a demandé a modifier prout".
https://link-society.com - https://kubirds.com - https://github.com/link-society/flowg
[^] # Re: La même avec un, presque vrai, ELF
Posté par aiolos . Évalué à 3.
Voir un système pour signaler les typos, pas nécessairement par l'OP…
[^] # Re: La même avec un, presque vrai, ELF
Posté par Ysabeau 🧶 (site web personnel, Mastodon) . Évalué à 6. Dernière modification le 07 avril 2022 à 17:35.
Il manque un système qui devrait être en place (et qui est obligatoire pour certains sites) qui permettrait de signaler un message directement à la modération. Idéalement cela pourrait être un bouton avec une liste déroulante et les types d'item :
Et, évidemment, une zone de saisie pour indiquer précisément et brièvement ce qui cloche. Ça arriverait par exemple dans la tribune Modération. Sauf que, si on a besoin d'un complément d'information, il n'est pas évident de contacter les gens qui ont émis le signalement (parce que les adresses de courriel du compte peuvent être obsolètes).
« Tak ne veut pas quʼon pense à lui, il veut quʼon pense », Terry Pratchett, Déraillé.
[^] # Re: La même avec un, presque vrai, ELF
Posté par Gil Cot ✔ (site web personnel, Mastodon) . Évalué à 2.
Oui, un truc séparé des commentaires sur le fond pour discuter sur certaines formes.
“It is seldom that liberty of any kind is lost all at once.” ― David Hume
# true=0 ?
Posté par Tit . Évalué à 0.
je trouve perturbant que true renvoie 0, puisque 0 c'est false en général
[^] # Re: true=0 ?
Posté par David Delassus (site web personnel) . Évalué à 7.
/bin/true
, et tout programme POSIX retournent un code d'erreur (int de 8 bits), et non un booléen.Le code d'erreur
0
signifie qu'il n'y a eu aucune erreur. Le code255
(ou-127
) signifie que le programme a été stoppé par un signal. La signification des codes de1
à254
est déterminée par le programme.Tu peux aussi considérer que
/bin/true
renvoi 0 car il est faux de dire qu'il a échoué à ne rien faire.https://link-society.com - https://kubirds.com - https://github.com/link-society/flowg
[^] # Re: true=0 ?
Posté par Tit . Évalué à 6. Dernière modification le 07 avril 2022 à 14:19.
c'est pas un code d'erreur du coup ;-)
waouh, quelle formulation ! à la réflexion je me sens très proche de true : je réussis parfaitement à ne rien faire !
Merci pour la réponse
[^] # Re: true=0 ?
Posté par Maclag . Évalué à 3.
Voilà, en débogage, il doit écrire:
-------> [ ]
[^] # Re: true=0 ?
Posté par _kaos_ . Évalué à 2.
Ça, c'est la couche de compatibilité windows, non ?
Ferme pas trop vite la porte, j'arrive !
Matricule 23415
[^] # Re: true=0 ?
Posté par David Delassus (site web personnel) . Évalué à 5.
Tu confonds avec :
https://link-society.com - https://kubirds.com - https://github.com/link-society/flowg
[^] # Re: true=0 ?
Posté par _kaos_ . Évalué à 3. Dernière modification le 09 avril 2022 à 09:11.
Pourtant, il me semblait que c'était aussi documenté :
Toutes mes confuses…
Matricule 23415
[^] # Re: true=0 ?
Posté par Colin Pitrat (site web personnel) . Évalué à 3.
Ça c'est une erreur qui fait envi
[^] # Re: true=0 ?
Posté par SSHNuke0 . Évalué à 2.
Bof, nous aussi on a ça
^^
: (Oui, un de mes vg se nomme Null, ça me faisait rire)[^] # Re: true=0 ?
Posté par David Delassus (site web personnel) . Évalué à 3.
Toi t'es confiant de jamais risquer un ptit
cat >/dev/Null
Cela dit, c'est cohérent avec ton nom d'utilisateur :D
https://link-society.com - https://kubirds.com - https://github.com/link-society/flowg
[^] # Re: true=0 ?
Posté par SSHNuke0 . Évalué à 1.
^^
[^] # Re: true=0 ?
Posté par PR . Évalué à 1.
Hum…
Le retour chez moi c’est 128 + numéro du signal (ça va dépendre du système et de la machine)
Les seules garanties sont 0 <=> succès, et l’exit code est sur l’octet de poids faible quand il existe. En C Posix il y a des macros, que zsh utilise manifestement.
Mort aux cons !
[^] # Re: true=0 ?
Posté par Anthony Jaguenaud . Évalué à 10. Dernière modification le 07 avril 2022 à 14:54.
En fait, pas tout à fait. Il vaut mieux rester de 0 à 127. Sous Linux, généralement, si un processus est tué par un signal, tu retrouves le code de retour : 128 +
numéro du signal
.Ici, 130 == 128 + 2 => SIGINT qui correspond bien au
<Ctrl>+c
.Édit: Arg, grillé !
[^] # Re: true=0 ?
Posté par PR . Évalué à 2.
C’est ce qui arrive aux CPU qui font des
while(1);
:pMort aux cons !
[^] # Re: true=0 ?
Posté par GnunuX (site web personnel) . Évalué à 5.
true ne renvoi pas 0, le code de retour est 0 (ce n'est pas la meme chose).
Le code retour des applications qui n'ont pas de problème est "0".
[^] # Re: true=0 ?
Posté par Colin Pitrat (site web personnel) . Évalué à 2.
Pourtant false n'a pas de problème
[^] # Re: true=0 ?
Posté par Thomas Douillard . Évalué à 3.
Il n’y a pas que toi :) différentes considérations sur ce thème dans cette question Stack Overflow https://stackoverflow.com/questions/2953646/how-can-i-declare-and-use-boolean-variables-in-a-shell-script
[^] # Re: true=0 ?
Posté par Gil Cot ✔ (site web personnel, Mastodon) . Évalué à 2.
La réponse est simple pour moi : le shell POSIX ne connait que des chaînes de caractères… D'autres, à l'instar de Korn, ont des
declare
mais là c'est une autre affaire (RTFM) et sinon ça peut être le signe que ce qu'on cherche à faire gagnerait à être fait dans un langage plus avancé…“It is seldom that liberty of any kind is lost all at once.” ― David Hume
# Même un simple return lève des questions.
Posté par Benoît Sibaud (site web personnel) . Évalué à 5. Dernière modification le 07 avril 2022 à 15:41.
1) Même sur un simple return, il peut y avoir question apparemment.
Cf le manuel de pngcrush http://manpages.ubuntu.com/manpages/focal/en/man1/pngcrush.1.html
2)
true
peut échouerCf https://twitter.censors.us/jfbastien/status/1357878585361530882
et son
/bin/true --help &> /dev/full ; echo $?
[^] # Re: Même un simple return lève des questions.
Posté par Benoît Sibaud (site web personnel) . Évalué à 4.
parce que…
[^] # Re: Même un simple return lève des questions.
Posté par Gil Cot ✔ (site web personnel, Mastodon) . Évalué à 2.
J'ai compris « writer » dans un autre sens, et je m'attendais plus à ce que ce soit la différence « ⌅ Enter vs ↵ Return »
“It is seldom that liberty of any kind is lost all at once.” ― David Hume
# Rachel en parle
Posté par Tonton Th (Mastodon) . Évalué à 3.
https://rachelbythebay.com/w/2022/04/07/empty/
Okay, wow, my post about an empty file has generated a lot of feedback, mostly for the throwaway line at the bottom about an empty file being the smallest version of
/bin/true
possible.Rachel by the Bay, un blog à suivre…
# Licence d'un fichier vide
Posté par vitanix . Évalué à 2.
Par contre ton fichier vide, tu ne peux pas lui mettre de licence. Parce que s'il y a une licence GPL3 par exemple, ça poserait des problèmes à pas mal de projets qui ne sont pas en GPL3.
[^] # Re: Licence d'un fichier vide
Posté par Maclag . Évalué à 4.
D'un autre côté, si on peut mettre une licence à un fichier vide, ça ouvre pas mal de portes sur les plaintes concernant des codes dérivés du fichier vide.
[^] # Re: Licence d'un fichier vide
Posté par Dr BG . Évalué à 4.
Euh… c'est exactement le sens de sa blague non ?
[^] # Re: Licence d'un fichier vide
Posté par Benoît Sibaud (site web personnel) . Évalué à 5. Dernière modification le 09 avril 2022 à 09:42.
Elle n'est pas aussi vide de sens la blague ?
[^] # Re: Licence d'un fichier vide
Posté par Colin Pitrat (site web personnel) . Évalué à 4.
Les plaisanteries les plus courtes sont les meilleures, donc elle est impossible à battre
[^] # Re: Licence d'un fichier vide
Posté par devnewton 🍺 (site web personnel) . Évalué à 7.
Le post ci-dessus est une grosse connerie, ne le lisez pas sérieusement.
[^] # Re: Licence d'un fichier vide
Posté par David Delassus (site web personnel) . Évalué à 3.
T'es sur que c'est pas du freemium avec pay-to-win? Car j'ai pas accès au code source…
https://link-society.com - https://kubirds.com - https://github.com/link-society/flowg
[^] # Re: Licence d'un fichier vide
Posté par Colin Pitrat (site web personnel) . Évalué à 3.
Il a pas dit que le code source était facile à trouver
[^] # Re: Licence d'un fichier vide
Posté par Gil Cot ✔ (site web personnel, Mastodon) . Évalué à 2. Dernière modification le 09 avril 2022 à 12:55.
Ce n'était pas en C mais à base de carbone…
et au passage écrit en base quatre caractères…
C'est ça la vie…
“It is seldom that liberty of any kind is lost all at once.” ― David Hume
[^] # Re: Licence d'un fichier vide
Posté par Glandos . Évalué à 3. Dernière modification le 09 avril 2022 à 23:04.
Quand bien même on aurait accès au code source, il faudrait être capable de l'interpréter.
Et en plus, ça se base sur des systèmes chaotiques, dont l'évolution est impossible à prévoir sur le long terme sans une précision infinie quant aux données de départ.
J'crois qu'on peut s'brosser.
# Verdure
Posté par Stéphane Bortzmeyer (site web personnel, Mastodon) . Évalué à 3.
Ce code est aussi remarquablement écologique. Il serait difficile d'avoir une consommation énergétique plus faible.
[^] # Re: Verdure
Posté par David Delassus (site web personnel) . Évalué à 4.
Bof, on stocke quand même une entrée dans la "table des matières" du système de fichier pour référencer un fichier vide.
De mémoire, un inode sur ext4 c'est 256 octets, alors que :
C'est 14 octets pour la commande complète.
https://link-society.com - https://kubirds.com - https://github.com/link-society/flowg
[^] # Re: Verdure
Posté par Benoît Sibaud (site web personnel) . Évalué à 4.
Lancer un shell doit coûter énergétiquement plus que le binaire statique du return 0 par contre. Mais sa compilation a ponctuellement coûté aussi. Et puis il est potentiellement dans les sauvegardes du système.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.