[Gambas-user] BUG Install on mandriva

Doriano Blengino doriano.blengino at ...1909...
Sun Jul 25 19:50:48 CEST 2010


Benoît Minisini ha scritto:
>> Now, the single file that should be a link it's easy to correct. But, a
>> line saying "link ../component.am" in the middle of a makefile is
>> different: the makefile is generated by ./configure; where are the
>> instructions that make configure think to do such a thing? Otherwise, I
>> can give up for today, and try to download something else next week. I
>> am reluctant to use svn because I must put my hands onto a production
>> machine: it's not terrible, but at first, I decided not to do it: to
>> download a tarball should be trivial.
>>
>>     
> I see: you must use a svn client to extract the sources. 
>
> What you are downloading is an image of the subversion repository, which is 
> the way the subversion server internally stores the data. Useful if you want 
> to duplicate the repository, not useful if you want to compile the sources.
>
> You can do the checkout, and then compress it into a *.tag.gz before bringing 
> it home.
>   
Well: ignoring as usual all the advices I've received (my head is harder 
than my computer screen), I managed to compile gambas3. Some comments 
follow, and by no mean they have the sole purpose to criticize; instead, 
giving that gambas3 is still open to modifications, may be that some 
idea can be stimulating.

Me and others got caught in the same pit - building of gambas3.gambas 
succeeds even if some required component is missing. While it is true 
that examining logs or paying attention to the compilation process this 
pit could be avoided, may be that a better-planned compilation process 
could solve more coherently. Just a thought.

After having launched gambas3 I went to the preferences to see how much 
I could taylor it to my needs. It seems that the preferred way to set 
preferences is to let the user choose among a few choices. For some 
things like the font size, "Normal, small, smaller" could be enough (but 
not always); when choosing the terminal emulator I see konsole, gnome 
terminal, xfce, xterm. No one of them is installed, in my (strictly 
mine) opinion, they all suck.

Then I loaded my experimental "Gambas drum machine", where I am 
developing an ALSA interface class. The first run attempt gave me an 
error because, it seems, there is no more support for reading/writing to 
pointers. Is this planned? This seems to be a back-compatibility break. 
While searching for help about that, I noticed that there is no help 
around - I will have to get it separately. Then I thought "ok, let's use 
the new gambas3 capabilities...". But it would be better to have a way 
to write code compatible to both gambas2 and gambas3 (conditional 
compilation?). Unfortunately, the CAlsa class is full of pointer 
playing. Anyway, I tried to do a little step ahead. I have a call to 
initialize alsa:

    int snd_seq_open(snd_seq_t **seqp, const char * name, Int streams, 
Int mode);

The first parameter requires a pointer to a pointer, and this is why in 
the gambas2 version I used a pointer to read from. But now, I wrote:

    Private Extern snd_seq_open(ByRef Pseq As Pointer, name As String, 
streams As Integer, mode As Integer) As Integer

This declaration is later used by:

      err = snd_seq_open(handle, "default", SND_SEQ_OPEN_DUPLEX, 0)
        --or--
      err = snd_seq_open(byref handle, "default", SND_SEQ_OPEN_DUPLEX, 0)

Both statements die with error #6. This two lines work:

    ret = VarPtr(handle)
    err = snd_seq_open(ret, "default", SND_SEQ_OPEN_DUPLEX, 0)

It seems that "byref" is ignored in external declaration, but no error 
is generated.

Now alsa is correctly initialized, but the rest of the class relies 
heavily on pointers, and I am not ready to convert all that mess into 
gambas structures (have no information about this topic). Moreover, 
doing so would make the source incompatible with gambas2, and I am not 
sure about alignment problems. The pointer way can be ugly, but still 
versatile.

What should I do now?

Regards,
Doriano






More information about the User mailing list