Rust
Ciao a tutti, sul sito di mozillaitalia pubblicizzano Rust, un nuovo linguaggio di programmazione che non avevo mai sentito. Qualcuno gli ha dato un'occhiata e se n'è fatto un'opinione? Piviul -- Per REVOCARE l'iscrizione alla lista, inviare un email a debian-italian-requ...@lists.debian.org con oggetto "unsubscribe". Per problemi inviare un email in INGLESE a listmas...@lists.debian.org To UNSUBSCRIBE, email to debian-italian-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: https://lists.debian.org/556ed195.7090...@riminilug.it
Re: Rust
> > >Ciao a tutti, sul sito di mozillaitalia pubblicizzano Rust, un nuovo >linguaggio di programmazione che non avevo mai sentito. Qualcuno gli ha >dato un'occhiata e se n'è fatto un'opinione? > >Piviul E' tra le cose che vorrei fare, quando avrò voglia/tempo. A prima vista sembra un "C" ad alto livello. W. -- Per REVOCARE l'iscrizione alla lista, inviare un email a debian-italian-requ...@lists.debian.org con oggetto "unsubscribe". Per problemi inviare un email in INGLESE a listmas...@lists.debian.org To UNSUBSCRIBE, email to debian-italian-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: https://lists.debian.org/1122938306.6531454.1433326982736.javamail.ya...@mail.yahoo.com
Re: Rust
On 03/06/2015 12:06, Piviul wrote: Ciao a tutti, sul sito di mozillaitalia pubblicizzano Rust, un nuovo linguaggio di programmazione che non avevo mai sentito. Qualcuno gli ha dato un'occhiata e se n'è fatto un'opinione? Si, ed è un'opinione bellissima. :D E` un linguaggio di basso livello (C++, per intenderci) con un paio di caratteristiche veramente interessanti: 1) il compilatore tiene traccia della "vita" dei dati e in fase di compilazione da errori se fai qualcosa di inconsistente (tipo usare della memoria dopo averla liberata). 2) ha strutture dati ed una sintassi molto sofisticata: puoi usarlo sia per la programmazione in stile OO che per quella funzionale. federico -- Federico Di Gregorio federico.digrego...@dndg.it Di Nunzio & Di Gregorio srl http://dndg.it But not all bugs are an interesting challenge. Some are just a total waste of my time, which usually is much more valuable than the time of the submitter. -- Md -- Per REVOCARE l'iscrizione alla lista, inviare un email a debian-italian-requ...@lists.debian.org con oggetto "unsubscribe". Per problemi inviare un email in INGLESE a listmas...@lists.debian.org To UNSUBSCRIBE, email to debian-italian-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: https://lists.debian.org/556ed75b.3090...@dndg.it
Re: Rust
Il 03/06/2015 12:30, Federico Di Gregorio ha scritto: > On 03/06/2015 12:06, Piviul wrote: >> Ciao a tutti, sul sito di mozillaitalia pubblicizzano Rust, un nuovo >> linguaggio di programmazione che non avevo mai sentito. Qualcuno gli ha >> dato un'occhiata e se n'è fatto un'opinione? > > Si, ed è un'opinione bellissima. :D > > E` un linguaggio di basso livello (C++, per intenderci) con un paio di > caratteristiche veramente interessanti: > > 1) il compilatore tiene traccia della "vita" dei dati e in fase di > compilazione da errori se fai qualcosa di inconsistente (tipo usare > della memoria dopo averla liberata). E quindi niente piu' SIGSEV? E che gusto c'e' :D > > 2) ha strutture dati ed una sintassi molto sofisticata: puoi usarlo sia > per la programmazione in stile OO che per quella funzionale. > > federico > -- Hofstadter's Law: "It always takes longer than you expect, even when you take into account Hofstadter's Law." -- Per REVOCARE l'iscrizione alla lista, inviare un email a debian-italian-requ...@lists.debian.org con oggetto "unsubscribe". Per problemi inviare un email in INGLESE a listmas...@lists.debian.org To UNSUBSCRIBE, email to debian-italian-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: https://lists.debian.org/556ee511.6070...@gmail.com
Re: Rust
2015-06-03 12:06 GMT+02:00 Piviul : > Ciao a tutti, sul sito di mozillaitalia pubblicizzano Rust, un nuovo > linguaggio di programmazione che non avevo mai sentito. Qualcuno gli ha dato > un'occhiata e se n'è fatto un'opinione? lo seguo dai tempi d'infanzia quando come alternativa reale giocavo con Go. Praticamente Rust ti fa buttare Go nel cestino. Se hai fisse per il C (low level) e per Ada (integrita) allora è un bel giocattolino.Ma non fa miracoli ovviamente La cosa interessante è la promozione nativa di Mozilla che lo eleva a linguaggio che, spero, verra usato sempre di piu a me diverte L -- Per REVOCARE l'iscrizione alla lista, inviare un email a debian-italian-requ...@lists.debian.org con oggetto "unsubscribe". Per problemi inviare un email in INGLESE a listmas...@lists.debian.org To UNSUBSCRIBE, email to debian-italian-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: https://lists.debian.org/cakoe0xp1astdbm-hln7ef0xe_p7rexgj8rutm5ydo1g9sj4...@mail.gmail.com
Re: Rust
onetmt writes: > > 1) il compilatore tiene traccia della "vita" dei dati e in fase di > > compilazione da errori se fai qualcosa di inconsistente (tipo usare > > della memoria dopo averla liberata). > > E quindi niente piu' SIGSEV? E che gusto c'e' :D (mapcar (lambda (a) (fai-qualcosa-su a)) lista)) Sinceramente in C semplice e C++ non hai molte possibilità per farlo. E comunque, mi spiace per te che non hai mai visto i SIGBUS... -- /\ ___Ubuntu: ancient /___/\_|_|\_|__|___Gian Uberto Lauri_ African word //--\| | \| | Integralista GNUslamicomeaning "I can \/ coltivatore diretto di software not install già sistemista a tempo (altrui) perso...Debian" Warning: gnome-config-daemon considered more dangerous than GOTO -- Per REVOCARE l'iscrizione alla lista, inviare un email a debian-italian-requ...@lists.debian.org con oggetto "unsubscribe". Per problemi inviare un email in INGLESE a listmas...@lists.debian.org To UNSUBSCRIBE, email to debian-italian-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: https://lists.debian.org/21870.61965.871260.612...@mail.eng.it
Re: Rust
Federico Di Gregorio writes: > 1) il compilatore tiene traccia della "vita" dei dati e in fase di > compilazione da errori se fai qualcosa di inconsistente (tipo usare > della memoria dopo averla liberata). Questa era una delle cose buone introdotte da Java... > 2) ha strutture dati ed una sintassi molto sofisticata: puoi usarlo sia > per la programmazione in stile OO che per quella funzionale. Ulala! -- /\ ___Ubuntu: ancient /___/\_|_|\_|__|___Gian Uberto Lauri_ African word //--\| | \| | Integralista GNUslamicomeaning "I can \/ coltivatore diretto di software not install già sistemista a tempo (altrui) perso...Debian" Warning: gnome-config-daemon considered more dangerous than GOTO -- Per REVOCARE l'iscrizione alla lista, inviare un email a debian-italian-requ...@lists.debian.org con oggetto "unsubscribe". Per problemi inviare un email in INGLESE a listmas...@lists.debian.org To UNSUBSCRIBE, email to debian-italian-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: https://lists.debian.org/21870.62178.113654.71...@mail.eng.it
Re: Problemi all'avvio di debian
Il 31/05/2015 20:14, Giovanni Bellonio ha scritto: Il 30/05/2015 18:42, Davide Prina ha scritto: se hai una testing aggiornata il risultato deve essere questo: $ cat /proc/version Linux version 3.16.0-4-amd64 (debian-ker...@lists.debian.org) (gcc version 4.8.4 (Debian 4.8.4-1) ) #1 SMP Debian 3.16.7-ckt9-3 (2015-04-23) hai tutte versioni vecchie Ma non è che hai errori e ti dice che non può aggiornare perché ci sono errori? prova # apt-get -f install questo è il risultato del comando: Lettura elenco dei pacchetti... Fatto Generazione albero delle dipendenze Lettura informazioni sullo stato... Fatto 0 aggiornati, 0 installati, 0 da rimuovere e 1 non aggiornato Il pacchetto non aggiornato appare ogni volta che eseguo apt-get upgrade o dist-upgrade e si tratta di db5.1-util, ma apt-cache show db5.1-util Package: db5.1-util Source: db Version: 5.1.29-9 ma in https://packages.debian.org/search?suite=all§ion=all&arch=any&searchon=names&keywords=db5.1-u leggo che questa dovrebbe essere la versione presente sia su testing che in sid (e anche in stable, solo in oldstable è indicata la versione 5.1.29-5) Non è che hai qualcosa in $ ls -l /etc/apt/sources.list.d/* questo comando riporta totale 0 altrimenti prova apt-offline, come ti avevo consigliato Ho installato apt-offline sia sul computer dell'ufficio che sul mio notebook, e seguendo questa guida http://www.lffl.org/2015/01/apt-offline-aggiornare-debian-ubuntu-e-derivate-senza-connessione.html cercherò di eseguire l'aggiornamento. Ciao Davide Ciao Gianni Aggiornamento ho provato ad installare gli aggiornamenti scaricati con apt-offline, ma ha restituito errore di "bad signature. Not syncing because in strict mode.". Però pensando che il computer era membro di un dominio active directory e rileggendo le e-mail di un paio di settimane fa (20/05/2015) di problemi tra jessie e samba avuti da Paolo, ho provato ad installare i pacchetti libnss-winbind libpam-winbind ed ora il login viene eseguito correttamente. Ho provatoad installare Gnome come indicato in https://wiki.debian.org/it/Gnome, ma tasksel ha restituito errore (100); googolando ho provato ad effettuare apt-get (e aptitude) update, ma il problema continuava a presentarsi. Ho provato allora ad eseguire # aptitude install gnome gdm ma l'installazione termina dicendo che non riesce ad eseguire l'installazione poiché non riesce a risolvere alcune dipendenze (non riesce a trovare tra gli altri rhythmbox, totem, empathy, evolution, gdm3) Per il momento ho sistemato installando Xfce e slim, per lo meno riesco ad usare i programmi che mi servono Gianni -- Giovanni Bellonio -- Per REVOCARE l'iscrizione alla lista, inviare un email a debian-italian-requ...@lists.debian.org con oggetto "unsubscribe". Per problemi inviare un email in INGLESE a listmas...@lists.debian.org To UNSUBSCRIBE, email to debian-italian-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: https://lists.debian.org/556ef434.80...@inventati.org
Re: Rust
On 03/06/2015 14:24, Gian Uberto Lauri wrote: onetmt writes: > > 1) il compilatore tiene traccia della "vita" dei dati e in fase di > > compilazione da errori se fai qualcosa di inconsistente (tipo usare > > della memoria dopo averla liberata). > > E quindi niente piu' SIGSEV? E che gusto c'e' :D (mapcar (lambda (a) (fai-qualcosa-su a)) lista)) Sinceramente in C semplice e C++ non hai molte possibilità per farlo. In Rust: lista.map(|x| { /* fai qualcosa su x, elemnto di "lista" */ }); :D -- Federico Di Gregorio federico.digrego...@dndg.it Di Nunzio & Di Gregorio srl http://dndg.it In science one tries to tell people, in such a way as to be understood by everyone, something that no one ever knew before. But in poetry, it's the exact opposite. -- Paul Dirac -- Per REVOCARE l'iscrizione alla lista, inviare un email a debian-italian-requ...@lists.debian.org con oggetto "unsubscribe". Per problemi inviare un email in INGLESE a listmas...@lists.debian.org To UNSUBSCRIBE, email to debian-italian-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: https://lists.debian.org/556ef732.5020...@dndg.it
Re: Rust
On 03/06/2015 14:28, Gian Uberto Lauri wrote: Federico Di Gregorio writes: > 1) il compilatore tiene traccia della "vita" dei dati e in fase di > compilazione da errori se fai qualcosa di inconsistente (tipo usare > della memoria dopo averla liberata). Questa era una delle cose buone introdotte da Java... Si, ma Java e tutti gli altri linguaggi, sia precedenti (LISP, per dirne uno mooolto precedente) che successivi (F# per dirne uno che piace a me) lo fanno a runtime. Rust lo fa alla compilazione. > 2) ha strutture dati ed una sintassi molto sofisticata: puoi usarlo sia > per la programmazione in stile OO che per quella funzionale. Ulala! No, Rust ululì, lupo ulalà. federico -- Federico Di Gregorio federico.digrego...@dndg.it Di Nunzio & Di Gregorio srl http://dndg.it God is in the rain... -- Evey Hammond -- Per REVOCARE l'iscrizione alla lista, inviare un email a debian-italian-requ...@lists.debian.org con oggetto "unsubscribe". Per problemi inviare un email in INGLESE a listmas...@lists.debian.org To UNSUBSCRIBE, email to debian-italian-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: https://lists.debian.org/556ef7be.4070...@dndg.it
Re: Rust
Il 03/06/2015 14:24, Gian Uberto Lauri ha scritto: > onetmt writes: > > > 1) il compilatore tiene traccia della "vita" dei dati e in fase di > > > compilazione da errori se fai qualcosa di inconsistente (tipo usare > > > della memoria dopo averla liberata). > > > > E quindi niente piu' SIGSEV? E che gusto c'e' :D > > (mapcar > (lambda (a) > (fai-qualcosa-su a)) > lista)) > > Sinceramente in C semplice e C++ non hai molte possibilità per farlo. Non e' difficile; basta dimenticare un malloc: $ cat sigsev.c #include #include int main(int argc, char* argv[]) { int *iar; int i; for (i = 0; i < 3; i ++) { iar[i] = i; printf("%f\n", iar[i]); } free(iar); return 0; } $ ./sigsev Errore di segmentazione > > E comunque, mi spiace per te che non hai mai visto i SIGBUS... > -- Hofstadter's Law: "It always takes longer than you expect, even when you take into account Hofstadter's Law." -- Per REVOCARE l'iscrizione alla lista, inviare un email a debian-italian-requ...@lists.debian.org con oggetto "unsubscribe". Per problemi inviare un email in INGLESE a listmas...@lists.debian.org To UNSUBSCRIBE, email to debian-italian-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: https://lists.debian.org/556f02d2.1060...@gmail.com
Re: Rust
On 03/06/2015 15:36, onetmt wrote: Il 03/06/2015 14:24, Gian Uberto Lauri ha scritto: >onetmt writes: > > > 1) il compilatore tiene traccia della "vita" dei dati e in fase di > > > compilazione da errori se fai qualcosa di inconsistente (tipo usare > > > della memoria dopo averla liberata). > > > > E quindi niente piu' SIGSEV? E che gusto c'e' :D > >(mapcar >(lambda (a) > (fai-qualcosa-su a)) > lista)) > >Sinceramente in C semplice e C++ non hai molte possibilità per farlo. Non e' difficile; basta dimenticare un malloc: Credo si riferisse alla lambda, non al SIGSEV. :D federico -- Federico Di Gregorio federico.digrego...@dndg.it Di Nunzio & Di Gregorio srl http://dndg.it I did appreciate the irony that I was whining about encoding issues on a mailing list that was unable to show those chars, too. -- Antti S. Lankila to mono-devel-list@ -- Per REVOCARE l'iscrizione alla lista, inviare un email a debian-italian-requ...@lists.debian.org con oggetto "unsubscribe". Per problemi inviare un email in INGLESE a listmas...@lists.debian.org To UNSUBSCRIBE, email to debian-italian-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: https://lists.debian.org/556f0374.8050...@dndg.it
Re: Rust
Federico Di Gregorio writes: > On 03/06/2015 14:28, Gian Uberto Lauri wrote: > > Federico Di Gregorio writes: > > > > > 1) il compilatore tiene traccia della "vita" dei dati e in fase di > > > compilazione da errori se fai qualcosa di inconsistente (tipo usare > > > della memoria dopo averla liberata). > > > > Questa era una delle cose buone introdotte da Java... > > Si, ma Java e tutti gli altri linguaggi, sia precedenti (LISP, per dirne Ti devo correggere. Java fa moltissimi controlli a compile time, compresa l'inizializzazione dei riferienti agli oggetti. > > Ulala! > > No, Rust ululì, lupo ulalà. Ottima -- Gian Friends will be friends right to the end! -- Per REVOCARE l'iscrizione alla lista, inviare un email a debian-italian-requ...@lists.debian.org con oggetto "unsubscribe". Per problemi inviare un email in INGLESE a listmas...@lists.debian.org To UNSUBSCRIBE, email to debian-italian-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: https://lists.debian.org/21871.5448.281339.31...@mail.eng.it
Re: Rust
onetmt writes: > Il 03/06/2015 14:24, Gian Uberto Lauri ha scritto: > > onetmt writes: > > > > 1) il compilatore tiene traccia della "vita" dei dati e in fase di > > > > compilazione da errori se fai qualcosa di inconsistente (tipo usare > > > > della memoria dopo averla liberata). > > > > > > E quindi niente piu' SIGSEV? E che gusto c'e' :D > > > > (mapcar > >(lambda (a) > > (fai-qualcosa-su a)) > > lista)) > > > > Sinceramente in C semplice e C++ non hai molte possibilità per farlo. > > Non e' difficile; basta dimenticare un malloc: Non hai la programmazione funzionale e le "higher order functions" e le closure (hai i puntatori a funzioni e le strutture, e come coi linguaggi OO, puoi simulare le une e le altre, ma devi fare qualche danza voodoo non alla portata di tutti). Un divertimento più potente dell'aritmetica sui puntatori. > > E comunque, mi spiace per te che non hai mai visto i SIGBUS... > > A questo punto domandazza: cosa è necessario per avere un SIGBUS ? :) -- /\ ___Ubuntu: ancient /___/\_|_|\_|__|___Gian Uberto Lauri_ African word //--\| | \| | Integralista GNUslamicomeaning "I can \/ coltivatore diretto di software not install già sistemista a tempo (altrui) perso...Debian" Warning: gnome-config-daemon considered more dangerous than GOTO -- Per REVOCARE l'iscrizione alla lista, inviare un email a debian-italian-requ...@lists.debian.org con oggetto "unsubscribe". Per problemi inviare un email in INGLESE a listmas...@lists.debian.org To UNSUBSCRIBE, email to debian-italian-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: https://lists.debian.org/21871.5757.579437.758...@mail.eng.it
Re: Rust
Il 03/06/2015 17:00, Gian Uberto Lauri ha scritto: > onetmt writes: > > Il 03/06/2015 14:24, Gian Uberto Lauri ha scritto: > > > onetmt writes: > > > > > 1) il compilatore tiene traccia della "vita" dei dati e in fase di > > > > > compilazione da errori se fai qualcosa di inconsistente (tipo usare > > > > > della memoria dopo averla liberata). > > > > > > > > E quindi niente piu' SIGSEV? E che gusto c'e' :D > > > > > > (mapcar > > > (lambda (a) > > >(fai-qualcosa-su a)) > > >lista)) > > > > > > Sinceramente in C semplice e C++ non hai molte possibilità per farlo. > > > > Non e' difficile; basta dimenticare un malloc: > > Non hai la programmazione funzionale e le "higher order functions" e > le closure (hai i puntatori a funzioni e le strutture, e come coi > linguaggi OO, puoi simulare le une e le altre, ma devi fare qualche > danza voodoo non alla portata di tutti). > > Un divertimento più potente dell'aritmetica sui puntatori. A cui chi scrive con C + gtk e' spesso costretto a cimentarsi. > > > > E comunque, mi spiace per te che non hai mai visto i SIGBUS... > > > > > A questo punto domandazza: cosa è necessario per avere un SIGBUS ? :) > Cosa e' necessario non lo so, so solo che per elimimarlo da un piccolissimo modulo su 2.4.16 per un S3C2410 all'epoca ci ho perso il sonno :P -- Hofstadter's Law: "It always takes longer than you expect, even when you take into account Hofstadter's Law." -- Per REVOCARE l'iscrizione alla lista, inviare un email a debian-italian-requ...@lists.debian.org con oggetto "unsubscribe". Per problemi inviare un email in INGLESE a listmas...@lists.debian.org To UNSUBSCRIBE, email to debian-italian-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: https://lists.debian.org/556f194f.7010...@gmail.com
Re: Rust
On 03/06/2015 16:55, Gian Uberto Lauri wrote: Federico Di Gregorio writes: > On 03/06/2015 14:28, Gian Uberto Lauri wrote: > > Federico Di Gregorio writes: > > > > > 1) il compilatore tiene traccia della "vita" dei dati e in fase di > > > compilazione da errori se fai qualcosa di inconsistente (tipo usare > > > della memoria dopo averla liberata). > > > > Questa era una delle cose buone introdotte da Java... > > Si, ma Java e tutti gli altri linguaggi, sia precedenti (LISP, per dirne Ti devo correggere. Java fa moltissimi controlli a compile time, compresa l'inizializzazione dei riferienti agli oggetti. Si, si, in questo senso hai ragionissimo. Quello che intendevo è che Java delega al runtime la garbage collection - ovvero il compilatore in generale non sa quando la memoria puntata da un riferimento (un oggetto) verrà liberata. Un programma Java "sano e normale" non rischia SIGSEGV perché il runtime garantisce che la memoria venga liberata solo quando non più raggiungibile. Il bello di Rust è che questi controlli vengono fatti al momento della compilazione. Da un punto di vista pratico Rust, come il C, non ha un "runtime": ha solo una libreria di base che puoi anche eliminare del tutto, se preferisci (che è come compilare senza libc). federico -- Federico Di Gregorio federico.digrego...@dndg.it Di Nunzio & Di Gregorio srl http://dndg.it When people say things are a lot more complicated than that, they means they're getting worried that they won't like the truth. -- Granny Weatherwax -- Per REVOCARE l'iscrizione alla lista, inviare un email a debian-italian-requ...@lists.debian.org con oggetto "unsubscribe". Per problemi inviare un email in INGLESE a listmas...@lists.debian.org To UNSUBSCRIBE, email to debian-italian-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: https://lists.debian.org/556f1973.8020...@dndg.it
Re: Rust
onetmt writes: > > Un divertimento più potente dell'aritmetica sui puntatori. > > A cui chi scrive con C + gtk e' spesso costretto a cimentarsi. Chi scrive in C codice efficiente DEVE lavorare di aritmetica sui puntatori, e ricordarsi anche dimensioni ed impacchettamento dei dati nelle strutture. Vedi sotto. > > > > > > E comunque, mi spiace per te che non hai mai visto i SIGBUS... > > > > > > > > A questo punto domandazza: cosa è necessario per avere un SIGBUS ? :) > > > Cosa e' necessario non lo so, so solo che per elimimarlo da un > piccolissimo modulo su 2.4.16 per un S3C2410F all'epoca ci ho perso > il sonno :P Serve una macchina che richieda i dati allineati in un certo modo (alla word o alla longword) oppure codice che a runtime dereferenzi un puntatore che punta a memoria non fisicamente esistente. Se proprio dovessi scommettere, scommetterei che il tuo processore si incavolò su un indirizzo non allineato, sopratutto se stavi portando codice sviluppato sotto Linux che sul PC funzionava perfettamente: a metà anni '90 era comune vedere studenti del terzo anno veder andare in SIGBUS sulle Sparc i programmini che su i386 giravano benissimo. Ma non mi piace scommettere ;). Da qualche parte ho forse ancora i sorgenti del talk di Berkeley modificati da un mio amico per girare su Motorola 68020, con un commento di fuoco indirizzato ai programmatori originari che, presumibilmente, usarno un VAX. -- /\ ___Ubuntu: ancient /___/\_|_|\_|__|___Gian Uberto Lauri_ African word //--\| | \| | Integralista GNUslamicomeaning "I can \/ coltivatore diretto di software not install già sistemista a tempo (altrui) perso...Debian" Warning: gnome-config-daemon considered more dangerous than GOTO -- Per REVOCARE l'iscrizione alla lista, inviare un email a debian-italian-requ...@lists.debian.org con oggetto "unsubscribe". Per problemi inviare un email in INGLESE a listmas...@lists.debian.org To UNSUBSCRIBE, email to debian-italian-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: https://lists.debian.org/21871.9181.975816.878...@mail.eng.it
Re: Rust
Federico Di Gregorio writes: > Si, si, in questo senso hai ragionissimo. Quello che intendevo è che > Java delega al runtime la garbage collection - Come il LISP. Java ha preso TANTE cose dal LISP. Dimenticandone ancora di più :) > Il bello di Rust è che questi controlli vengono fatti al momento della > compilazione. Da un punto di vista pratico Rust, come il C, non ha un > "runtime": ha solo una libreria di base che puoi anche eliminare del > tutto, se preferisci (che è come compilare senza libc). Giustamente, hanno introdotto dell'analisi statica del codice che elimina subito gli errori che riesce ad incontrare. Era la filosofia di Java. Peccato che nel tempo la gente abbia cominciato a programmare con paradigmi che buttano nel cesso la maggior parte dei controlli che il complilatore è in grado di fare. Da un certo punto di vista, come Java risolveva in modo elegante cose che il C++ faceva in modo scazonte (mi piace questo aggettivo :) ), ora sono certe tecniche di uso di Java che abbisognerebbero di un compilatore in grado di far apparire javac scazonte :). -- /\ ___Ubuntu: ancient /___/\_|_|\_|__|___Gian Uberto Lauri_ African word //--\| | \| | Integralista GNUslamicomeaning "I can \/ coltivatore diretto di software not install già sistemista a tempo (altrui) perso...Debian" Warning: gnome-config-daemon considered more dangerous than GOTO -- Per REVOCARE l'iscrizione alla lista, inviare un email a debian-italian-requ...@lists.debian.org con oggetto "unsubscribe". Per problemi inviare un email in INGLESE a listmas...@lists.debian.org To UNSUBSCRIBE, email to debian-italian-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: https://lists.debian.org/21871.9432.696960.14...@mail.eng.it
Re: Rust
Mi avete incuriosito e, avendo oggi un pò di tempo, sono andato a vedere il portale del linguaggio rust. In prima pagina c'è l'indicazione che il linguaggio previene "quasi tutti" gli error segfaults: ovvio quindi che prima o poi qualche errore segfaults continuerete a vederlo, o generato dal vostro codice e non intercettato dal compilatore o generato direttamente dal compilatore, anche se la loro frequenza andrà nel tempo a calare. Vedo anche che è un linguaggio orientato a programmi soggetti a specifici vincoli di spazio (cioè occupazione di memoria, n.d.r.) e tempo (cioè di esecuzione entro determinati ambiti temporali predeterminati? n.d.r.), oltre che per la programmazione di driver e per la scrittura di codice a basso livello in genere (ma non saprei dire al momento quanto basso può essere questo livello). Quello che non ho chiaro è: - quali innovazioni strategiche apporta rust nel panorama dei linguaggi di programmazione? Cobol e Fortran hanno permesso di programmare applicazioni commerciali e scientifiche usando linguaggi ad alto livello. Il linguaggio C ha (quasi completamente) sollevato i programmatori dall'uso dell'Assembler per l'accesso diretto all'hardware e per scrivere sistemi operativi e applicazioni particolari (es. data-base, protocolli di telecomunicazione e chi più ne ha più ne metta). Smalltalk a introdotto il paradigma a oggetti poi sfruttato da C++ e Java con i risultati che sono sotto gli occhi di tutti; Java ha esteso i concetti di portabilità, sicurezza e riusabilità del codice tramite Jvm scritte per le varie architetture. Anche Php, Python e Visual-Basic hanno una loro ragion d'essere negli ambiti in cui si propongono. Una risposta al questa domanda è abbastanza importante perchè se si tratta semplicemente di "yet another compiled language" senza specifici obiettivi oltre quelli di avere un linguaggio un pò più semplice e con qualche errore di meno a runtime, non sono sicuro che l'investimento di tempo nel suo apprendimento sia superiore al valore che si può estrarre dalla sua conoscenza. Personalmente, dopo aver programmato con molti linguaggi, non ho (per ora) molta voglia di addentrarmi in questo nuovo rust; però, se qualcuno si è fatto un'idea di come funziona e sulle innovazioni introdotte e non altrimenti perseguibili, o se conosce l'esistenza di una descrizione di rust ad alto livello (tipo quella su Smalltalk-80 pubblicata nell'agosto '81 su Byte), potrebbe essere di aiuto alla sua diffusione. Luciano Il 03/06/2015 17:12, onetmt ha scritto: Il 03/06/2015 17:00, Gian Uberto Lauri ha scritto: onetmt writes: > Il 03/06/2015 14:24, Gian Uberto Lauri ha scritto: > > onetmt writes: > > > > 1) il compilatore tiene traccia della "vita" dei dati e in fase di > > > > compilazione da errori se fai qualcosa di inconsistente (tipo usare > > > > della memoria dopo averla liberata). > > > > > > E quindi niente piu' SIGSEV? E che gusto c'e' :D > > > > (mapcar > > (lambda (a) > > (fai-qualcosa-su a)) > > lista)) > > > > Sinceramente in C semplice e C++ non hai molte possibilità per farlo. > > Non e' difficile; basta dimenticare un malloc: Non hai la programmazione funzionale e le "higher order functions" e le closure (hai i puntatori a funzioni e le strutture, e come coi linguaggi OO, puoi simulare le une e le altre, ma devi fare qualche danza voodoo non alla portata di tutti). Un divertimento più potente dell'aritmetica sui puntatori. A cui chi scrive con C + gtk e' spesso costretto a cimentarsi. > > E comunque, mi spiace per te che non hai mai visto i SIGBUS... > > A questo punto domandazza: cosa è necessario per avere un SIGBUS ? :) Cosa e' necessario non lo so, so solo che per elimimarlo da un piccolissimo modulo su 2.4.16 per un S3C2410 all'epoca ci ho perso il sonno :P -- Per REVOCARE l'iscrizione alla lista, inviare un email a debian-italian-requ...@lists.debian.org con oggetto "unsubscribe". Per problemi inviare un email in INGLESE a listmas...@lists.debian.org To UNSUBSCRIBE, email to debian-italian-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: https://lists.debian.org/556f3b63.3090...@modula.net
Re: Ricreare pacchetto debian per applicare patch
On Monday 01 June 2015 11:39:21 you wrote: > > Dovrei applicare una patch al pacchetto libmbim per cercare di capire > dove stia il problema e fare qualche test. > > Mi potreste dare una dritta e magari un documento cui far riferimento? > Grazie in anticipo! Mi rispondo da solo. Allora intanto ho preso spunto in parte da questo documento: https://wiki.debian.org/BuildingTutorial Sintetizzando grosso modo il meccanismo è il seguente: il generico pacchetto .deb o, come in questo caso il set di pacchetti .deb relativi ad un certo tarball di sorgenti vanilla viene generato - spacchettando il tarball vanilla - copiandovi dentro la subdir "debian" - editando il file "debian/changelog" - lanciando "fakeroot debian/rules" Il tarball vanilla si prende dal sito del software stesso. Oppure si genera a partire per esempio dal ramo di sviluppo GIT, CVS, SVN, a seconda di quale modalità collaborativa hanno scelto gli sviluppatori per mantenerlo. Per esempio nel caso di "libmbim" lo sviluppo è basato su GIT. Per generare il tarball vanilla relativo alla versione di sviluppo penso che non ci sia un metodo generico, ma varia da software a software. Nel mio caso ho chiesto la procedura direttamente agli sviluppatori: mkdir -p /build/git cd /build/git git clone git://anongit.freedesktop.org/libmbim/libmbim cd libmbim NOCONFIGURE=1 ./autogen.sh ./configure --enable-gtk-doc make make distcheck --- Così ottengo il pacchetto "libmbim-1.13.0.tar.xz" nella dir corrente ed ecco che il tarball vanilla l'abbiamo ottenuto. Adesso serve la subdir "debian" collocata nei sorgenti spacchettati del pacchetto sorgente debian. Vi mostro di seguito i passaggi per spiegarmi meglio con l'esempio: - # mkdir -p /build/libmbim/1.12.2 # cd /build/libmbim/1.12.2 # apt-get source libmbim # ls -F1 /build/libmbim/1.12.2/ libmbim-1.12.2/ libmbim_1.12.2-2.debian.tar.xz libmbim_1.12.2-2.dsc libmbim_1.12.2.orig.tar.xz # ls -F1 libmbim-1.12.2/debian/ changelog compat control copyright gbp.conf libmbim-glib-dev.install libmbim-glib-doc.doc-base libmbim-glib-doc.install libmbim-glib4.docs libmbim-glib4.install libmbim-glib4.lintian-overrides libmbim-glib4.symbols libmbim-proxy.install libmbim-utils.install mbimcli.1 rules* source/ watch - l'ultimo comando mette in evidenza la subdir "debian" che ci serve e che non è presente nel tarball vanilla nuovo. In pratica eliminando quella subdir si ottiene il contenuto del tarball vanilla relativo alla versione vecchia del software. Quindi la procedura prevede in prima battuta di copiare la dir "debian" nei nuovi sorgenti vanilla. Ecco il seguito: --- /build/libmbim# pwd /build/libmbim /build/libmbim# ls -F * 1.12.2: libmbim-1.12.2/ libmbim_1.12.2-2.debian.tar.xz libmbim_1.12.2-2.dsc libmbim_1.12.2.orig.tar.xz 1.13.0: /build/libmbim/1.13.0# cd 1.13.0 /build/libmbim/1.13.0# tar xvJf /build/git/libmbim/libmbim-1.13.0.tar.xz /build/libmbim/1.13.0# ls libmbim-1.13.0 /build/libmbim/1.13.0# cp ../1.12.2/libmbim-1.12.2/debian libmbim-1.13.0/ /build/libmbim/1.13.0# cd libmbim-1.13.0/ - A questo punto siamo nella dir di lavoro da cui creeremo il nuovo set di pacchetti binari .deb. Ma prima occorre cambiare almeno il nome della versione del software coerentemente, se lanciassimo "fakeroot debian/rules" adesso, otterremmo un set di pacchetti deb del tipo: libmbim-glib-dev_1.12.2-2_i386.deb Ovvero il nome del pacchetto sarebbe identico a quello delal versione "1.12.2-2" e quando andremo ad installarli con dpkg potrbbero esserci problemi se avessimo la versione vecchia preinstallata... Per cambiare nome al pacchetto si deve editare debian/changelog, nel mio caso vi ho aggiunto in testa quanto segue (con un po' di fantasia...). --- libmbim (1.13.0-1) experimental; urgency=medium * Imported Upstream version 1.13.0 -- Me Wed, 03 Jun 2015 15:18:23 +0100 -- questo punto poteva essere anche fatto in modo automatizzato e probabilmente più elegante sfruttando il comando: debchange -v 1.13.0 Perfetto ora si può creare il nostro set di pacchetti binari e finalmente installarli con dpkg e rifinire l'installazione con apt: -- /build/libmbim/1.13.0/libmbim-1.13.0# fakeroot debian/rules clean /build/libmbim/1.13.0/libmbim-1.13.0# fakeroot debian/rules binary /build/libmbim/1.13.0/libmbim-1.13.0# ls .. libmbim-1.13.0 libmbim-glib-doc_1.13.0-1_all.deb libmbim-glib4_1.13.0-1_i386.deb libmbim-utils_1.13.0-1_i386.deb libmbim-glib-dev_1.13.0-1_i386.deb libmbim-glib4-dbg_1.13.0-1_i386.deb libmbim-proxy_1.13.0-1_i386.deb /build/libmbim/1.13.0/# dpkg -i *deb /build/libmbim/1.13.0/# apt-get install -f /build/libmbim/1.13.0/# dpkg -l |grep
Re: Ricreare pacchetto debian per applicare patch
Il 03 giugno 2015 23:43:37 CEST, Joe ha scritto: > >Mi rispondo da solo. >Allora intanto ho preso spunto in parte da questo documento: > >https://wiki.debian.org/BuildingTutorial > Grazie Joe. Molto interessante. Byez -- Gollum1 Teoro, dov'è il mio teoro Inviato dal mio dispositivo Android con K-9 Mail. Perdonate la brevità e gli errori di battitura (maledetto correttore automatico). -- Per REVOCARE l'iscrizione alla lista, inviare un email a debian-italian-requ...@lists.debian.org con oggetto "unsubscribe". Per problemi inviare un email in INGLESE a listmas...@lists.debian.org To UNSUBSCRIBE, email to debian-italian-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: https://lists.debian.org/a0e8d00e-043e-46ef-aa8a-c644119b7...@gmail.com