Re: Niente continuationsnègreen threads?

(scusate il top posting, yahoo mail 2 é tonto…)

Il problema dei green thread é che onestamente, su windows non hanno mai
funzionato bene, perché select() é rotta e funziona solo con i socket, e
nessuno ha mai fornito un’implementazione funzionante basata su
WaitForMultipleObjects() o come si chiama.
Per cui nel tempo la gente si é sempre piu’ convinta che i green thread
non vanno bene per scrivere appalicazioni concorrenti. Mah, chissá che ne
pensano gli erlang’isti.

Onestamente credo che se la gente desse una mano scrivendo codice i
green thread in ruby2 ci sarebbero. Esattamente come le continuazioni in
ruby1, un giorno si é svegliato il collega di matz, ha scritto venti righe
di codice e gli ha detto “ci mettiamo anche questo?”.

Per quel che riguarda la scomparsa di callcc… io preferisco largamente
l’introduzione della classe Frame come era in sydney, che come dici tu
rende tutto possibile e oltretutto ha un’interfaccia piu’ comprensibile
dall’uomo :slight_smile:

icq: #69488917
blog it: http://riffraff.blogsome.com
blog en: http://www.riffraff.info

----- Original Message ----
From: Giovanni C. [email protected]
To: [email protected]
Sent: Thursday, 26 October, 2006 9:55:10 AM
Subject: [ruby-it] Niente continuationsnègreen threads per Ruby 2.0

Sembra proprio che Ruby 2.0 non avrà nè continuations nè green threads.

Sulle continuazioni non mi pronuncio (se c’è la possibilità di
manipolare lo stack di attivazione dei metodi dal codice Ruby, allora è
possibile implementare le continuazioni senza dover toccare la VM).
Ma il passaggio ai thread nativi mi sembra un errore: quali sono i
vantaggi dell’abbandonare un modello di threading uniforme che tra
l’altro permette cose che i modelli nativi non offrono?
Non sarebbe meglio tenere i green threads ed supportare i thread nativi
tramite una libreria?

Giovanni

Ml mailing list
[email protected]
http://lists.ruby-it.org/mailman/listinfo/ml

Send instant messages to your online friends

Il problema dei green thread é che onestamente, su windows non hanno mai funzionato bene, perché select() é rotta e funziona solo con i socket, e nessuno ha mai fornito un’implementazione funzionante basata su WaitForMultipleObjects() o come si chiama.
Per cui nel tempo la gente si é sempre piu’ convinta che i green thread non vanno bene per scrivere appalicazioni concorrenti. Mah, chissá che ne pensano gli erlang’isti.

Non credo che gli importi moltissimo di windows e i suoi problemi;-)

Un altro modello interessante simile ai green threads sono gli eventi
come quelli di Tcl e Twisted di Python. Sono abbastanza comodi da
usare anche se non ti danno una granularita altissima - puoi bloccare tutto il process facilmente se hai dei calcoli pesanti in un event handler. Ma dall'altro canto, il modello mentale e molto meno
stressante rispetto ai threads.


David N. Welton

Linux, Open Source Consulting

Il giorno sab, 04/11/2006 alle 11.37 +0000, gabriele renzi ha scritto:

(scusate il top posting, yahoo mail 2 é tonto…)

Il problema dei green thread é che onestamente, su windows non hanno
mai funzionato bene, perché select() é rotta e funziona solo con i
socket, e nessuno ha mai fornito un’implementazione funzionante
basata su WaitForMultipleObjects() o come si chiama.
Per cui nel tempo la gente si é sempre piu’ convinta che i green
thread non vanno bene per scrivere appalicazioni concorrenti.
Mah, chissá che ne pensano gli erlang’isti.

Dalle ricerche che ho fatto, direi che gli erlang’isti pensano che green
threads + select siano più che sufficienti :wink:
E come dice David non credo che si facciano molte questioni per i
problemi di Windows.

Onestamente credo che se la gente desse una mano scrivendo codice
i green thread in ruby2 ci sarebbero. Esattamente come le continuazioni
in ruby1, un giorno si é svegliato il collega di matz, ha scritto venti
righe di codice e gli ha detto “ci mettiamo anche questo?”.

Heh. Avessi tempo e conoscenze…

Per quel che riguarda la scomparsa di callcc… io preferisco largamente
l’introduzione della classe Frame come era in sydney, che come dici tu
rende tutto possibile e oltretutto ha un’interfaccia piu’ comprensibile
dall’uomo :slight_smile:

Non conoscevo Sydney; grazie!

Giovanni

On 11/5/06, Giovanni C. [email protected] wrote:

Dalle ricerche che ho fatto, direi che gli erlang’isti pensano che green
threads + select siano più che sufficienti :wink:
E come dice David non credo che si facciano molte questioni per i
problemi di Windows.

Il fatto che il linguaggio abbia la stessa semantica su diverse
piattaforme a me invece sembra importante. Ad esempio, io vorrei
poter sviluppare su unix e installare su Windows.

Il discorso della select che su Windows funziona solo con le socket
purtroppo è vero. Per quanto ricordo, scrivere codice I/O asincrono
su win è veramente complicato (ovviamente!) e costringerebbe gli
implementatori a scrivere codice completamente diverso per le due
piattaforme.

Onestamente credo che se la gente desse una mano scrivendo codice
i green thread in ruby2 ci sarebbero. Esattamente come le continuazioni
in ruby1, un giorno si é svegliato il collega di matz, ha scritto venti
righe di codice e gli ha detto “ci mettiamo anche questo?”.

Heh. Avessi tempo e conoscenze…

E’ un buon tema per una tesi di laurea… sotto ragazzi!

Matteo