
Et le C K&R n'impose aucun prototype pour main, c'est pour ça que clang râle (et GCC estes bien connu pour être très compilant avec les standards)
Brunni (./1469) :http://www.gnu.org/software/libc/manual/html_node/Program-Arguments.html
Le résultat est très joli. Il sonne très faux au début, mais après un petit moment c'est surprenant. Quoi qu'il en soit, je ne vois pas comment ce programme peut compiler, un prototype de main à 3 paramètres… je ne sais pas ce qu'ils sont censés valoir…
{{ "One line music" for the Propeller }} CON _clkmode = xtal1 + pll16x _xinfreq = 5_000_000 SAMPLE_RATE = 8000 var PUB main start(24,15) PUB start(left, right) sampleRate := clkFreq / SAMPLE_RATE ctrL := %00110 << 26 + left ctrR := %00110 << 26 + right r1 := ((1<<right) | (1<<left))&!1 cognew(@oneLiner, 0) DAT org 0 oneLiner mov dira, r1 mov ctra, ctrL mov ctrb, ctrR mov waitCounter, cnt add waitCounter, sampleRate mov i, #0 mainLoop mov n, i shr n, #14 mov s, i shr s, #17 'Channel 1 mov x, #1 mov note, n mov octave,#12 call #gFunc mov c1, r1 'Channel 2 mov x, s mov note, n mov r1, i shr r1, #13 xor note, r1 mov octave,#10 call #gFunc mov c2, r1 'Channel 3 mov mx, s mov my, #3 call #divide mov x, mx and x, mask16 mov mx, i shr mx, #11 mov my, #3 call #divide mov note, mx shr note, #16 add note, n call #gFunc mov c3, r1 'Channel 4 mov mx, s mov my, #5 call #divide mov x, mx and x, mask16 mov mx, i shr mx, #10 mov my, #3 call #divide mov mn, mx shr mn, #16 mov note, #8 add note, n sub note, mn mov octave, #9 call #gFunc mov c4, r1 ' mixing mov out, c1 add out, c2 add out, c3 add out, c4 and out, #$FF shl out, #24 waitcnt waitCounter, sampleRate mov frqa, out mov frqb, out add i, #1 jmp #mainLoop gFunc mov r1, i ' r1 = i shr r1, #16 ' r1 = r1 >> 16 and r1, #3 WZ ' r1 = r1 & 3 mov r2, note ' r1 = i and r2, #7 ' r2 = r2 & 7 mov r3, #RAMP1 if_z mov r3, #RAMP2 ' r3 = *RAMPx add r3, r2 movs rampRd, r3 add r2, #1 rampRd mov r1, 0-0 ' r1 = r3 add r1, #51 ' r1 = r1 + 51 ' >> r1 = r1 * i mov mx, i mov my, r1 multiply shl mx, #16 mov mt, #16 shr my, #1 WC :loop if_c add my, mx WC rcr my, #1 WC djnz mt, #:loop mov r1, my shr r1, octave ' r1 = r1 >> octave and r1, x ' r1 = r1 & x and r1, #3 ' r1 = r1 & 3 shl r1, #4 ' r1 = r1 << 4 gFunc_ret ret divide shl my, #15 mov mt, #16 :loop cmpsub mx, my WC rcl mx, #1 djnz mt, #:loop divide_ret ret mn long 0 mx long 0 mt long 0 my long 0 mr long 0 idx long 0 n long 0 s long 0 x long 0 note long 0 octave long 0 r1 long 0 r2 long 0 r3 long 0 RAMP1 long "B","Y","}","6","Y","B","6","%" RAMP2 long "Q","j","}","6","j","Q","6","%" sampleRate long 0 waitCounter long 0 i long 0 c1 long 0 c2 long 0 c3 long 0 c4 long 0 out long 0 ctrL long 0 ctrR long 0 mask16 long $FFFF
flanker (./1486) :Mais Ansible reste lui aussi bloqué à l'âge de pierre de Python 2.
* des projets morts en terme d'évolutions ou de communauté (Fabric, totalement dépassé par Ansible) et avec un équivalent moderne,
flanker (./1491) :Ça n'est pas vraiment pour me rassurer, quand il s'agit justement d'un projet qui a tout juste commencé sa migration
Le code aura été compatible 2&3 pendant pas mal d'années, au final.
flanker (./1491) :Oui, c'est pour ça que j'utilise Ansible malgré tout. Mais au-delà de ce cas particulier je rebondissais surtout sur le fait qu'être en Python 2, pour un projet connu et duquel j'attends encore beaucoup d'évolutions, est un désavantage dont je ne me "fous pas à 99%" ^^
Je reconnais que c'est gênant, mais la gêne n'était pas suffisante pour que je me tourne vers une autre techno : de toute façon il n'y a pas de concurrent en Python 3
Zeph (./1493) :Comment ça ?flanker (./1491) :Ça n'est pas vraiment pour me rassurer, quand il s'agit justement d'un projet qui a tout juste commencé sa migration
Le code aura été compatible 2&3 pendant pas mal d'années, au final.
Je ne pense pas qu'une migration vers Python 3 oblige à bloquer l'évolution, c'est pour ça que ça ne me fait pas trop peur. Mes propres plugins sont écrits de façon à être compatibles, donc pour moi une migration sera transparente.flanker (./1491) :Oui, c'est pour ça que j'utilise Ansible malgré tout. Mais au-delà de ce cas particulier je rebondissais surtout sur le fait qu'être en Python 2, pour un projet connu et duquel j'attends encore beaucoup d'évolutions, est un désavantage dont je ne me "fous pas à 99%" ^^
Je reconnais que c'est gênant, mais la gêne n'était pas suffisante pour que je me tourne vers une autre techno : de toute façon il n'y a pas de concurrent en Python 3
Zerosquare (./1496) :WTF?! D'ailleurs, à un moment, l'auteur critique le C++, mais le C++ n'est pas du tout le problème dans ce projet, il y a plein d'autres trucs qui ne vont pas et qui n'ont rien à voir avec le C++! La conception est totalement foireuse dans tous les sens!
https://projectfailures.wordpress.com/2008/06/24/project-from-hell/