Rust

2015-06-03 Thread 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?


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

2015-06-03 Thread Walter Valenti

> 
>
>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

2015-06-03 Thread Federico Di Gregorio

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

2015-06-03 Thread onetmt
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 Thread Luca Cappelletti
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

2015-06-03 Thread Gian Uberto Lauri
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

2015-06-03 Thread Gian Uberto Lauri
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

2015-06-03 Thread Giovanni Bellonio

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

2015-06-03 Thread Federico Di Gregorio

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

2015-06-03 Thread Federico Di Gregorio

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

2015-06-03 Thread onetmt
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

2015-06-03 Thread Federico Di Gregorio

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

2015-06-03 Thread Gian Uberto Lauri
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

2015-06-03 Thread Gian Uberto Lauri
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

2015-06-03 Thread onetmt
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

2015-06-03 Thread Federico Di Gregorio

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

2015-06-03 Thread Gian Uberto Lauri
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

2015-06-03 Thread Gian Uberto Lauri
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

2015-06-03 Thread fran...@modula.net
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

2015-06-03 Thread Joe
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

2015-06-03 Thread Gollum1
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