ST appears to compile and run fine on 64 bit and 32 bit platorms, except on 32 bit (i686/pentium3), typing is extremely slow.
Using strace/ltrace on the latest stable 0.5, I see some hangups on the "select" call. Using the git version, I now see select substituted with pselect. The following is a paste of strace output, typing 'j' within the terminal. With the pselect, the slow typing still occurs on i686 32 bit. Sorry I keep forgetting to adjust line lenght when using strace, but it looks somewhat obvious to me what is happening, getting "EAGAIN (Resource temporarily unavailable)", while the pselect call only handles EINTR errno condition? $ strace ./st --- Snip --- read(4, "j", 8192) = 1 clock_gettime(CLOCK_MONOTONIC, {5734, 304463635}) = 0 pselect6(5, [3 4], NULL, NULL, {0, 8000000}, {NULL, 8}) = 0 (Timeout) clock_gettime(CLOCK_MONOTONIC, {5734, 314120972}) = 0 recvmsg(3, 0xbfb89450, 0) = -1 EAGAIN (Resource temporarily unavailable) poll([{fd=3, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=3, revents=POLLOUT}]) writev(3, [{"\212\32\v\0\1\0\1\0\7\0\200\0\0\0\0\0\0\0\377\377\2\0\36\0\2\3\16\0\0\0\36\0"..., 672}, {NULL, 0}, {"", 0}], 3) = 672 recvmsg(3, 0xbfb89410, 0) = -1 EAGAIN (Resource temporarily unavailable) pselect6(5, [3 4], NULL, NULL, NULL, {NULL, 8}) = 1 (in [3]) clock_gettime(CLOCK_MONOTONIC, {5735, 522717105}) = 0 recvmsg(3, {msg_name(0)=NULL, msg_iov(1)=[{"\2,g\2a\204W\0\1\1\0\0\1\0\200\0\0\0\0\0|\1R\1{\1B\1\0\0\1\0", 4096}], msg_controllen=0, msg_flags=0}, 0) = 32 recvmsg(3, 0xbfb89450, 0) = -1 EAGAIN (Resource temporarily unavailable) write(4, "j", 1) = 1 recvmsg(3, 0xbfb89450, 0) = -1 EAGAIN (Resource temporarily unavailable) poll([{fd=3, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=3, revents=POLLOUT}]) writev(3, [{"\212\32\7\0\1\0\1\0\7\0\200\0\0\0\0\0\0\0\377\377\270\0\36\0\7\0\16\0\212\6\5\0"..., 236}, {NULL, 0}, {"", 0}], 3) = 236 recvmsg(3, 0xbfb89410, 0) = -1 EAGAIN (Resource temporarily unavailable) pselect6(5, [3 4], NULL, NULL, {0, 8000000}, {NULL, 8}) = 1 (in [4], left {0, 7993016}) read(4, "j", 8192) = 1 clock_gettime(CLOCK_MONOTONIC, {5735, 529161383}) = 0 pselect6(5, [3 4], NULL, NULL, {0, 8000000}, {NULL, 8}) = 0 (Timeout) clock_gettime(CLOCK_MONOTONIC, {5735, 539123236}) = 0 recvmsg(3, 0xbfb89450, 0) = -1 EAGAIN (Resource temporarily unavailable) poll([{fd=3, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=3, revents=POLLOUT}]) writev(3, [{"\212\32\v\0\1\0\1\0\7\0\200\0\0\0\0\0\0\0\377\377\2\0\36\0\2\3\16\0\0\0\36\0"..., 672}, {NULL, 0}, {"", 0}], 3) = 672 recvmsg(3, 0xbfb89410, 0) = -1 EAGAIN (Resource temporarily unavailable) pselect6(5, [3 4], NULL, NULL, NULL, {NULL, 8} --- Snip --- And not to complain as DWM has been my favorite desktop for the past years, but did you notice st getting a bit large? ;-) Granted, XFT font rasterizing and color effects are somewhat needed. -- Roger http://rogerx.freeshell.org/