Category: Misc

7
mag
Implementati nuovi costrutti e nuove funzionalità!
Postato da il 07-05-2010 alle ore 18:00:47


Dopo che ne è stata constata l'esigenza, sono stati implementate alcune nuove funzionalità.

L'operatore @, l'esplosione di array e oggetti iterabili, il costrutto condizionale unless, e le funzioni e metodi con numero di parametri variabile.

Come sempre tutto documentato e correlato da esempi.

read more

6
mag
Hybris passa al sistema di compilazione Rake.
Postato da il 06-05-2010 alle ore 07:25:37


A causa dell'eccessiva difficoltà di mantenere gli script di compilazione, sparsi tra configure.ac e makefile.am e soprattutto dei software abbastanza datati sui quali tale sistema si basava, da settimane cercavo un sistema alternativo di compilazione che rendesse il processo più intuitivo  e gli script più facili da mantenere ed aggiornare. Così ho deciso di passare definitivamente a Rake, un sistema di building implementato in Ruby che è veramente eccezzionale.

La documentazione inerente la compilazione dei sorgenti è stata aggiornata di conseguenza.

Un ringraziamento speciale a meh che ha avuto la pazienza di aiutarmi mentre mi districavo in questo sistema per me totalmente nuovo.

read more

30
apr


Come sempre, per una corretta visualizzazione degli script in questione, consiglio di visualizzare l’articolo originale sul sito di Hybris.

In uno degli ultimi commit, sono state implementate le funzioni load ed eval.

Entrambe servono ad eseguire del codice a runtime (a differenza della direttiva include che viene eseguita in fase di pre parsing), la prima funzione accetta il nome di uno script Hybris che caricherà in memoria ed eseguirà, mentre la seconda serve per eseguire una stringa contenente del codice Hybris.

Molti linguaggi implementano queste due funzioni, ma sono pochi quelli che come Hybris, data la sua gestione dei tipi estremamente astratta e il sistema di ereditarietà delle classi, consentono di implementare tramite loro un sistema di plugin generalizzato con poche righe di codice.

Analiziamo un sistema di esempio, realizzato appunto tramite la funzione load.

More…

Popularity: 6% [?]

26
apr


Voglio riportare un post che ho appena pubblicato nel sito ufficiale di hybris, per vedere gli esempi con una colorazione appropriata vi invito a leggere l’originale.

Chi conosce anche solo le basi del C++, sa che una classe può eseguire l’overloading di uno o più operatori, ovvero definire come la classe si deve comportare quando uno di questi operatori viene usato su di essa.

Ad esempio, una classe che rappresenta un numero complesso, molto probabilmente avrà bisogno di eseguire l’overloading degli operatori aritmetici (come +, -, *, /, ecc), così come una classe Array avrà bisogno di eseguire l’overloading dell’operatore subscript ( [ ] ) per consentire l’accesso diretto ai suoi elementi.

Hybris, oltre a supportare questa funzionalità, propone un altra entità, denominata “overloadable descriptor” o “descrittore sovraccaricabile”, da adesso in poi d.s. .

Un d.s. è un estensione di un operatore e sostanzialmente istruisce l’inteprete su come trattare quella classe in contesti al di fuori dei meri operatori logici, aritmetici, bitwise, ecc, che non potrebbero essere gestiti/gestibili tramite il normale uso di un operatore.

Facciamo un esempio, il più banale, che però da una prima idea del concetto.

More…

Popularity: 7% [?]

24
apr
Una risposta che stavolta verrà letta :)
Postato da il 24-04-2010 alle ore 19:27:21


A distanza di quasi un mese da questo post, ho deciso di partecipare a quella discussione nella mailing list e dire brevemente la mia, quindi vi copio quella che è stata la mia risposta.

Salve, sono l’autore del “giocattolo” e vorrei dire la mia :)

