diff options
Diffstat (limited to 'Examples/chicken')
35 files changed, 0 insertions, 958 deletions
diff --git a/Examples/chicken/README b/Examples/chicken/README deleted file mode 100644 index d4f91baf6..000000000 --- a/Examples/chicken/README +++ /dev/null @@ -1,12 +0,0 @@ -This directory contains examples for CHICKEN. - -class -- illustrates the proxy class C++ interface -constants -- handling #define and %constant literals -egg -- examples of building chicken extension libraries -multimap -- typemaps with multiple sub-types -overload -- C++ function overloading -simple -- the simple example from the user manual -zlib -- a wrapping of the zlib compression library - -You should be able to run make in each of the examples. By default, a shared -library will be built. Run make check to execute the test. diff --git a/Examples/chicken/check.list b/Examples/chicken/check.list deleted file mode 100644 index 9ea022bfb..000000000 --- a/Examples/chicken/check.list +++ /dev/null @@ -1,6 +0,0 @@ -# see top-level Makefile.in -class -constants -multimap -overload -simple diff --git a/Examples/chicken/class/Makefile b/Examples/chicken/class/Makefile deleted file mode 100644 index ea2d8b62e..000000000 --- a/Examples/chicken/class/Makefile +++ /dev/null @@ -1,40 +0,0 @@ -TOP = ../.. -SWIGEXE = $(TOP)/../swig -SWIG_LIB_DIR = $(TOP)/../$(TOP_BUILDDIR_TO_TOP_SRCDIR)Lib -INTERFACE = example.i -SRCS = -CXXSRCS = example.cxx -TARGET = class -INCLUDE = -SWIGOPT = -VARIANT = - -# uncomment the following lines to build a static exe (only pick one of the CHICKEN_MAIN lines) -#CHICKEN_MAIN = runme-lowlevel.scm -#CHICKEN_MAIN = runme-tinyclos.scm -#VARIANT = _static - -check: build - $(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' CHICKEN_SCRIPT='runme-lowlevel.scm' chicken_run - $(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' CHICKEN_SCRIPT='runme-tinyclos.scm' chicken_run - -build: $(TARGET) $(TARGET)_proxy - -$(TARGET): $(INTERFACE) $(SRCS) - $(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' \ - SRCS='$(SRCS)' CXXSRCS='$(CXXSRCS)' CHICKEN_MAIN='$(CHICKEN_MAIN)' \ - SWIG_LIB_DIR='$(SWIG_LIB_DIR)' SWIGEXE='$(SWIGEXE)' \ - INCLUDE='$(INCLUDE)' SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' \ - INTERFACE='$(INTERFACE)' CHICKENOPTS='$(CHICKENOPTS)' chicken$(VARIANT)_cpp - -$(TARGET)_proxy: $(INTERFACE) $(SRCS) - $(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' \ - SRCS='$(SRCS)' CXXSRCS='$(CXXSRCS)' CHICKEN_MAIN='$(CHICKEN_MAIN)' \ - SWIG_LIB_DIR='$(SWIG_LIB_DIR)' SWIGEXE='$(SWIGEXE)' \ - INCLUDE='$(INCLUDE)' SWIGOPT='$(SWIGOPT) -proxy' TARGET='$(TARGET)_proxy' \ - INTERFACE='$(INTERFACE)' CHICKENOPTS='$(CHICKENOPTS)' chicken$(VARIANT)_cpp - -clean: - $(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' chicken_clean - rm -f example.scm - rm -f $(TARGET) diff --git a/Examples/chicken/class/example.cxx b/Examples/chicken/class/example.cxx deleted file mode 100644 index 046304519..000000000 --- a/Examples/chicken/class/example.cxx +++ /dev/null @@ -1,28 +0,0 @@ -/* File : example.cxx */ - -#include "example.h" -#define M_PI 3.14159265358979323846 - -/* Move the shape to a new location */ -void Shape::move(double dx, double dy) { - x += dx; - y += dy; -} - -int Shape::nshapes = 0; - -double Circle::area() { - return M_PI*radius*radius; -} - -double Circle::perimeter() { - return 2*M_PI*radius; -} - -double Square::area() { - return width*width; -} - -double Square::perimeter() { - return 4*width; -} diff --git a/Examples/chicken/class/example.h b/Examples/chicken/class/example.h deleted file mode 100644 index 5bad31693..000000000 --- a/Examples/chicken/class/example.h +++ /dev/null @@ -1,41 +0,0 @@ -/* File : example.h */ - -class Shape { -public: - Shape() { - nshapes++; - } - virtual ~Shape() { - nshapes--; - } - double x, y; - void move(double dx, double dy); - virtual double area() = 0; - virtual double perimeter() = 0; - static int nshapes; - - enum SomeEnum { - First = 0, - Second, - Third, - Last = 1000 - }; -}; - -class Circle : public Shape { -private: - double radius; -public: - Circle(double r) : radius(r) { } - virtual double area(); - virtual double perimeter(); -}; - -class Square : public Shape { -private: - double width; -public: - Square(double w) : width(w) { } - virtual double area(); - virtual double perimeter(); -}; diff --git a/Examples/chicken/class/example.i b/Examples/chicken/class/example.i deleted file mode 100644 index fbdf7249f..000000000 --- a/Examples/chicken/class/example.i +++ /dev/null @@ -1,9 +0,0 @@ -/* File : example.i */ -%module example - -%{ -#include "example.h" -%} - -/* Let's just grab the original header file here */ -%include "example.h" diff --git a/Examples/chicken/class/runme-lowlevel.scm b/Examples/chicken/class/runme-lowlevel.scm deleted file mode 100644 index 7c59c0aaa..000000000 --- a/Examples/chicken/class/runme-lowlevel.scm +++ /dev/null @@ -1,76 +0,0 @@ -;; This file illustrates the low-level C++ interface generated -;; by SWIG. - -(load-library 'example "class.so") -(declare (uses example)) - -;; ----- Object creation ----- - -(display "Creating some objects:\n") -(define c (new-Circle 10.0)) -(display " Created circle ") -(display c) -(display "\n") -(define s (new-Square 10.0)) -(display " Created square ") -(display s) -(display "\n") - -;; ----- Access a static member ----- - -(display "\nA total of ") -(display (Shape-nshapes)) -(display " shapes were created\n") - -;; ----- Member data access ----- - -;; Set the location of the object - -(Shape-x-set c 20.0) -(Shape-y-set c 30.0) - -(Shape-x-set s -10.0) -(Shape-y-set s 5.0) - -(display "\nHere is their current position:\n") -(display " Circle = (") -(display (Shape-x-get c)) -(display ", ") -(display (Shape-y-get c)) -(display ")\n") -(display " Square = (") -(display (Shape-x-get s)) -(display ", ") -(display (Shape-y-get s)) -(display ")\n") - -;; ----- Call some methods ----- - -(display "\nHere are some properties of the shapes:\n") -(let - ((disp (lambda (o) - (display " ") - (display o) - (display "\n") - (display " area = ") - (display (Shape-area o)) - (display "\n") - (display " perimeter = ") - (display (Shape-perimeter o)) - (display "\n")))) - (disp c) - (disp s)) - -(display "\nGuess I'll clean up now\n") - -;; Note: this invokes the virtual destructor -(set! c #f) -(set! s #f) -(gc #t) - -(set! s 3) -(display (Shape-nshapes)) -(display " shapes remain\n") -(display "Goodbye\n") - -(exit) diff --git a/Examples/chicken/class/runme-tinyclos.scm b/Examples/chicken/class/runme-tinyclos.scm deleted file mode 100644 index 5ba1d6adb..000000000 --- a/Examples/chicken/class/runme-tinyclos.scm +++ /dev/null @@ -1,76 +0,0 @@ -;; This file illustrates the proxy C++ interface generated -;; by SWIG. - -(load-library 'example "class_proxy.so") -(declare (uses example)) -(declare (uses tinyclos)) - -;; ----- Object creation ----- - -(display "Creating some objects:\n") -(define c (make <Circle> 10.0)) -(display " Created circle ") -(display c) -(display "\n") -(define s (make <Square> 10.0)) -(display " Created square ") -(display s) -(display "\n") - -;; ----- Access a static member ----- - -(display "\nA total of ") -(display (Shape-nshapes)) -(display " shapes were created\n") - -;; ----- Member data access ----- - -;; Set the location of the object - -(slot-set! c 'x 20.0) -(slot-set! c 'y 30.0) - -(slot-set! s 'x -10.0) -(slot-set! s 'y 5.0) - -(display "\nHere is their current position:\n") -(display " Circle = (") -(display (slot-ref c 'x)) -(display ", ") -(display (slot-ref c 'y)) -(display ")\n") -(display " Square = (") -(display (slot-ref s 'x)) -(display ", ") -(display (slot-ref s 'y)) -(display ")\n") - -;; ----- Call some methods ----- - -(display "\nHere are some properties of the shapes:\n") -(let - ((disp (lambda (o) - (display " ") - (display o) - (display "\n") - (display " area = ") - (display (area o)) - (display "\n") - (display " perimeter = ") - (display (perimeter o)) - (display "\n")))) - (disp c) - (disp s)) - -(display "\nGuess I'll clean up now\n") - -;; Note: Invoke the virtual destructors by forcing garbage collection -(set! c 77) -(set! s 88) -(gc #t) - -(display (Shape-nshapes)) -(display " shapes remain\n") -(display "Goodbye\n") - -(exit) diff --git a/Examples/chicken/constants/Makefile b/Examples/chicken/constants/Makefile deleted file mode 100644 index 2fdde0a58..000000000 --- a/Examples/chicken/constants/Makefile +++ /dev/null @@ -1,31 +0,0 @@ -TOP = ../.. -SWIGEXE = $(TOP)/../swig -SWIG_LIB_DIR = $(TOP)/../$(TOP_BUILDDIR_TO_TOP_SRCDIR)Lib -INTERFACE = example.i -SRCS = -CXXSRCS = -TARGET = constants -INCLUDE = -SWIGOPT = -VARIANT = - -# uncomment the following two lines to build a static exe -#CHICKEN_MAIN = runme.scm -#VARIANT = _static - -check: build - $(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' chicken_run - -build: $(TARGET) - -$(TARGET): $(INTERFACE) $(SRCS) - $(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' \ - SRCS='$(SRCS)' CXXSRCS='$(CXXSRCS)' CHICKEN_MAIN='$(CHICKEN_MAIN)' \ - SWIG_LIB_DIR='$(SWIG_LIB_DIR)' SWIGEXE='$(SWIGEXE)' \ - INCLUDE='$(INCLUDE)' SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' \ - INTERFACE='$(INTERFACE)' CHICKENOPTS='$(CHICKENOPTS)' chicken$(VARIANT) - -clean: - $(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' chicken_clean - rm -f example.scm - rm -f $(TARGET) diff --git a/Examples/chicken/constants/example.i b/Examples/chicken/constants/example.i deleted file mode 100644 index 0995c19b9..000000000 --- a/Examples/chicken/constants/example.i +++ /dev/null @@ -1,27 +0,0 @@ -/* File : example.i */ -%module example - -/* A few preprocessor macros */ - -#define ICONST 42 -#define FCONST 2.1828 -#define CCONST 'x' -#define CCONST2 '\n' -#define SCONST "Hello World" -#define SCONST2 "\"Hello World\"" - -/* This should work just fine */ -#define EXPR ICONST + 3*(FCONST) - -/* This shouldn't do anything */ -#define EXTERN extern - -/* Neither should this (BAR isn't defined) */ -#define FOO (ICONST + BAR) - -/* The following directives also produce constants. Remember that - CHICKEN is normally case-insensitive, so don't rely on differing - case to differentiate variable names */ - -%constant int iconstX = 37; -%constant double fconstX = 3.14; diff --git a/Examples/chicken/constants/runme.scm b/Examples/chicken/constants/runme.scm deleted file mode 100644 index 1b10b2605..000000000 --- a/Examples/chicken/constants/runme.scm +++ /dev/null @@ -1,16 +0,0 @@ -;; feel free to uncomment and comment sections - -(load-library 'example "./constants.so") - -(display "starting test ... you will see 'finished' if successful.\n") -(or (= (ICONST) 42) (exit 1)) -(or (< (abs (- (FCONST) 2.1828)) 0.00001) (exit 1)) -(or (char=? (CCONST) #\x) (exit 1)) -(or (char=? (CCONST2) #\newline) (exit 1)) -(or (string=? (SCONST) "Hello World") (exit 1)) -(or (string=? (SCONST2) "\"Hello World\"") (exit 1)) -(or (< (abs (- (EXPR) (+ (ICONST) (* 3 (FCONST))))) 0.00001) (exit 1)) -(or (= (iconstX) 37) (exit 1)) -(or (< (abs (- (fconstX) 3.14)) 0.00001) (exit 1)) -(display "finished test.\n") -(exit 0) diff --git a/Examples/chicken/egg/Makefile b/Examples/chicken/egg/Makefile deleted file mode 100644 index 0137dc0a7..000000000 --- a/Examples/chicken/egg/Makefile +++ /dev/null @@ -1,41 +0,0 @@ -TOP = ../.. -SWIGEXE = $(TOP)/../swig -SWIG_LIB_DIR = $(TOP)/../$(TOP_BUILDDIR_TO_TOP_SRCDIR)Lib - -check: build - cd eggs/install && csi ../../test.scm - -build: single multi - -# This creates an egg which contains only the single module. Any additional implementation files -# that implement the interface being wrapped should also be added to this egg -single: single_wrap.cxx - mkdir -p eggs - tar czf eggs/single.egg single.setup single.scm single_wrap.cxx - rm -f single.scm single_wrap.cxx - -# compile the single module with -nounit -single_wrap.cxx: single.i - $(SWIGEXE) -chicken -c++ -proxy -nounit single.i - -# Now build both mod1 and mod2 into a single egg -multi: mod1_wrap.cxx mod2_wrap.cxx - mkdir -p eggs - tar czf eggs/multi.egg multi.setup multi_init.scm mod1.scm mod1_wrap.cxx mod2.scm mod2_wrap.cxx - rm -f mod1.scm mod1_wrap.cxx mod2.scm mod2_wrap.cxx - -mod1_wrap.cxx: mod1.i - $(SWIGEXE) -chicken -c++ -proxy mod1.i - -mod2_wrap.cxx: mod2.i - $(SWIGEXE) -chicken -c++ -proxy mod2.i - -clean: - rm -rf eggs - -# this part is for testing... -setup: - cd eggs && \ - mkdir -p install && \ - chicken-setup -repository `pwd`/install single.egg && \ - chicken-setup -repository `pwd`/install multi.egg diff --git a/Examples/chicken/egg/README b/Examples/chicken/egg/README deleted file mode 100644 index b5df0e631..000000000 --- a/Examples/chicken/egg/README +++ /dev/null @@ -1,19 +0,0 @@ -These examples show how to build a chicken extension module in the form of an -egg. There are two eggs that get built, single.egg which contains a single -module which is built with -nounit and multi.egg, which contains two modules -mod1 and mod2. These are built normally, and multi_init.scm loads them both. -Read section "17.4.2 Building chicken extension libraries" in the manual -for a description of these two techniques. - -To build: - -$ make -$ make setup -$ make run - -$ make clean - -The eggs are built into an eggs subdirectory, because chicken-setup has -problems installing eggs when there are other files named similar in -the same directory. The make setup step runs chicken-setup to install -the eggs into the eggs/install directory. diff --git a/Examples/chicken/egg/mod1.i b/Examples/chicken/egg/mod1.i deleted file mode 100644 index 6a2940b89..000000000 --- a/Examples/chicken/egg/mod1.i +++ /dev/null @@ -1,8 +0,0 @@ -%module mod1 - -%inline %{ -class Bar { - public: - int b; -}; -%} diff --git a/Examples/chicken/egg/mod2.i b/Examples/chicken/egg/mod2.i deleted file mode 100644 index e9ae4a6a8..000000000 --- a/Examples/chicken/egg/mod2.i +++ /dev/null @@ -1,17 +0,0 @@ -%module mod2 - -%import "mod1.i" - -%{ -class Bar { - public: - int b; -}; -%} - -%inline %{ - class Bar2 : public Bar { - public: - int c; - }; -%} diff --git a/Examples/chicken/egg/multi.setup b/Examples/chicken/egg/multi.setup deleted file mode 100644 index 95aeb001c..000000000 --- a/Examples/chicken/egg/multi.setup +++ /dev/null @@ -1,2 +0,0 @@ -(run (csc -s -o multi.so multi_init.scm mod1.scm mod1_wrap.cxx mod2.scm mod2_wrap.cxx)) -(install-extension 'multi '("multi.so")) diff --git a/Examples/chicken/egg/multi_init.scm b/Examples/chicken/egg/multi_init.scm deleted file mode 100644 index 600491d5b..000000000 --- a/Examples/chicken/egg/multi_init.scm +++ /dev/null @@ -1,2 +0,0 @@ -(declare (uses mod1)) -(declare (uses mod2)) diff --git a/Examples/chicken/egg/single.i b/Examples/chicken/egg/single.i deleted file mode 100644 index 46266b4bf..000000000 --- a/Examples/chicken/egg/single.i +++ /dev/null @@ -1,8 +0,0 @@ -%module single - -%inline %{ -class Foo { - public: - int a; -}; -%} diff --git a/Examples/chicken/egg/single.setup b/Examples/chicken/egg/single.setup deleted file mode 100644 index 4b503ec21..000000000 --- a/Examples/chicken/egg/single.setup +++ /dev/null @@ -1,2 +0,0 @@ -(run (csc -s -o single.so single.scm single_wrap.cxx)) -(install-extension 'single '("single.so")) diff --git a/Examples/chicken/egg/test.scm b/Examples/chicken/egg/test.scm deleted file mode 100644 index 4ec94ed18..000000000 --- a/Examples/chicken/egg/test.scm +++ /dev/null @@ -1,18 +0,0 @@ -(require-extension single) -(require-extension multi) - -(define f (make <Foo>)) -(slot-set! f 'a 3) -(print (slot-ref f 'a)) - -(define b (make <Bar>)) -(slot-set! b 'b 2) -(print (slot-ref b 'b)) - -(define b2 (make <Bar2>)) -(slot-set! b2 'b 4) -(slot-set! b2 'c 6) -(print (slot-ref b2 'b)) -(print (slot-ref b2 'c)) - -(exit 0) diff --git a/Examples/chicken/multimap/Makefile b/Examples/chicken/multimap/Makefile deleted file mode 100644 index 551d1c74d..000000000 --- a/Examples/chicken/multimap/Makefile +++ /dev/null @@ -1,31 +0,0 @@ -TOP = ../.. -SWIGEXE = $(TOP)/../swig -SWIG_LIB_DIR = $(TOP)/../$(TOP_BUILDDIR_TO_TOP_SRCDIR)Lib -INTERFACE = example.i -SRCS = example.c -CXXSRCS = -TARGET = multimap -INCLUDE = -SWIGOPT = -VARIANT = - -# uncomment the following two lines to build a static exe -#CHICKEN_MAIN = runme.scm -#VARIANT = _static - -check: build - $(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' chicken_run - -build: $(TARGET) - -$(TARGET): $(INTERFACE) $(SRCS) - $(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' \ - SRCS='$(SRCS)' CXXSRCS='$(CXXSRCS)' CHICKEN_MAIN='$(CHICKEN_MAIN)' \ - SWIG_LIB_DIR='$(SWIG_LIB_DIR)' SWIGEXE='$(SWIGEXE)' \ - INCLUDE='$(INCLUDE)' SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' \ - INTERFACE='$(INTERFACE)' CHICKENOPTS='$(CHICKENOPTS)' chicken$(VARIANT) - -clean: - $(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' chicken_clean - rm -f example.scm - rm -f $(TARGET) diff --git a/Examples/chicken/multimap/example.c b/Examples/chicken/multimap/example.c deleted file mode 100644 index b8360fa8a..000000000 --- a/Examples/chicken/multimap/example.c +++ /dev/null @@ -1,53 +0,0 @@ -/* File : example.c */ -#include <stdio.h> -#include <stdlib.h> -#include <ctype.h> - -/* Compute the greatest common divisor of positive integers */ -int gcd(int x, int y) { - int g; - g = y; - while (x > 0) { - g = x; - x = y % x; - y = g; - } - return g; -} - -int gcdmain(int argc, char *argv[]) { - int x,y; - if (argc != 3) { - printf("usage: gcd x y\n"); - return -1; - } - x = atoi(argv[1]); - y = atoi(argv[2]); - printf("gcd(%d,%d) = %d\n", x,y,gcd(x,y)); - return 0; -} - -int count(char *bytes, int len, char c) { - int i; - int count = 0; - for (i = 0; i < len; i++) { - if (bytes[i] == c) count++; - } - return count; -} - -void capitalize(char *str, int len) { - int i; - for (i = 0; i < len; i++) { - str[i] = (char)toupper(str[i]); - } -} - -void circle(double x, double y) { - double a = x*x + y*y; - if (a > 1.0) { - printf("Bad points %g, %g\n", x,y); - } else { - printf("Good points %g, %g\n", x,y); - } -} diff --git a/Examples/chicken/multimap/example.i b/Examples/chicken/multimap/example.i deleted file mode 100644 index 02567f48f..000000000 --- a/Examples/chicken/multimap/example.i +++ /dev/null @@ -1,96 +0,0 @@ -/* File : example.i */ -%module example - -%{ -extern int gcd(int x, int y); -extern int gcdmain(int argc, char *argv[]); -extern int count(char *bytes, int len, char c); -extern void capitalize (char *str, int len); -extern void circle (double cx, double cy); -extern int squareCubed (int n, int *OUTPUT); -%} - -%include exception.i -%include typemaps.i - -extern int gcd(int x, int y); - -%typemap(in) (int argc, char *argv[]) { - int i; - if (!C_swig_is_vector ($input)) { - swig_barf (SWIG_BARF1_BAD_ARGUMENT_TYPE, "Argument $input is not a vector"); - } - $1 = C_header_size ($input); - $2 = (char **) malloc(($1+1)*sizeof(char *)); - for (i = 0; i < $1; i++) { - C_word o = C_block_item ($input, i); - if (!C_swig_is_string (o)) { - char err[50]; - free($2); - sprintf (err, "$input[%d] is not a string", i); - swig_barf (SWIG_BARF1_BAD_ARGUMENT_TYPE, err); - } - $2[i] = C_c_string (o); - } - $2[i] = 0; -} - -%typemap(freearg) (int argc, char *argv[]) { - free($2); -} -extern int gcdmain(int argc, char *argv[]); - -%typemap(in) (char *bytes, int len) { - if (!C_swig_is_string ($input)) { - swig_barf (SWIG_BARF1_BAD_ARGUMENT_TYPE, "Argument $input is not a string"); - } - $1 = C_c_string ($input); - $2 = C_header_size ($input); -} - -extern int count(char *bytes, int len, char c); - - -/* This example shows how to wrap a function that mutates a string */ - -%typemap(in) (char *str, int len) -%{ if (!C_swig_is_string ($input)) { - swig_barf (SWIG_BARF1_BAD_ARGUMENT_TYPE, "Argument $input is not a string"); - } - $2 = C_header_size ($input); - $1 = (char *) malloc ($2+1); - memmove ($1, C_c_string ($input), $2); -%} - -/* Return the mutated string as a new object. Notice the if MANY construct ... they must be at column 0. */ - -%typemap(argout) (char *str, int len) (C_word *scmstr) -%{ scmstr = C_alloc (C_SIZEOF_STRING ($2)); - SWIG_APPEND_VALUE(C_string (&scmstr, $2, $1)); - free ($1); -%} - -extern void capitalize (char *str, int len); - -/* A multi-valued constraint. Force two arguments to lie - inside the unit circle */ - -%typemap(check) (double cx, double cy) { - double a = $1*$1 + $2*$2; - if (a > 1.0) { - SWIG_exception (SWIG_ValueError, "cx and cy must be in unit circle"); - } -} - -extern void circle (double cx, double cy); - -/* Test out multiple return values */ - -extern int squareCubed (int n, int *OUTPUT); -%{ -/* Returns n^3 and set n2 to n^2 */ -int squareCubed (int n, int *n2) { - *n2 = n * n; - return (*n2) * n; -}; -%} diff --git a/Examples/chicken/multimap/runme.scm b/Examples/chicken/multimap/runme.scm deleted file mode 100644 index ebe644004..000000000 --- a/Examples/chicken/multimap/runme.scm +++ /dev/null @@ -1,58 +0,0 @@ -;; feel free to uncomment and comment sections - -(load-library 'example "multimap.so") - -(display "(gcd 90 12): ") -(display (gcd 90 12)) -(display "\n") - -(display "(circle 0.5 0.5): ") -(display (circle 0.5 0.5)) -(display "\n") - -(display "(circle 1.0 1.0): ") -(handle-exceptions exvar - (if (= (car exvar) 9) - (display "success: exception thrown") - (display "an incorrect exception was thrown")) - (begin - (circle 1.0 1.0) - (display "an exception was not thrown when it should have been"))) -(display "\n") - -(display "(circle 1 1): ") -(handle-exceptions exvar - (if (= (car exvar) 9) - (display "success: exception thrown") - (display "an incorrect exception was thrown")) - (begin - (circle 1 1) - (display "an exception was not thrown when it should have been"))) -(display "\n") - -(display "(capitalize \"will this be all capital letters?\"): ") -(display (capitalize "will this be all capital letters?")) -(display "\n") - -(display "(count \"jumpity little spider\" #\\t): ") -(display (count "jumpity little spider" #\t)) -(display "\n") - -(display "(gcdmain '#(\"hi\" \"there\")): ") -(display (gcdmain '#("hi" "there"))) -(display "\n") - -(display "(gcdmain '#(\"gcd\" \"9\" \"28\")): ") -(gcdmain '#("gcd" "9" "28")) -(display "\n") - -(display "(gcdmain '#(\"gcd\" \"12\" \"90\")): ") -(gcdmain '#("gcd" "12" "90")) -(display "\n") - -(display "squarecubed 3: ") -(call-with-values (lambda() (squareCubed 3)) - (lambda (a b) (printf "~A ~A" a b))) -(display "\n") - -(exit) diff --git a/Examples/chicken/overload/Makefile b/Examples/chicken/overload/Makefile deleted file mode 100644 index 019390192..000000000 --- a/Examples/chicken/overload/Makefile +++ /dev/null @@ -1,31 +0,0 @@ -TOP = ../.. -SWIGEXE = $(TOP)/../swig -SWIG_LIB_DIR = $(TOP)/../$(TOP_BUILDDIR_TO_TOP_SRCDIR)Lib -INTERFACE = example.i -SRCS = -CXXSRCS = example.cxx -TARGET = overload -INCLUDE = -SWIGOPT = -proxy -unhideprimitive -VARIANT = - -# uncomment the following lines to build a static exe -#CHICKEN_MAIN = runme.scm -#VARIANT = _static - -check: build - $(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' chicken_run - -build: $(TARGET) - -$(TARGET): $(INTERFACE) $(SRCS) - $(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' \ - SRCS='$(SRCS)' CXXSRCS='$(CXXSRCS)' CHICKEN_MAIN='$(CHICKEN_MAIN)' \ - SWIG_LIB_DIR='$(SWIG_LIB_DIR)' SWIGEXE='$(SWIGEXE)' \ - INCLUDE='$(INCLUDE)' SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' \ - INTERFACE='$(INTERFACE)' CHICKENOPTS='$(CHICKENOPTS)' chicken$(VARIANT)_cpp - -clean: - $(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' chicken_clean - rm -f example.scm - rm -f $(TARGET) diff --git a/Examples/chicken/overload/README b/Examples/chicken/overload/README deleted file mode 100644 index 9487c3f3e..000000000 --- a/Examples/chicken/overload/README +++ /dev/null @@ -1,2 +0,0 @@ -Overloading example from Chapter 5.14 of SWIG Core Documentation for -version 1.3. diff --git a/Examples/chicken/overload/example.cxx b/Examples/chicken/overload/example.cxx deleted file mode 100644 index 65e743941..000000000 --- a/Examples/chicken/overload/example.cxx +++ /dev/null @@ -1,33 +0,0 @@ -/* File : example.c */ - -#include "example.h" -#include <stdio.h> - -void foo(int x) { - printf("x is %d\n", x); -} - -void foo(char *x) { - printf("x is '%s'\n", x); -} - -Foo::Foo () { - myvar = 55; - printf ("Foo constructor called\n"); -} - -Foo::Foo (const Foo &) { - myvar = 66; - printf ("Foo copy constructor called\n"); -} - -void Foo::bar (int x) { - printf ("Foo::bar(x) method ... \n"); - printf("x is %d\n", x); -} - -void Foo::bar (char *s, int y) { - printf ("Foo::bar(s,y) method ... \n"); - printf ("s is '%s'\n", s); - printf ("y is %d\n", y); -} diff --git a/Examples/chicken/overload/example.h b/Examples/chicken/overload/example.h deleted file mode 100644 index 1c135d509..000000000 --- a/Examples/chicken/overload/example.h +++ /dev/null @@ -1,14 +0,0 @@ -/* File : example.h */ - -extern void foo (int x); -extern void foo (char *x); - -class Foo { - private: - int myvar; - public: - Foo(); - Foo(const Foo &); // Copy constructor - void bar(int x); - void bar(char *s, int y); -}; diff --git a/Examples/chicken/overload/example.i b/Examples/chicken/overload/example.i deleted file mode 100644 index 23a29986e..000000000 --- a/Examples/chicken/overload/example.i +++ /dev/null @@ -1,16 +0,0 @@ -/* File : example.i */ -%module example - -%{ -#include "example.h" -%} - -/* Let "Foo" objects be converted back and forth from TinyCLOS into - low-level CHICKEN SWIG procedures */ - -%typemap(clos_in) Foo * = SIMPLE_CLOS_OBJECT *; -%typemap(clos_out) Foo * = SIMPLE_CLOS_OBJECT *; - -/* Let's just grab the original header file here */ -%include "example.h" - diff --git a/Examples/chicken/overload/runme.scm b/Examples/chicken/overload/runme.scm deleted file mode 100644 index 168490f76..000000000 --- a/Examples/chicken/overload/runme.scm +++ /dev/null @@ -1,45 +0,0 @@ -;; This file demonstrates the overloading capabilities of SWIG - -(load-library 'example "overload.so") - -;; Low level -;; --------- - -(display " -Trying low level code ... - (foo 1) - (foo \"some string\") - (define A-FOO (new-Foo)) - (define ANOTHER-FOO (new-Foo A-FOO)) ;; copy constructor - (Foo-bar A-FOO 2) - (Foo-bar ANOTHER-FOO \"another string\" 3) -") - -(primitive:foo 1) -(primitive:foo "some string") -(define A-FOO (slot-ref (primitive:new-Foo) 'swig-this)) -(define ANOTHER-FOO (slot-ref (primitive:new-Foo A-FOO) 'swig-this)) ;; copy constructor -(primitive:Foo-bar A-FOO 2) -(primitive:Foo-bar ANOTHER-FOO "another string" 3) - -;; TinyCLOS -;; -------- - -(display " -Trying TinyCLOS code ... - (+foo+ 1) - (+foo+ \"some string\") - (define A-FOO (make <Foo>)) - (define ANOTHER-FOO (make <Foo> A-FOO)) ;; copy constructor - (-bar- A-FOO 2) - (-bar- ANOTHER-FOO \"another string\" 3) -") - -(foo 1) -(foo "some string") -(define A-FOO (make <Foo>)) -(define ANOTHER-FOO (make <Foo> A-FOO)) ;; copy constructor -(bar A-FOO 2) -(bar ANOTHER-FOO "another string" 3) - -(exit) diff --git a/Examples/chicken/simple/Makefile b/Examples/chicken/simple/Makefile deleted file mode 100644 index f5dd1a966..000000000 --- a/Examples/chicken/simple/Makefile +++ /dev/null @@ -1,31 +0,0 @@ -TOP = ../.. -SWIGEXE = $(TOP)/../swig -SWIG_LIB_DIR = $(TOP)/../$(TOP_BUILDDIR_TO_TOP_SRCDIR)Lib -INTERFACE = example.i -SRCS = example.c -CXXSRCS = -TARGET = simple -INCLUDE = -SWIGOPT = -VARIANT = - -# uncomment the following two lines to build a static exe -#CHICKEN_MAIN = runme.scm -#VARIANT = _static - -check: build - $(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' chicken_run - -build: $(TARGET) - -$(TARGET): $(INTERFACE) $(SRCS) - $(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' \ - SRCS='$(SRCS)' CXXSRCS='$(CXXSRCS)' CHICKEN_MAIN='$(CHICKEN_MAIN)' \ - SWIG_LIB_DIR='$(SWIG_LIB_DIR)' SWIGEXE='$(SWIGEXE)' \ - INCLUDE='$(INCLUDE)' SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' \ - INTERFACE='$(INTERFACE)' CHICKENOPTS='$(CHICKENOPTS)' chicken$(VARIANT) - -clean: - $(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' chicken_clean - rm -f example.scm example-generic.scm example-clos.scm - rm -f $(TARGET) diff --git a/Examples/chicken/simple/README b/Examples/chicken/simple/README deleted file mode 100644 index 07e8da069..000000000 --- a/Examples/chicken/simple/README +++ /dev/null @@ -1 +0,0 @@ -Simple example from users manual. diff --git a/Examples/chicken/simple/example.c b/Examples/chicken/simple/example.c deleted file mode 100644 index f2b074781..000000000 --- a/Examples/chicken/simple/example.c +++ /dev/null @@ -1,24 +0,0 @@ -/* Simple example from documentation */ -/* File : example.c */ - -#include <time.h> - -double My_variable = 3.0; - -/* Compute factorial of n */ -int fact(int n) { - if (n <= 1) return 1; - else return n*fact(n-1); -} - -/* Compute n mod m */ -int my_mod(int n, int m) { - return (n % m); -} - - -char *get_time() { - long ltime; - time(<ime); - return ctime(<ime); -} diff --git a/Examples/chicken/simple/example.i b/Examples/chicken/simple/example.i deleted file mode 100644 index 5b3e95580..000000000 --- a/Examples/chicken/simple/example.i +++ /dev/null @@ -1,16 +0,0 @@ -/* File : example.i */ -%module example -%{ -/* Put headers and other declarations here */ -%} - -%include typemaps.i - -%rename(mod) my_mod; - -%inline %{ -extern double My_variable; -extern int fact(int); -extern int my_mod(int n, int m); -extern char *get_time(); -%} diff --git a/Examples/chicken/simple/runme.scm b/Examples/chicken/simple/runme.scm deleted file mode 100644 index 05aa87081..000000000 --- a/Examples/chicken/simple/runme.scm +++ /dev/null @@ -1,28 +0,0 @@ -;; feel free to uncomment and comment sections -(load-library 'example "simple.so") - -(display "(My-variable): ") -(display (My-variable)) -(display "\n") - -(display "(My-variable 3.141259): ") -(display (My-variable 3.141259)) -(display "\n") - -(display "(My-variable): ") -(display (My-variable)) -(display "\n") - -(display "(fact 5): ") -(display (fact 5)) -(display "\n") - -(display "(mod 75 7): ") -(display (mod 75 7)) -(display "\n") - -(display "(get-time): ") -(display (get-time)) -(display "\n") - -(exit) |