Re: New language: Parrot Common Lisp

2005-04-22 Thread Lars Balker Rasmussen
On Fri, Apr 22, 2005 at 07:59:57AM +0200, Uwe Voelker wrote:
 I'd like to announce the creation of the Parrot Common Lisp project, 
 
 Let's port emacs to it :-)

Erik Naggum, is that you?
-- 
Lars Balker RasmussenConsult::Perl


Re: [PATCH] Re: Getting the grammar engine in (or a small task for the interested)

2004-11-20 Thread Lars Balker Rasmussen
Andy Dougherty [EMAIL PROTECTED] writes:
 --- parrot-orig/compilers/p6ge/p6ge_gen.c Fri Nov 19 08:53:40 2004
 +++ parrot-andy/compilers/p6ge/p6ge_gen.c Fri Nov 19 14:43:43 2004
  /* strcon(...) converts string values into PIR string constants */
  static char*
 -strcon(const char* s, int len)
 +strcon(const unsigned char* s, int len)
  {

Haven't looked at the code yet, but I'll just observe that Ansi/ISO C
reserves the str[a-z].* namespace for its own use, which will cause
noise with some compilers.  Please use str_con or equivalent instead.
-- 
Lars Balker Rasmussen Consult::Perl
  http://consult-perl.dk



Re: Oops, here's the full parrotunit

2004-03-23 Thread Lars Balker Rasmussen
Piers Cawley [EMAIL PROTECTED] writes:
 This time fer sure

Since you're using a version of Gnus that supports it, you will want
this in your .gnus:

(setq mml-insert-mime-headers-always t)

Gnus and ezmlm-idx don't play nice together without it (it's all
ezmlm-idx's fault though, but good luck figuring out how and why).
-- 
Lars Balker Rasmussen http://consult-perl.dk
Consult::Perl


Re: [PATCH] The Return of the Priority DOD

2004-01-10 Thread Lars Balker Rasmussen
Jeff Clites [EMAIL PROTECTED] writes:
 It gets set in include/parrot/pobj.h, and is basically set to true if
 your platform has some flavor of memalign(), which allows you to
 allocate chunks of memory with arbitrary power-of-2 alignment. So all
 the platforms being tested on the tinders probably have this. (Of
 course, you can manually set ARENA_DOD_FLAGS to false in the source,
 for testing.)

Actually, at least FreeBSD doesn't have either of the memalign()'s
parrot looks for, which is what Nicholas (and I) ran into.

(If OpenBSD doesn't have one either, there's some clean-up to be done
in parrot/config/init/hints/openbsd.pl :-) )
-- 
Lars Balker RasmussenConsult::Perl



gdbm_compat (Was: [PATCH] Re: Crash when joining multiple threads)

2004-01-06 Thread Lars Balker Rasmussen
Matt Fowles [EMAIL PROTECTED] writes:
 $ cat test.ldo
 /usr/bin/ld: cannot find -lgdbm_compat
 collect2: ld returned 1 exit status


 Hope someone know more about this gdbm_compat thing then I do...

 I am running a relatively stock Debian testing box.

Changing line 27 of config/inter/progs.pl to 

  grep { $^O=~/VMS|MSWin/ || !/^-l(c|gdbm(_compat)?|dbm|ndbm|db)$/ }

should help you along.

I don't have a Debian box, but a friends revision 5.0 version 8
subversion 2 (Debian unstable) reveals:

% perl -le 'use Config; print $Config{libs}'
-lgdbm -lgdbm_compat -ldb -ldl -lm -lpthread -lc -lcrypt

I have no idea why Debians perl is linked with gdbm_compat as well as
gdbm.

I suppose this is a patch :-)
-- 
Lars Balker Rasmussen  Consult::Perl



Re: [PATCH?] Error in t/src/list.t on FreeBSD

2004-01-05 Thread Lars Balker Rasmussen
Leopold Toetsch [EMAIL PROTECTED] writes:
 All these (non-trivial) source tests, that create some resources should
 use the scheme of t/src/basic_3.

I've rewritten list.t and hash.t to use this scheme, generalizing the
layout a bit in the process.  I'm not sure about the reasoning for one
of the interpreter setups in the old hash.t (marked with XXX), and
whether it's needed now - seems to work fine without, but that may not
be the point.

I'll do the rest of them later, but I really should work on other
stuff now :-)

Cheers,
-- 
Lars Balker Rasmussen  Consult::Perl

Index: t/src/exit.t
===
RCS file: /cvs/public/parrot/t/src/exit.t,v
retrieving revision 1.5
diff -u -a -r1.5 exit.t
--- t/src/exit.t	13 Dec 2003 15:01:19 -	1.5
+++ t/src/exit.t	5 Jan 2004 18:16:30 -
@@ -10,6 +10,7 @@
 printf(pre-exit\n);
 Parrot_exit(0);
 printf(post-exit\n);
+return 0;
 }
 CODE
 pre-exit
Index: t/src/hash.t
===
RCS file: /cvs/public/parrot/t/src/hash.t,v
retrieving revision 1.10
diff -u -a -r1.10 hash.t
--- t/src/hash.t	13 Dec 2003 15:01:19 -	1.10
+++ t/src/hash.t	5 Jan 2004 18:16:30 -
@@ -3,63 +3,79 @@
 
 use Parrot::Test tests = 10;
 
-c_output_is('CODE', 'OUTPUT', new_hash);
+my $main = 'CODE';
+#include parrot/parrot.h
+#include parrot/embed.h
 
-#include stdio.h
-#include parrot/parrot.h
-#include parrot/embed.h
+static opcode_t *the_test(Parrot_Interp, opcode_t *, opcode_t *);
 
