At 21:39 03/09/2007 -0400, Bob Rogers wrote:
   I have finally run out of excuses to delay publishing Kea Common
Lisp, the compiler for Parrot I've been hacking on for years now.
Attached please find a draft of the release announcement and the
README.text file it mentions; these should be enough to download it and
try it out.  For those who are curious enough to do so, I would be
grateful for any reports of success or failure (especially failure!)
before I annouce Kea-CL to the Lisp community.

   Thanks in advance -- and many thanks to the Parrot community in
general for making dynamic language implementation (almost) easy!

                                        -- Bob Rogers
                                           http://rgrjr.dyndns.org/

I've added kea-cl as a SVN external definition in the Parrot tree.
At now, I don't know if it was a good idea.

When the following patch will apply on Kea-CL repository,
I could integrate kea-cl in the configuring and building process.
(but there're still many issues with non-Unix platforms)

As I run on Win32, I use SBCL instead of CMUCL.
And I've the following error :
        sbcl.exe --noinform --load compiler\build-cross-compiler.lisp

        This is experimental prerelease support for the Windows platform: use
        at your own risk.  "Your Kitten of Death awaits!"
Compiling C:\fperrad\Parrot\trunk\languages\kea-cl\compiler\top-level.lisp...

        debugger invoked on a SIMPLE-ERROR:
          Error during processing of --eval option (LOAD
                                                  
#P"compiler\\build-cross-compiler.lisp"):

          The name "PARROT" does not designate any package.

        Type HELP for debugger help, or (SB-EXT:QUIT) to exit from SBCL.

        restarts (invokable by number or by possibly-abbreviated name):
          0: [CONTINUE] Ignore and continue with next --eval option.
          1: [ABORT   ] Skip rest of --eval options.
          2:            Skip to toplevel READ/EVAL/PRINT loop.
          3: [QUIT    ] Quit SBCL (calling #'QUIT, killing the process).

        ((LAMBDA (SB-IMPL::E)) #<SB-KERNEL:SIMPLE-PACKAGE-ERROR {A7611B1}>)
        0]

Regards.

François.
Index: config/makefiles/root.in
===================================================================
--- config/makefiles/root.in    (revision 0)
+++ config/makefiles/root.in    (revision 0)
@@ -0,0 +1,174 @@
+# $Id: root.in $
+
+### Environment.
+
+## some utilities (portable).
+
+CP         = @cp@
+MKPATH     = @mkpath@
+PERL       = @perl@
+RM_F       = @rm_f@
+RM_RF      = @rm_rf@
+
+## Parrot config.
+
+# This is convenient for using with a testing version of Parrot (e.g. if you've
+# checked it out and built it in /usr/src/parrot, but haven't installed it).
+PARROT_HOME = ../..
+PARROT_BIN_DIR = $(PARROT_HOME)
+# These would use the installed 0.3.1 development version of Parrot.
+# [except that this no longer works; build_tools/pmc2c.pl doesn't get 
installed,
+# and still needs the build environment even if installed.  -- rgr, 2-Sep-05.]
+# PARROT_HOME = /usr/local/parrot-0.3.1-devel
+# PARROT_BIN_DIR = $(PARROT_HOME)/bin
+
+# The parrot binary.
+PARROT = $(PARROT_BIN_DIR)/[EMAIL PROTECTED]@
+# The dynpmc.pl tool.  [NB:  This is not installed, so must come from
+# the Parrot build tree.  -- rgr, 5-Jun-05.]
+PARROT_BUILD_DYNPMC = $(PERL) $(PARROT_HOME)/tools/build/dynpmc.pl
+
+## Lisp config.
+
+# This is only needed if you do "make imc-clean" or "make realclean".  The
+# binary extensions shown below are only correct for x86 systems; on other
+# architectures, the Lisp compiler will build a different file
+# (e.g. top-level.sparcf), and the compiler will run interpreted until
+# you tweak this setting.
+
+#CONDITIONED_LINE(win32):# CMUCL is not available on Win32
+#INVERSE_CONDITIONED_LINE(win32):# CMUCL (the default).
+#INVERSE_CONDITIONED_LINE(win32):BUILD_LISP = lisp -batch -noinit
+#INVERSE_CONDITIONED_LINE(win32):BUILD_LISP_BIN_EXT = x86f
+#INVERSE_CONDITIONED_LINE(win32):BUILD_CROSS_COMPILER = $(BUILD_LISP) -load
+#INVERSE_CONDITIONED_LINE(win32):CROSS_COMPILE = $(BUILD_LISP) -load 
compiler/cross-compiler -eval
+
+# SBCL.
+#CONDITIONED_LINE(win32):BUILD_LISP = [EMAIL PROTECTED]@ --noinform
+#CONDITIONED_LINE(win32):BUILD_LISP_BIN_EXT = sb86f
+#CONDITIONED_LINE(win32):BUILD_CROSS_COMPILER = $(BUILD_LISP) --load
+#CONDITIONED_LINE(win32):CROSS_COMPILE = $(BUILD_LISP) --load 
compiler/cross-compiler --eval
+#INVERSE_CONDITIONED_LINE(win32):# BUILD_LISP = sbcl --noinform
+#INVERSE_CONDITIONED_LINE(win32):# BUILD_LISP_BIN_EXT = sb86f
+#INVERSE_CONDITIONED_LINE(win32):# BUILD_CROSS_COMPILER = $(BUILD_LISP) --load
+#INVERSE_CONDITIONED_LINE(win32):# CROSS_COMPILE = $(BUILD_LISP) --load 
compiler/cross-compiler --eval
+
+## End of configuration macros; no user-serviceable parts below this point.
+
+KEA_VERSION = 0.4.15
+
+### Target file lists.
+
+CROSS_COMPILER_FILES  = compiler/package-decls.lisp \
+               compiler/compiler-structures.lisp compiler/defstruct.lisp \
+               compiler/emit.lisp compiler/walker.lisp \
+               compiler/forms.lisp compiler/top-level.lisp
+COMPILED_LISP_FILES   = structures.lisp fdefinition.lisp stream.lisp pred.lisp 
\
+               symbol.lisp hash-new.lisp list.lisp arith.lisp irrat.lisp \
+               package.lisp numbers.lisp char.lisp print.lisp string.lisp \
+               array.lisp seq.lisp reader.lisp sharpm.lisp \
+               backq.lisp simple-format.lisp \
+               info.lisp defmacro.lisp macros.lisp eval.lisp \
+               extensions.lisp lispinit.lisp fd-stream.lisp filesys.lisp
+HAND_WRITTEN_PIR   = hash-internals.pir kea.pir
+HAND_WRITTEN_PBC   = $(HAND_WRITTEN_PIR:.pir=.pbc)
+COMPILED_IMC_FILES = $(COMPILED_LISP_FILES:.lisp=.imc)
+COMPILED_LISP_PBC  = $(COMPILED_LISP_FILES:.lisp=.pbc)
+
+all:   $(HAND_WRITTEN_PBC) $(COMPILED_LISP_PBC) dynclasses
+
+# first compile the compiler . . .
+CROSS_COMPILER = compiler/top-level.$(BUILD_LISP_BIN_EXT)
+$(CROSS_COMPILER):     $(CROSS_COMPILER_FILES)
+       $(BUILD_CROSS_COMPILER) compiler/build-cross-compiler.lisp
+       # in case this wasn't the file that changed.
+       touch $(CROSS_COMPILER)
+
+# then translate *.lisp to *.imc . . .
+$(COMPILED_IMC_FILES):  %.imc:  %.lisp $(CROSS_COMPILER)
+       $(CROSS_COMPILE) '(progn (parrot::parrot-compile-file "$<") (quit))'
+
+# then compile *.imc and *.pir to *.pbc.
+$(HAND_WRITTEN_PBC):   %.pbc:  %.pir
+       $(PARROT) -o $@ $^
+$(COMPILED_LISP_PBC):  %.pbc:  %.imc
+       $(PARROT) -o $@ $^
+
+test-all:      test-compiler test
+test:          all
+       find t -name '*.t' | fgrep -v /compiler/ \
+           | PARROT="$(PARROT)" xargs perl -Mlib=. \
+               -e 'use Test::Harness; runtests(@ARGV);'
+# This uses the compiler, and requires having Lisp installed.
+test-compiler: all
+       find t/compiler -name '*.t' \
+           | PARROT="$(PARROT)" BUILD_LISP="$(BUILD_LISP)" xargs perl -Mlib=. \
+               -e 'use Test::Harness; runtests(@ARGV);'
+
+### compiling dynamic PMCs.
+
+dynclasses:    dynclasses/[EMAIL PROTECTED]@
+
+dynclasses/character.c:                dynclasses/character.pmc
+       $(PARROT_BUILD_DYNPMC) generate dynclasses/character
+dynclasses/[EMAIL PROTECTED]@:         dynclasses/character.c
+       $(PARROT_BUILD_DYNPMC) compile dynclasses/character
+dynclasses/[EMAIL PROTECTED]@: dynclasses/[EMAIL PROTECTED]@
+       $(PARROT_BUILD_DYNPMC) linklibs dynclasses/character
+
+### Create a release tarball.
+
+# One weakness of the "tarball" target is that it assumes that the repository
+# version of the makefile will work, i.e. that no configuration is required.
+
+tarball_directory = kea-cl-$(KEA_VERSION)
+tarball_name = $(tarball_directory).tgz
+built_from_rev = \
+       'print "This tarball was built from Subversion revision $$1.\n" \
+           if /Revision: (\d+)/;'
+tarball:
+       $(RM_RF) $(tarball_directory)
+       $(MKPATH) $(tarball_directory)
+       svn co https://rgrjr.dyndns.org/svn/kea-cl/trunk $(tarball_directory)
+       # We must capture the revision before blowing away the .svn dirs.
+       cd $(tarball_directory); \
+           svn info | perl -ne $(built_from_rev) > REVISION.text
+       cd $(tarball_directory) \
+           && (find . -name .svn | xargs rm -fr) \
+           && make test clean
+       $(RM_F) $(tarball_name)
+       tar czf $(tarball_name) $(tarball_directory)
+       $(RM_RF) $(tarball_directory)
+
+# Put the current tarball on the Web site.
+publish-tarball:
+       test -e $(tarball_name)
+       cp -fp $(tarball_name) /srv/www/htdocs/lisp/kea-cl
+
+### Miscellaneous.
+
+tags:
+       etags *.lisp --regex '/\.sub \([^ ]*\)/\1/' *.pir
+
+# Note that "make clean" must remove everything built by Parrot.
+clean:         pmc-clean
+       $(RM_F) *.dasm
+       $(RM_F) *.pbc
+       -find t | perl -ne 'print if /_\d+\.lisp$$/;' | xargs rm -f
+pmc-clean:
+       $(RM_F) dynclasses/pmc_character.h dynclasses/character.c 
dynclasses/character.dump
+       $(RM_F) dynclasses/[EMAIL PROTECTED]@ dynclasses/[EMAIL PROTECTED]@
+imc-clean:     clean
+       $(RM_F) *.imc
+realclean:     imc-clean
+       $(RM_F) compiler/*.$(BUILD_LISP_BIN_EXT))
+
+# For debugging.
+arith.dasm:    arith.pbc
+       $(PARROT_BIN_DIR)/disassemble $^ > $@
+
+wc:
+       wc $(COMPILED_LISP_FILES)
+       wc $(CROSS_COMPILER_FILES)
+       wc dynclasses/*.pmc $(HAND_WRITTEN_PIR)
+

Property changes on: dynclasses
___________________________________________________________________
Name: svn:ignore
   - *.so
*.dump
*.c
*.h

   + *.so
*.dump
*.c
*.h
*.dll
*.o


Reply via email to