Visualizza post

Questa sezione ti permette di visualizzare tutti i post inviati da questo utente. N.B: puoi vedere solo i post relativi alle aree dove hai l'accesso.


Topics - vuott

Pagine: 1 ... 372 373 [374] 375 376 ... 378
5596
Riprendo qui un mio precedente intervento in altra discussione:
http://www.gambas-it.org/smf/index.php?topic=2072.msg24286#msg24286

riconfermando che uno dei modi possibili per effettuare il passaggio di dati fra due o più programmi Gambas è quello di servirsi del sistema Alsa.
Alsa, essendo un sistema con funzioni universali, può dunque permettere anche lo scambio di dati fra programmi scritti in linguaggi diversi (ad esempio fra un programma scritto in C ed un programma scritto in Gambas).

La strategia è quella, per esempio, di servirsi della procedura per l'invio e la ricezione fra i "Client" di Alsa dei dati Midi. L'uso di detta strategia per l'invio nel nostro caso di dati generici è possibile in quanto Alsa accetta valori numerici. Va sottolineato che potranno essere inviati tramite Alsa soltanto valori di tipo numerico. Poiché, però, è possibile ovviamente l'invio di una quantità indefinita di eventi, contenenti nostri valori numerici, e poiché questi, come è noto, una volta ricevuti possono essere trasformati in caratteri secondo il protocollo ASCII con la funzione chr( ), sarà possibile al termine dell'intera procedura ottenere indirettamente anche delle stringhe di caratteri.

Come ho accennato nel mio intevento, sopra indicato, ho fatto delle prove che hanno avuto il risultato positivo che - tra l'altro - mi aspettavo. Vorrei condividere con voi questo esperimento allegando qui due semplicissimi programmini, chiamati: Programma_1 e Programma_2.
Scopo del test è quello appunto di provare la trasmissione di dati fa due applicativi Gambas tramite la loro connessione, in qualità di Client, ad Alsa. L'esperimento consiste nell'inviare da parte del Programma_1 il valore numerico: 9999 all'altro programma Gambas, Programma_2, il quale poi lo sommerà ad un'unità e lo rispedirà al Programma_1, che a sua volta mostrerà il nuovo valore sul proprio form in una TextLabel.
Ricordare di lanciare prima il Programma_1, e solo dopo lanciare il Programma_2, assicurandosi che non siano stati già comunque lanciati altri applicativi Client di Alsa (Softsynth, Sequencer, programmi audio, etc).

Questo argomento è più dettagliatamente trattato nella nostra WIKI:
http://www.gambas-it.org/wiki/index.php?title=Usare_ALSA_per_far_comunicare_due_o_pi%C3%B9_programmi_Gambas

5597
Ho due array aventi medesima lunghezza.
Assegno dei valori agli elementi di un solo array, e poi effettuo un mero assegnamento da un array all'altro.
Modifico un elemento di uno solo dei due array.... mi ritrovo modificato anche l'elemento dell'altro array con il medesimo nuovo valore.  :rolleyes:
Provate:
Codice: gambas [Seleziona]

Public Sub Button1_Click()

 Dim a As Byte
 Dim alibaba As New Byte[2]
 Dim simbad As New Byte[2]

  For a = 0 To 1
    alibaba[a] = 100 + a
  Next

  simbad = alibaba

  simbad[1] = 50

  Print alibaba[1]   '...stranamente darà 50 !

End


Questo strano fenomeno non avviene se uso il metodo .Copy previsto per gli array.... ma al di là di ciò, quel fenomeno lo ritenete normale ?

5598
Domande tecniche / Pre-rilascio della versione 3.2.0 di Gambas
« il: 30 Giugno 2012, 16:14:37 »
Ambasciata della Comunità italiana di Gambas sulla mailing list internazionale

Comunicazione n. 8 dal vostro Ambasciatore     :rotfl:

Questa Ambasciata porta a conoscenza un comunicato diffuso da Minisini circa un pre-rilascio della versione 3.2.0 di Gambas:

Hi,

I have uploaded the Gambas 3.2 source package on sourceforge:

http://sourceforge.net/projects/gambas/files/gambas3/gambas3-3.2.0.tar.bz2/download

Please try it, and if there is no problem, I will make the release public.

Thanks in advance.

Regards,

--
Benoît Minisini

5599
...il mio intento sarebbe quello di inserire nella cartella "Progetti" di un programma Gambas (che per comodità chiameremo: 1)  l'eseguibile di un'altro programma Gambas (che per comodità chiameremo: 2). Successivamente, lanciato il programma 1, esso dovrebbe copiare il programma eseguibile Gambas 2 - che porta in sé - in una (qualsiasi) directory indicata nel codice. Il codice del programma 1, poi, lancerebbe  con un comando Shell questo programma Gambas 2.

Ho effettuato qualche prova pratica:

