6 ms·
> without any dependencies on an interpreter/environment/libs etc. no stake on either side, but the post specifically mentions this (though that was on vlang 0
by uryga 6y ago
> without any dependencies on an interpreter/environment/libs etc.
no stake on either side, but the post specifically mentions this (though that was on vlang 0.1)
> I claim that the V compiler has dependencies because it requires other libraries or programs in order to function. For an example, see the output of ldd (a program that lists the dynamically linked dependencies of other programs) on the V compiler and a hello world program:
$ ldd ./v
linux-vdso.so.1 (0x00007fff2d044000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f2fb3e4c000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f2fb3a5b000)
/lib64/ld-linux-x86-64.so.2 (0x00007f2fb4345000)
$ ldd ./hello
linux-vdso.so.1 (0x00007ffdfdff2000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fed25771000)
/lib64/ld-linux-x86-64.so.2 (0x00007fed25d88000)
> If these binaries were really as dependency-free as the V website claims, the output of ldd would look something like this:
$ ldd $HOME/bin/dhall
not a dynamic executable
- amedvednikov 6y agolibc is the only stable system api, on non Linux system you don't have a choice to use anything else. Go tried, and went back to linking to libc, because of constant syscall changes. So I don't view having libc a dependency, it'd be like saying that macOS is a dependency. You can also use musl on Linux with V for 100% static binaries.
- zaarn 6y agolibc is not stable, glibc breaks plenty of times (try running some real old software without relinking glibc). The only stable system API is the linux kernel syscalls. Those basically don't break.
- vlovich123 6y agoThat’s true for Linux and why Go thought they could do this everywhere. It turns out that libc is the only stable interface for a lot of platforms (notably MacOS and many other BSDs if not all).
- zaarn 6y agoCorrect, on Windows there is no stable syscall interface, same for BSD. Hence you're supposed to link things. But Linux syscall interface is stable and libc is definitely not stable.
- edflsafoiewq 6y agoWhat has glibc broken?
- cle 6y agoHere is a tracker for backwards-incompatible changes to glibc: https://abi-laboratory.pro/?view=timeline&l=glibc https://abi-laboratory.pro/?view=timeline&l=glibc
- uryga 6y agodidn't mean to argue, just providing context for people scrolling through the comments :) i agree that it's a bit nitpicky. (but "depends only on libc" would probably be a better phrasing)
- ofrzeta 6y agoSure is nitpicky. When I see some open source software I certainly never see libc mentioned as a dependency. It's just assumed that it is there as part of the OS which it basically is.
- mst 6y ago"I don't view this dependency as a dependency" is ... ok, you can redefine things if you're clear about that, but given you've also argued that "printing to stdout doesn't make a function impure" I think perhaps a glossary of terms that V uses differently would be helpful to understand your claims. I'd also note that given you then banned her from the issue tracker after that post went up rather than discussing it, your claims of bias on her part seem a trifle strange.
- deleted 6y ago[deleted]
- saagarjha 6y agoBut the example was run on Linux.
- benibela 6y agoFreePascal works without libc