-int main(int argc, char* argv[]) {
-Interp* interpreter;
+int exit_value = 0;
+
+int main(int argc, char* argv[])
+{
+Parrot_Interp interpreter = Parrot_new(NULL);
+if (!interpreter) {
+return 1;
+}
+Parrot_init(interpreter);
+
+Parrot_run_native(interpreter, the_test);
+
+Parrot_exit(exit_value);
+return exit_value;
+}
+
+CODE
+
+c_output_is($main . 'CODE', 'OUTPUT', new_hash);
+
+static opcode_t*
+the_test(struct Parrot_Interp *interpreter,
+	opcode_t *cur_op, opcode_t *start)
+{
 Hash *hash;
 STRING *key;
 HashEntry value;
 
-interpreter = Parrot_new(NULL);
-
-if ( interpreter == NULL ) return 1;
-
-Parrot_init(interpreter);
+UNUSED(cur_op);
+UNUSED(start);
 
 new_hash(interpreter, hash);
 
 if ( hash == NULL ) {
-	printf(hash creation failed\n);
-	return 1;
+	PIO_eprintf(interpreter, hash creation failed\n);
+	exit_value = 1;
+	return NULL;
 }
 
-printf(ok\n);
+PIO_eprintf(interpreter, ok\n);
 
-return 0;
+return NULL;
 }
 
 CODE
 ok
 OUTPUT
 
-c_output_is('CODE', 'OUTPUT', hash_put);
-
-#include stdio.h
-#include parrot/parrot.h
-#include parrot/embed.h
+c_output_is($main . 'CODE', 'OUTPUT', hash_put);
 
-int main(int argc, char* argv[]) {
-Interp* interpreter;
+static opcode_t*
+the_test(struct Parrot_Interp *interpreter,
+	opcode_t *cur_op, opcode_t *start)
+{
 Hash *hash;
 STRING *key;
 HashEntry value;
 
-interpreter = Parrot_new(NULL);
-
-if ( interpreter == NULL ) return 1;
-
-Parrot_init(interpreter);
+UNUSED(cur_op);
+UNUSED(start);
 
 new_hash(interpreter, hash);
 
 if ( hash == NULL ) {
-	printf(hash creation failed\n);
-	return 1;
+	PIO_eprintf(interpreter, hash creation failed\n);
+	exit_value = 1;
+	return NULL;
 }
 
 key = string_from_cstring(interpreter, fortytwo, 0);
@@ -67,39 +83,35 @@
 value.val.int_val = 42;
 hash_put(interpreter, hash, key, value);
 
-printf(ok\n);
+PIO_eprintf(interpreter, ok\n);
 
-return 0;
+return NULL;
 }
 
 CODE
 ok
 OUTPUT
 
-c_output_is('CODE', 'OUTPUT', hash_get);
+c_output_is($main . 'CODE', 'OUTPUT', hash_get);
 
-#include stdio.h
-#include parrot/parrot.h
-#include parrot/embed.h
-
-int main(int argc, char* argv[]) {
-Interp* interpreter;
+static opcode_t*
+the_test(struct Parrot_Interp *interpreter,
+	opcode_t *cur_op, opcode_t *start)
+{
 Hash *hash;
 STRING *key;
 HashEntry _value;
 HashEntry *value = _value;
 
-interpreter = Parrot_new(NULL);
-
-if ( interpreter == NULL ) return 1;
-
-Parrot_init(interpreter);
+UNUSED(cur_op);
+UNUSED(start);
 
 new_hash(interpreter, hash);
 
 if ( hash == NULL ) {
-	printf(hash creation failed\n);
-	return 1;
+	PIO_eprintf(interpreter, hash creation failed\n);
+	exit_value = 1;
+	return NULL;
 }
 
 key = string_from_cstring(interpreter, fortytwo, 0);
@@ -108,39 +120,35 @@
 hash_put(interpreter, hash, key, value);
 value = hash_get(interpreter, hash, key);
 
-printf(%i\n, (int)value-val.int_val);
+PIO_eprintf(interpreter, %i\n, (int)value-val.int_val);
 
-return 0;
+return NULL;
 }
 
 CODE
 42
 OUTPUT
 
-c_output_is('CODE', 'OUTPUT', hash_get with NULL key);
-
-#include stdio.h
-#include parrot/parrot.h
-#include parrot/embed.h
+c_output_is($main . 'CODE', 'OUTPUT

[PATCH?] Error in t/src/list.t on FreeBSD

2004-01-03 Thread Lars Balker Rasmussen
I was seeing an error in the second test in t/src/list.t on FreeBSD:

set_integer_keyed() not implemented in class 'PerlInt'

I tracked it down to two consecutive calls to pmc_new() returning the
same pointer, which is generally not what you want.  Copying the
following line from imcc/main.c to just before the first pmc_new() in
the second test in t/src/list.t fixed the problem.

interpreter-DOD_block_level++;
 
But I'm unsure if this is the right way to go about it, or rather, if
the line above belongs in Parrot_init() or elsewhere.

Cheers,
-- 
Lars Balker Rasmussen  Consult::Perl



Re: [perl #24333] [PATCH] pthreads configure on FreeBSD

2003-10-28 Thread Lars Balker Rasmussen
Juergen Boemmels [EMAIL PROTECTED] writes:
 Lars Balker Rasmussen (via RT) [EMAIL PROTECTED] writes:
 The pthreads library seems to be missing on the FreeBSD 4.8 and 5.0
 machines I have access to.  I don't know what, if any, FreeBSD'en
 should happen to have that library...

 There are two ways to link in the pthreads-stuff on FreeBSD - I have
 taken the method from the ports systems makefile to decide between them.

 I have another patch from Nick Kostirya [EMAIL PROTECTED] which
 accidently dropped off-list. He tries to solve the same issue (and
 uses a similar approach). But he changed ccflags. Can someone of the
 FreeBSD guys enlighten me which of these two patches is the better
 one? I can apply only one.

I'm sure we can agree on something.

 +if ($osreldate = 500016) {
 + # use KSE (libpthread)
 + # See http://www.freebsd.org/kse/
 + if ( $libs !~ /-lpthreads/ ) {
 + $libs .= ' -lpthreads';
 + }

My 5.0 reports version 500043, but doesn't have libpthreads, so the
above won't work for me.

And the KSE-page mentions -lpthread? 

 +} else {
 + # use libc_r 
 + $libs =~ s/-lpthreads//;
 + 
 + my $ccflags = Configure::Data-get('ccflags');
 + if ( $ccflags !~ /-pthread/ ) {
 +$ccflags .= ' -pthread';
 + }
 + Configure::Data-set(
 + ccflags = $ccflags,
 + )

I suppose it's technically more correct to set -pthread in ccflags.
-- 
Lars Balker Rasmussen  Consult::Perl



Re: floor op

2003-09-03 Thread Lars Balker Rasmussen
Burnett, David [EMAIL PROTECTED] writes:
 I asked how to 'floor' in parrot on IRC last night,  and this raised the
 the idea of having a 'floor' op. I was then asked to email a reminder here
 so here it is.

I've implemented an op for floor on native numbers.  Feel free to give
it a whirl.

(I'm not sure if floor(-0.0) is meant to return -0.0 or not, but it does.)

 So I now I have a working my perlin noise (with turbulence) implementation
 written in pure pasm :-)

Cool!  So, how does it perform? ;)
-- 
Lars Balker Rasmussen  Consult::Perl

Index: math.ops
===
RCS file: /cvs/public/parrot/math.ops,v
retrieving revision 1.8
diff -u -a -r1.8 math.ops
--- math.ops	31 Jul 2003 19:39:11 -	1.8
+++ math.ops	3 Sep 2003 17:22:51 -
@@ -390,6 +390,35 @@
 
 
 
+=item Bfloor(inout NUM)
+
+Set $1 to the largest integral value less than or equal to $1.
+
+=item Bfloor(out INT, in NUM)
+
+=item Bfloor(out NUM, in NUM)
+
+Set $1 to the largest integral value less than or equal to $2.
+
+=cut
+
+inline op floor(inout NUM) {
+  $1 = floor( $1 );
+  goto NEXT();
+}
+
+inline op floor(out INT, in NUM) {
+  $1 = (INTVAL)floor($2);
+  goto NEXT();
+}
+
+inline op floor(out NUM, in NUM) {
+  $1 = floor($2);
+  goto NEXT();
+}
+
+
+
 =item Binc(inout INT)
 
 =item Binc(inout NUM)
Index: t/op/arithmetics.t
===
RCS file: /cvs/public/parrot/t/op/arithmetics.t,v
retrieving revision 1.6
diff -u -a -r1.6 arithmetics.t
--- t/op/arithmetics.t	8 Aug 2003 03:20:23 -	1.6
+++ t/op/arithmetics.t	3 Sep 2003 17:22:52 -
@@ -1,6 +1,6 @@
 #! perl -w
 
-use Parrot::Test tests = 40;
+use Parrot::Test tests = 41;
 use Test::More;
 
 my $fp_equality_macro = 'ENDOFMACRO';
@@ -303,7 +303,80 @@
 123.456789
 123.456789
 OUTPUT
- 
+
+output_is('CODE', OUTPUT, floor of a native number);
+	set N0, 0
+	floor N0
+	print N0
+	print \n
+	set N0, -0.0
+	floor N0
+	print N0
+	print \n
+	set N0, 123.45678901
+	floor N0
+	print N0
+	print \n
+	set N0, -123.45678901
+	floor N0
+	print N0
+	print \n
+	set N0, 0
+	set N1, 1
+	floor N1, N0
+	print N1
+	print \n
+	set N0, 0.0
+	set N1, 1
+	floor N1, N0
+	print N1
+	print \n
+	set N0, 123.45678901
+	set N1, 1
+	floor N1, N0
+	print N1
+	print \n
+	set N0, -123.45678901
+	set N1, 1
+	floor N1, N0
+	print N1
+	print \n
+	set N0, 0
+	set I1, 1
+	floor I1, N0
+	print I1
+	print \n
+	set N0, 0.0
+	set I1, 1
+	floor I1, N0
+	print I1
+	print \n
+	set N0, 123.45678901
+	set I1, 1
+	floor I1, N0
+	print I1
+	print \n
+	set N0, -123.45678901
+	set I1, 1
+	floor I1, N0
+	print I1
+	print \n
+	end
+CODE
+0.00
+-0.00
+123.00
+-124.00
+0.00
+0.00
+123.00
+-124.00
+0
+0
+123
+-124
+OUTPUT
+
 #
 # FLOATVAL and INTVAL tests
 #


Re: Warnocks Dilemma (was Maybe [PATCH] move some stuff out of io.h to io_privat.h)

2003-08-28 Thread Lars Balker Rasmussen
Juergen Boemmels [EMAIL PROTECTED] writes:
 I have the strange
 feeling that its because nobody read my mail, because sometimes the
 p6i mailinglist does not like mail with attachments. 

That's ezmlm-idx which doesn't like Gnus' minimalistic approach to
Content-type in text-attachments.  I've patched my Gnus to be slightly
more verbose, which has fixed it for me (as seen in this message).

Fixing ezmlm-idx is a bit more demanding...

--- mml.el~	Tue Apr 29 02:52:48 2003
+++ mml.el	Sun Aug  3 01:12:00 2003
@@ -54,6 +54,10 @@
   :type '(repeat (symbol :tag Parameter))
   :group 'message)
 
+(defvar mml-insert-mime-headers-always nil
+  If non-nil, always put at least Content-Type: text/plain at the top 
+of MIME parts. It's necessary to work against a bug in ezmlm.)
+
 (defvar mml-tweak-type-alist nil
   A list of (TYPE . FUNCTION) for tweaking MML parts.
 TYPE is a string containing a regexp to match the MIME type.  FUNCTION
@@ -608,7 +612,8 @@
 (when (or charset
 	  parameters
 	  flowed
-	  (not (equal type mml-generate-default-type)))
+	  (not (equal type mml-generate-default-type))
+	  mml-insert-mime-headers-always)
   (when (consp charset)
 	(error
 	 Can't encode a part with several charsets.))
-- 
Lars Balker Rasmussen  Consult::Perl


Re: [PATCH] Add IMCC tests to make test (Revised)

2003-08-17 Thread Lars Balker Rasmussen
Leopold Toetsch [EMAIL PROTECTED] writes:
 Andy Bussey [EMAIL PROTECTED] wrote:
 Here's a revised patch to add the IMCC tests
 to 'make test' and 'make fulltest' - this time
 patched against root.in.

 Thanks, applied.

t/syn/file.t relies on . being in path (in the 3 system(imcc...)
calls), so make test fails for me (and for some of the tinderboxen,
it seems).
-- 
Lars Balker Rasmussen  Consult::Perl



Re: [perl #23029] [PATCH] -Wpadded annoying

2003-08-10 Thread Lars Balker Rasmussen
Lars Balker Rasmussen (via RT) [EMAIL PROTECTED] writes:
 # New Ticket Created by  Lars Balker Rasmussen 
 # Please include the string:  [perl #23029]
 # in the subject line of all future correspondence about this issue. 
 # URL: http://rt.perl.org/rt2/Ticket/Display.html?id=23029 


 -Wpadded seems to be more trouble than it's worth at this stage, so I
 suggest getting rid of it.  It clashes with a FreeBSD header file, and
 the amount of warnings on Solaris just explodes, hiding more
 interesting stuff.

Resubmitted...

 -- attachment  1 --
 url: http://rt.perl.org/rt2/attach/61205/45206/2d805d/padded.patch

 Index: config/auto/gcc.pl
 ===
 RCS file: /cvs/public/parrot/config/auto/gcc.pl,v
 retrieving revision 1.6
 diff -u -a -r1.6 gcc.pl
 --- config/auto/gcc.pl15 Jul 2003 18:08:34 -  1.6
 +++ config/auto/gcc.pl17 Jul 2003 20:37:13 -
 @@ -74,7 +74,7 @@
   2.7 = ,
   2.8 = -Wsign-compare,
   2.95 = ,
 - 3.0 = -Wformat-nonliteral -Wformat-security -Wpacked -Wpadded 
 -Wdisabled-optimization,
 + 3.0 = -Wformat-nonliteral -Wformat-security -Wpacked 
 -Wdisabled-optimization,
  # -Wsequence-point is part of -Wall
  # -Wfloat-equal may not be what we want
  # We shouldn't be using __packed__, but I doubt -Wpacked will harm us

-- 
Lars Balker Rasmussen  Consult::Perl



Re: [perl #23025] [PATCH] env.t doesn't test the env ops on solaris (and others)

2003-08-08 Thread Lars Balker Rasmussen
Lars Balker Rasmussen (via RT) [EMAIL PROTECTED] writes:
 # New Ticket Created by  Lars Balker Rasmussen 
 # Please include the string:  [perl #23025]
 # in the subject line of all future correspondence about this issue. 
 # URL: http://rt.perl.org/rt2/Ticket/Display.html?id=23025 


 There's no reason to test for the presence of setenv/unsetenv in libc
 - these functions are emulated if not present.

 However, now the 4th test fails on Solaris (and most likely other OS's
 witout setenv/unsetenv).  This is because the test relies on a key
 disappearing from %ENV when it's been unsetenv'ed - this doesn't
 happen when using putenv(key=) as the current unsetenv emulation.

 I'm not sure what's the best portable way to handle this is.

We'll postpone deciding on this one until later - I've attached a
patch to env.t that tests the env-implementation on all platforms, and
doesn't fail on Solaris.

? env.diff
Index: t/pmc/env.t
===
RCS file: /cvs/public/parrot/t/pmc/env.t,v
retrieving revision 1.4
diff -u -a -u -r1.4 env.t
--- t/pmc/env.t	23 Jul 2003 18:18:56 -	1.4
+++ t/pmc/env.t	8 Aug 2003 15:42:06 -
@@ -1,10 +1,9 @@
 #! perl -w
 
-use Parrot::Test tests = 4;
+use Parrot::Test tests = 5;
 use Test::More;
 use Parrot::Config;
-SKIP: {
-skip(no setenv, 3) unless $PConfig{setenv};
+
 $ENV{PARROT_TMP} = riding a ponie;
 output_like('CODE', OUT, getenv);
 new P0, .Env
@@ -40,10 +39,30 @@
 CODE
 ok
 OUT
-}
+
+output_is('CODE', OUT, gone/delete);
+new P0, .Env
+set P0[PARROT_TMP], hello polly
+exists I0, P0[PARROT_TMP]
+if I0, ok1
+print not 
+ok1:
+print ok 1\n
+delete P0[PARROT_TMP]
+set S0, P0[PARROT_TMP]
+unless S0, ok2
+print not 
+ok2:
+print ok 2\n
+end
+CODE
+ok 1
+ok 2
+OUT
 
 SKIP: {
-skip(no unsetenv, 1) unless $PConfig{unsetenv};
+# won't work on our unsetenv implementation
+skip(no native unsetenv, 1) unless $PConfig{unsetenv};
 output_is('CODE', OUT, exists/delete);
 new P0, .Env
 set P0[PARROT_TMP], hello polly
-- 
Lars Balker Rasmussen  Consult::Perl


Re: [perl #23135] Build fails under Win32

2003-07-29 Thread Lars Balker Rasmussen
Vladimir Lipskiy [EMAIL PROTECTED] writes:
 if (-e jit/$cpuarch/core.jit and not $osname == 'MSWin32'){ 

ITYM:

 if (-e jit/$cpuarch/core.jit and $osname ne 'MSWin32') {
-- 
Lars Balker Rasmussen  Consult::Perl



Re: [CVS ci] make: print filenames only

2003-07-28 Thread Lars Balker Rasmussen
Josh Wilmes [EMAIL PROTECTED] writes:
 I don't like the current state of things- it seems to be printing out the 
 full compilation commands occasionally, but mostly not.

That's because not all makefiles use cc_flags.pl

 I think that at this stage of development it's best to print out the full 
 commands being executed.

I agree. 

Ideally, the best way to avoid warnings is to use -Werror ;-)
-- 
Lars Balker Rasmussen  Consult::Perl



Re: [perl #23115] powerpc linux support

2003-07-25 Thread Lars Balker Rasmussen
Arcady Goldmints (via RT) [EMAIL PROTECTED] writes:
 Contrary to popular belief, linux does run on things other than x86,
 and people with powerpc machines do use OSs other than Darwin. It
 seems, however, that the parrot configure system does not detect my
 platform as JIT-capable, even though I have a strong suspicion that
 it would work anyway. However, I don't understand the configure
 system well enough to get it to let me use JIT.

I may know the configure system enough to help you - but first, what
does your myconfig file say?
-- 
Lars Balker Rasmussen  Consult::Perl



Re: [perl #23025] [PATCH] env.t doesn't test the env ops on solaris (and others)

2003-07-24 Thread Lars Balker Rasmussen
Benjamin Goldberg [EMAIL PROTECTED] writes:
 Lars Balker Rasmussen wrote:
 However, now the 4th test fails on Solaris (and most likely other OS's
 witout setenv/unsetenv).  This is because the test relies on a key
 disappearing from %ENV when it's been unsetenv'ed - this doesn't
 happen when using putenv(key=) as the current unsetenv emulation.
 
 I'm not sure what's the best portable way to handle this is.

 a) Have config test for the existance of extern char **environ, or
 possibly for extern char **_environ, and then emulate unsetenv by
 mangling the contents of that variable.  

That's what perl5.8.0 (util.c:Perl_my_setenv) seems to prefer.  But if
PERL_USE_SAFE_PUTENV is defined it falls back to putenv(foo=) for
clearing foo, which is what we do at the moment.  

So as far as I can tell, the perl5 semantics is that you can't rely on
delete $ENV{foo} removing the key foo from %ENV...

Dan?

 b) Use a hash to keep track of which keys we have deleted from %ENV. 
 When we want to know if a key exists in %ENV, first try to getenv() it,
 and if it's an empty string (), see if it's mentioned in the hash of
 things we deleted from %ENV: if so, *claim* that the key doesn't exist.

Eek, that's just plain nasty :-)
-- 
Lars Balker Rasmussen  Consult::Perl



[PATCH] core.ops split

2003-07-23 Thread Lars Balker Rasmussen
Index: config/gen/makefiles.pl
===
RCS file: /cvs/public/parrot/config/gen/makefiles.pl,v
retrieving revision 1.16
diff -u -a -r1.16 makefiles.pl
--- config/gen/makefiles.pl	21 Jul 2003 20:16:12 -	1.16
+++ config/gen/makefiles.pl	23 Jul 2003 11:00:38 -
@@ -13,8 +13,6 @@
   commentType = '#');
   genfile('config/gen/makefiles/classes.in',   'classes/Makefile',
   commentType = '#');
-  genfile('config/gen/makefiles/docs.in',  'docs/Makefile',
-  commentType = '#');
   genfile('config/gen/makefiles/languages.in', 'languages/Makefile',
   commentType = '#');
   genfile('config/gen/makefiles/jako.in',  'languages/jako/Makefile',
@@ -33,6 +31,34 @@
   commentType = '#');
   genfile('config/gen/makefiles/ook.in',   'languages/ook/Makefile',
   commentType = '#');
+
+  # set up docs/Makefile, partly based on the .ops in the root dir
+
+  opendir ROOT, . or die opendir .: $!;
+  my @ops = sort grep { -f $_ and /\.ops$/ } readdir ROOT;
+  closedir ROOT;
+
+  my $pod = join  , map { my $t = $_; $t =~ s/\.ops$/.pod/; ops/$t } @ops;
+
+  Configure::Data-set(pod = $pod);
+
+  genfile('config/gen/makefiles/docs.in',  'docs/Makefile',
+  commentType = '#');
+
+  Configure::Data-set(pod = undef);
+
+  open MAKEFILE,  docs/Makefile or die open  docs/Makefile: $!;
+  
+  foreach my $ops (@ops) {
+  my $pod = $ops;
+  $pod =~ s/\.ops$/.pod/;
+  print MAKEFILE EOM;
+ops/$pod: ../$ops
+	perldoc -u ../$ops  ops/$pod
+EOM
+  }
+
+  close MAKEFILE
 }
 
 1;
Index: config/gen/makefiles/docs.in
===
RCS file: /cvs/public/parrot/config/gen/makefiles/docs.in,v
retrieving revision 1.5
diff -u -a -r1.5 docs.in
--- config/gen/makefiles/docs.in	22 Jul 2003 21:04:14 -	1.5
+++ config/gen/makefiles/docs.in	23 Jul 2003 11:00:38 -
@@ -1,11 +1,9 @@
 PERL = ${perl}
 RM_F = ${rm_f}
 
-OPS  = bit.pod cmp.pod core.pod debug.pod dotgnu.pod io.pod math.pod \
-   object.pod obscure.pod pmc.pod rx.pod set.pod stack.pod string.pod \
-   sys.pod var.pod
+POD = ${pod}
 
-all: packfile-c.pod packfile-perl.pod
+all: packfile-c.pod packfile-perl.pod $(POD)
 
 packfile-c.pod: ../packfile.c
 	perldoc -u ../packfile.c  packfile-c.pod
@@ -14,5 +12,5 @@
 	perldoc -u ../lib/Parrot/PackFile.pm  packfile-perl.pod
 
 clean:
-	$(RM_F) packfile-c.pod packfile-perl.pod
+	$(RM_F) packfile-c.pod packfile-perl.pod $(POD)
 



Simon Glover [EMAIL PROTECTED] writes:
  OK, I've just created a new ops subdirectory in the docs directory, and
  changed the docs makefile so that each *.ops file creates a corresponding
  *.pod file in there. Everything works OK for me, but I'd appreciate it
  if people using non-Unix systems (or non-GNU make) could check that it
  works for them.

It's really hard to do portable makefile stuff that does name-mangling
as well as work across directories.  Your patch didn't work with BSD
make nor nmake on win32, so Dan rolled the pod generation back yesterday.

I've attached a patch to get the configure system to generate a VERY
basic makefile for the pod generation phase that works with both BSD
and GNU make, and I assume nmake.

Cheers,
-- 
Lars Balker Rasmussen  Consult::Perl


Re: objects.t failures

2003-07-23 Thread Lars Balker Rasmussen
Simon Glover [EMAIL PROTECTED] writes:
  OK, I've committed it.

I'll just confirm that FreeBSD/x86 now passes objects.t.
-- 
Lars Balker Rasmussen  Consult::Perl



Re: [perl #23025] [PATCH] env.t doesn't test the env ops on solaris (and others)

2003-07-23 Thread Lars Balker Rasmussen
Lars Balker Rasmussen (via RT) [EMAIL PROTECTED] writes:
 There's no reason to test for the presence of setenv/unsetenv in libc
 - these functions are emulated if not present.

I'll just reiterate: Configures test for the presence of setenv and
unsetenv should not cause env.t to to skip the env tests!  They are
entirely different layers of execution, and if the functions are not
present, they are emulated.  

If the emulation doesn't work, we want to know about it, viz:

 However, now the 4th test fails on Solaris (and most likely other OS's
 witout setenv/unsetenv).  This is because the test relies on a key
 disappearing from %ENV when it's been unsetenv'ed - this doesn't
 happen when using putenv(key=) as the current unsetenv emulation.

 I'm not sure what's the best portable way to handle this is.1

Any comments?
-- 
Lars Balker Rasmussen  Consult::Perl



Re: [perl #23027] [PATCH] Per-c-file flag handling in make

2003-07-22 Thread Lars Balker Rasmussen
? cflags.diff
? cflags.tar.gz
? coresplit.diff
? t.tar
Index: config/gen/cflags/imcc.in
===
RCS file: /cvs/public/parrot/config/gen/cflags/imcc.in,v
retrieving revision 1.2
diff -u -a -r1.2 imcc.in
--- config/gen/cflags/imcc.in	22 Jul 2003 02:16:07 -	1.2
+++ config/gen/cflags/imcc.in	22 Jul 2003 12:20:17 -
@@ -1,8 +1,11 @@
-# [ filename | {regex} ] -{removed options} +{added options} ...
+# [ filename | {regex} ] -{removed options} +{added options} s/// ...
 #
-# note, empty regex/options are just ignored
+# Avoid using non-configure controlled +{} directly in this file, as
+# it'll most likely break on other platforms.
 #
-{.*} -{-Wwrite-strings -Wcast-qual -Wno-unused}
+# Note, empty regex/options are just ignored.
+#
+{.*} -{-Wwrite-strings -Wcast-qual} s/-Wno-unused/-Wunused/
 
 instructions.c -{-Wformat-nonliteral} # noisy
 debug.c-{-Wformat-nonliteral} # noisy
Index: config/gen/cflags/root.in
===
RCS file: /cvs/public/parrot/config/gen/cflags/root.in,v
retrieving revision 1.1
diff -u -a -r1.1 root.in
--- config/gen/cflags/root.in	21 Jul 2003 20:16:17 -	1.1
+++ config/gen/cflags/root.in	22 Jul 2003 12:20:17 -
@@ -1,6 +1,9 @@
-# [ filename | {regex} ] -{removed option} +{added option} ...
+# [ filename | {regex} ] -{removed options} +{added options} s/// ...
 #
-# note, empty regexen/options are just ignored
+# Avoid using non-configure controlled +{} directly in this file, as
+# it'll most likely break on other platforms.
+#
+# Note, empty regex/options are just ignored.
 #
 spf_render.c -{-Wformat-nonliteral}   # noisy
 tsq.c -{${optimize}} 		  # never optimize tsq.c!
Index: tools/dev/cc_flags.pl
===
RCS file: /cvs/public/parrot/tools/dev/cc_flags.pl,v
retrieving revision 1.1
diff -u -a -r1.1 cc_flags.pl
--- tools/dev/cc_flags.pl	21 Jul 2003 20:16:26 -	1.1
+++ tools/dev/cc_flags.pl	22 Jul 2003 12:20:18 -
@@ -25,16 +25,26 @@
 	die syntax error in $cflags: line $., $_\n;
 }
 
-while (s/^([-+])\{(.*?)\}\s*//) {
-	next unless $2;
-	my ($sign, $options) = ($1, $2);
-	foreach my $option (split ' ', $options) {
-	push @options, [ $regex, $sign, $option ];
+for (;;) {
+	if (s/^([-+])\{(.*?)\}\s*//) {
+	next unless $2;
+	my ($sign, $options) = ($1, $2);
+	foreach my $option (split ' ', $options) {
+		push @options, [ $regex, $sign, $option ];
+	}
+	}
+	elsif (s{s(.)(.*?)\1(.*?)\1([imsx]*)\s*}{}) {
+	my $mod = ;
+	$mod = (?$4) if $4;
+
+	push @options, [ $regex, 's', $mod$2, $3 ];
+	}
+	elsif (/\S/) {
+	die syntax error in $cflags: line $., $_\n;
+	}
+	else {
+	last;
 	}
-}
-
-if (/\S/) {
-	die syntax error in $cflags: line $., $_\n;
 }
 }
 
@@ -45,8 +55,13 @@
 	if ($option-[1] eq '+') {
 	splice @ARGV, 1, 0, $option-[2];
 	}
-	else {
+	elsif ($option-[1] eq '-') {
 	@ARGV = grep { $_ ne $option-[2] } @ARGV;
+	}
+	else {
+	foreach my $arg (@ARGV) {
+		$arg =~ s/$option-[2]/$option-[3]/;
+	}
 	}
 }
 }


Re: Making Parrot On Win32

2003-07-22 Thread Lars Balker Rasmussen
Jonathan Worthington [EMAIL PROTECTED] writes:
 However, the next stage doesn't work out using either perl make.pl or nmake.

 === With nmake ===
 C:\Perl\Parrot\parrotnmake

 Microsoft (R) Program Maintenance Utility   Version 6.00.8168.0
 Copyright (C) Microsoft Corp 1988-1998. All rights reserved.

 cl -nologo -O1 -MD -Zi -DNDEBUG -DWIN32 -D_CONSOLE -DNO_STRICT -I./include -
 DHAS
 _JIT -DI386 -Fointerpreter.obj -c interpreter.c
 interpreter.c
 cl -nologo -O1 -MD -Zi -DNDEBUG -DWIN32 -D_CONSOLE -DNO_STRICT -I./include -
 DHAS
 _JIT -DI386 -Foparrot.obj -c parrot.c
 parrot.c
 parrot.c(0) : fatal error C1033: cannot open program database
 'c:\perl\parrot\pa
 rrot\vc60.pdb'

This looks like the same problem Brent had about the same time as you
- it should be fixed in the latest cvs.

(Perls exec seems to run async on win32?)

 And then I try perl make.pl:-

I doubt make.pl works at the moment.

Cheers,
-- 
Lars Balker Rasmussen  Consult::Perl



Re: [WIP PATCH] core.ops split-up

2003-07-21 Thread Lars Balker Rasmussen
Brent Dax [EMAIL PROTECTED] writes:
 Anyway, a corrected patch that fixes the trans.t errors is up at
 http://filespace.brentdax.com/brentdax/coresplit.diff.  

Uh, there's still no +inline op sin in that file?

 If it doesn't
 apply the first time, try splitting the patch into several files and
 applying them individually--apparently some copies of patch have trouble
 with such a big diff.

On closer (and less sleepy-eyed) examination, the problem is
Windows/Unix interoperability.  The following fix on the patch makes
it apply cleanly on my FreeBSD:

perl -pi -e 's/\r//; s,^--- NUL,--- /dev/null,' coresplit.diff
patch  coresplit.diff
-- 
Lars Balker Rasmussen  Consult::Perl



Re: Abbreviation

2003-07-21 Thread Lars Balker Rasmussen
On Mon, Jul 21, 2003 at 10:28:26AM +0300, Vladimir Lipskiy wrote:
 In /parrot/docs/jit.pod:
 
 For moving registers from processor to parrot and vv, the
 BParrot_jit_emit_mov* functions have to be implemented.
 
 what does vv stand for?

Vice versa, I presume.
-- 
Lars Balker RasmussenConsult::Perl


Re: Small perl task for the interested

2003-07-21 Thread Lars Balker Rasmussen
Josh Wilmes [EMAIL PROTECTED] wrote:
 .c$(O) :
  $(PERL) tools/dev/cc_flags.pl $(CC) $(CFLAGS) ${cc_o_out}$@ -c $

 I would go a bit further, and create a tools/build/compile, tools/build/
 link_executable, tools/build/link_library, etc.

 Take all the flags out of the makefile altogether.  Just a thought.

It's a good idea, though the correct approach would be to return to
only using a modified version of make.pl - but it's a lot more work
than merely extending the current system.  For now, I've focused only
on the requirements Dan had.

The suggestion by Benjamin Goldberg was already in the patch already
committed.  Modifying the link-step the way Benjamin suggests is
trivial, although I suggest we wait until the need arises.

Cheers,
-- 
Lars Balker Rasmussen  Consult::Perl



Re: [perl #23028] t/op/stacks fails on FreeBSD/i386

2003-07-18 Thread Lars Balker Rasmussen
On Fri, Jul 18, 2003 at 12:04:39PM -0400, Simon Glover wrote:
  OK, this should be fixed in CVS 

Yup.
-- 
Lars Balker RasmussenConsult::Perl


Re: [WIP PATCH] core.ops split-up

2003-07-18 Thread Lars Balker Rasmussen
Benjamin Goldberg [EMAIL PROTECTED] writes:
 (ChangeLog, Configure.pl, parrot.spec, and whatever else is really
 needed to build and distribute parrot (make.pl?)).

Nothing is currently using make.pl, and it's way out of date compared
to the configure system - delete it?
-- 
Lars Balker Rasmussen  Consult::Perl



config/inter/progs.pl weirdness

2003-07-16 Thread Lars Balker Rasmussen
Found this pecularity in config/inter/progs.pl.  

The lines should probably just be removed (as well as lex/bison in
@args and elsewhere), since $yacc/$lex are specifically handled above,
but I wasn't sure what the intended purpose was.

Anyway, giving --lex or --yacc arguments to Configure.pl will break
the build-process with these.

  $cc_warn=$args{lex} if defined $args{lex};
  $cc_warn=$args{yacc}if defined $args{yacc};

Cheers,
-- 
Lars Balker Rasmussen  Consult::Perl



Re: Small perl task for the interested

2003-07-14 Thread Lars Balker Rasmussen
[EMAIL PROTECTED] (Dan Sugalski) writes:
 We could really use the capability of specifying per-C-file flags in
 the make procedure, something that can be built into Configure. Right
 now we build without optimizations on, which is fine, but I'd like to
 turn them on in the future.

 They can't be turned on unconditionally, since tsq.c *can't* have any
 optimizations turned on for it. (That's the thread-safe queue module,
 something that is annoyingly execution-order-dependent because it has
 to operate safely as interrupt code potentially interrupting itself as
 non-interrupt code) And, if Perl 5 is any guide (and I think it is)
 there will be some platform/compiler combinations that won't be able
 to compile one or more source modules with the highest optimization
 level, but will be able to manage with a lower one.

 So... Configure.pl needs to be able to build a makefile that has
 per-C-file flags, and those flags need to be overridable per-file at
 configure time by the platform configuration module.

I've taken this very simple approach to the problem.  A perl-wrapper
for the CC lines in makefiles/root.in

.c$(O) :
$(PERL) tools/dev/cc_flags.pl $(CC) $(CFLAGS) ${cc_o_out}$@ -c $

that takes a rules-based approach to removing or adding options to the
command-line, based on the filename of the .c-file.  This gives some
overhead while building, but it keeps the complexity of the solution
down a lot.

Right now, the configure system has nothing to do with it, but it'd be
fairly simple to make it write a file like following example:

--
# File: CFLAGS
# [ filename | {regex} ] -{removed option} +{added option} ...
spf_render.c -{-Wformat-nonliteral}
{^core} +{-O3}
--

What're peoples opinion?

Script:
--
#!/usr/bin/perl -w

use strict;

if (open F, CFLAGS) {
my @options;

while (F) {
chomp;
s/#.*//;
next unless /\S/;

my $regex;
if (s/^\{(.+?)\}\s*//) {
$regex = qr/$1/;
}
elsif (s/^(\S+)\s*//) {
$regex = qr/^\Q$1\E$/;
}
else {
die syntax error in CFLAGS: line $., $_\n;
}

while (s/^([-+])\{(.+?)\}\s*//) {
push @options, [ $regex, $1, $2 ];
}

if (/\S/) {
die syntax error in CFLAGS: line $., $_\n;
}
}

my ($cfile) = grep /\.c$/, @ARGV;

foreach my $option (@options) {
if ($cfile =~ $option-[0]) {
if ($option-[1] eq '+') {
splice @ARGV, 1, 0, $option-[2];
}
else {
@ARGV = grep { $_ ne $option-[2] } @ARGV;
}
}
}
}

print @ARGV\n;
exec @ARGV;
__END__

Cheers,
-- 
Lars Balker Rasmussen  Consult::Perl



Re: [perl #22925] [PATCH] setenv/unsetenv functions

2003-07-13 Thread Lars Balker Rasmussen
Leopold Toetsch [EMAIL PROTECTED] writes:
 Lars Balker Rasmussen [EMAIL PROTECTED] wrote:
 Since parrot currently can't compile on Solaris due to the absense of
 setenv/unsetenv in the Solaris libc, I've added tests for the
 functions, as well as a putenv-based implementation.

 Shouldn't there be a test for putenv too, instead of using putenv in the
 absence of setenv/unsetenv?

  ... else looks good.

I suppose - but putenv() is defined by all relevant Unix standards.

On platforms where neither putenv nor setenv are available, another
implementation must be provided, just like win32 - but let's deal with
that when we get there.  At least more platforms are supported now :-)
-- 
Lars Balker Rasmussen  Consult::Perl



[PATCH] portability problems on FreeBSD

2003-07-11 Thread Lars Balker Rasmussen


exceptions.patch
Description: Binary data


malloc.patch
Description: Binary data


Makefile.patch
Description: Binary data


Re: [PATCH] portability problems on FreeBSD

2003-07-11 Thread Lars Balker Rasmussen
Index: exceptions.c
===
RCS file: /cvs/public/parrot/exceptions.c,v
retrieving revision 1.17
diff -u -a -r1.17 exceptions.c
--- exceptions.c	10 Jul 2003 16:56:46 -	1.17
+++ exceptions.c	11 Jul 2003 13:29:01 -
@@ -119,7 +119,7 @@
 } while (1);
 m = string_to_cstring(interpreter, message);
 if (m  *m) {
-fprintf(stderr, m);
+fputs(m, stderr);
 if (m[strlen(m-1)] != '\n')
 fprintf(stderr, %c, '\n');
 }
Index: config/auto/headers.pl
===
RCS file: /cvs/public/parrot/config/auto/headers.pl,v
retrieving revision 1.7
diff -u -a -r1.7 headers.pl
--- config/auto/headers.pl	26 Jun 2003 13:11:22 -	1.7
+++ config/auto/headers.pl	11 Jul 2003 13:47:39 -
@@ -28,7 +28,7 @@
 # some headers may not be probed-for by perl 5, or might not be
 # properly reflected in %Config (i_fcntl seems to be wrong on my machine,
 # for instance).
-my @extra_headers = qw(fcntl.h setjmp.h pthread.h signal.h);
+my @extra_headers = qw(malloc.h fcntl.h setjmp.h pthread.h signal.h);
 
 foreach my $header (@extra_headers) {
 my $flag = i_$header;
Index: config/auto/memalign.pl
===
RCS file: /cvs/public/parrot/config/auto/memalign.pl,v
retrieving revision 1.3
diff -u -a -r1.3 memalign.pl
--- config/auto/memalign.pl	11 Jun 2003 20:26:47 -	1.3
+++ config/auto/memalign.pl	11 Jul 2003 13:47:39 -
@@ -9,6 +9,13 @@
 sub runstep {
 my $test = 0;
 
+if (Configure::Data-get('i_malloc')) {
+	Configure::Data-set('malloc_header', 'malloc.h');
+}
+else {
+	Configure::Data-set('malloc_header', 'stdlib.h');
+}
+
 cc_gen('config/auto/memalign/test_c.in');
 eval { cc_build(); };
 unless ($@ || cc_run() !~ /ok/) {
@@ -24,6 +31,8 @@
 	$test2 = 1;
 }
 cc_clean();
+
+Configure::Data-set('malloc_header', undef);
 
 my $f = $test2 ? 'posix_memalign' :
 $test  ? 'memalign'   : '';
Index: config/auto/signal.pl
===
RCS file: /cvs/public/parrot/config/auto/signal.pl,v
retrieving revision 1.2
diff -u -a -r1.2 signal.pl
--- config/auto/signal.pl	11 Jul 2003 12:25:06 -	1.2
+++ config/auto/signal.pl	11 Jul 2003 13:47:39 -
@@ -18,6 +18,14 @@
 if (defined $miniparrot) {
 	return;
 }
+
+if (Configure::Data-get('i_malloc')) {
+	Configure::Data-set('malloc_header', 'malloc.h');
+}
+else {
+	Configure::Data-set('malloc_header', 'stdlib.h');
+}
+
 cc_gen('config/auto/signal/test_1.in');
 eval { cc_build(); };
 unless ($@ || cc_run() !~ /ok/) {
@@ -37,6 +45,8 @@
 	print  (sigaction);
 }
 cc_clean();
+
+Configure::Data-set('malloc_header', undef);
 
 # now generate signal constants
 open O, runtime/parrot/include/signal.pasm or die
Index: config/auto/gc/test_c.in
===
RCS file: /cvs/public/parrot/config/auto/gc/test_c.in,v
retrieving revision 1.1
diff -u -a -r1.1 test_c.in
--- config/auto/gc/test_c.in	5 Oct 2002 09:40:35 -	1.1
+++ config/auto/gc/test_c.in	11 Jul 2003 13:47:39 -
@@ -4,7 +4,7 @@
  * This file is automatically generated by Configure
  * from gc.in.
  */
-#include malloc.h
+#include ${malloc_header}
 #include stdio.h
 int main(int argc, char **argv) {
 void *p = malloc(128);
Index: config/auto/memalign/test_c.in
===
RCS file: /cvs/public/parrot/config/auto/memalign/test_c.in,v
retrieving revision 1.3
diff -u -a -r1.3 test_c.in
--- config/auto/memalign/test_c.in	19 Jun 2003 14:39:18 -	1.3
+++ config/auto/memalign/test_c.in	11 Jul 2003 13:47:39 -
@@ -4,7 +4,7 @@
  * This file is automatically generated by Configure
  * from test_c.in.
  */
-#include malloc.h
+#include ${malloc_header}
 #include stdio.h
 
 int main(int argc, char **argv) {
Index: config/auto/memalign/test_c2.in
===
RCS file: /cvs/public/parrot/config/auto/memalign/test_c2.in,v
retrieving revision 1.2
diff -u -a -r1.2 test_c2.in
--- config/auto/memalign/test_c2.in	19 Jun 2003 14:39:18 -	1.2
+++ config/auto/memalign/test_c2.in	11 Jul 2003 13:47:39 -
@@ -4,7 +4,7 @@
  * This file is automatically generated by Configure
  * from test_c.in.
  */
-#include malloc.h
+#include ${malloc_header}
 #include stdlib.h
 #include stdio.h
 
Index: config/auto/signal/test_1.in
===
RCS file: /cvs/public/parrot/config/auto/signal/test_1.in,v
retrieving revision 1.2
diff -u -a -r1.2 test_1.in
--- config/auto/signal/test_1.in	11 Jul 2003 12:25:10 -	1.2
+++ config/auto/signal/test_1.in	11 Jul 2003 13:47:39 -
@@ -4,7 +4,7 @@
  * This file is automatically 

Re: [PATCH] portability problems on FreeBSD

2003-07-11 Thread Lars Balker Rasmussen
Lars Balker Rasmussen [EMAIL PROTECTED] writes:
 Whoa, that didn't work too well.  Let's try again:

 gcc on FreeBSD (and I'd imagine others) complains over an fprintf
 in exceptions.c.

 malloc.h is deprecated on FreeBSD 5, and will make various
 configuration tests fail.  The following patch tests for the validity
 of malloc.h, and uses either malloc.h or stdlib.h in the tests.

 And finally, a couple of small patches to Makefile, so test_main gets
 removed when cleaning, and fixed a mention of test_main.o.

Not exactly my day...  I apologize.

Ask, why did the mail-list software remove the first MIME-boundary
from the mail?  The cc to myself started with a --=-=-=, but it was
gone from the mail-list message, leading to the text above being
invisible (at least in gnus/mutt).

Cheers,
-- 
Lars Balker Rasmussen  Consult::Perl



Re: [PATCH] portability problems on FreeBSD

2003-07-11 Thread Lars Balker Rasmussen
Lars Balker Rasmussen [EMAIL PROTECTED] writes:
 Whoa, that didn't work too well.  Let's try again:

 gcc on FreeBSD (and I'd imagine others) complains over an fprintf
 in exceptions.c.

 malloc.h is deprecated on FreeBSD 5, and will make various
 configuration tests fail.  The following patch tests for the validity
 of malloc.h, and uses either malloc.h or stdlib.h in the tests.

 And finally, a couple of small patches to Makefile, so test_main gets
 removed when cleaning, and fixed a mention of test_main.o.

Not exactly my day...  I apologize.

Ask, why did the mail-list software remove the first MIME-boundary
from the mail?  The cc to myself started with a --=-=-=, but it was
gone from the mail-list message, leading to the text above being
invisible (at least in gnus/mutt).

Cheers,
-- 
Lars Balker Rasmussen  Consult::Perl