1) Ho inserito manualmente nella cartella .hidden del sorgente del programma gambas 1 l'eseguibile del secondo programma. L'ho fatto copiare in una directory mediante il comando: Shell cp ......., ed ho da codice fatto in modo da lanciarlo sempre mediante il comando Shell. Ebbene, tale eseguibile è stato regolarmente lanciato da quello principale.

2) Ho provato poi a copiare in una directory quel medesimo programma eseguibile, non più con Shell cp ......., bensì mediante la funzione "copy" di Gambas.
Ebbene, in questo caso il tentativo di lancio (sempre mediante Shell) del programma 2 ha avuto esito negativo, e nella console ho ottenuto l'avviso:
/bin/sh: /home/vuott/programma_2.gambas: Permission denied.
Sono andato nella directory a tentare il lancio del programma Gambas 2 direttamente, ma ho ottenuto una finestra con un avviso, secondo il quale non ci sarebbe nel sistema un'applicazione adatta per il funzionamento di questo programma Gambas 2.  ???

3) Come terza prova ho inglobato nel sorgente del programma 1 (nella cartella "Progetto") il programma 2 utilizzando i passaggi previsti per l'inserimento nelle cartelle "Dati" e "Progetto" tramite tasto destro del mouse. Quindi la consueta copia in una directory prevista dal codice. Il successivo tentativo di lancio (sempre mediante Shell) del programma 2 ha avuto esito negativo, come al precedente punto 2, sia se la copia nella directory viene effettuata con "Shell cp.....", sia se si usa la funzione "copy" di Gambas.


Quindi soltanto la prima prova mi ha dato un risultato positivo. Ossia solo con questi passaggi:
* trascino con il mouse l'eseguibile del programma 2 nella cartella .hidden del mio sorgente principale;
* lanciato il programma principale, faccio copiare l'eseguibile mediante Shell cp ....... in una directory qualsiasi;
* il codice del programma principale lancia quell'eseguibile con Shell.


...perché negli altri casi non è stato possibile ?  :-\

5600
Programmazione / [Risolto] La proprietà .Tag può essere un array
« il: 19 Giugno 2012, 16:29:56 »
Non sapevo  :-\ che la proprietà .Tag di un oggetto potesse essere anche un array capace di contenere valori di diverso tipo; una sorta di Struttura !

Codice: gambas [Seleziona]

Public Struct provStrutt      ' dichiaro una Struttura
  a As Byte
  b As Integer
  c As String
End Struct

Private pStr As New ProvStrutt     ' creo una variabile del tipo della Struttura


Public Sub Button1_Click()

 Dim prova As String = "prova"
 Dim arrarr As New Byte[]
 Dim j As Byte

 With pStr      ' assegno alcuni valori agli elementi della variabile del tipo di quella Struttura
   .a = 10
   .b = 1000
   .c = "c = " & Str(.a + .b)
 End With

 For j = 0 To 9              ' assegno i valori per ciascun elemento della variabile array
   arrarr.Add(j + 100)
 Next

 With Button1
      .Tag = ["ali", "baba", 324, prova, arrarr, pStr]    ' assegno un array formato da valori e variabili al .Tag del Button, poi li vado a vedere...
    Print .Tag[0]
    Print .Tag[1]
    Print .Tag[2]
    Print .Tag[3]
   For j = 0 To 9
     Print .Tag[4][j]   ' vedo tutti i valori assegnati agli elementi della variabile array
   Next
    Print .Tag[5].a    ' vado a vedere i valori contenuti dagli elementi della variabile di tipo "Struttura"
    Print .Tag[5].b
    Print .Tag[5].c
  End With

End

5601
OpenBar / "Il" Gambas esiste veramente
« il: 19 Giugno 2012, 11:11:22 »
"Lui"  >-]]]-C  esiste veramente: ;D

http://it.notizie.yahoo.com/pescata-aragosta-blu.html

5602
Vi presento CreaSo, semplicemente un'interfaccia che intende agevolare la procedura di creazione delle "Librerie condivise" .so (Shared Library), da utilizzare come librerie esterne in Gambas con la funzione Extern.


Gli utenti iscritti a questo forum possono scaricare la versione 0.0.6 del sorgente in fondo nell'ultimo messaggio.


5603
Ho l'impressione che la chiamata a funzioni esterne con Extern non funzioni più.  :-\
Potete controllare e verificare anche voi questa cosa ?

5605
Domande tecniche / "Transparent" alla proprietà SidePanel
« il: 01 Giugno 2012, 16:39:38 »
Ambasciata della Comunità italiana di Gambas sulla mailing list internazionale

Comunicazione n. 7 dal vostro Ambasciatore     :rotfl:

Questa Ambasciata porta a conoscenza un avviso inviato oggi da Minisini:


Hi,

In revision #4800, I added a "Transparent" to the SidePanel property to
restore its old behaviour.