Inizialmente ho preso molto male questo thread, per quanto le critiche possano essere giuste o meno non è mai facile vedere un progetto sul quale hai sudato il sangue “smontato” in questo modo.
Successivamente però mi son calmato e ho avuto modo di riflettere parecchio su quanto da voi detto ed in effetti, a parte un vago (nemmeno tanto) tono di arroganza da parte di alcuni dei partecipanti, ho trovato le vostre critiche giuste, critiche che mi hanno spinto a quasi un mese di lavoro incessante, giorno e notte.

Da questo ne è seguito che:

- Sono state sistemate alcune imprecisioni che erano presenti nella definizione di Hybris e nella documentazione in generale.
- Ora il core di Hybris è completamente separato dalla libreria standard (che comunque viene compilata ed installata contestualmente all’interprete stesso).
- E’ stata rivoluzionata la gestione dei tipi ed introdotto un garbage collector decisamente efficace.
- E’ stato implementato pieno supporto alla programmazione ad oggetti, con tanto di ereditarietà, specificatori di accesso e overloading degli operatori.
- E’ stata implementata la gestione delle eccezioni.
- Stiamo sviluppando una libreria standard “parallela” a quella binaria, implementata in Hybris, che offre delle classi con le quali operare secondo il paradigma OO.

Colgo quindi questa occasione per ringraziare i qui presenti della spinta, anche se indiretta, che mi hanno dato per migliorare Hybris .

Popularity: 8% [?]

19
apr
Hybris, da ora Object Oriented!
Postato da il 19-04-2010 alle ore 23:49:46


Sono felice di annunciare che la prima stesura del codice che rende Hybris un linguaggio OO è pronta.

La grammatica supporta le classi (ovviametne), l’ereditarietà (anche multipla), gli specificatori di accesso (private, public e protected) con relativi controlli, costruttori e distruttori (lazy destructors precisamente, vedremo tra un po di che si tratta).

Su questa pagina potrete trovare alcuni esempi.

Popularity: 7% [?]

18
apr
E ora che mi vengano a dire che è un giocattolo!
Postato da il 18-04-2010 alle ore 23:52:36


Piccolo esempio di ereditarietà singola e multipla, polimorfismo e programmazione object oriented in genere in Hybris.

E ora, che “certi signori” mi vengano a dire che è un giocattolo!!!

Cliccare sull’immagine per ingrandirla

Popularity: 10% [?]

18
apr
Worth a thousand words …
Postato da il 18-04-2010 alle ore 14:39:52


Popularity: 7% [?]

17
apr
Finalmente un code editor per Hybris!
Postato da il 17-04-2010 alle ore 00:46:31


Non esistono editor di test che supportino la sintassi di Hybris nativamente, eccezion fatta per Hyde, che è ancora in una fase alpha ed estremamente instabile.

Per questo motivo sono stati realizzati dei file che aggiungono le funzionalità necessarie per Hybris a tutti quegli editor che utilizzano il componente GtkSourceView, ad esempio GEdit, Scribes, Anjuta, ecc.

Ecco alcuni screenshots proprio di questi editor :

More…

Popularity: 6% [?]

15
apr


So che avevo detto che non avrei parlato più di Hybris qui, ma questa cosa è troppo importante :P

Chi segue il progetto avrà forse notato che da per qualche giorno non sono state effettuate modifiche al codice con relativi commit, a differenza di quanto avviene normalmente con almeno due o tre commit giornalieri.

Questo è dipeso dal fatto che il core di Hybris è stato rivoluzionato totalmente dal commit “67ed538aa72cb5b40ddace1d20bc7daf13ec7d7d” in poi, così come (principalmente) il sistema di gestione dei tipi, la libreria standard e il garbage collector, per un aumento delle prestazioni di più dell’80%, nonchè della pulizia del codice e della modularità dello stesso.

Andrò brevemente ad illustrare in cosa consistono tali modifiche, perchè sono state fatte e a cosa portano.

More…

Popularity: 6% [?]