Feeds:
Posts
Comments

Archive for the ‘Uncategorized’ Category

After some hacking, I can invoke squeak and get some version info
As I get time, I will continue hacking on this and as time permits, I will work with whoever is interested.
Process I am following is as follows
cp -Rv build.linux64x64/ build.freebsd64x64
cd build.freebsd64x64/squeak.cog.spur/
[create backup copies of original plugins.* and build/mvm
cp plugins.int plugins.int.orig ; cp plugins.ext plugins.ext.orig
cp build/mvm ./
[hack,baby hack!]
reduce plugins.int to minimal (I blogged on this a couple of years ago: )
INTERNAL_PLUGINS = \
AsynchFilePlugin \
B2DPlugin \
BitBltPlugin \
SocketPlugin
after some hacking, I reduced plugins.ext to this:
EXTERNAL_PLUGINS = \
B3DAcceleratorPlugin \
SqueakFFIPrims \
LocalePlugin \
UnicodePlugin \
UnixOSProcessPlugin \
UUIDPlugin \
ImmX11Plugin \
XDisplayControlPlugin
modified mvm to this (note the FreeBSD addition to the case statement, the addition of libiconv and the –without–vm-sound-FOO)
#!/usr/bin/env bash
set -e
# Spur VM with VM profiler and threaded heartbeat
INSTALLDIR=sqcogspur64linuxht
OPT=”-g -O2 -fwrapv -DNDEBUG -DDEBUGVM=0 -D_FILE_OFFSET_BITS=64″
CFLAGS=”$OPT -msse2 -DCOGMTVM=0″
LIBS=””
LDFLAGS=””
case $(uname -s) in
  OpenBSD)
           CFLAGS=”$CFLAGS -I/usr/local/include”
           LIBS=”$LIBS -lexecinfo”
           LDFLAGS=”$LDFLAGS -L/usr/local/lib”
           ;;
  FreeBSD)
           CFLAGS=”$CFLAGS -I/usr/local/include”
           LIBS=”$LIBS -lexecinfo -liconv”
           LDFLAGS=”$LDFLAGS -L/usr/local/lib”
           ;;
esac
if [ $# -ge 1 ]; then
        INSTALLDIR=”$1″; shift
fi
echo -n “clean? “
read a
case $a in
n|no|N|NO)      echo “ok but this isn’t safe!!”;;
*)                      test -f Makefile && make reallyclean
esac
test -f plugins.int || (test -f ../plugins.int && cp -p ../plugins.int . || cp -p ../../plugins.int .)
test -f plugins.ext || (test -f ../plugins.ext && cp -p ../plugins.ext . || cp -p ../../plugins.ext .)
test -f config.h || ../../../platforms/unix/config/configure –without-npsqueak \
                –with-vmversion=5.0 \
                –with-src=spur64src \
                –without-vm-sound-MacOSX \
                –without-vm-sound-Sun \
                –without-vm-sound-custom \
                –without-vm-sound-ALSA \
        TARGET_ARCH=”-m64″ \
        CFLAGS=”$CFLAGS” \
        LIBS=”$LIBS” \
        LDFLAGS=”$LDFLAGS”
