libera/#sbcl - IRC Chatlog
Search
15:50:00
lispmacs[work]
hi, the the sbcl package on guix does not work on 686 (32-bit) computer unless I pass in a --dynamic-space-size to sbcl. A variety of values for --dynamic-space-size work, so I am wondering what is the best value to pass in for 686 platform, i.e., what would be a good default for guix to use on 686
16:29:10
lispmacs[work]
Unrelated question: is a listener (TCP port) built-in to sbcl or do I need a 3rd party module for that?
16:33:12
ieure
Yeees, but probably it's better to use an abstraction like usocket than sacrifice portability.
16:36:05
lispmacs[work]
quick Internet research shows I could start a swank server on a remote PC, tunnel it in, and then connect to it with SLIME
16:36:27
lispmacs[work]
I'm simply wanting to connect SLIME on my local Emacs to an SBCL running on a different computer
16:52:03
ieure
Where's the remote machine? IPv4 address exhaustion means end-to-end transparency is broken because most stuff is behind NAT, so you can't (usually) connect to a random host/port like you once could.
16:53:07
ieure
lispmacs[work], A thing I find useful to see if a particular host/port is reachable is `nc -vzw1 HOSTNAME-OR-IP-ADDRESS PORT-NUMBER'. Good idea to start there.
17:01:55
lispmacs[work]
ieure: well, the command I used on the remote machine to create the server was (swank:create-server :port 60000)
17:04:06
ieure
lispmacs[work], You are failing to understand how sockets work. You bind to a host and a port. You are not specifying the host. SLIME being intended for local development, it's likely binding to localhost. You cannot access localhost on machine A from another machine.
17:10:06
lispmacs[work]
don't have any strong opinion on that, so long as there is a convenient way to listen across the network
17:21:21
lispmacs[work]
I'd prefer to just run SBCL locally, but unfortunately there isn't a convenient way to mount serial port character devices across the network, at least not in Gnu/Linux
17:38:39
lispmacs[work]
it is running on this old 686 laptop, though I have to pass in a smaller --dynamic-space-size
17:40:14
lispmacs[work]
but if somebody here had built it on 686 I'm curious to know if that is problem for them also
17:41:35
ieure
lispmacs[work], Haven't used it on i686. Debian still ships 32-bit support and has SBCL, can you reproduce with their binaries?
17:44:47
lispmacs[work]
I have one Debian system here, but it still on buster I think, with a pretty old version of SBCL
17:45:39
ieure
lispmacs[work], There are official Docker images, or you can use debootstrap to build a chroot.
17:51:15
ieure
lispmacs[work], debootstrap has been around for ages, pretty sure it was there when I first installed Debian in 1997.
17:52:29
ieure
lispmacs[work], You probably don't have the sbin dirs on your path. You'll need to read its docs to use effectively.
20:13:48
|3b|
lispmacs[work]: your distro configured sbcl to try to allocate 3gb of address space, instead of the overly low default set by sbcl devs fop exactly this reason, so either configure your OS to let it do so, or complain to your distro
20:30:15
lispmacs[work]
|3b|: I was working with my distro, but wasn't sure exactly what to tell them as far as how to fix them problem. I don't see anything in the package definition that shows they purposely set it to 3GB. Do you know what define or Makefile variable controls that?
20:32:01
lispmacs[work]
I poked around in sbcl source code and makefile for a few minutes but it wasn't obvious to me
20:35:36
lispmacs[work]
here is the package definition from guix, in the unlikely event you want to look through it:
20:35:59
stassats`
after sarching the internet for two seconds https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/lisp.scm#n602
20:37:35
|3b|
ACTION wonders how many 32bit non-ppc archs are happy with allocating 3g of address space
20:45:45
lispmacs[work]
I see, through experiment, that sbcl will work with up to 2810 passed to --dynamic-space-size
20:50:02
|3b|
it is limited by the positions of any address space already allocated by the OS or libraries or whatever, and with ASLR that might change
20:53:09
lispmacs[work]
I'm just wondering, if I had more ram, if it would still be a problem or not. The old laptop has 3GB ram
20:56:33
|3b|
fundamental limit is # of bits in a pointer, reduced by anything that has a chance to allocate parts of the address space before sbcl does
21:01:00
ieure
lispmacs[work], It's variable depending on the specific hardware/processes/config/workload and unsuitable for a package definition.
21:01:32
ieure
lispmacs[work], Simplest thing is to change (target-ppc32?) to (or (target-ppc32?) (target-i686?))
21:01:55
ieure
Assuming that there's a target-i686? procedure. But all the stuff is already there for 32-bit architectures, it just doesn't include i686.