[Cuis-dev] Libpulse dependency - why does a programming language require a certain audio interface?

tuxic at posteo.de tuxic at posteo.de
Sat May 28 10:37:14 PDT 2022


Hi Nicola,

thanks for the link! And I can confirm now, that it is a VM thing:

On my GENTOO Linux PC, at the command line:
hostmachine:me/CUIS>ldd /home/me/Squeak5.3-19459-64bit-202003021730-Linux/bin/squeak
        linux-vdso.so.1 (0x00007ffefa7ca000)
        libuuid.so.1 => /lib64/libuuid.so.1 (0x00007f8815018000)
        libdl.so.2 => /lib64/libdl.so.2 (0x00007f8815013000)
        libutil.so.1 => /lib64/libutil.so.1 (0x00007f881500e000)
***     libpulse-simple.so.0 => not found
***     libasound.so.2 => /usr/lib64/libasound.so.2 (0x00007f8814f22000)
        libm.so.6 => /lib64/libm.so.6 (0x00007f8814e45000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f8814e3e000)
        libc.so.6 => /lib64/libc.so.6 (0x00007f8814c42000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f8815046000)

libpulse as libasound are dependencies of squeak.

libasound is ALSA, a Linux kernel thing.
libpulse is Pulseaudio, which is a demon living in user land.

ALSA is part of any Linux kernel (ok, may be VERY old kernels from the i386 era
are still using OSS). So it is OK to bind a programming language - if
any at all - to ALSA for the Linux platform.

It is not OK to bind a programming language to a user land program which
is a layer around ALSA (pulseaudio speaks to ALSA), because each flavor
of a Linux distro may have different user land (user land as "the
opposite of kernel land") programs installed or the user choose not to 
install a certain application.

And since Smalltalk breaks with the Unix philosophy,
"Make each program do one thing well."
https://en.wikipedia.org/wiki/Unix_philosophy

and fit an IDE, a compiler, an interpreter, a debugger a system-, an object- 
and a class browser and a GUI into a single program (image & vm), 
one single thing going bad will break the whole thing.
Or in other words: The GUI will not start, because of the audio
interface, which the user may even not want to use.

Pulseaudio (and systemd by the way) are known for breaking the same
part of the Unix philosophy.

That's why the gcc doesn't has a single bit of an idea of audio
interfaces, GUI elements, parsers, and what else. That is done
by libraries, the user can choose to add to the compilation process.
They are no dependencies of the gcc itsself:
hostmachine:/home/me>ldd /usr/bin/gcc
        linux-vdso.so.1 (0x00007ffeb09d0000)                 
        libm.so.6 => /lib64/libm.so.6 (0x00007f827fad3000)
        libc.so.6 => /lib64/libc.so.6 (0x00007f827f8d7000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f827fbd4000)      

...all libraries will be installed while installing gcc itsself - they
are part of the compiler suit itsself...

Does Smalltalk run on machines with Wayland instead of X11?

Again only my two cents...

Cheers!
Meino



On 05/28 06:58, Nicola Mingotti via Cuis-dev wrote:
> Yo ! My video spread in places i don't even know !
> 
> Tuxic, I put very little study into the audio part.
> I can't help you much, but I am 90% sure this is a VM (OpenSmalltalk VM)
> thing, not strictly related to Cuis.
> 
> I found this discussion that might be relevant:
> http://forum.world.st/OpenSmalltalk-opensmalltalk-vm-No-sound-on-Linux-489-td5115348.html
> 
> bye
> Nicola
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> On Thu, May 26, 2022 at 12:56 PM tuxic via Cuis-dev <cuis-dev at lists.cuis.st>
> wrote:
> 
> > Hi,
> >
> > I followed the steps given by Nicoa Mingotty here:
> > https://invidio.xamh.de/watch?v=ydrqIxAf2II
> >
> > and when starting Cuis Smalltalk I get this error message:
> >
> > sqcogspur64linuxht/squeak Cuis-Smalltalk-Dev/Cuis6.0-5171.image
> > vm-sound-pulse tryLoading
> > sqcogspur64linuxht/lib/squeak/5.0-202205110711-64bit/vm-sound-pulse.so:
> > dlopen: libpulse-simple.so.0: cannot open shared object file: No such
> > file or directory vm-sound-pulse tryLoading
> >
> > /home/mccramer/CUIS/sqcogspur64linuxht/lib/squeak/5.0-202205110711-64bit/vm-sound-pulse.so:
> > dlopen: libpulse-simple.so.0: cannot open shared object file: No such file
> > or directory
> >
> > I am using alsa as the audio interface of choice.
> > How can I make Cuis Smalltalk to use this interface instead of
> > pulseaudio?
> >
> > Cheers!
> > Tuxic
> >
> >
> > --
> > Cuis-dev mailing list
> > Cuis-dev at lists.cuis.st
> > https://lists.cuis.st/mailman/listinfo/cuis-dev
> >

> -- 
> Cuis-dev mailing list
> Cuis-dev at lists.cuis.st
> https://lists.cuis.st/mailman/listinfo/cuis-dev



More information about the Cuis-dev mailing list