rm -f vm/sqUnixMain.o # nuke version info
rm -rf ../../../products/$INSTALLDIR
# prefer make install prefix=`readlink -f \`pwd\`/../../../products/$INSTALLDIR`
# but older linux readlinks lack the -f flag
make install-squeak install-plugins prefix=`(cd ../../../;pwd)`/products/$INSTALLDIR 2>&1 | tee LOG
./mvm  (it will error out trying to build sound plugins even though I put those –without-vm-sound-foo thingies in)
Stop.
make[1]: stopped in /usr/home/timmy/usr/src/opensmalltalk-vm/build.freebsd64x64/squeak.cog.spur/build/vm-sound-ALSA
edit the Makefile and search for “sound”
modify LIBS
LIBS=           -luuid -lutil -lpulse-simple -lasound  -lm  -lexecinfo -liconv
becomes:
LIBS=           -luuid -lutil  -lm  -lexecinfo -liconv
modify PLUGINS_LA
PLUGINS_LA      =  vm-display-X11${la} vm-display-null${la} vm-sound-ALSA${la} vm-sound-NAS${la} vm-sound-OSS${la} vm-sound-null${la} vm-sound-pulse${la} B3DAcceleratorPlugin${la} SqueakFFIPrims${la} LocalePlugin${la} UnixOSProcessPlugin${la} UUIDPlugin${la} ImmX11Plugin${la} XDisplayControlPlugin${la}
becomes :
PLUGINS_LA      =  vm-display-X11${la} vm-display-null${la}  B3DAcceleratorPlugin${la} SqueakFFIPrims${la} LocalePlugin${la} UnixOSProcessPlugin${la} UUIDPlugin${la} ImmX11Plugin${la} XDisplayControlPlugin${la}
(Why are the –without-vm-sound–… directives ignored?)
type make.
it compiles.
but the ‘getversion’ program barfs a bit (probably UUID problemvi M):
./getversion
VM_NICKNAME: Cog Spur VM
VIRTUAL_MACHINE_NICKNAME: Cog Spur Virtual Machine
VM_MONIKER: CogSpurVM
VM_VERSION: 5.0
VM_MAJOR: 5
VM_MINOR: 0
VM_RELEASE: $CommitHash$
VERSION_TAG: 5.0-$CommitHash$
VERSION_NUMBER: 5.0.$CommitHash$
COMMIT_HASH:
NICKNAME: Cog
OBJMEM: Spur
DEFAULT_IMAGE_NAME: squeak.image
timmy@dpdev1:~/usr/src/opensmalltalk-vm/build.freebsd64x64/squeak.cog.spur/build %
and the resulting products output reflects that:
tree sqcogspur64linuxht/
sqcogspur64linuxht/
|– bin
|   `– squeak
|– lib
|   `– squeak
|       `– 5.0-$CommitHash$
|           `– squeak
`– squeak
hack some more, renaming the lib/squeak/5.0
mv 5.0-\$CommitHash\$/ 5.0
check the executable:
file 5.0/squeak 5.0/squeak: ELF 64-bit LSB executable, x86-64, version 1 (FreeBSD), dynamically linked, interpreter /libexec/ld-elf.so.1, for FreeBSD 11.1, FreeBSD-style, not stripped
invoke it and check version (outputs as at the beginning of the post)
try to run it..
../opensmalltalk-vm/products/sqcogspur64linuxht/lib/squeak/5.0/squeak Squeak5.1-16548-64bit.image -headless
squeak: could not find any display driver
Abort (core dumped)
Advertisements

Read Full Post »

Tobias Pape solved the problem here: http://forum.world.st/unregistered-not-called-on-expired-session-td5070103.html#a5070551

 

TL;DR

Add class side method to

TBSBootstrapExample class >>methodNamed: aSymbol
^ self >> aSymbol

The “>>” message is from Behavior…take the time to look it up, its a great one for the toolbox.

 

Add instance side method to:

 

CompiledMethod >sourceCode
^ self getSource

 

My hunch is that this is a pharo thing that does not port to Seaside until now.

 

 

Read Full Post »

The DNS lookup problems I was having with my router getting a static i.p  “went away” when I hooked my workstation directly to the modem, configured the workstation for DHCP and then saved the /etc/resolv.conf (which appears to be populated by DHCPCD into a backup file.

 

I then reconfigured the workstation for static-ip, plugged in the router and my workstation to the router and then copied the backup resolv.conf to the /etc/resolv.conf.

 

That solved the problem.

Read Full Post »

With Slackware 14.2 X don’t listen no more unless you tell it to.

 

The old routine of …

Local:

xhost +64.233.177.138

telnet 64.233.177.138

 

remote

export DISPLAY=199.16.156.230:0.0

xclock &

doesn’t work out of the box

UNLESS 

you explicitly tell X to listen

In practical terms that means

 

startx

 

becomes

 

startx — -listen tcp

 

 

 

 

 

 

 

Read Full Post »

For those folks getting the pthread_setschedparam the example Eliot gives at http://www.mirandabanda.org/files/Cog/VM/VM.r3006/README.3006 does not apply to Slackware linux and I suspect other distros too.

I did some digging this morning and figured out how to set this up on my system.

This site https://www.hackthissite.org/articles/read/932 gives an overview, but it is a bit outdated.

On Slackware 14.1 the output of ‘man limits’ shows a few more entries

· A: max address space (KB)

· C: max core file size (KB)

· D: max data size (KB)

· F: maximum filesize (KB)

· K: file creation mask, set by umask(2).

· I: max nice value (0..39 which translates to 20..-19)

· L: max number of logins for this user

· M: max locked-in-memory address space (KB)

· N: max number of open files

· O: max real time priority

· P: process priority, set by setpriority(2).

· R: max resident set size (KB)

· S: max stack size (KB)

· T: max CPU time (MIN)

· U: max number of processes

I created the /etc/limits file and added an entry

tty O100

logout out and back in and I was able to run the squeak.cog.v3 build just fine.
Prior to that limit fix, I was getting the dreaded pthread_setschedparam error and could only run the vm as root.

Hope that helps.

Read Full Post »

I think I have the solution to autoconf not expanding the NoDbgRegParms on my version of the autotools in build.linux32x86/squeak.cog.v3

SHORT VERSION:
in Cog/platforms/unix/config/config.h.in add the line

#define NoDbgRegParms

in the header files Cog/src/vm/config/
cogit.h
cointerp.h
cointerpmt.h

remove the following construct

#if !defined(NoDbgRegParms)
# define NoDbgRegParms /*empty*/
#endif

Reasoning: In the configure template we define the darn thing as an empty sting by default and only set it to something when we intend to use it for debugging.

LONG VERSION:

Tools versions are:
autoconf (GNU Autoconf) 2.69
gcc (GCC) 4.8.2

in Cog/platforms/unix/config/config.h.in add the line

#define NoDbgRegParms

in Cog/src/vm/config/
cogit.h
cointerp.h
cointerpmt.h

remove the following construct

#if !defined(NoDbgRegParms)
# define NoDbgRegParms /*empty*/
#endif

Read Full Post »

Shut-down the machine. Unplug it. Wait a bit. Plug it back in and boot.

Symptoms where none of my usb devices would show up with lsusb or lsscsi.
My usb mouse did not work.

dmesg had errors like:

usb 9 – 4 device not accepting address 8, -error -32
usb 9 – 4 device not accepting address 9, -error -32
hub 9-0:1.0 unable to enumerate usb device on port 4

A google on the above finally yielded the fix.

Read Full Post »

Older Posts »