Oil

http://people.fishpool.fi/~setok/sleberEid/liboil/

"Oil is an extension to Tcl which provides a high-level method to control graphics, effects and other media systems. My long-term goal is for Oil to do to SDL-coding what Tk did for X-coding."

Provocative example: http://www.fishpool.com/~setok/sleberEid/managers.html

Another, made in 2 hours: http://www.fishpool.com/~setok/sleberEid/twohours.html

Announcement [L1 ]


PT 18-Jul-2003: Liboil can be built for windows using the mingw compiler. You need to get the SDL development library for mingw from the SDL site [L2 ] and apply the following patch to the current Makefile in liboil. What you end up with is a oilsh shell. This isn't too good as an interactive shell under windows - but it does successfully run the oil scripts. Try the managers demo mentioned above.

To use this patch, copy it to a file and delete the leading single space (for instance, in emacs use M-x replace-regexp<RET>^ <RET><RET>). You'll need to edit the location of your SDLDIR - and the SDL include directory needs to be renamed from include to SDL (because all the #includes are for <SDL/xxxx.h>).

 --- Makefile.orig       Mon Feb 17 02:29:28 2003
 +++ Makefile    Thu Jul 17 01:44:58 2003
 @@ -4,16 +4,16 @@
 ## $Header: /home/kennykb/Tcl/wiki/cvsroot/twhist/8347,v 1.9 2005-04-08 06:00:42 jcw Exp $


 -SDL_CFLAGS  = `sdl-config --cflags`
 -SDL_LIBS    = `sdl-config --libs`
 +SDLDIR      = /opt/SDL-1.2.5
 +SDL_CFLAGS  = -I$(SDLDIR) -Dmain=SDL_main #`sdl-config --cflags`
 +SDL_LIBS    = -L$(SDLDIR)/lib -lmingw32 -lSDLmain -lSDL

 -CC         = gcc
 +CC         = gcc  -DWIN32 -D_WINDOWS
  #FLAGS             = $(SDL_CFLAGS) -O2 -ffast-math -Wall -DDEBUG -g
  FLAGS      = $(SDL_CFLAGS) -O2 -ffast-math -Wall -finline-functions -funroll-loops
 -LIBS       = $(SDL_LIBS) -ltcl8.4
 +LIBS       = $(SDL_LIBS) -L/opt/tcl/lib -ltcl84

 -# RedHat doesn't need this
 -INCS = -I/usr/include/tcl8.4/
 +INCS = -I. -I/opt/tcl/include/

  SRCS =  oilsh.c                \
         debug.c                 \
 @@ -52,7 +52,7 @@
         rm *.o

  oilsh:         $(OBJS)
 -       $(CC) $(FLAGS) $(LIBS) -o $@ $^
 +       $(CC) $(FLAGS) $^ $(LIBS) -o $@

  $(OBJS):       %.o: %.c
         $(CC) $(FLAGS) $(INCS) -c -o $@ $<

This has obviously nothing to do with libOil from http://www.schleef.org/liboil/ except the name collision (that seems to be their fault this time).

Is there anything for Tcl to gain from optimized inner loops library?