By default, Transparent is FALSE, and you get the old behaviour.

If you set Transparent to TRUE, you get the new behaviour, with the
SidePanel handles appearing when the SidePanel border is hovered.

Regards,

--
Benoît Minisini

5607
Domande tecniche / Gambas3 & SubVersion
« il: 27 Maggio 2012, 18:13:04 »
«Con la nuova versione Gambas3 è stata introdotta una nuova struttura dell'albero delle directory per i progetti, andando ad integrare quella presente nella precedente versione 2. ... »

Vorrei comunicare alla nostra Comunità che md9327 ha redatto nella WIKI una pagina su quest'argomento, inserendo anche una dettagliata descrizione della struttura base delle cartelle creata da Gambas-3.
Gli interessati possono leggere il lavoro qui:
http://www.gambas-it.org/wiki/index.php/Gambas3_%26_SubVersion

5608
Domande tecniche / New JIT Compiler
« il: 23 Maggio 2012, 23:49:20 »
Ambasciata della Comunità italiana di Gambas sulla mailing list internazionale

Comunicazione n. 6 dal vostro Ambasciatore     ;D

Questa Ambasciata porta a conoscenza un avviso inviato oggi da Emil Lenngren (della mailing list internazionale di Gambas):


Hi everybody.

I've been working on a JIT-compiler for Gambas for some months, and I'm now
ready to release an alpha-version in the latest svn of Gambas.
The compiler uses LLVM to produce machine code for x86 or x86_64. You need
LLVM on your computer for it to work, preferably the latest version from
svn (3.0 from Ubuntu repos does not seem to work any well). Find more
instructions in the README file.

To use it, place the word "Fast" at the top of a Gambas Class file, for a
class that you want all functions JIT-compiled instead of interpreted. (At
the moment you cannot make individual functions JIT-compiled, but that is
limited by the gbc compiler.)

As it takes some milliseconds for LLVM to emit machine code and do
optimizations, you should only use it for functions you really need
optimizations.

As the JIT compiler analyses the whole function before execution starts,
some extra type safety is added. In interpreter mode, you can normally do
things like:
Print "hello"
Print 1.3 \ 5
and you will first see hello on the screen, and then an error message
complaining you can't do integer division on floats.
If you run the same function in the JIT compiler, the error message will be
thrown before execution starts instead, hopefully in order to make programs
less buggier.
As a consequence, you can not have code like "Try Print 1.3 \ 5" either. At
the moment the incorrect line is reported in the error message...

The best speed-ups will be in functions that use a lot of low-level
calculations and control flows (except For Each loops), like functions that
do a lot of math. If the function mostly calls other libraries, you won't
see speed-ups either.
There are still the same overhead when calling functions, since the gambas
stack must be maintained as before, to make error handling work.
Using Try/Catch is probably slightly slower too because a real exception
handler must be set up.

Something the LLVM optimizer is very good at is transforming a chain of
if-else statements to a jump table, so code like:
Select Case x
  Case 1:
    ..
  Case 2:
    ..
  Case 3:
    ..
End Select
will be much faster than before, so you don't have to use the "On Goto"
syntax and a lot of labels. This will produce identical machine code.

Most things are implemented, but there are still many bugs to fix.
Some of the (so far) unimplemented features are
Calling external C libraries (the Extern keyword).
The use of "_unknown" special method.
IIf and Choose with different argument data types.
The possibility to use Component.Load to load functions that are executed
right after in the same function.
Profiling
Breakpoints

Some of the benchmarks from http://gambasdoc.org/help/doc/benchmark
Polynom: 102.7 seconds to 4.7 seconds
Primes: 18.3 seconds to 3.5 seconds
Nbody: 16.0 seconds to 1.8 seconds

If you are curious and want to see the optimized LLVM IR you can uncomment
the line M->dump() at the bottom of the jit_codegen.cpp file in gb.jit/src.

I hope the JIT compiler will be useful for you ;)

/Emil

Forgot to mention that the 64-bit version is probably more bug-free than
the 32-bit version, since I myself have a 64-bit computer and therefore
have run only some few tests on 32-bit...

5610
Domande tecniche / Novità in Gambas 3
« il: 19 Maggio 2012, 15:32:54 »
Ambasciata della Comunità italiana di Gambas sulla mailing list internazionale

Comunicazione n. 5 dal vostro Ambasciatore     :rotfl:

Questa Ambasciata porta a conoscenza un avviso inviato oggi da Minisini:


Hi,

I have just added the ability to profile a project from the IDE.

This is not finished yet. At the moment, the IDE will tell you how much
time you spend in each function, and, for each function, how much time
is spent in other functions called from it.

Next, I will try to profile each line of code.

I hope it will help to optimize your projects!

Regards,

--
Benoît Minisini

Pagine: 1 ... 372 373 [374] 375 376 ... 378