Ez már mesterséges intelligencia, vagy még természetes?

Perl-hez van egy Oracle-DBD, abban egy ilyen jóság:

$ git diff 3ecb172c17f94d21f692915703c4310a2bd23807..d37ca32e80e6933fc18d9fc07f3fd4daf0fa79c6 dbdcnx.c
-PERL_STATIC_INLINE void
-llist_drop(llist_t * el)
-{
-    if(llist_empty(el)) return;
-    el->left->right = el->right;
-    el->right->left = el->left;
-    llist_init(el);
-}
+#define llist_drop(ael) do{\
+    llist_t * el = ael;\
+    if(llist_empty(el)) return;\
+    el->left->right = el->right;\
+    el->right->left = el->left;\
+    llist_init(el);\
+}while(0)

Hint: azt tessék figyelni, milyen ügyesen alakította át a return utasítást, amikor inline függvényből makrót csinált (hint: nem alakított át semmit).

Emlékeztető:
https://github.com/perl5-dbi/DBD-Oracle/commit/3ecb172c17f94d21f6929157…
https://github.com/perl5-dbi/DBD-Oracle/issues/174
https://github.com/perl5-dbi/DBD-Oracle/pull/177

Hozzászólások

De, miért? Mire gondolt a költő?

"Maradt még 2 kB-om. Teszek bele egy TCP-IP stacket és egy bootlogót. "

Szerkesztve: 2024. 06. 25., k – 21:53

Így nem is fordul szegény program, mivel a return-t változatlanul benne hagyta az inline-függvényből makróvá alakított kódban, vagyis a return a hívó függvényből tér ki, visszatérési érték nélkül: mivel nem csak 'void-értékű' függvényekből hívják a makrót, hibát kapunk. (Szerencsére, mert így kiderült, hogy nem jó.)
https://github.com/perl5-dbi/DBD-Oracle/pull/177

https://chatgpt.com/share/5a965718-98d5-4f38-b59d-f872c644d195

Valoszinuleg chatgpt volt a ludas, ugyanezt elkovette (bar a temperature miatt nem feltetlenul kellene). Ha kijavittatom a kodot, azt is ki tudja. Ezert kell atnezni minden ilyen kodot.

Ha elore jol leirom neki, hogy mire figyeljen, feltehetoen elsore jol irja meg (vagy ha feljebb valtok 3.5-rol).

A strange game. The only winning move is not to play. How about a nice game of chess?

Akkor ez a természetes butaság

Ha tartós rendszert építesz és okos csapatot nevelsz, akkor száz kiadásban sem érheti baj; ha csak a gépekre hagyatkozol, akkor egyszer jól jársz, máskor rosszul; de ha sem a rendszer nem bírja a terhet, sem a csapat nem tanul a hibákból, akkor minden egyes kiadás kockázat.