Re: rakudo-current loop 2-3 orders of magnitude slower than perl 5? (Benchmarking Tool?)

2009-06-04 Thread Joshua Gatcomb
On Wed, Jun 3, 2009 at 9:01 PM, Daniel Carrera
daniel.carr...@theingots.org wrote:
 Hi Chris,

 In addition to Patrick's excellent reply, I'd like to mention that one way
 to help the project is to just write code in Perl 6. This is a good way to
 find bugs, including performance bugs.

I have just sent off an email to Patrick along this same lines - here
are some links you may be interested in:


http://perlmonks.org/?node_id=458728# Perl6 Contest: Test your Skills
http://perlmonks.org/?node_id=462987# Perl6 Contest #2: P6 That
Doesn't Look Like P5
http://perlmonks.org/?node_id=458728# Perl6 Contest: Test your Skills
http://svn.pugscode.org/pugs/examples/  # Examples of perl 6 when Pugs
was under heavy development

My offer is to port a lot of my old perl 5 code to perl 6

 One little project I'm doing is I'm porting the benchmarks from the Debian
 language shootout to Perl 6. I figure this is a good place to start because
 each benchmark is designed to test one specific aspect of the language. I've
 only done a couple of benchmarks. If you are interested, why don't you help
 me? Porting benchmarks is a good way to learn Perl 6.

I know these benchmarks have their value, but I am more interested in
real practical code that I have previously written to solve a problem.
 I know that the Rakudo code will be slower than the perl 5.  In fact,
I would expect it to be slower by a consistent factor unless there is
some aspect of that program with a major optimization flaw.  I am
interested in a tool that can benchmark both perl 5 and perl 6
natively.  I am obviously aware of Benchmark.pm for perl 5 and of

http://svn.pugscode.org/pugs/ext/Benchmark/lib/Benchmark.pm  for perl
6 (not sure when it was last updated)

I really don't want to have to set up two benchmarks for each program
and then capture the output and then merge the results.  I know I
could write some code to do that but if someone already has such a
tool I would just as soon use that.


 Cheers,
 Daniel.


Cheers,
Joshua Gatcomb
a.k.a. Limbic~Region


Re: rakudo-current loop 2-3 orders of magnitude slower than perl 5? (Benchmarking Tool?)

2009-06-04 Thread Joshua Gatcomb
On Thu, Jun 4, 2009 at 11:16 AM, Daniel Carrera
daniel.carr...@theingots.org wrote:

 The point of the benchmark is not oh look, it's slower than Perl 5. The
 benchmarks are good for testing a specific aspect of the language, so it is
 easier to isolate *where* the problem is. This is harder on a real
 application.

I think you are confusing profiling with benchmarking.  Profiling
helps you identify where a problem is.  Benchmarking helps you compare
two different versions of the same routine.  I intend to do use said
benchmark as a basic profiling tool as well.  If this program performs
far outside the expected norm then somewhere inside this program is
something that needs to be optimized.  Of course, doing that requires
additional work by people far smarter than myself but at least I will
be able to point them to something to look at.


 Benchmarks help you see where the biggest gains are to be found.

No, that is still profiling.

 Additionally, they help measure improvement. When Patrick fixed the bug with

Measuring (improvement or otherwise) is their primary function.


 And your expectation would be wrong. In the real world some things are
 faster than others. Remember the 80/20 rule. Benchmarks help you locate the
 20% of the code that needs the most attention.

No, that's still profiling.  On average the benchmark should even out
because we are not looking for bottlenecks but the overall performance
of the program.  If it doesn't perform on average then there is a
problem.  Only true profiling will find it but if I can show 30
programs where Rakudo consistently performs 3 to 5 times slower than
perl 5 and one program that is 30 times slower - which one do you
think @Patrick will be interested in?


 As of this moment I have four benchmarks written, and each benchmark gives
 wildly different factors.

These are very specialized benchmarks designed to highlight specific
language features.  The approach I am looking at looks at a wider
cross section of the language where you would expect things to even
out.


 If you write such a tool, I'd like to try it.

Perhaps.  Time and ambition will tell.


 Daniel.


Cheers,
Joshua Gatcomb
a.k.a. Limbic~Region


[perl #52150] Parrot fails to build on Cygwin (r26569) due to linking missing -lcrypto

2008-03-27 Thread Joshua Gatcomb
# New Ticket Created by  Joshua Gatcomb 
# Please include the string:  [perl #52150]
# in the subject line of all future correspondence about this issue. 
# URL: http://rt.perl.org/rt3/Ticket/Display.html?id=52150 


After learning that some folks were having troubles building parrot on
Cygwin, I decided to dust off my local copy and give it a go

step 1:  PATH=/usr/bin:home/Gat/parrot/blib/lib
step 2:  make realclean; svn up; perl Configure.PL; make

failure:

gcc -o digest_group.dll lib-digest_group.o md2.o md4.o md5.o ripemd160.o
sha.o sha1.o   -s -L/usr/local/lib   -shared -L/home
/Gat/parrot/blib/lib -lparrot
md2.o: In function `Parrot_MD2_nci_MD2_Init':
/home/Gat/parrot/src/dynpmc/./md2.pmc:101: undefined reference to
`_MD2_Init'
md2.o: In function `Parrot_MD2_nci_MD2_Update':
/home/Gat/parrot/src/dynpmc/./md2.pmc:115: undefined reference to
`_MD2_Update

bunch of lines removed


in #parrot chromatic suggested attempting to link by hand with the following
working:

Step 3: cd src/dynpmc
Step 4:  gcc -o digest_group.dll lib-digest_group.o md2.o md4.o md5.o
ripemd160.o sha.o sha1.o -lcrypto  -s -L/usr/local/lib   -shared
-L/home/Gat/parrot/blib/lib -lparrot

note:  the addition of -lcrypto

Step 5:  cd ../..
Step 6:  make

which finishes as expected

Cheers,
Joshua Gatcomb
a.k.a. Limbic~Region


Re: Perl 6 fundraising and related topics.

2008-02-21 Thread Joshua Gatcomb
On Wed, Feb 20, 2008 at 11:55 PM, Conrad Schneiker 
[EMAIL PROTECTED] wrote:

 I've repeatedly encountered remarks about how much Perl 6
 development is constrained by the fairly severe time and
 energy constraints of its overwhelmingly volunteer
 development team.


Here is something to consider.  Unless we can afford to fund an individual
full time with enough money for them to pay for their own health coverage
and other benefits, the amount of time they are volunteering is already as
much as they can afford.  In other words, they still have to work a regular
job and make time for their family (or whatever substitutes for the real
world) and giving them money isn't going to equate to them being able to
devote to more time.  That isn't to say that these volunteers don't deserve
to get compensated but it is unrealistic to expect that money will equate to
more time in many of the cases.

The statement above does not apply to everyone and those who do freelance
and consulting work could likely devote a great deal more time if they would
be compensated in some way for their time.

I myself, with a few others, made a failed attempt at funding Audrey to work
on Pugs full time and her rate was ridiculously low - $100 USD/day.




 So over the next few months, I'm planning to learn about
 fundraising, and see what I can accomplish on behalf of Perl
 6 development. To that end, I'm soliciting:
 (1) your suggestions for preparation,
 (2) your ideas for proposals, and
 (3) your reasons why the Perl 6 ecosystem (including Parrot
and CPAN6) is one of the world's greatest and and most
extremely leveraged causes (technically, economically,
and socially).


I am mostly ignoring the rest of what others have said in this thread
because I think it is detracting from your intention of getting money to
people to work more.  Here is one thing that has frustrated me about TPF.
They are a non-profit organization.  Yeah, kind of suprising that would be
the frustrating thing.  The issue is that they can't take money from Bob to
give to Sue to work on Bob's widget.  This is an extreme oversimplification
but in general, they have to abide by the rules that allow them to keep
their non-profit status.  Where am I going with this?

Regardless if we use TPF or not, I think what will get more people to
contribute is having some say as to where there money goes.  To that end, I
suggest having a list of projects currently being funded.  A donator can
choose which fund their money goes to or can choose a general fund if they
don't care.  I don't suggest these projects be generic and nebulous either
(though they could be for the same reason a general fund is).  In other
words, there might be a Rakudo fund - generic.  There might also be a fund
to fix RT # 31415 which is a Rakudo bug.

I am not suggesting this is the solution to all the problems.  It likely
will create more.  What I can tell you is the number one thing that has
prevented me from donating a lot more money is having little to no control
over where it went.  Actually, it has been years since I have contributed to
TPF.  Now, I just write a check to the individual(s) I want to help.  I
don't get the tax write off but I know where my money is going.

In closing, what we don't need is something to fight over.  Hopefully you
will find the sweet spot - I sure hope you do.

Cheers,
Joshua Gatcomb
a.k.a. Limbic~Region


Re: Perl 6 fundraising and related topics.

2008-02-21 Thread Joshua Gatcomb
On Thu, Feb 21, 2008 at 4:23 PM, chromatic [EMAIL PROTECTED] wrote:

 On Thursday 21 February 2008 06:25:42 Joshua Gatcomb wrote:


 I could take a month's sabbatical from my day job for $5000 without losing
 insurance coverage or other benefits.  That's slightly more than Audrey's
 $100/day, I know, but it's substantially less than my consulting rate and
 somewhat less than my salary too.  I could probably make 100 - 150
 high-quality commits to Parrot in that 30 day period.  Perhaps more.

 I'm probably not the only Parrot/Perl 6 hacker in this situation.


I was beginning to wonder if my post to the thread had gotten eaten.  Thanks
for replying.  I probably didn't do a good job of tying the two portions of
my reply together, but if I were to go to the donation page and I saw

Project:  Allow chromatic for 1 month to work exclusively on parrot
Deliverables (if applicable):  100 - 150 high quality commits
Required:  $5000
Current:  $0

I would be very inclined to make a donation.  In fact, if you can find 9
other people willing to do so - I will cut a check for $500 any time you are
ready.  That's besides the point.

I don't believe just getting more money is the solution.  I think we need
to do a number of things:

1.  Identify people, like you, who are in a position to trade time for money
and the projects they will work on
2.  Allow people to choose where their money will go (if that's what they
want to do)
3.  Do it in a way that causes the least amount of fighting


-- c


Cheers,
Joshua Gatcomb
a.k.a. Limbic~Region


Re: Perl 6 fundraising and related topics.

2008-02-21 Thread Joshua Gatcomb
On Thu, Feb 21, 2008 at 8:19 PM, Geoffrey Broadwell [EMAIL PROTECTED]
wrote:



 Someone earlier in this thread mentioned that this can't be done
 directly because of rules surrounding TPF's non-profit status.


That someone was me and that's not what I said.  I said it isn't as simple
as Bob saying I want to pay Sue to work on this widget and having TPF broker
the deal.  I won't pretend to understand all the intricacies.  I said it is
frustrating, as someone willing to donate money, that I can't just say give
it to Sue please.


 case).  But if that is really the way of things, can TPF go the Mozilla
 route to break the logjam?  Tax incentives are great, but having piles
 of money sitting around not getting to hackers is clearly not working
 for us.


There are grants that are being awarded.  Those grants are getting things
done (thanks for the progress on the PDDs Al).  I am in no way suggesting
that people not donate to TPF.  I have in the past and I might in the
future.  I also help them out in other ways, by writing code for small
projects that they need done.

I am only suggesting that, for the specific purposes of this thread, going
the TPF route may not be the most efficient way to accomplish that goal.

Cheers,
Joshua Gatcomb
a.k.a. Limbic~Region


Re: NEWS and PLATFORMS Updates Requested

2007-11-20 Thread Joshua Gatcomb
On Nov 18, 2007 12:25 PM, chromatic [EMAIL PROTECTED] wrote:
 The next release will be on Tuesday evening.  Committers, please review your
 checkins and update NEWS appropriately.  Everyone, please submit updates to
 PLATFORMS.

 Running make fulltest and reporting any failures would be very handy as well.

Per your request, the pasted output of mingw32-make fulltest with gcc
3.4.5 on Win32

rev 22919

/usr/bin/perl.exe t/harness --gc-debug --running-make-test  -b
t/compilers/imcc/*/*.t t/op/*.t t/pmc/*.t t/native_pbc/*.t t/d
ynpmc/*.t t/dynoplibs/*.t t/compilers/json/*.t t/compilers/pge/*.t
t/compilers/pge/p5regexp/*.t t/compilers/pge/p6rules/*.t t
/compilers/tge/*.t t/library/*.t t/examples/*.t
t/compilers/imcc/imcpasm/cfg.ok
t/compilers/imcc/imcpasm/opt0ok
t/compilers/imcc/imcpasm/opt1ok
1/78 skipped: constant concat N/Y
t/compilers/imcc/imcpasm/opt2ok
1/6 skipped: loop opt disabled for now
t/compilers/imcc/imcpasm/optcok
t/compilers/imcc/imcpasm/pcc.ok
t/compilers/imcc/imcpasm/sub.ok
t/compilers/imcc/reg/alloc...ok
t/compilers/imcc/reg/spill...ok
t/compilers/imcc/syn/bsr.ok
t/compilers/imcc/syn/clash...ok
t/compilers/imcc/syn/const...ok
t/compilers/imcc/syn/errors..ok
t/compilers/imcc/syn/evalok
7/7 skipped: changed eval semantics - see t/pmc/eval.t
t/compilers/imcc/syn/fileok
1/13 skipped: multiple loading not speced - failing
t/compilers/imcc/syn/keyed...ok
1/1 skipped: experimental
t/compilers/imcc/syn/labels..ok
t/compilers/imcc/syn/macro...ok
t/compilers/imcc/syn/namespace...ok
t/compilers/imcc/syn/objects.ok
t/compilers/imcc/syn/op..ok
t/compilers/imcc/syn/pasmok
t/compilers/imcc/syn/pcc.ok
t/compilers/imcc/syn/pod.ok
1/4 skipped: Closing out of pod from included files
t/compilers/imcc/syn/scope...ok
t/compilers/imcc/syn/symbols.ok
t/compilers/imcc/syn/tailok
t/op/00ff-dosok
t/op/00ff-unix...ok
t/op/01-parse_opsok 326/334 19 [main] parrot
2912 _cygtls::handle_exceptions: Error while dumping sta
te (probably corrupted stack)
t/op/01-parse_opsok
t/op/64bit...skipped
all skipped: 64bit INTVAL platforms only
t/op/arithmetics.ok
t/op/basic...ok
t/op/bitwise.ok
1/27 skipped: no BigInt lib found
t/op/calling.ok
t/op/cc_params...ok
t/op/cc_stateok
t/op/cmp-nonbranch...ok
t/op/compok
t/op/debuginfo...ok
t/op/exceptions..ok
t/op/gc..ok
t/op/globals.ok
t/op/hacks...ok
2/2 skipped: no universal SIGFPE handling
t/op/ifunlessok
t/op/infook
t/op/integer.ok
t/op/interp..ok
1/8 skipped: we really shouldn't run just a label - use a sub
t/op/jit.ok
t/op/jitnok
t/op/lexicalsok
t/op/literal.ok
t/op/load_bytecode...ok
t/op/number..ok
t/op/pushaction..ok
t/op/say.ok
t/op/spawnw..ok
t/op/sprintf.ok
117/308 skipped: various reasons
t/op/stacks..ok
3/24 skipped: no stack limit currently
t/op/string..ok
7/160 skipped: various reasons
t/op/string_cclass...ok
3/11 skipped: unicode support unavailable
t/op/string_cs...ok
16/50 skipped: no ICU lib
t/op/stringu.ok
3/25 skipped: no ICU lib
t/op/timeok
t/op/trans...ok 5/22
# Failed test (t/op/trans.t at line 421)
t/op/trans...NOK 14#  got: 'not 0.00ok 1
# '
# expected: 'ok 1
# '
t/op/trans...ok 15/22# Looks like you failed 1
test of 22.
t/op/trans...dubious
Test returned status 1 (wstat 256, 0x100)
DIED. FAILED test 14
Failed 1/22 tests, 95.45% okay
t/op/types...ok
t/pmc/addrregistry...ok
t/pmc/array..ok
t/pmc/bigint.skipped
all skipped: No BigInt Lib configured
t/pmc/bignum.skipped
all skipped: No BigNum support yet.
t/pmc/booleanok

Re: NEWS and PLATFORMS Updates Requested

2007-11-20 Thread Joshua Gatcomb
 Per your request, the pasted output of mingw32-make fulltest with gcc
 3.4.5 on Win32

 rev 22919

Ok, I am a dolt - that is the output for Win32 Cygwin

The output for Win32 MinGW is coming soon


 /usr/bin/perl.exe t/harness --gc-debug --running-make-test  -b
 t/compilers/imcc/*/*.t t/op/*.t t/pmc/*.t t/native_pbc/*.t t/d
 ynpmc/*.t t/dynoplibs/*.t t/compilers/json/*.t t/compilers/pge/*.t
 t/compilers/pge/p5regexp/*.t t/compilers/pge/p6rules/*.t t
 /compilers/tge/*.t t/library/*.t t/examples/*.t
 t/compilers/imcc/imcpasm/cfg.ok
 t/compilers/imcc/imcpasm/opt0ok
 t/compilers/imcc/imcpasm/opt1ok
 1/78 skipped: constant concat N/Y
 t/compilers/imcc/imcpasm/opt2ok
 1/6 skipped: loop opt disabled for now
 t/compilers/imcc/imcpasm/optcok
 t/compilers/imcc/imcpasm/pcc.ok
 t/compilers/imcc/imcpasm/sub.ok
 t/compilers/imcc/reg/alloc...ok
 t/compilers/imcc/reg/spill...ok
 t/compilers/imcc/syn/bsr.ok
 t/compilers/imcc/syn/clash...ok
 t/compilers/imcc/syn/const...ok
 t/compilers/imcc/syn/errors..ok
 t/compilers/imcc/syn/evalok
 7/7 skipped: changed eval semantics - see t/pmc/eval.t
 t/compilers/imcc/syn/fileok
 1/13 skipped: multiple loading not speced - failing
 t/compilers/imcc/syn/keyed...ok
 1/1 skipped: experimental
 t/compilers/imcc/syn/labels..ok
 t/compilers/imcc/syn/macro...ok
 t/compilers/imcc/syn/namespace...ok
 t/compilers/imcc/syn/objects.ok
 t/compilers/imcc/syn/op..ok
 t/compilers/imcc/syn/pasmok
 t/compilers/imcc/syn/pcc.ok
 t/compilers/imcc/syn/pod.ok
 1/4 skipped: Closing out of pod from included files
 t/compilers/imcc/syn/scope...ok
 t/compilers/imcc/syn/symbols.ok
 t/compilers/imcc/syn/tailok
 t/op/00ff-dosok
 t/op/00ff-unix...ok
 t/op/01-parse_opsok 326/334 19 [main] parrot
 2912 _cygtls::handle_exceptions: Error while dumping sta
 te (probably corrupted stack)
 t/op/01-parse_opsok
 t/op/64bit...skipped
 all skipped: 64bit INTVAL platforms only
 t/op/arithmetics.ok
 t/op/basic...ok
 t/op/bitwise.ok
 1/27 skipped: no BigInt lib found
 t/op/calling.ok
 t/op/cc_params...ok
 t/op/cc_stateok
 t/op/cmp-nonbranch...ok
 t/op/compok
 t/op/debuginfo...ok
 t/op/exceptions..ok
 t/op/gc..ok
 t/op/globals.ok
 t/op/hacks...ok
 2/2 skipped: no universal SIGFPE handling
 t/op/ifunlessok
 t/op/infook
 t/op/integer.ok
 t/op/interp..ok
 1/8 skipped: we really shouldn't run just a label - use a sub
 t/op/jit.ok
 t/op/jitnok
 t/op/lexicalsok
 t/op/literal.ok
 t/op/load_bytecode...ok
 t/op/number..ok
 t/op/pushaction..ok
 t/op/say.ok
 t/op/spawnw..ok
 t/op/sprintf.ok
 117/308 skipped: various reasons
 t/op/stacks..ok
 3/24 skipped: no stack limit currently
 t/op/string..ok
 7/160 skipped: various reasons
 t/op/string_cclass...ok
 3/11 skipped: unicode support unavailable
 t/op/string_cs...ok
 16/50 skipped: no ICU lib
 t/op/stringu.ok
 3/25 skipped: no ICU lib
 t/op/timeok
 t/op/trans...ok 5/22
 # Failed test (t/op/trans.t at line 421)
 t/op/trans...NOK 14#  got: 'not 0.00ok 1
 # '
 # expected: 'ok 1
 # '
 t/op/trans...ok 15/22# Looks like you failed 1
 test of 22.
 t/op/trans...dubious
 Test returned status 1 (wstat 256, 0x100)
 DIED. FAILED test 14
 Failed 1/22 tests, 95.45% okay
 t/op/types...ok
 t/pmc/addrregistry...ok
 t/pmc/array..ok
 t/pmc/bigint.skipped
 all skipped: No BigInt Lib configured
 t/pmc/bignum.skipped
 all skipped: No BigNum support yet.
 t/pmc/booleanok
 t/pmc/bound_nci..ok
 t/pmc/builtinok
 2/4 skipped: bound methods - n/y
 

Re: NEWS and PLATFORMS Updates Requested

2007-11-20 Thread Joshua Gatcomb
On Nov 18, 2007 12:25 PM, chromatic [EMAIL PROTECTED] wrote:
 The next release will be on Tuesday evening.  Committers, please review your
 checkins and update NEWS appropriately.  Everyone, please submit updates to
 PLATFORMS.

 Running make fulltest and reporting any failures would be very handy as well.

This is the actual Win32 MinGW output

Per your request, the pasted output of mingw32-make fulltest with gcc
3.4.5 on Win32

rev 22919

 C:\parrot\libparrot.dll  -lmsvcrt -lmoldname -lkernel32 -luser32
-lgdi32 -lwinspool -lcomdlg32 -ladvapi32 -lshell32 -lole32 -loleaut32
-lnetapi32 -luuid -lws2_32 -lm
pr -lwinmm -lversion -lgmp
C:\Perl\bin\perl.exe t\harness --gc-debug --running-make-test  -b
t\compilers\imcc\\*\\*.t t\op\\*.t t\pmc\\*.t t\native_pbc\\*.t
t\dynpmc\\*.t t\dynoplibs\\*.t t\compile
rs\json\\*.t t\compilers\pge\\*.t t\compilers\pge\p5regexp\\*.t
t\compilers\pge\p6rules\\*.t t\compilers\tge\\*.t t\library\\*.t
t\examples\\*.t
t\compilers\imcc\imcpasm\cfg.ok
t\compilers\imcc\imcpasm\opt0ok
t\compilers\imcc\imcpasm\opt1ok
1/78 skipped: various reasons
t\compilers\imcc\imcpasm\opt2ok
1/6 skipped: various reasons
t\compilers\imcc\imcpasm\optcok
t\compilers\imcc\imcpasm\pcc.ok
t\compilers\imcc\imcpasm\sub.ok
t\compilers\imcc\reg\alloc...ok
t\compilers\imcc\reg\spill...ok
t\compilers\imcc\syn\bsr.ok
t\compilers\imcc\syn\clash...ok
t\compilers\imcc\syn\const...ok
t\compilers\imcc\syn\errors..ok
t\compilers\imcc\syn\evalok
7/7 skipped: various reasons
t\compilers\imcc\syn\fileok
1/13 skipped: various reasons
t\compilers\imcc\syn\keyed...ok
1/1 skipped: various reasons
t\compilers\imcc\syn\labels..ok
t\compilers\imcc\syn\macro...ok
t\compilers\imcc\syn\namespace...ok
t\compilers\imcc\syn\objects.ok
t\compilers\imcc\syn\op..ok
t\compilers\imcc\syn\pasmok
t\compilers\imcc\syn\pcc.ok
t\compilers\imcc\syn\pod.ok
1/4 skipped: various reasons
t\compilers\imcc\syn\scope...ok
t\compilers\imcc\syn\symbols.ok
t\compilers\imcc\syn\tailok
t\op\00ff-dosok
t\op\00ff-unix...ok
t\op\01-parse_opsok
t\op\64bit...skipped
all skipped: 64bit INTVAL platforms only
t\op\arithmetics.ok 1/26
t\op\arithmetics.NOK 7/26# Failed test
(t\op\arithmetics.t at line 210)
#  got: '0.00
# 0.00
# -123.456789
# 123.456789
# 0.00
# 0.00
# -123.456789
# 123.456789
# '
# expected: '-0.00
# 0.00
# -123.456789
# 123.456789
# -0.00
# 0.00
# -123.456789
# 123.456789
# '
t\op\arithmetics.ok 15/26# Looks like you failed 1
test of 26.
t\op\arithmetics.dubious
Test returned status 1 (wstat 256, 0x100)
DIED. FAILED test 7
Failed 1/26 tests, 96.15% okay
t\op\basic...ok
t\op\bitwise.ok
t\op\calling.ok
t\op\cc_params...ok
t\op\cc_stateok
t\op\cmp-nonbranch...ok
t\op\compok
t\op\debuginfo...ok
t\op\exceptions..ok
t\op\gc..ok
t\op\globals.ok
t\op\hacks...ok
2/2 skipped: various reasons
t\op\ifunlessok
t\op\infook
t\op\integer.ok
t\op\interp..ok
1/8 skipped: various reasons
t\op\jit.ok
t\op\jitnok
t\op\lexicalsok
t\op\literal.ok
t\op\load_bytecode...ok
t\op\number..ok
t\op\pushaction..ok
t\op\say.ok
t\op\spawnw..ok
t\op\sprintf.FAILED test 157
Failed 1/308 tests, 99.68% okay (less 117 skipped tests: 190
okay, 61.69%)
t\op\stacks..ok
3/24 skipped: various reasons
t\op\string..ok
7/160 skipped: various reasons
t\op\string_cclass...ok
3/11 skipped: various reasons
t\op\string_cs...ok
16/50 skipped: various reasons
t\op\stringu.ok
3/25 skipped: various reasons
t\op\timeok
t\op\trans...ok
t\op\types...ok
t\pmc\addrregistry...ok
t\pmc\array..ok
t\pmc\bigint.ok
t\pmc\bignum.skipped
all skipped: 

[perl #44775] Parrot update broke languages/perl6

2007-08-19 Thread Joshua Gatcomb
# New Ticket Created by  Joshua Gatcomb 
# Please include the string:  [perl #44775]
# in the subject line of all future correspondence about this issue. 
# URL: http://rt.perl.org/rt3/Ticket/Display.html?id=44775 


As far as I can tell, r20659 is the last rev perl6 worked correctly on

r20660 does not appear to finish building correctly
r20661 perl6 make spectest blows up all over the place

pmichaud probably has more details as to the exact nature of the problem but
suggested I open the ticket in RT

Cheers,
Joshua Gatcomb
a.k.a. Limbic~Region


Re: r20653 fails on windows

2007-08-17 Thread Joshua Gatcomb
FYI all

r20662 builds fine on Win32 with MinGW and Cygwin


Cheers,
Joshua Gatcomb
a.k.a. Limbic~Region


[perl #43515] Parrot will not build on Win32/MinGW

2007-07-03 Thread Joshua Gatcomb
# New Ticket Created by  Joshua Gatcomb 
# Please include the string:  [perl #43515]
# in the subject line of all future correspondence about this issue. 
# URL: http://rt.perl.org/rt3/Ticket/Display.html?id=43515 


see http://nopaste.snit.ch:8001/10585 for details or paste below - the last
successful build was on the 29th.  FWIW, gcc is 3.4.5 - the latest offered
by MinGW

pdated to revision 19566.

C:\parrotperl Configure.PL
Parrot Version 0.4.13 Configure 2.0
Copyright (C) 2001-2007, The Perl Foundation.

Hello, I'm Configure. My job is to poke and prod your system to figure out
how to build Parrot. The process is completely automated, unless you passed in
the `--ask' flag on the command line, in which case it'll prompt you for a few
pieces of info.

Since you're running this program, you obviously have Perl 5--I'll be pulling
some defaults from its configuration.

Checking MANIFEST.done.
Setting up Configure's default values...Set up gcc environment - 3.4.5
(mingw special)
..done.
Setting up installation paths.done.
Tweaking settings for miniparrot...skipped.
Loading platform and local hints filesdone.
Finding header files distributed with Parrot..done.
Determining what C compiler and linker to use.done.
Determining whether make is installed..yes.
Determining whether lex is installed...skipped.
Determining whether yacc is installed..skipped.
Determining if your C compiler is actually gcc.yes.
Determining if your C compiler is actually Visual C++...no.
Enabling optimization...no.
Determining flags for building shared libraries...done.
Determine if parrot should be linked against a shared library..yes.
Determining what charset files should be compiled in..done.
Determining what encoding files should be compiled in.done.
Determining what types Parrot should use..done.
Determining what opcode files should be compiled in...done.
Determining what pmc files should be compiled in..done.
Determining your minimum pointer alignment. 1 byte.
Probing for C headers.done.
Determining some sizesdone.
Computing native byteorder for Parrot's wordsize.little-endian.
Test the type of va_ptr (this test is likely to segfault)..x86.
Figuring out how to pack() Parrot's types.done.
Figuring out what formats should be used for sprintf..done.
Determining if your C library has a working S_ISREGyes.
Determining architecture, OS and JIT capability...done.
Generating CPU specific stuff.done.
Verifying that the compiler supports function pointer castsyes.
Determining whether your compiler supports computed goto...yes.
Determining if your compiler supports inline...yes.
Determining what allocator to use.done.
Determining if your C library supports memalign.no.
Determining some signal stuff.done.
Determining whether there is socklen_t..no.
Determining if your C library has setenv / unsetenv...unsetenv.
Determining if your platform supports AIO...no.
Determining if your platform supports GMP..yes.
Determining if your platform supports readline..no.
Determining if your platform supports gdbm..no.
Testing snprintf..done.
Determining whether perldoc is installed...yes.
Determining whether python is installed.no.
Determining whether GNU m4 is installed.no.
Running CPU specific stuffdone.
Determining whether ICU is installedfailed.
Determining Parrot's revision...r19566.
Generating C headers..done.
Generating core pmc list..done.
Generating runtime/parrot/include.done.
Configuring languages.done.
Generating makefiles and other build

Re: Removing #pragma

2007-06-12 Thread Joshua Gatcomb

Andy,
I received this email in its own thread so perhaps I missed where it was
tied to the problems with Win32/MinGW that we have discussed in #parrot.

For those following along at home, MinGW's gcc version 3.4.2 has deprecated
#pragma once and will actually cause the compiler to blow up when compiling
parrot.  MinGW has a sliding window of 3 versions (candidate, current, and
previous).  The candidate release, 3.4.5 compiles parrot just fine and was
last updated in early 2006.

Personally, I am fine requiring folks that want to use Win32/MinGW to use
the candidate version of 3.4.5 or compiling a more recent gcc themselves.
That is, as long as it is not causing problems anywhere else.

Cheers,
Joshua Gatcomb
a.k.a. Limbic~Region


On 6/12/07, Andy Lester [EMAIL PROTECTED] wrote:



I'm very uncomfortable with removing #pragma once from our header
files.  It is perfectly valid C89 code, and I think bowing to a
broken compiler is unhealthy precedent.

--
Andy Lester = [EMAIL PROTECTED] = www.petdance.com = AIM:petdance







Re: [perl #38217] r11124: Cygwin build fails

2007-06-06 Thread Joshua Gatcomb

All:
I build parrot on Cygwin circa 5x a week.  Anytime it fails to build, I
perform the following:

1.  make realclean
2.  svn up
3.  perl Configure.pl
4.  PATH=/home/me/parrot/blib/lib:/bin
5.  make

In the very few instances it still fails, I isolate the build that it
started failing and report on #parrot and it is usually fixed within a day
or two.  A couple of things to point out.

1.  The absolute path to blib/lib is necessary.
2.  I remove everything else from the PATH but bin because exposing the path
to MinGW and/or AS Perl has been known to cause bad things to happen in the
past.  Just /bin is probably a bit paranoid but that doesn't mean that the
gremlins aren't out to get me.

Cheers,
Joshua Gatcomb
a.k.a. Limbic~Region


Re: Fun Stats from sloccount

2007-04-13 Thread Joshua Gatcomb

On 4/13/07, chromatic [EMAIL PROTECTED] wrote:


The numbers would be higher if sloccount recognized Parrot code.

I might add that shortly.

-- c

Totals grouped by language (dominant language first):
ansic:   194913 (51.89%)
perl:167865 (44.69%)



I  reccently informed the author that there was a bug which counted lines
after __DATA__ as perl code.  I am not sure if that applies in this
situation but it added 10K SLOC to my project which was less than 2K without
it ;-)


Cheers,
Joshua Gatcomb
a.k.a. Limbic~Region


Re: [perl #37997] r10604 build failure on Cygwin

2007-03-28 Thread Joshua Gatcomb

On 3/28/07, Ron Blaschke [EMAIL PROTECTED] wrote:


Joshua Gatcomb wrote:
 Really?  No one on #parrot has been able to get parrot to work on Cygwin
 for months.

Interesting, didn't know about this.



The issue for the longest time was that miniparrot.exe would silently die
and not even gdb could figure out why.  It appeared to be a linking issue
but as static linking also didn't work and there were no cygwin experts
around, it went unresolved.  The problem I am experiencing now is happening
earlier.


Could you, or someone else, please add the error message to the ticket,



or create a new one?  Maybe I can help with that.


If you could hang out on #parrot (irc.perl.org) when myself, Jonathan,
particle, etc are around - it would go a long way towards getting a
reproduceable test case that can be correctly articulated as to the nature
of the problem.  A few years ago I used to build parrot on cygwin daily and
opened several tickets that years later I was asked if were still
applicable.  I am not interested in repeating the past.


It's a fairly standard Windows XP SP2 box with Cygwin, everything up to

date.  I have tried to install everything optional (like ICU), too.



My configuration is identical to yours with the following exceptions:

Despite having GMP and bc installed Configure.PL doesn't find them.
I am interested in knowing why this is but I doubt it has anything to do
with the problem.

Here is the tail end of my make output:

see attached

Cheers,
Joshua Gatcomb
a.k.a. Limbic~Region
src/pmc/stmlog.c
src/pmc/stmref.c
src/pmc/stmvar.c
src/pmc/super.c
src/pmc/undef.c
src/encodings/fixed_8.c
src/encodings/ucs2.c
src/encodings/utf16.c
src/encodings/utf16.c: In function `to_encoding':
src/encodings/utf16.c:104: warning: passing arg 3 of `u_strFromUTF8_3_6' from 
incompatible pointer type
src/encodings/utf16.c:118: warning: passing arg 3 of `u_strFromUTF8_3_6' from 
incompatible pointer type
src/encodings/utf8.c
compilers/imcc/imcparser.c
compilers/imcc/imclexer.c
compilers/imcc/imclexer.c: In function `yy_get_next_buffer':
compilers/imcc/imclexer.c:4356: warning: comparison between signed and unsigned
compilers/imcc/imc.c
compilers/imcc/symreg.c
compilers/imcc/instructions.c
compilers/imcc/cfg.c
compilers/imcc/reg_alloc.c
compilers/imcc/sets.c
compilers/imcc/debug.c
compilers/imcc/optimizer.c
compilers/imcc/pbc.c
compilers/imcc/parser_util.c
compilers/imcc/pcc.c
/usr/bin/perl.exe -MExtUtils::Command -e mkpath blib/lib
gcc -shared -s -L/usr/local/lib  -o blib/lib/libparrot.dll  \
src/ops/core_ops.o src/ops/core_ops_switch.o src/ops/core_ops_cg.o 
src/ops/core_ops_cgp.o src/charset.o src/encoding.o sr
c/exceptions.o src/global_setup.o src/interpreter.o src/inter_call.o 
src/inter_cb.o src/inter_create.o src/inter_misc.o src/i
nter_run.o src/gc/register.o src/gc/memory.o src/objects.o src/packfile.o 
src/stacks.o src/stack_common.o src/string.o src/st
ring_primitives.o src/sub.o src/runops_cores.o src/trace.o src/pmc.o 
src/pmc_freeze.o src/key.o src/hash.o src/core_pmcs.o sr
c/platform.o src/jit.o src/jit_cpu.o src/jit_debug.o src/jit_debug_xcoff.o 
src/intlist.o src/list.o src/library.o src/global.
o src/embed.o src/warnings.o src/packout.o src/byteorder.o src/debug.o 
src/headers.o src/hll.o src/gc/smallobject.o src/gc/do
d.o src/gc/gc_ims.o src/gc/gc_gms.o src/exit.o src/misc.o src/spf_render.o 
src/spf_vtable.o src/datatypes.o src/fingerprint.o
 src/nci.o src/cpu_dep.o src/tsq.o src/longopt.o src/events.o src/thread.o 
src/dynext.o src/utils.o src/vtables.o src/pic.o s
rc/pic_jit.o src/mmd.o src/builtin.o src/extend.o src/extend_vtable.o 
src/revision.o src/packfile/pf_items.o src/stm/backend.
o src/stm/waitlist.o src/gc/resources.o src/charset/ascii.o 
src/charset/binary.o src/charset/iso-8859-1.o src/charset/tables.
o src/charset/unicode.o src/io/io.o src/io/io_buf.o src/io/io_layers.o 
src/io/io_unix.o src/io/io_utf8.o src/io/io_mmap.o src
/io/io_win32.o src/io/io_stdio.o src/io/io_string.o src/io/io_passdown.o 
src/pmc/default.o src/pmc/null.o src/pmc/env.o src/p
mc/key.o src/pmc/random.o src/pmc/unmanagedstruct.o src/pmc/managedstruct.o 
src/pmc/delegate.o src/pmc/compiler.o src/pmc/exc
eption.o src/pmc/version.o src/pmc/vtablecache.o src/pmc/parrotio.o 
src/pmc/parrotlibrary.o src/pmc/parrotinterpreter.o src/p
mc/parrotthread.o src/pmc/lexpad.o src/pmc/timer.o src/pmc/pointer.o 
src/pmc/sub.o src/pmc/closure.o src/pmc/continuation.o s
rc/pmc/retcontinuation.o src/pmc/exception_handler.o src/pmc/coroutine.o 
src/pmc/eval.o src/pmc/nci.o src/pmc/float.o src/pmc
/integer.o src/pmc/bigint.o src/pmc/complex.o src/pmc/string.o 
src/pmc/boolean.o src/pmc/ref.o src/pmc/sharedref.o src/pmc/ar
ray.o src/pmc/fixedintegerarray.o src/pmc/intlist.o src/pmc/iterator.o 
src/pmc/sarray.o src/pmc/fixedstringarray.o src/pmc/mu
ltiarray.o src/pmc/hash.o src/pmc/orderedhash.o src/pmc/tqueue.o 
src/pmc/parrotclass.o src/pmc/parrotobject.o src/pmc/os.o sr
c/pmc/file.o src/pmc/addrregistry.o src/pmc

Re: [perl #37997] r10604 build failure on Cygwin

2007-03-26 Thread Joshua Gatcomb

On 3/26/07, Ron Blaschke [EMAIL PROTECTED] wrote:


Not sure about the details of this issue, but r17772 seems to build fine
on Cygwin.



Really?  No one on #parrot has been able to get parrot to work on Cygwin for
months.  The reason has changed since this specific ticket but if you have a
working cygwin build can you please share more details such as:

perl -V
cat myconfig
perl Configure.pl
which gcc
gcc -v
windows version (usually winver from command line)
output of make (as an attachment)
strings /bin/cygwin1.dll | grep -i cygwin-1.   (just need 1 line of output
to determine version of cygwin1.dll)

Cheers,
Joshua Gatcomb
a.k.a. Limbic~Region




Here's the output of make test on my box.


Failed Test  Stat Wstat Total Fail  Failed  List of Failed

---
t/codingstd/c_code_coda.t   1   256 21  50.00%  1
t/codingstd/c_indent.t  2   512 22 100.00%  1-2
t/codingstd/cppcomments.t  ??   ??   %  ??
t/codingstd/tabs.t  1   256 11 100.00%  1
t/codingstd/trailing_space.t1   256 11 100.00%  1
t/op/trans.t1   256211   4.76%  13
t/pmc/iterator.t2   512432   4.65%  42-43
t/pmc/os.t  2   512152  13.33%  6 9
t/src/compiler.t1   256 61  16.67%  1
t/src/extend.t 12  307216   12  75.00%  1-12
t/src/intlist.t 4  1024 44 100.00%  1-4
t/src/io.t  9  2304209  45.00%  2-4 6-7 16-19
t/stm/runtime.t 2   512 52  40.00%  2 4
8 tests and 577 subtests skipped.
Failed 13/270 test scripts, 95.19% okay. 39/6675 subtests failed, 99.42%
okay.

Ron



Re: PDD 25 Concurrency - first review

2006-10-30 Thread Joshua Gatcomb

On 10/30/06, Allison Randal [EMAIL PROTECTED] wrote:


Before I start
kicking it into a more structured form, I'd like to do an initial round
of discussion. This is your chance to mention anything you hoped or
expected from Parrot's concurrency models. How do you plan to use
concurrency, and in what contexts? What's your favorite concurrency
model and why should we consider using it? How integral a role should
the new STM play in Parrot's concurrency? Etc.



There is a recent thread over at PerlMonks on this very topic:

Parrot, threads  fears for the future
http://perlmonks.org/?node_id=580004

The thread is long and goes on tangents at points.  Not every one has kept
an
objective perspective and it has its share of finger pointing doom and
gloom.

All negativity aside, there are a great deal of valuable points made in the
thread
which make it worth reading.  While it has lost a bit of momentum - it is
still
being updated with new posts almost daily.

Allison


Cheers,
Joshua Gatcomb
a.k.a. Limbic~Region


Re: Using Rules Today

2006-07-05 Thread Joshua Gatcomb

On 7/3/06, Paul Seamons [EMAIL PROTECTED] wrote:



It isn't specifically a parser designed for general language parsing, but
CGI::Ex::Template does have a mathematical expression parser.



Thanks, but this falls into the realm of existing wheels which is a
different part of this project.



perl -e 'use CGI::Ex::Template; $s=CGI::Ex::Template::dump_parse(3 * 4 **
2 +
5); $s =~ s/\s+/ /g; print $s\n'


$VAR1 = [ \[ '+', [ \[ '*', '3', [ \[ '**', '4', '2' ], 0 ] ], 0 ], '5' ],

0 ];



Ok, but where is the evaluation?  I know it wouldn't be too hard to write
something that could evaluate this data structure to produce the correct
results but that is what this project is all about.  Some parsers make this
easier than others.  Some allow the expression to be evaluated as it is
parsed while some require additional homegrown code to parse the resulting
parse tree (data structure).

I have not had a chance to look at Flavio's links yet.  Since no one who
actually knows rules seemed to be inspired to write an example for me - I
will *eventually* figure it out on my own and post back to the list as an
FYI.

Paul Seamons


Cheers,
Joshua Gatcomb
a.k.a. Limbic~Region


Using Rules Today

2006-07-03 Thread Joshua Gatcomb

All:
I have a for-fun project that I am working on exploring various different
parsers and their methods.  So far I have looked at things like
Parse::RecDescent, Parse::YAPP, Parse::Earley, and HOP::Parser.  I had
Perl6::Rules on my list, but it is my understanding that
Pugs::Compiler::Rule is more up to date.

In any case, I was wondering if someone could provide me with an example of
a mathematical expression parser (and evaluator).
To properly compare to the others, it would need to handle the following
operators

+, - (left associative)
*, /, % (left associative)
^ (right associative)

handle parens 12 - (3 + 4)

handle two functions sqrt() and abs() both of which must include the parens.

If someone has time to do this for me, I would be appreciative.  It might
also serve as example documentation or cookbook ideas.

I am specifically interested in examples that can be run in Perl 5 today
without needing Pugs or Parrot.

Cheers,
Joshua Gatcomb
a.k.a. Limbic~Region


RFC: Patch for mingw-msys

2006-05-26 Thread Joshua Gatcomb

All:
In tracking down why building parrot with mingw was failing, I discovered
that the culprit was having msys in my PATH even if I wasn't intentionally
trying to use it.

There are 3 interesting things to note:
1.  It does not matter what msys is actually called - renaming the directory
to foo has the same effect
2.  It does not matter where in the PATH it appears - placing it after mingw
has no effect
3.  Changing the PATH has no effect on the configuration cycle - only the
build cycle

Running mingw32-make with the -d (debug) flag on revealed what is going on.
It scans PATH, using an internal routine called find_and_set_shell, looking
for sh.exe which changes path delimiters and shell escapes.

The obvious fix is to do exactly what mingw32-make is doing and warn the
user that the subsequent mingw32-make is going to fail.

This is where the request for comments comes in.

config/init/hints/mswin32.pm is where the mingw specific settings are set
up.  The $make variable obtained at this point is nmake, but it would still
be possible to probe $ENV{PATH}, discover if sh.exe exists, and warn the
user.

Configure.pl ends by telling the user the next step.  Use $make, which has
changed from nmake to mingw32-make along the way, which is bound to fail.
Perhaps this is the spot where it is appropriate to warn the user.

I don't mind writing the patch but as I have been away for 1.5 years I would
really like to hear the opinions of where is the best way to do it.

Cheers,
Joshua Gatcomb
a.k.a. Limbic~Region


Re: RFC: Patch for mingw-msys

2006-05-26 Thread Joshua Gatcomb

On 5/26/06, Andy Dougherty [EMAIL PROTECTED] wrote:


I don't know anything about either msys or mingw, so I don't really know
what to recommend.

I'm afraid I don't understand what a patch would actually try to do.
From your previous message, it looks like sh.exe is changing the path
delimiters and shell escapes so that things don't work anymore.  Are you
trying to patch Configure.pl to handle those changed delimiters and shell
esacapes?  Or do you have something else in mind?



The patch would be nothing more than a warning.  As I said, the PATH
environment has absolutely no effect on the configure process, just the
build process.  During the configure process, we can warn the user that the
build process won't work unless they do something about their PATH.  In
particular, prevent mingw from using msys and subsequently changing the the
behavior of path delimiters and shell escapes.

I would love to submit a patch to make using msys transparent and just
work but after searching the archives, it appears that people working on it
far longer than I have had little to no luck with it and I am just getting
my feet wet again.


Also, what's the preliminary setting of $make got to do with it?  You've

still got to call some sort of make command in the end.



It may seem odd to some to put a warning for $make as mingw32-make in a
section of code when $make is actually nmake at that point.  Placing it at
the end of Configure.pl may make more sense since it is the last set of
instructions to the user but it appears that a lot of work has gone in to
making it platform neutral.

If you're just wondering where '$make' gets set, then config/inter/make.pm


is where to look -- it seems to prefer mingw32-make over nmake.  Perhaps
that's wrong.



I don't think it is wrong but perhaps the order of hints/make should
change.  I don't know that's why I am asking.


--

Andy Dougherty  [EMAIL PROTECTED]




Cheers,
Joshua Gatcomb
a.k.a. Limbic~Region


Instructions to build parrot using mingw

2006-05-25 Thread Joshua Gatcomb

All:
It has been 1.5 years since I have built parrot and a lot has changed.
Today I decided to dust off some old projects but I am having trouble
getting it to build.  Previously, I used Cygwin.

I have mingw, msys, and ActiveState Perl

Unfortunately, I do not have permission to create files in
C:\Windows\system32 so the conf.ini files that go there in support of
mingw and msys are missing.  That may be part of my problem.

Here is where I am at:

C:\parrotperl Configure.pl

C:\parrotmingw32-make

Compiling with:
xx.c
gcc -I.\include -DWIN32 -g -Wall -Wstrict-prototypes -Wmissing-prototypes
-Winline -Wshadow -Wpointer-arith -W
cast-qual -Wwrite-strings -Waggregate-return -Winline -W -Wno-unused
-Wsign-compare -Wformat-nonliteral -Wform
at-security -Wpacked -Wdisabled-optimization -mno-accumulate-outgoing-args
-Wno-shadow -falign-functions=16 -D
HAS_JIT -DI386 -DHAVE_COMPUTED_GOTO -I. -o xx.o -c xx.c
/usr/bin/sh: C:perlbinperl.exe: command not found
mingw32-make: *** [src\ops\core_ops.o] Error 127

Notice C:perlbinperl.exe

The path delimiter is apparently getting interpreted as a shell escape.  I
have tried playing around with config/init/hints/mswin32.pm to no avail.

Anyone know what my problems is or is willing to work with me on this would
be most appreciated.

Cheers,
Joshua Gatcomb
a.k.a. Limbic~Region


Do junctions support determining interesections of lists

2006-04-04 Thread Joshua Gatcomb
Almost a year ago (2005-04-27), I wrote the list asking a question about
junctions.
Specifically, the ability to find the intersection, union, etc of a list.

my $matches = any( @x_chars ) eq any( @y_chars );
my $match = $matches.pick;

all( any() eq any() );

Patrick Michaud offered an infix myeq to let the problem be solved in user
space
as junctions at that time did not support what I wanted to do.

Today I examined the Synopses and found a couple of intriguing things:

In Synopsis 3:

A junction is a single value that is equivalent to multiple values.

And then later on...

Junctions are specifically unordered. So if you say

for all(@foo) {...}

it indicates to the compiler that there is no coupling between loop
iterations and they can be run in any order or even in parallel.

This implies to me that it is possible to get the values out of a junction
without calling a .values method if used in list context.

From Synopsis 12:

To hyperoperate over the values of a junction you have to explicitly pull
out the values:

$junction.values».meth(@args);

This implies to me that you can still get at the values by explicitly using
.values.

From Synopsis 9:

Some contexts, such as boolean contexts, have special rules for dealing
with junctions. In any scalar context not expecting a junction of values, a
junction produces automatic parallelization of the algorithm.

Ok, so what about a context expecting a junction of values as I think all(
any() eq any() ) is expecting?

My question today is 2 fold.

1.  Where in the synopses would I find the various methods that can be
performed on a junction?
A.  .values
B.  .pick
C.  ???

2.  Do the junctions of today support finding the union, intersection, etc
without creating your own infix operator?


Cheers,
Joshua Gatcomb
a.k.a. Limbic~Region


Re: Do junctions support determining interesections of lists

2006-04-04 Thread Joshua Gatcomb
On 4/4/06, Larry Wall [EMAIL PROTECTED] wrote:

 On Tue, Apr 04, 2006 at 09:16:23AM -0400, Joshua Gatcomb wrote:



Junctions are not intended for that use.  We have Sets for that now.


Ok.  So this will work out of the box if you use the right tool.  Cool.

The cabal already decided once (in Portland, I believe) to include the
 standard set operators and a Set type, as well as ASCII representations
 like (*) and (+) for the set ops so we don't force anyone to use
 Unicode prematurely.  Unfortunately these have not found their way
 into the synopses yet, as far as I know.


Fair enough.  For the benefit of everyone following along at home - which of
the Synopses should we be following to see how Sets fit into Perl6?

Sorry if this is a bit meandering--jet lag is interfering
 constructively with my native dimwit...


No apology necessary.  I don't understand everything but I don't need to.  I
am happy trusting that smarter people than me are working on the problem.


Larry


Joshua Gatcomb
a.k.a. L~R


Ponie Inquiry

2005-11-21 Thread Joshua Gatcomb
All:
Back in the summer of 2003, Fotango offered financial support for Ponie
development for 2 years. Nicholas took up the development hat after Arthur,
but things are awfully quiet. Since summer 2005 has come and gone, I wonder
if funding has been extended. I know that Nicholas opened up the repository
to the public http://use.perl.org/~nicholas/journal/24649 but is anyone else
working on the project? With the excitement of Perl6, Parrot, and Pugs I
wonder if Ponie is being neglected.

Inquiring minds want to know.

Cheers,
Joshua Gatcomb
a.k.a. Limbic~Region


Re: Perl 6 fears

2005-10-25 Thread Joshua Gatcomb
On 10/24/05, H.Merijn Brand [EMAIL PROTECTED] wrote:

 My only current fear is that I won't live long enough to be able to use
 and
 understand the full richness of what perl6 is going to offer me.

 (Oh, and that perl6 will never be able to upgrade my scripts that use
 'format', but I'm aware of the plan to make that `obsolete' as in: the
 perl526 translator will dump core on those)


Those were not my fears. They are comments and concerns I see made day in
and day out in various online forums over the last 3 years. Juerd's whole
point to collecting these fears was to point out that, by and large, they
are unfounded. Stating that plenty of people find p5's internals very
accessible isn't going to allay the concerns of the people with the fear.
Stating that p5 has never been just a scripting language isn't going to
change the perception of those people that hold that opinion.

IIRC, Andy has taken up the Perl6 PR hat. I think Juerd should like be
working with Andy on this one. The rebuttals to these fears needs to be well
thought out and convincing because from my personal experience they are
prevalent.

--
 H.Merijn Brand Amsterdam Perl Mongers (http://amsterdam.pm.org/)


Cheers,
Joshua Gatcomb
a.k.a. Limbic~Region


Re: Perl 6 fears

2005-10-24 Thread Joshua Gatcomb
On 10/24/05, Juerd [EMAIL PROTECTED] wrote:

  Feel free to add your own, or fears you heard about!


FEAR: Perl6 internals will be just as inaccessable as p5

FEAR: The Perl6 process is driving away too many good developers

FEAR: Perl6 will not be as portable as p5

FEAR: Perl6 will not be able to fix the stigma of just a scripting
language or line noise

FEAR: Perl6 is un-necessary and the time, money, and resources is impacting
p5.

FEAR: There is too much misinformation surrounding Perl6 for people to feel
comfortable.

This last fear is likely the reason why you are collecting this list. I
think the biggest problem is accessability and visibility for the casual
observer. Unless you are devoted to the list and the IRC channels and the
conferences your perception of what is and isn't Perl6 is out of date.
We don't have a single source where people can go for relatively up to the
minute facts concerning the project.
Juerd

Cheers,
Joshua Gatcomb
a.k.a. Limbic~Region


Re: Perl 6 fears

2005-10-24 Thread Joshua Gatcomb
On 10/24/05, Joshua Gatcomb [EMAIL PROTECTED] wrote:

 On 10/24/05, Juerd [EMAIL PROTECTED] wrote:
 
   Feel free to add your own, or fears you heard about!


This really isn't a fear as much as it is a complaint. It has to do with
design decisions and the list.

Perl 5 was my rewrite of Perl. I want Perl 6 to be the community's rewrite
of Perl and of the community. - Larry Wall

I think a lot of people that would contribute, myself included, are put off
by the fact that it is nearly impossible to get a clear decision rendered on
the list. Threads spin off tangents and typically end not in an answer, but
in a loss of energy in trying to get back to the original question.

My contribution to Perl6 has primarily been in advocation. I have
contributed tests and code examples to Pugs as well as asked questions on
the list. I would do more if getting answers was easier.


 Cheers,
 Joshua Gatcomb
 a.k.a. Limbic~Region



Re: zip: stop when and where?

2005-10-04 Thread Joshua Gatcomb
On 10/4/05, Juerd [EMAIL PROTECTED] wrote:

 What should zip do given 1..3 and 1..6?

 (a) 1 1 2 2 3 3 4 5 6
 (b) 1 1 2 2 3 3 undef 4 undef 5 undef 6
 (c) 1 1 2 2 3 3
 (d) fail

 I'd want c, mostly because of code like

 for @foo Y 0... - $foo, $i { ... }

 Pugs currently does b.


Yeah. This is one of those things where it is hard to have a single function
always DWYM. Algorithm::Loops solves this by just providing multiple
functions. I can't see how to solve this using MMD alone. You would need to
add an optional parameter that would specify behavior

-min (zip to the smallest list)
-undef (insert undefs as needed)
-error (blow up if the lists are not equal in size)

etc

Juerd


Just my 2 cents from the peanut gallery.

Cheers,
Joshua Gatcomb
a.k.a. L~R


Re: [perl #29936] JIT debugging on Cygwin not working

2005-10-03 Thread Joshua Gatcomb
--- Joshua Hoblitt via RT
[EMAIL PROTECTED] wrote:
 
 Can you still recreate this issue?

I haven't been involved in Parrot development for some
time now.  When I was involved I was pretty much the
only Cygwin user actively participating so it was
frustrating not to be able to validate what I was
seeing.  Parrot has changed considerably since then as
has Cygwin and gcc.  I would suggest asking the list
if there is anyone interested in carrying on the
Cygwin torch by asking them to reproduce the problem. 
I no longer have an environment to do so.

 
 Thanks,
 
 -J

Cheers,
Joshua Gatcomb
a.k.a. Limbic~Region



__ 
Yahoo! Mail - PC Magazine Editors' Choice 2005 
http://mail.yahoo.com


Re: Sort of do it once feature request...

2005-09-21 Thread Joshua Gatcomb
On 9/21/05, Michele Dondi [EMAIL PROTECTED] wrote:

 Letting aside the fact that in the 99% of times they're plainly
 reinventing the wheel of glob() a.k.a. File::Glob, there are indeed
 situations in which one may have stuff like

 for (@foo) {
 next if $_ eq 'boo';
 # do something useful here
 }


I have mocked up an example of how you could do this in p5 with some ugly
looking code:

#!/usr/bin/perl
use strict;
use warnings;

do_something(5);

sub do_something {
my $target = shift;

my $block;

my $block2 = sub {
print No need to check $_ against $target anymore\n;
};

my $block1 = sub {
no warnings;
if ( $_ == $target ) {
print Skipping 5\n;
$block = $block2;
next LOOP;
}
else {
print $_ is not $target\n;
}
};
$block = $block1;

LOOP:
for ( 1 .. 9 ) {
$block-();
}
}

Once the condition has been met, the code dynamically changes to no longer
check for the condition. Keep in mind, you are paying the price of
dereferencing as well as ENTER/LEAVE on subs to get this performance
benefit.

I will be interested to see what the experts say on this. I have often
desired this in long tight running loops and found that the ways to achieve
it (as shown above) are worse then leaving the op in.

Michele


Cheers,
Joshua Gatcomb
a.k.a. Limbic~Region


Re: scalar dereferencing.

2005-06-17 Thread Joshua Gatcomb
On 6/17/05, Larry Wall [EMAIL PROTECTED] wrote:
 On Fri, Jun 17, 2005 at 03:56:50AM +0800, Autrijus Tang wrote:
 :
 : my $x = 3;
 : my $y = \$x;
 : say $y + 10;
 : $y++;
 : say $y;
 : say $x;
 :

 I suspect people will find that counterintuitive.  A more consistent
 approach might produce
 
 13
 14
 14
 
 That is, if + deferences automatically, so should ++, such that the
 thingie pointed to by both $x and $y is what gets incremented,
 not a clone of it.  It should take more work than that to get a COW
 reference, I suspect.

Ok - but where does the assignment come in?  The only change to $y is
in $y++ so I would think the results should be
13
4
4

 
 Larry
 

Cheers,
Joshua
a.k.a. L~R


Re: State of Design Documents

2005-06-14 Thread Joshua Gatcomb
On 6/13/05, Patrick R. Michaud [EMAIL PROTECTED] wrote:

 Since it might not have been clear from my earlier post -- I've
 now committed the S17 framework draft into the repository.  Thanks.

I am now questioning using Perl6 Timeline By Apocolypse as reference
material.  I am rather interested in seeing the specs for pack/unpack
so I went about finding where it should go:

There are 2 RFCs listed for A09 for pack/unpack
142 Enhanced Pack/Unpack
247 pack/unpack C-like enhancements

There is an RFC for A13 regarding distinguishing packed data
258 Distinguish packed data from printable strings

The rest of the RFCs for pack/unpack fall into A29
246 pack/unpack uncontrovercial enhancements
248 enhanced groups in pack/unpack
249 Use pack/unpack for marshalling
250 hooks in pack/unpack

Now S09 and S13 have already been written but do not include the
details regarding pack/unpack.

The patch to S29 is obvious - just add a heading for pack/unpack and
hope someone fills in the blanks.

The patch for S13 is more difficult since I don't believe it warrants
a full heading.  Probably just needs a guess as to how to expose the
flag to return a bool value i.e. $string.packed, comment about the
'packed' warnings/strictures pragma, and stick it the right place.

The patch to S09 has me stumped.

Is there any other reference material I can use to put together solid
frameworks that are closely representative to what @larry might
produce?

 Pm
 

Cheers,
Joshua Gatcomb
a.k.a. L~R


Re: State of Design Documents

2005-06-14 Thread Joshua Gatcomb
On 6/14/05, Larry Wall [EMAIL PROTECTED] wrote:
 Heh, that classification was a fast guess about RFCs made more than
 4 years ago.  I'm amazed it's stood up as well as it has, even where
 it hasn't.

I agree, and lacking anything I could find more recent, initially
thought it was the right way to go.

 I think at this point we should assume that any RFCs that haven't
 been officially blessed should be considered officially suspect,
 and prior art (Perl 5) should generally take precedence unless we
 decide otherwise.  If something seems too good to leave out, we can
 talk about it here.

There is another question at the Monastery entitled What's in Perl
6? asking specifically which RFCs have been accepted, rejected, and
of course the ones somewhere in the middle.

 about http://perlmonks.org/index.pl?node_id=96184

The written Apocolypses answered that question for the applicable RFCs
but there are two problems.  The first is that we are now primarily
focusing on Synopses.  The second is that it is hard to frame synopses
without the knowledge of which RFCs are in what state.

 
 That being said, it's pretty clear that there are some things that
 are suboptimal about Perl 5's pack/unpack.

My primary focus here is on the design documents.  I believe that it
will be easier to focus on what is left my having a means to measure. 
Using the analogy of a house, once the frame is up it is easy to walk
in and see that the master bedroom is finished while the kitchen
hasn't been started.  I believe it will be easier to point people to
reference material then it is to rehash questions repeatedly on the
list.  I believe it will be easier for someone to modify documentation
if an organized framework tells them where it needs to go.

I freely admit I may be living in the clouds and my well intentioned
idea is good in theory but hard to do in reality.

If you, or anyone else, can see a clear way to move forward for those
outside of the cabal to help - we would certainly appreciate it.

 Not really, except insofar as we've talked about compact classes of
 native types working like C structs.  There are lots of nitty things
 we can fix with pack/unpack, but the basic underlying problem is
 that pack/unpack are defined operationally rather than declaratively.

Sorry, perhaps I should have been more clear.  This was a general
question with regards to the design documents and not specifically
with pack/unpack.  So is there anything those of us not in @larry can
do to help out with the design documents and specifically where can we
go to get reference material?


 Larry
 

As a side note, the only thing I would like to see in pack/unpack is a
way to make the following task easier:

You have to read records in the following way:
2 bytes = what type of record you have
3 bytes = how long the record value is
? bytes = value of record which is determined by previous read

In p5, you need to keep track of your offset and skip that number of
bytes each time.  It would be nice if p6 could somehow make that
easier.  Again, my focus is on the design docs and not on pack/unpack.
 I just used it as a discussion point since it is what I was working
on at the time.

Joshua Gatcomb
a.k.a. L~R


State of Design Documents

2005-06-10 Thread Joshua Gatcomb
All:
Designing a language isn't easy - I get that.  Opening up the design
process to the entire community and filtering everyone's good ideas
certainly doesn't make this any easier.  My concern is that these
difficulties are being aggravated because the design documents
(Synopses) are not kept up to bleeding edge date.

There are currently 12 Synopses available to implement code from but
there are still 19 more unpublished (I excluded formats in chapter 7
for obvious reasons).  See Perl6 Timeline By Apocalypse for details:

http://perlmonks.org/index.pl?node_id=332117

I am sure that a great deal of that unpublished work has already been
decided and yet there is no end to revisiting old problems on this
list and musings of didn't @larry say 'X' about that?.

I know that decisions are subject to change but having the current
state of decisions in a single location (Synopses) would be a great
benefit to all.  I am a firm believer in not complaining unless you
have an idea about how to solve the problem, so here goes:

Put the design documents into public change control.  Read access to
be granted globally with write access to be limited to @larry
initially.  The community posts patches where the bulk of the work is
done and @larry makes any necessary modifications and commits.  If
even that work load proves to be too much, perhaps common mortals get
granted commit access on a case-by-case basis.

Cheers,
Joshua Gatcomb
a.k.a. Gat
(240) 568-5675


Re: State of Design Documents

2005-06-10 Thread Joshua Gatcomb
On 6/10/05, Patrick R. Michaud [EMAIL PROTECTED] wrote:

 This already exists -- the design documents are all available from
 http://svn.perl.org/perl6/doc/trunk .  And I've already volunteered
 to review/apply patches to the design documents or forward them to
 the appropriate people for review -- there just haven't been a lot
 of patches submitted.  (p6l and/or p6c are probably appropriate forums
 for this.)

Ok, admittedly I was playing a bit dumb.  I knew about the repository
I just didn't think it was general knowledge.  I was also unaware that
patches had been requested with a volunteer to act as the approving
authority.

Hmmm.  Thanks.  I guess I will have to go back over the questions I
have asked and see if any decisions were rendered not relfected in
docs and be a pioneer.

 
 Pm
 

Cheers,
Joshua Gatcomb
a.k.a. L~R


Re: State of Design Documents

2005-06-10 Thread Joshua Gatcomb
On 6/10/05, Joshua Gatcomb [EMAIL PROTECTED] wrote:

 Hmmm.  Thanks.  I guess I will have to go back over the questions I
 have asked and see if any decisions were rendered not relfected in
 docs and be a pioneer.

Ok, are there any guidelines for what should and should not be put
forward as a patch.  I can see 3 key areas of concern:

1.  Framework for unwritten Synopses (so we know what goes where)
2.  Heading placeholders for written Synopses with missing information
3.  Decisions rendered by @larry (or should it only be $larry) on the
list that are not yet in the corresponding Synopsis

I have included a sample framework for chapter 17.  Theoretically,
someone could then go search the archives for decision points in any
of those headings and fill in the blanks.  Is this what you envisioned
or were you thinking only minor tweaks to existing documents?

Cheers,
Joshua Gatcomb
a.k.a. L~R


S17.pod
Description: Binary data


Revisiting .chars (and friends) in list context

2005-06-02 Thread Joshua Gatcomb
All:
I would like to revisit the following question as there was no
decision reached AFAICT.

http://groups.google.ca/group/perl.perl6.language/browse_thread/thread/766c1b32c57a56f6/3296f0d6cad75548?q=list+context+.charsrnum=1hl=en#3296f0d6cad75548

What I would like to be able to do is:

my $str = 'hello';
my @chars = $str.chars; # h e l l o

There were some good points raised in that thread that I think are
valid, but I think it digressed from the intent of the original
question.  Perhaps that is because unicode prefaced chars which
clouded the waters.  I don't know anything about unicode and leaving
the hard choices for doing the right thing up to you all.  Whatever
the right thing is, will there be a way to do what my code snippet
showed?

Cheers,
Joshua Gatcomb
a.k.a. L~R


Argument Type Checking

2005-05-19 Thread Joshua Gatcomb
All:
I was hoping the following would give me an outright error

sub foo (Int $bar) {
say $bar;
}
foo('hello');

I seem to recall, probably incorrectly, that one of the differences
with int, Int, and no type declaration at all is that one would
happily autoconvert for you, 1 would autoconvert but forget it ever
happened, and 1 would be an outright failure.

Ok - so could someone set me straight?
What should that code snippet do?  Would it do anything different if
Int had been int?

Cheers,
Joshua Gatcomb
a.k.a. L~R


Question on is chomped

2005-05-12 Thread Joshua Gatcomb
While E02 states that is chomped sets the chomped property of
afilehandle, I didn't find any detailed specifications in any of the
As or Ss.

So - is is chomped always the equivalent of:

while ( FH ) {
chomp;
}

For instance - you have opened the file rw

Or, the idea of having mutator and non-mutator versions of chomp (and
other functions) have been kicked around the list.

Any definitive word yet?

Cheers,
Joshua Gatcomb
a.k.a. L~R


Binding to a sub's return value

2005-05-10 Thread Joshua Gatcomb
I am wondering what the proper behavior of binding to a sub's return
value should be

sub some_routine {
my $foo = 42;
return $foo;
}
my $rv := some_routine();

Should $rv be bound to $foo or to a copy of $foo?  I ask because with
state() and closures, it makes a difference since the value can
change.

sub some_rourtine {
state $foo = 42;
return $foo++;
}

My apologies if this has been previously discussed or is documented
somewhere.  I am still playing catch up.  Ok, ok - it's true - I am
looking for a little instant gratification.

Cheers,
Joshua Gatcomb
a.k.a. L~R


Coroutine Question

2005-05-04 Thread Joshua Gatcomb
All,
I am not the only one who has found porting p5 to working p6 code
relatively easy and similar looking:

http://perlmonks.org/index.pl?node_id=453821

In that thread, the author raised the question of coroutine support in
Perl.  I looked up coroutines in the Perl6 Timeline By Apocalypse
thread and realized [AES]17 hasn't been written yet.

http://perlmonks.org/index.pl?node_id=332117

So without asking for S17 in its entirety to be written, is it
possible to get a synopsis of how p6 will do coroutines?  I ask
because after reading Dan's What the heck is:  a coroutine, it is
clear there is more than one way to dictate behavior.

http://www.sidhe.org/~dan/blog/archives/000178.html

Cheers,
Joshua Gatcomb
a.k.a. L~R


Re: Coroutine Question

2005-05-04 Thread Joshua Gatcomb
On 5/4/05, Luke Palmer [EMAIL PROTECTED] wrote:
 On 5/4/05, Joshua Gatcomb [EMAIL PROTECTED] wrote:
  So without asking for S17 in its entirety to be written, is it
  possible to get a synopsis of how p6 will do coroutines?  I ask
  because after reading Dan's What the heck is:  a coroutine, it is
  clear there is more than one way to dictate behavior.

 Well, one way is to use generating functions:

 my @a = gather {
 for 1..10 {
 say;
 take;
 }
 }

 (Where that = might be spelled :=).  Here, the code is not executed
 until an element of @a is demanded.  It is executed as many times as
 necessary to fetch that element, and then stopped in its tracks.

Ok - this isn't what I was expecting at all.  That doesn't make it a
bad thing.  Given something that looks a lot more like a typical
coroutine:

sub example is coroutine {
   yield 1;
   yield 2;
   yield 3;
}

I would expect
for 1 .. 5 { say example() } to print 1\n2\n3\n1\n\2

If I got fancy and added a parameter

sub example ( $num ) is coroutine {
   yield $num;
   yield $num + 1;
   yield $num - 2;
}

I would expect
for 1 .. 5 { say example( 7 ) } to print 7\n8\n6\n7\n8;

The questions I am really asking is:
1.  Will coroutines be supported at all?
2.  If yes, will they look like coroutines in other languages?
3.  If yes, in what ways will they be behave (handling of parameters
for instance)?
4.  Finally, what is the proper syntax for declaring and calling coroutines?

I am fine with a we haven't got that far yet answer.  I was just
hoping to write some tests to drive features.


 Luke
- Hide quoted text -

Cheers,
Joshua Gatcomb
a.k.a. L~R


Re: Coroutine Question

2005-05-04 Thread Joshua Gatcomb
On 5/4/05, Luke Palmer [EMAIL PROTECTED] wrote:
 On 5/4/05, Joshua Gatcomb [EMAIL PROTECTED] wrote:
  Ok - this isn't what I was expecting at all.  That doesn't make it a
  bad thing.  Given something that looks a lot more like a typical
  coroutine:
 
  sub example is coroutine {
  yield 1;
  yield 2;
  yield 3;
  }
 
  I would expect
  for 1 .. 5 { say example() } to print 1\n2\n3\n1\n\2
 
 Ding!  You just hit the disagreement point.  You're on Damian's side.

Not exactly.  I am basing my expectation on the following link and
then asking with all the different ways to define behavior - has a
decision WRT p6 been made.

http://www.sidhe.org/~dan/blog/archives/000178.html

 Sorry for my language... it's just that if I were dropped into a
 project that invented that abstraction for something it was doing, it
 would be one of the first things I'd change.  Totally unscalable
 design.
 
  If I got fancy and added a parameter
 
  sub example ( $num ) is coroutine {
  yield $num;
  yield $num + 1;
  yield $num - 2;
  }
 
  I would expect
  for 1 .. 5 { say example( 7 ) } to print 7\n8\n6\n7\n8;
 
 And here is where it gets trickier:
 
 say example(7);   # 7
 say example(7);   # 8
 say example(8);   # 8?  6?

Exactly my point.  There is more than one way to define the behavior
(especially with parameter handling).  That is why I included a
reference and asked how p6 was going to do it.  Personally, I don't
care because I know people like you, Larry, Damian, et all will make a
sound decision.  What I want to know is if you have a decision already
that isn't published in its entirety so I can start writing tests.

Ok, I do care.  Regardless of behavior, I would hope the syntax would
somewhat resemble that of other languages.
 
 Luke
 
Cheers,
Joshua Gatcomb
a.k.a. L~R


Re: Malfunction Junction, what's your function?

2005-04-28 Thread Joshua Gatcomb
On 4/28/05, Thomas SandlaĂź [EMAIL PROTECTED] wrote:
 I wrote:
  permute( @x_chars ) »{ $^a eq $^b ?? $^a :: ''}« permute( @y_chars )
 
 Permutation is the wrong thing here, sorry. It's just:

I want to preface again that I have only recently started giving the
language aspect of p6 serious focus.  Without doing any digging into
junctions and pretty much just listening to the buzz, I not only think
of things like being able to verify that a userid isn't on a
blacklist, I also think of the ability to do things like:

1.  Give me all the items in list A that match any of the items in list B
2.  Give me all the items in list A that aren't in list B
3.  well - you get the idea

I don't want to have to invent some special purpose infix operation to
do it nor should do I believe it should require much thinking.  That
doesn't mean it needs to be in the core.  If not in the core, I think
it should be generalized and included in one of the first available
modules.  FAQs such as union, difference, intersection of lists are
FAQs for a reason.

Of course, it is real easy for me to say it should 'just work' from
where I am sitting - you all are the ones that have done the hard
work.  Having answered the questions enough times in p5 circles
though, it would be nice to have a real simple easy answer for p6.

Cheers,
Joshua Gatcomb
a.k.a. L~R


Malfunction Junction, what's your function?

2005-04-27 Thread Joshua Gatcomb
Ok - sorry for the cheesy subject line but I couldn't resist.

So I am working on porting some interesting pieces of code I wrote in
p5 at the Monastery to p6 for the benefit of others - primarily to
show how easy the transition can be.

Since Pugs doesn't have p6 rules yet I wanted to show off the power of
junctions instead of using the pcre support.  Basically I need to know
if any character in string x matches any character in string y - easy
right:  $str =~ /[chars]/ becomes any( @x_chars ) eq any( @y_chars ). 
The problem is that in the regex version I use capturing parens to
identify the character matched.  For the purposes of the problem I
don't need to rely on the first character matched I just need to know
1.

Without doing a lot of research into junctions, I thought the
following would work:

my $matches = any( @x_chars ) eq any( @y_chars );
my $match = $matches.pick;

Ok - so maybe not - perhaps I should just change .pick to .values

hmmm - still not working - perhaps I need to give the junctions more
information as to what I am after

all( any() eq any() );

Hmmm - perhaps the problem isn't with junctions but with Pugs but to
know for sure I need to find out what, if anything, is the proper way
to do what I want.  The worst that could happen is that I find out
there isn't a way to get a what matched from an any() eq any()
comparison.

Cheers,
Joshua Gatcomb
a.k.a. L~R


Formal Parameters To While Block

2005-04-26 Thread Joshua Gatcomb
as it appears the email I sent before subscribing is being held and I
am impatient, I have subsequently subscribed and am resending from a
different address

All:
Please forgive me, but I have only recently started
following the language side of p6 after spending a
fair amount of time with Parrot.  Last night I
installed Pugs and wrote my first p6 code:

http://perlmonks.org/index.pl?node_id=451398

Reading S04, it seems that there are no implicit
blocks around control structures, so p5 code like:

while ( my @array = $ref-() ) { ... }

would scope my @array appropriately, it will not in p6

The solution is formal parameters.  The trouble is I
can't seem to find a good example in S04 that matches
what I am trying to do.

while $ref() - @array { ... }

is what I think it might be modeling it after the for
loop, but the closest thing I see in while is:

while =$*IN - $line {...}

I am happy to write tests to get the appropriate
functionality in Pugs, but I am not sure what is
appropriate???

Cheers,
Joshua Gatcomb
a.k.a. L~R


Formal Parameters To While Block

2005-04-26 Thread Joshua Gatcomb
All:
Please forgive me, but I have only recently started
following the language side of p6 after spending a
fair amount of time with Parrot.  Last night I
installed Pugs and wrote my first p6 code:

http://perlmonks.org/index.pl?node_id=451398

Reading S04, it seems that there are no implicit
blocks around control structures, so p5 code like:

while ( my @array = $ref-() ) { ... }

would scope my @array appropriately, it will not in p6

The solution is formal parameters.  The trouble is I
can't seem to find a good example in S04 that matches
what I am trying to do.

while $ref() - @array { ... }

is what I think it might be modeling it after the for
loop, but the closest thing I see for while is:

while =$*IN - $line {...}

I am happy to write tests to get the appropriate
functionality in Pugs, but I am not sure what is
appropriate???

Cheers,
Joshua Gatcomb
a.k.a. L~R



__
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 


Re: [perl #33642] [PATCH] Change working directory for parrotbench.pl

2005-01-03 Thread Joshua Gatcomb
--- Matt Diephouse [EMAIL PROTECTED]
wrote:

 # New Ticket Created by  Matt Diephouse 
 # Please include the string:  [perl #33642]
 # in the subject line of all future correspondence
 about this issue. 
 # URL:

http://rt.perl.org:80/rt3/Ticket/Display.html?id=33642
 
 
 
 parrotbench.pl currently cd's into the benchmark
 directory before 
 running the benchmarks. This patch changes the
 program to run them from 
 its own directory. I've done this because many of
 the benchmarks need 
 to be run from the root parrot directory. This has
 been causing some 
 problems for the performance stats.

This is because there is no smart find yet for
.include statements.  I have been out of the loop
since  late November and will likely continue to be. 
I was hoping making the benchmarks part of the test
suite my prompt some one with tuits to fix this.  It
may be that the fix itself is a design decision and
there is as of yet no ruling.

 
 Joshua Gatcomb should comment on whether or not this
 should be applied. 

Apply away.  I have held off making any modifications
waiting on another design decision.  Leo opened up a
ticket on this script because it used a non-core Perl
module.  I listed a dozen or so other non-core Perl
dependencies in other scripts and asked what was the
proper way to handle it with no definitive answer.

Personally, my feeling is that anything not required
to configure, compile, install, or run Parrot should
be allowed to have non-core dependencies as a
usr/contrib.

You can run the benchmarks without the script - it
just makes automating them and getting pretty output
easier.

 Either way, it'll be used for a local copy of
 parrotbench.pl on the 
 stats server.

Thanks! I haven't looked at the stats for a month - I
hope we are doing great.

 
 --
 matt diephouse
 http://matt.diephouse.com


Cheers
Joshua Gatcomb
a.k.a. Limbic~Region



__ 
Do you Yahoo!? 
Send a seasonal email greeting and help others. Do good. 
http://celebrity.mail.yahoo.com


Fwd: Re: Parrot BASIC

2004-11-16 Thread Joshua Gatcomb
All,
Please read Clinton's reply - especially the part
about being blocked from the list for about a year.

Cheers,
Joshua Gatcomb
a.k.a. Limbic~Region


--- Clinton A. Pierce [EMAIL PROTECTED] wrote:

 Date: Tue, 16 Nov 2004 11:34:05 -0500
 To: Joshua Gatcomb [EMAIL PROTECTED]
 From: Clinton A. Pierce [EMAIL PROTECTED]
 Subject: Re: Parrot BASIC
 CC: [EMAIL PROTECTED]
 
 At 12:54 PM 11/15/2004 -0800, Joshua Gatcomb wrote:
 Clinton,
 William Coleda has updated Parrot BASIC enough to
 get
 wumpus and screen working, albeit not entirely
 cleanly.  In IRC, it was mentioned by Dan that we
 should be automating some BASIC tests as part of
 the
 test suite.  We were wondering what your thoughts
 on
 it were and if you plan on continuing maintenance?
 
 And just to be clear for those reading at
 homejust
 because I am asking doesn't mean I am volunteering.
 
 I've been neglectful in taking care of this, sure. 
 A few things to note:
 
 * I've been unable to post to p6i for over a year
 now.  My mail-relay for 
 my ISP (Comcast) and my hosted domain (geeksalad)
 has been on a blacklist 
 for sending to perl.org for quite a while.  I can't
 move my domain till Feb 
 at the inside, and don't have another mail option
 handy.  Not being able to 
 write to p6i dampens enthusiasm for the project a
 bit.  (You'll note the 
 cc'd copy probably won't reach P6I.  Feel free to
 forward it to them.)
 
 * Originally it was an interesting hack for the
 infant Parrot (before PIR, 
 in the spirit of TinyBASIC), then a little more
 serious hack (look, a 
 QuickBASIC that plays chess in color!), but since
 there's a plethora of 
 other languages it has lost its hack value.  Is
 there a need beyond the 
 initial hacks?  If so, then I'm still interested
 because...
 
 * It should probably be re-written by someone who
 understands parsers and 
 writing real language compilers.  I'm willing to
 learn (I'd love to 
 learn!), but I'm going to need to pester the hell
 out of someone every now 
 and then for help.  This is step 0 in making it
 supportable.
 
 * Step 1, of course, is to write tests.  Since it
 was a hack, and the test 
 framework was iffy at the time of the first hack, I
 never really got around 
 to it.  About the time that I did (6/2003) I lost
 the ability to post to P6I.
 
 So I'd be willing to work, when I have tuits (I get
 them now and 
 again).  If there's a need and someone willing to
 coach...
 
 
 




__ 
Do you Yahoo!? 
The all-new My Yahoo! - Get yours free! 
http://my.yahoo.com 
 



Parrot BASIC

2004-11-15 Thread Joshua Gatcomb
Clinton,
William Coleda has updated Parrot BASIC enough to get
wumpus and screen working, albeit not entirely
cleanly.  In IRC, it was mentioned by Dan that we
should be automating some BASIC tests as part of the
test suite.  We were wondering what your thoughts on
it were and if you plan on continuing maintenance?

And just to be clear for those reading at homejust
because I am asking doesn't mean I am volunteering.

Cheers
Joshua Gatcomb
a.k.a. Limbic~Region 



__ 
Do you Yahoo!? 
The all-new My Yahoo! - Get yours free! 
http://my.yahoo.com 
 



Intermittently Failing Benchmarks

2004-11-04 Thread Joshua Gatcomb
All:
In collecting the historical data for the benchmark
statistics and graphs, I discovered that there were a
few days where I had to play the CVS time game to get
a working parrot for that day.  I expected this.

What I have found interesting though is when
individual benchmarks don't work.  For instance, from
10/20 to 10/22, gc_generations and gc_header_reuse
would just hange (still running after 10 minutes). 
Last night (11/3 at 23:59) addit2.imc is doing the
same thing.  I checked a up to the minute checkout and
it is finishing now - but there is no printed output.

So I have 2 questions:
1.  Would people prefer missing data for benchmarks
where they won't work or a manually entered high
number to draw attention to them?
2.  Should we be checking that the output of the
benchmarks (right or wrong) is consistent?

Cheers
Joshua Gatcomb
a.k.a. Limbic~Region



__ 
Do you Yahoo!? 
Check out the new Yahoo! Front Page. 
www.yahoo.com 
 



Re: Performance Statistics (and Graphs!)

2004-11-03 Thread Joshua Gatcomb
 At 11:08 PM -0800 11/2/04, Jeff Clites wrote:
 On Nov 2, 2004, at 7:10 PM, Matt Diephouse wrote:
 
 Joshua Gatcomb and I have been working a little
 under a week to set up
 an automated build system for parrot that tracks
 performance (with
 help from Dan's box). We have collected benchmark
 data for regular and
 optimized builds with and without JIT from June
 1st through October.
 
 With some help from Perl and GD, we've up several
 pages of graphs:
 
http://www.sidhe.org/~timeparrot/graphs/
 
 Both the build process and the creation of the
 graphs will (hopefully)
 be run daily (automated). There are plans to do
 some other things with
 the data as well (some notification scripts).
 
 Very cool. A useful thing to do would be to
 preserve all of the 
 builds, so that newly-created benchmarks could be
 back-filled. (That 
 way, if we realize that we've not been effectively
 testing 
 something, we can devise an appropriate benchmark,
 and evaluate the 
 consequences of past design changes against it.)
 
Actually, we already thought of that.  We were
thinking more along the lines of people wanting to
check other run-time cores (such as computed goto).  
To save on disk space, the executables are stripped
and bzip2'd, but we can go back easily to any previous
point in the 5 month window if we want.

Cheers
Joshua Gatcomb
a.k.a. Limbic~Region



__ 
Do you Yahoo!? 
Check out the new Yahoo! Front Page. 
www.yahoo.com 
 



Solicitation of Ideas for Performance Statistics and Graphs

2004-11-03 Thread Joshua Gatcomb
All:
Matt Diephouse and I spent the majority of our time
coming up with a flexible design and gathering
historical statistics.  We didn't spend a lot of time
in how to present the data since everybody has their
own opinion (including us).

What we would like to do is determine if what we have
done so far is sufficient or, if not, what
specifically
people would like to see.  Some of our unimplemented
ideas so far are:

1.  Include the computed goto core
2.  Summary of results over N week(s)/month(s)
3.  Provide user form for dynamic results
If people would like this, they also need to
indicate what the form should provide:
(benchmark name, date, executable, etc)
4.  Provide HTML table of data for some/all of graphs
5.  Provide links for people to work locally
A.  A db schema/structure dump so people can
collect statistics on other architectures
B.  Source code
C.  daily db dump

If you would like to see any of these ideas
implemented, or you have some of your own - please
respond to this on the list.

While Matt and I are likely to do some of the work, we
are always open to volunteers as well.  In fact, if
this idea generates a lot of buzz, we may cross post
to other Perl forums such as PerlMonks
(http://www.perlmonks.org).  This is a perfect way for
non C programmers and those who have no knowledge of
Parrot to still contribute in a meaningful way.

Cheers
Joshua Gatcomb
a.k.a. Limbic~Region

__
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 


Re: Install-Problem

2004-10-27 Thread Joshua Gatcomb

--- Alberto Manuel Brandão Simões
[EMAIL PROTECTED] wrote:

 Not stoping.. just compiling the computed-gotos C
 file. It take s alot 
 of times, specially if you have a... old machine ;)
 
 There is some way to turn that off.
 Surelly someone will answer you soon with it :)

pass the --cgoto=0 flag to Configure.pl.  I also have
RH 9.0 and would love someone to confirm that make
testj will fail on 3 tests (unless you additionally
pass it another flag).  Interestingly enough - the
same failure ocurrs on Cygwin.

 Kind regards,
 Alberto


Cheers
Joshua Gatcomb
Limbic~Region





__
Do you Yahoo!?
Yahoo! Mail - You care about security. So do we.
http://promotions.yahoo.com/new_mail


Re: ICU failure on RedHat

2004-10-22 Thread Joshua Gatcomb
--- Leopold Toetsch [EMAIL PROTECTED] wrote:

 Joshua Gatcomb [EMAIL PROTECTED] wrote:
  All tests pass normally, but I get 3 tests
 failing
  under JIT
 
  t/op/interp.t #7
  t/pmc/coroutine.t #10
  t/pmc/exception.t #19
 
  ok, so I did investigate a little further.  make
 testj
  works fine (all tests pass) if I don't pass the
  --optimize flag to Configure.pl.
 
 No problem here with --optimize and make testj. Yet
 another DeadRat
 problem?

Ok - I have isolated things a bit more on a fresh
checkout of about 20 minutes ago.
1.  plain Configure.pl - make testj (all pass)
2.  Configure.pl --optimize - make testj (3 fail)
3.  Configure.pl --optimize
--ccflags='fomit-frame-pointer' (all pass)

And the JIT problems have nothing to do with why a
system ICU breaks things entirely.

I am going to upgrade gcc 3.2.2 to 3.4.2 to see if it
makes a difference.

 leo

Cheers
Joshua Gatcomb
a.k.a. Limbic~Region 




__
Do you Yahoo!?
Take Yahoo! Mail with you! Get it on your mobile phone.
http://mobile.yahoo.com/maildemo 


Re: ICU failure on RedHat

2004-10-22 Thread Joshua Gatcomb
--- Andy Dougherty [EMAIL PROTECTED] wrote:
  ICU libs are in /usr/local/lib
 
  /usr/local/lib is in my path
 
 Which path?  Do  you mean LD_LIBRARY_PATH or do
 you mean PATH?
 
 PATH is irrelevant.  That's the set of directories
 used by /bin/sh
 (or equivalent) to find executable programs.

I know that.  You know that.  Cygwin doesn't know
that.  It was one of the many oddities I found when
working with Cygwin.  Unfortunately, after working
with it for a year, I had re-programmed my brain.

 
 This looks to me like a LD_LIBRARY_PATH issue.  One
 simple fix
 is to set the environment variable
   LD_LIBRARY_PATH=/usr/local/lib
   export LD_LIBRARY_PATH
 (in Bourne shell syntax).
 
 Does that help?

This indeed corrects this problem.

 Andy Dougherty[EMAIL PROTECTED]

Salamat!
Joshua Gatcomb
a.k.a. Limbic~Region



___
Do you Yahoo!?
Declare Yourself - Register online to vote today!
http://vote.yahoo.com


Re: ICU failure on RedHat

2004-10-21 Thread Joshua Gatcomb

--- Joshua Gatcomb [EMAIL PROTECTED]
wrote:

 
 1.  Transfer ICU 3.0 and build from source
 2.  Do a fresh CVS checkout of parrot, transfer and
 build
 
 $ perl Configure.pl --optimize
 configure all goes well
 
 $ make
 all goes well until parrot is linked
 
 c++ -o parrot -L/usr/local/lib -Wl,-E -g imcc/main.o
 blibl/lib/libparrot.a -lnsl -ldl -lm -lpthread
 -lcrypt
 -lutil -lrt -lgmp -lpthread -lm -L/usr/local/lib
 -licuuc -licudata -lpthread -lm
 
 ./parrot -o runtime/parrot/include/parrotlib.pbc
 runtime/parrot/library/parrotlib.imc
 
 ./parrot:  error while loading shared libraries: 
 libicuuc.so.30: cannot open shared object file:  No
 such file or directory
 make: *** [runtime/parrot/include/parrotlib.pbc]
 Error
 127

Oddly enough, it works if I don't use a system ICU. 
All tests pass normally, but I get 3 tests failing
under JIT

t/op/interp.t #7
t/pmc/coroutine.t #10
t/pmc/exception.t #19

I haven't investigated further as I am still confused
as to why a system ICU would fail.

Cheers
Joshua Gatcomb
a.k.a. Limbic~Region






Re: ICU failure on RedHat

2004-10-21 Thread Joshua Gatcomb

--- Joshua Gatcomb [EMAIL PROTECTED]
wrote:

 
 --- Joshua Gatcomb [EMAIL PROTECTED]
 wrote:
 
  
  1.  Transfer ICU 3.0 and build from source
  2.  Do a fresh CVS checkout of parrot, transfer
 and
  build
  
  $ perl Configure.pl --optimize
  configure all goes well
  
  $ make
  all goes well until parrot is linked
  
  c++ -o parrot -L/usr/local/lib -Wl,-E -g
 imcc/main.o
  blibl/lib/libparrot.a -lnsl -ldl -lm -lpthread
  -lcrypt
  -lutil -lrt -lgmp -lpthread -lm -L/usr/local/lib
  -licuuc -licudata -lpthread -lm
  
  ./parrot -o runtime/parrot/include/parrotlib.pbc
  runtime/parrot/library/parrotlib.imc
  
  ./parrot:  error while loading shared libraries: 
  libicuuc.so.30: cannot open shared object file: 
 No
  such file or directory
  make: *** [runtime/parrot/include/parrotlib.pbc]
  Error
  127
 
 Oddly enough, it works if I don't use a system ICU. 
 All tests pass normally, but I get 3 tests failing
 under JIT
 
 t/op/interp.t #7
 t/pmc/coroutine.t #10
 t/pmc/exception.t #19

ok, so I did investigate a little further.  make testj
works fine (all tests pass) if I don't pass the
--optimize flag to Configure.pl.  


Cheers
Joshua Gatcomb
a.k.a. Limbic~Region






Re: ICU failure on RedHat

2004-10-21 Thread Joshua Gatcomb
--- Joshua Gatcomb [EMAIL PROTECTED]
wrote:
 
 ok, so I did investigate a little further.  make
 testj
 works fine (all tests pass) if I don't pass the
 --optimize flag to Configure.pl.  

Ok, so optimizations break things - why not add more. 
Interestingly, adding more aggressive options make it
start working.

--ccflags='-march=i686 -O3 -s -funroll-loops
-fomit-frame-pointer' --debugging=0

everything works again (and is quite fast).

My guess was -march=i686

In IRC Dan said it might be a faulty assumption on our
part or on gcc's.  

The gcc that ships with RH9 was 3.2.2 fwiw

Cheers
Joshua Gatcomb
a.k.a. Limbic~Region






Re: Perl 6 Summary for 2004-10-01 through 2004-10-17

2004-10-19 Thread Joshua Gatcomb
--- Matt Fowles [EMAIL PROTECTED] wrote:

 Joshua Gatcomb  accidentally introduced a dependency
 on
 Config::IniFiles.  Since it is implemented in pure
 perl he offered to
 add it to the repository.  Warnock applies.
 
 http://xrl.us/div3

In the note offering to fix it, I also listed numerous
other scripts with non-core dependencies.  Dan, in
IRC, indicated that they all should have tickets on
them.  Before fixing parrotbench.pl with one of the
following solutions:
1.  inline Config::IniFiles with the author's
permission
2.  Use some other core module if possible
3.  Roll my own
4.  Revert back to previous non-module version

I want to find out what the general guidance is and
try to be inline with that - warnock still applies

 = Threads on Cygwin
 
 Joshua Gatcomb discovered some trouble with threads
 on Cygwin.  It
 seems that there are problems with both the thread
 implementation, and
 the tests not be generous enough if accepting out of
 order input. 
 Still unresolved, I think.
 
 http://xrl.us/div5

The threading issue is resolved by upgrading
cygwin1.dll (see PLATFORMS).  The test output being
controlled using sleep statements instead of using
regexes is still unresolved.

 = Cygwin bugs
 
 Joshua Gatacomb has been fighting with Cygwin
 getting Parrot to work. 
 Apparently we trip a few of its bugs.  Read more if
 you like.
 
 http://xrl.us/diwz
 http://xrl.us/diw2
 http://xrl.us/diw3

Gatacomb ne Gatcomb.  That is what my drill
sergeant in the Army used to call me though ;-)  There
are plenty of Cygwin issues but I have swatted
everyone I have discovered so far.  That being said -
I am going to be giving mingw a go and leaving Cygwin
alone for a while.


 == Perl 6 Summaries
 
 Piers raised the white flag after several years as a
 wonderful
 summarizer.  Having now just finished my first
 summary

Thank you for stepping up to the plate - good job

Joshua Gatcomb
a.k.a. Limbic~Region

__
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 


Re: [perl #31910] ICU bug with fresh CVS Checkout

2004-10-09 Thread Joshua Gatcomb

--- Jens Rieks [EMAIL PROTECTED] wrote:

  c++ -o parrot -L/usr/local/lib  -g  imcc/main.o
 blib/lib/libparrot.a   -lm
  -lpthread -lm -L/usr/local/lib  -licuuc  -lpthread
 -lm ld: warning can't
  open dynamic library: libicudata.dylib.30
 (checking for undefined symbols
  may be affected) (No such file or directory, errno
 = 2) ld: Undefined
  symbols:
  _icudt30_dat referenced from libicuuc.dylib.30
 expected to be defined in
  libicudata.dylib.30 make: *** [parrot] Error 1
 
 does
 
 c++ -o parrot -L/usr/local/lib  -g  imcc/main.o
 blib/lib/libparrot.a   -lm 
 -lpthread -lm -L/usr/local/lib  -licuuc
 -licudata -lpthread -lm
 
 work?

My bet is that it will.  It looks like the same bug I
reported right after auto-detecting a system ICU went
in.  My solution was to just continue telling it about
my system ICU and not let it try to figure it out.

perl Configure.pl --icuheaders=/usr/local/include
--icushared='-L/usr/local/lib -lcygicuuc -lcygicudt'
 
 jens
 

Joshua Gatcomb
a.k.a. Limbic~Region




__
Do you Yahoo!?
Take Yahoo! Mail with you! Get it on your mobile phone.
http://mobile.yahoo.com/maildemo 


Re: Update to Cygwin fixed the weird math JIT bugs

2004-10-06 Thread Joshua Gatcomb
--- Leopold Toetsch [EMAIL PROTECTED] wrote:
 Can you provide a summary line (or two) for
PLATFORMS
 which Cygwin is doing what.

I know you only asked for 1 or two lines but I wanted
to give some context as I think it is important:

The following applies to cygwin-1.5.11-1 running on
Win2K/XP

B8 flags:
CGOTO:Y
JIT:  Y
EXEC: N
Threads:  Y*
Signals:  Y**
Compiles: Y
Tests:Y***
Date: 20041006

* You need to enable the threading tests by adding
cygwin to t/pmc/threads.t though a handful of tests
will fail due to an outstanding IO issue likely caused
by Cygwin

** You need to enable the signal tests by adding
cygwin to t/pmc/signals.t

*** The only failing tests are if you enable the
threading tests as annotated above

 leo

I used to have Win ME to test but no longer so I don't
know what 9x/ME would turn up

Joshua Gatcomb
a.k.a. Limbic~Region

__
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 


Another Update to threads/IO problem on Cygwin

2004-10-06 Thread Joshua Gatcomb
I happened to have found the last cygwin1.dll lying
around in /tmp that I kept as a backup.  I swapped it
with the current cygwin1.dll just to see if it would
make the IO problem go away and much to my happy
surprise - it did.

Details:
cygwin1.dll-1.5.10-3 - previous stable build, works
great
cygwin1.dll-1.5.11-1 - current stable build, blows up

I will be pinging the Cygwin list momentarily to see
if they have any insight.

Cheers
Joshua Gatcomb
a.k.a. Limbic~Region



___
Do you Yahoo!?
Declare Yourself - Register online to vote today!
http://vote.yahoo.com


Re: Another Update to threads/IO problem on Cygwin

2004-10-06 Thread Joshua Gatcomb
--- Joshua Gatcomb [EMAIL PROTECTED]
wrote:

 I happened to have found the last cygwin1.dll lying
 around in /tmp that I kept as a backup.  I swapped
 it
 with the current cygwin1.dll just to see if it would
 make the IO problem go away and much to my happy
 surprise - it did.
 
 Details:
 cygwin1.dll-1.5.10-3 - previous stable build, works
 great
 cygwin1.dll-1.5.11-1 - current stable build, blows
 up
 
 I will be pinging the Cygwin list momentarily to see
 if they have any insight.

I didn't get a response from the Cygwin list, but I
asked one of the Cygwin knowledgeable monks at the
Monastery (http://www.perlmonks.org).  They indicated
there was a major problem with 1.5.11-1 with threads
losing output (my problem exactly) and that it was
corrected with one of the latest snapshots
(http://cygwin.com/snapshots/).  I downloaded it and
tried it - everything is working great.

make test  - all tests pass
make testj - all tests pass

Both work even with some aggressive optimizations
passed to Configure.pl

All is once again right in the world ;-)

Cheers
Joshua Gatcomb
a.k.a. Limbic~Region


__
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 


Re: Update to Cygwin fixed the weird math JIT bugs

2004-10-06 Thread Joshua Gatcomb
--- Joshua Gatcomb [EMAIL PROTECTED]
wrote:
 Threads:  Y*
 Tests:Y***
 
 * You need to enable the threading tests by adding
 cygwin to t/pmc/threads.t though a handful of tests
 will fail due to an outstanding IO issue likely
 caused
 by Cygwin
 
 *** The only failing tests are if you enable the
 threading tests as annotated above

If you update cygwin1.dll from
http://cygwin.com/snapshots/ all tests pass

Joshua Gatcomb
a.k.a. Limbic~Region


__
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 


Update to Threads/IO issue on Cygwin

2004-10-06 Thread Joshua Gatcomb
Since all the tests were passing in the past, I
decided to play the CVS game to find exactly when/what
changed.

Good news is - nothing to do with Parrot

Bad news is - it means it was an upgrade to Cygwin,
which I also do on a daily basis.  I have no way of
tracking down what changed but I could ping the Cygwin
list if anyone thinks it might help.

Cheers,
Joshua Gatcomb
a.k.a. Limbic~Region



___
Do you Yahoo!?
Declare Yourself - Register online to vote today!
http://vote.yahoo.com


Update to Cygwin fixed the weird math JIT bugs

2004-10-06 Thread Joshua Gatcomb
While it has introduced a new IO bug that is failing a
handful of threads tests, it also appears to have
fixed a different bug where some of the trigonomic
functions would blow up under JIT.

Cheers,
Joshua Gatcomb
a.k.a. Limbic~Region



___
Do you Yahoo!?
Declare Yourself - Register online to vote today!
http://vote.yahoo.com


Re: Towards 0.1.1 - timetable

2004-10-05 Thread Joshua Gatcomb

--- Leopold Toetsch [EMAIL PROTECTED] wrote:

 - nice release name wanted

Poicephalus

Overall temperament: As a whole have an endearing
quality. They have the potential to be very good, well
socialized. They are not noisy and raucous nor do they
scream for attention. They are able to speak with
large vocabularies. Their voice is somewhat
computerized, yet very understandable. For the most
part they are affectionate and enjoy being cuddled and
scratched. They are active birds and need a variety of
toys for entertainment. They need interacting time
with their keeper on a regular basis.
 
 leo
 
 
Cheers
Joshua Gatcomb
a.k.a. Limbic~Region

__
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 


Re: Threads on Cygwin

2004-10-03 Thread Joshua Gatcomb

--- Jens Rieks [EMAIL PROTECTED] wrote:

 On Saturday 02 October 2004 12:49, Leopold Toetsch
 wrote:
  Does this patch help?
 No, it makes things worse:

Actually it doesn't.  There is something wrong with
threads_6.pasm as my output for the test doesn't
change with or without the patch and yet one passes
and the other doesn't.  Judging from the actual code
it is supposed to print done in there somewhere and
it doesn't.  Test 6 is one of the few that has a regex
for checking output :

/(done\nthread\n)|(thread\ndone\n)/

So I am rather confused as to why it is passing
without the patch since it only ever prints thread

 jens
Joshua Gatcomb
a.k.a. Limbic~Region



__
Do you Yahoo!?
Yahoo! Mail - 50x more storage than other providers!
http://promotions.yahoo.com/new_mail


Re: Threads on Cygwin

2004-10-01 Thread Joshua Gatcomb
--- Leopold Toetsch [EMAIL PROTECTED] wrote:

 Joshua Gatcomb [EMAIL PROTECTED] wrote:
  ... only 1 of the
  two messages is displayed
 
 I've fixed a flaw in the IO flush code. Please try
 again, thanks.

Still not working, but thanks!  The behavior has
changed a bit though.

Here is the behavior prior to the fix - notice the
location of the sleep statement

Case 1:
(as checked out)
$ cat t/pmc/threads_2.pasm  snipped
set I3, 1
invoke  # start the thread

sleep 1
print main 
print I5

$ ./parrot t/pmc/threads_2.pasm
thread 1

Case 2:
(remove sleep all together)

$ ./parrot t/pmc/threads_2.pasm
main 10
thread 1

Case 3:
$ cat t/pmc/threads_2.pasm snipped
invoke  # start the thread

print main 
sleep 1
print I5

$ ./parrot t/pmc/threads_2.pasm
main 10

After the change - case 3 now prints thread 1.

You mentioned in the previous email that you were
interested in knowing if this was Windows IO or the
Cygwin variant.  I would love to give you that
information, but color me clueless.
 
 leo
 
Joshua Gatcomb
a.k.a. Limbic~Region




___
Do you Yahoo!?
Declare Yourself - Register online to vote today!
http://vote.yahoo.com


Re: [perl #31785] [BUG] non-standard Perl module dependency

2004-10-01 Thread Joshua Gatcomb
--- Leopold Toetsch
[EMAIL PROTECTED] wrote:

 # New Ticket Created by  Leopold Toetsch 
 # Please include the string:  [perl #31785]
 # in the subject line of all future correspondence
 about this issue. 
 # URL:

http://rt.perl.org:80/rt3/Ticket/Display.html?id=31785
 
 
 
 $ perl tools/dev/parrotbench.pl
 
 Can't locate Config/IniFiles.pm in @INC (...

I am responsible for this and am sorry.

I plead ignorance.  The only restriction I was aware
of was version of Perl and Config::IniFiles requires
5.004 which I was informed was acceptable when I asked
#parrot.

In fact, I remember searching to see if there were
other non-core modules being used as a precedent,
which there were.  Here are some others that may need
tickets as well:
ModuleScript
C::Scan   tools/dev/run_indent.pl
Digest::Perl::MD5 build_tools/fingerprint_c.pl
Digest::Perl::MD5 tools/dev/pbc_header.pl
Parse::RecDescent various language directories
YAML  various language directories
Regexp::Common   
tools/dev/extract_file_descriptions.pl
Storable  examples/benchmarks/freeze.pl (not
in core until 5.007)
Text::Balancedbuild_tools/c2str.pl (not in core
until 5.007)
Time::HiRes   examples/benchmarks/freeze.pl (not
in core until 5.007)
 
 leo
 
 

Since Config::IniFiles is pure perl, I could easily
copy/paste the module (with due credit given) if that
is the approach we want to take.  I could write my own
parsing code if that would be more desired.  We could
revert back to the previous version which did not have
the requirement.

Just let me know

Joshua Gatcomb
a.k.a. Limbic~Region



___
Do you Yahoo!?
Declare Yourself - Register online to vote today!
http://vote.yahoo.com


Re: Threads on Cygwin

2004-10-01 Thread Joshua Gatcomb
--- Leopold Toetsch [EMAIL PROTECTED] wrote:

 Joshua Gatcomb [EMAIL PROTECTED] wrote:
 
  After the change - case 3 now prints thread 1.
 
 Strange.

indeed
 
  You mentioned in the previous email that you were
  interested in knowing if this was Windows IO or
 the
  Cygwin variant.  I would love to give you that
  information, but color me clueless.
 
 S/Cygwin/unix/
 
 Have a look at the defines in include/parrot/io.h.
 It's not quite
 visible which one is active w/o debugger, but you
 could insert some
 print statements in io/io.c:PIO_init_stacks(), where
 there are explicit
 cases for PIO_OS_*.

s/S/s/

PIO_OS_UNIX is the one defined and now parrot squawks
Polly wanna Unix everytime I run it ;-)

Now what?

 
  Joshua Gatcomb
 
 leo

Joshua Gatcomb
a.k.a. Limbic~Region



__
Do you Yahoo!?
New and Improved Yahoo! Mail - Send 10MB messages!
http://promotions.yahoo.com/new_mail 


Re: Threads on Cygwin

2004-09-30 Thread Joshua Gatcomb
--- Leopold Toetsch [EMAIL PROTECTED] wrote:

 Joshua Gatcomb [EMAIL PROTECTED]
wrote:
 I had submitted a patch some time ago that never
got
 applied enabling tests for threads, timer, and
 extend_13.

 Overlooked? Please rediff and resend.

I will do - likely tomorrow.

  It says at the bottom that the output could appear
  in reversed order and so I am guessing the sleep
  statement is to ensure that it comes out in the
  proper order.
 
 The sleep is of course a hack only and wrong. The
 real thing todo is to convert the test result into a
 regexp that allows both orderings.

I agree, but that doesn't explain why only 1 of the
two messages is displayed to the screen when the sleep
statement is present.  I don't want to brush a bug
under the rug.  If one thread finishes before the
other thread gets to a print statement, the print does
not appear on the screen at all.
 
 leo

Joshua Gatcomb
a.k.a. Limbic~Region 




__
Do you Yahoo!?
Yahoo! Mail - 50x more storage than other providers!
http://promotions.yahoo.com/new_mail


Re: System ICU

2004-09-29 Thread Joshua Gatcomb
--- Jens Rieks [EMAIL PROTECTED] wrote:

 Hi all,
 
 Configure.pl should now detect a system ICU
 installation. It uses the 
 icu-config script to gather the neccessary
 information. If icu-config is not 
 in your path, you can use the
 --icu-config=/path/to/icu-config configure 
 option. You do not need to specifiy any other ICU
 related options in this 
 case.

This broke for me:
c++ -o parrot.exe -s -L/usr/local/lib   imcc/main.o
blib/lib/libparrot.a   -lcrypt -lgmp -lpthread -lm
-L/usr/local/lib -licui18n -licuuc -licudata -lpthread
-lm
/usr/lib/gcc-lib/i686-pc-cygwin/3.3.3/../../../../i686-pc-cygwin/bin/ld:
cannot find -licui18n

I would propose that if Configure.pl does see any
other icu config flags that it not attempt to auto
configure.
 
 You can use --icu-config=none if you want do disable
 the autodetect feature.

That's what I am doing for now
 
 jens
 
Joshua Gatcomb
a.k.a. Limbic~Region



__
Do you Yahoo!?
Yahoo! Mail - 50x more storage than other providers!
http://promotions.yahoo.com/new_mail


Re: System ICU

2004-09-29 Thread Joshua Gatcomb

--- Jens Rieks [EMAIL PROTECTED] wrote:

 On Wednesday 29 September 2004 18:40, Joshua Gatcomb
 wrote:
  cannot find -licui18n
 I am not sure, is this library used by parrot?

I have no idea - first I have seen it other than when
I built ICU many moons ago.
 
  I would propose that if Configure.pl does see any
  other icu config flags that it not attempt to auto
  configure.
 Done. Thank you for your proposal!

Thanks/Welcome
 
 jens

Joshua Gatcomb
a.k.a. Limbic~Region 




__
Do you Yahoo!?
Yahoo! Mail Address AutoComplete - You start. We finish.
http://promotions.yahoo.com/new_mail 


Threads on Cygwin

2004-09-29 Thread Joshua Gatcomb
Up until a couple of weeks ago, all the threads tests
were passing on Cygwin.  I had submitted a patch some
time ago that never got applied enabling tests for
threads, timer, and extend_13 that never got applied. 
I figured there was good reason so I didn't say
anything about the tests failing except an occasional
that's weird on #parrot.

So today I decide to look at threads_2.pasm

It says at the bottom that the output could appear in
reversed order and so I am guessing the sleep
statement is to ensure that it comes out in the proper
order.

So - why is the test failing?  Because the second
print statement never makes it to the screen.

If I remove the print statement entirely, I see both
things in the reverse expected order.

If I place the sleep statement after the main thread
print then all I get to the screen is the that and not
the print statement from thread 1

It is almost as if by the time the time the second
print happens, the filehandle is already closed


So - since threads aren't officially supposed to be
working on Cygwin - is this something I should care
about or not?

Cheers
Joshua Gatcomb
a.k.a. Limbic~Region



__
Do you Yahoo!?
Yahoo! Mail - 50x more storage than other providers!
http://promotions.yahoo.com/new_mail


Re: Threads on Cygwin

2004-09-29 Thread Joshua Gatcomb
--- Joshua Gatcomb [EMAIL PROTECTED]
wrote:

 Up until a couple of weeks ago, all the threads
 tests
 were passing on Cygwin.  I had submitted a patch
 some
 time ago that never got applied enabling tests for
 threads, timer, and extend_13 that never got
 applied. 
 I figured there was good reason so I didn't say
 anything about the tests failing except an
 occasional
 that's weird on #parrot.
 
 So today I decide to look at threads_2.pasm
 
 It says at the bottom that the output could appear
 in
 reversed order and so I am guessing the sleep
 statement is to ensure that it comes out in the
 proper
 order.
 
 So - why is the test failing?  Because the second
 print statement never makes it to the screen.
 
 If I remove the print statement entirely, I see both
 things in the reverse expected order.
 
 If I place the sleep statement after the main thread
 print then all I get to the screen is the that and
 not
 the print statement from thread 1
 
 It is almost as if by the time the time the second
 print happens, the filehandle is already closed
 
 
 So - since threads aren't officially supposed to be
 working on Cygwin - is this something I should care
 about or not?
 
 Cheers
 Joshua Gatcomb
 a.k.a. Limbic~Region
 

In summary, all code in all threads runs to completion
but whichever thread finishes last can't print to the
screen

$ perl t/harness --gc-debug --running-make-test -b
t/pmc/threads.t
Failed 7/11 tests, 36.36% okay (less 2 skipped
tests: 2 okay, 18.18%)
Failed Test Stat Wstat Total Fail  Failed  List of
Failed
---
t/pmc/threads.t7  1792117  63.64%  2-3 5-9
2 subtests skipped.
Failed 1/1 test scripts, 0.00% okay. 7/11 subtests
failed, 36.36% okay.




__
Do you Yahoo!?
Read only the mail you want - Yahoo! Mail SpamGuard.
http://promotions.yahoo.com/new_mail 


Parrot 0.1.0 still?

2004-09-09 Thread Joshua Gatcomb
We haven't had a new release since Feb 29th.

From what I have seen from the various on-line forums,
newcomers aren't aware of the progress since then.

The latest round of discussion appears to have
resulted in the following guidelines from our fearless
leader:

1.  Divorce internals from interface.
2.  Add what's missing.
3.  Fix what's broke.
4.  Delay optimizing working code in favor of 2  3.

Since the usual purpose of a point release is to have
features finished and bugs squashed, it may be a good
time for another release.

What say you?

Cheers
Joshua Gatcomb
a.k.a. Limbic~Region



__
Do you Yahoo!?
Yahoo! Mail Address AutoComplete - You start. We finish.
http://promotions.yahoo.com/new_mail 


Re: NCI test 2 failing - but I know why

2004-09-01 Thread Joshua Gatcomb

--- Bernhard Schmalhofer
[EMAIL PROTECTED] wrote:
 Printing a initialised ParrotLibrary currently gives
 you the '_filename' 
 property. This is highly platform dependent, and
 therefore hard to test.
 
 I could rewrite the test and check only, that the
 stringified 
 ParrotLibrary contains the substring 'nci'. My guess
 is, that this 
 should work on all platforms so far.
 
 CU, Bernhard

Well, I seem to be the only one noticing it and the
good thing is that it is the test itself, and not what
is being tested that is b0rk.  I would think
portability is a good thing but don't go changing
things on my account yet.  When I get the time, I will
investigate.

Cheers
Joshua Gatcomb
a.k.a. Limbic~Region



__
Do you Yahoo!?
New and Improved Yahoo! Mail - Send 10MB messages!
http://promotions.yahoo.com/new_mail 


Re: NCI Tests Failing

2004-08-27 Thread Joshua Gatcomb
--- Leopold Toetsch [EMAIL PROTECTED] wrote:

 Joshua Gatcomb wrote:
  This might help shed some light:
  
  $ cd t/pmc 
  $ parrot nci_1.pasm
 
 Not really. bash: parrot: command not found  ;)
 You got an old parrot around somewhere in the path?

No - believe it or not I only ever keep 1 version of
parrot around at one time.  It is a PITA when trying
to experiment, but it makes accidents less likely -
for me at least.

Since I know when it stopped working (sometime between
Friday afternoon and Monday morning), I am
backtracking in CVS to find the exact change.

 leo

Cheers
Joshua Gatcomb
a.k.a. Limbic~Region




__
Do you Yahoo!?
New and Improved Yahoo! Mail - Send 10MB messages!
http://promotions.yahoo.com/new_mail 


Re: NCI Tests Failing

2004-08-27 Thread Joshua Gatcomb

--- Dan Sugalski [EMAIL PROTECTED] wrote:

 I can trigger the problem locally, though not with
 the nci tests. 
 (And, indeed, it may not be the NCI tests ultimately
 at fault) The 
 core dump shows things dying in the dod run. GDB's
 backtrace is:
 
 Dan

Ok, I tracked it down to a CVS change of
include/parrot/dynext.h and src/dynext.c made in the
early morning hours on Monday (local time).

Here is the result of the diff:

$ diff include/parrot/dynext.h ../bad/dynext.h
3c3
 * $Id: dynext.h,v 1.5 2004/04/22 08:55:05 leo Exp $
---
 * $Id: dynext.h,v 1.6 2004/08/23 09:09:59 leo Exp $
14a15,20
 /* dynamic lib/oplib/PMC init */
 PMC *
 Parrot_init_lib(Interp *interpreter,
 PMC *(*load_func)(Interp *),
 void (*init_func)(Interp *, PMC *));



and

$ diff src/dynext.c ../bad/dynext.c
3c3
 $Id: dynext.c,v 1.26 2004/05/26 13:04:07 jrieks Exp
$
---
 $Id: dynext.c,v 1.27 2004/08/23 09:10:02 leo Exp $
228a229,263
 Parrot_init_lib(Interp *interpreter,
 PMC *(*load_func)(Interp *),
 void (*init_func)(Interp *, PMC *))
 {
 STRING *type;
 PMC *lib_pmc;

 if (!load_func) {
 /* seems to be a native/NCI lib */
 /*
  * this PMC should better be constant, but
then all the contents
  * and the metadata have to be constant too
  * s. also build_tools/ops2c.pl and
lib/Parrot/Pmc2c.pm
  */
 lib_pmc = pmc_new(interpreter,
enum_class_ParrotLibrary);
 type = const_string(interpreter, NCI);
 }
 else {
 lib_pmc = (*load_func)(interpreter);
 /* we could set a private flag in the PMC
header too
  * but currently only ops files have
struct_val set
  */
 type = const_string(interpreter,
 PMC_struct_val(lib_pmc) ? Ops :
PMC);
 }
 /*
  *  call init, if it exists
  */
 if (init_func)
 (init_func)(interpreter, lib_pmc);

 return lib_pmc;
 }

 PMC *
266a302
 /* get load_func */
272,292c308
 if (!load_func) {
 /* seems to be a native/NCI lib */
 /*
  * this PMC should better be constant, but
then all the contents
  * and the metadata have to be constant too
  * s. also build_tools/ops2c.pl and
lib/Parrot/Pmc2c.pm
  */
 lib_pmc = pmc_new(interpreter,
enum_class_ParrotLibrary);
 type = const_string(interpreter, NCI);
 }
 else {
 lib_pmc = (*load_func)(interpreter);
 /* we could set a private flag in the PMC
header too
  * but currently only ops files have
struct_val set
  */
 type = const_string(interpreter,
 PMC_struct_val(lib_pmc) ? Ops :
PMC);
 }
 /*
  *  call init, if it exists
  */
---
 /* get init_func */
298,299c314,316
 if (init_func)
 (init_func)(interpreter, lib_pmc);
---

 lib_pmc = Parrot_init_lib(interpreter,
load_func, init_func);


If there is anything else I can do to help, please let
me know.

Joshua Gatcomb
a.k.a. Limbic~Region




__
Do you Yahoo!?
New and Improved Yahoo! Mail - 100MB free storage!
http://promotions.yahoo.com/new_mail 


Re: [perl #31302] NCI GC issues

2004-08-27 Thread Joshua Gatcomb

--- Leopold Toetsch [EMAIL PROTECTED] wrote:

 I think I could track it down. It wasn't strictly
 NCI related, though.

I guess you didn't need me to track down the CVS
changes as this fixed the problem - THANKS.

Cheers
Joshua Gatcomb
a.k.a. Limbic~Region



___
Do you Yahoo!?
Win 1 of 4,000 free domain names from Yahoo! Enter now.
http://promotions.yahoo.com/goldrush


Re: Benchmark Stuff

2004-08-26 Thread Joshua Gatcomb
--- Jerome Quelin [EMAIL PROTECTED] wrote:
  - I'm deleting, recreating and repopulating the rrd
 files each time, but this way I'm free regarding 
 Joshua's way of parsing

I am not exactly happy with it myself.  I wanted to
get something out there so people could comment on it.
 The first comment was to try and use parrotbench.pl
instead, so I am doing that.  I have quite a few
changes planned which should make the data more
useable for general purposes.


 Anyway, it works. Now, I'm a bit concerned about the
 frequency: is once  a week is enough?
 Joshua, I don't know if that's possible to run
 benchmarks once a day?

When I first brought this up in IRC, Dan said if I
came up with something to through the stuff into a
database, he would volunteer to set up the automation
of it.  The web page was an afterthought.  I can't
promise everyday because I do this from a work machine
that I don't have permission to schedule jobs for,
but I can say every day I am at work I can do this.

 If you can / think it's ok, then I'll update the
 script to use new values for rrd creation.
 Additionaly, maybe later it would be better to just
 drop the sqlite  database and ue rrd directly?

I still have a few ideas for improving parrotbench.pl.
 When I am done with those, I will confer with you on
getting the storage format worked out.

 Regards,
 Jerome
 -- 
 [EMAIL PROTECTED]

Cheers
Joshua Gatcomb
a.k.a. Limbic~Region



___
Do you Yahoo!?
Win 1 of 4,000 free domain names from Yahoo! Enter now.
http://promotions.yahoo.com/goldrush


NCI Tests Failing

2004-08-26 Thread Joshua Gatcomb
When I came in to work on Monday, there were NCI tests
failing - a lot of them.  I asked around in IRC and it
sounded like other people were having problems too, so
I figured I would wait around because people, to
include Dan, were looking into it.

I haven't heard any recent grumbling so I am wondering
if I am the only one with failing tests now:

Failed Test  Stat Wstat Total Fail  Failed  List
of Failed
---
t/pmc/nci.t28  716835   28  80.00%  1-27
34
t/pmc/perlhash.t1   256361   2.78%  20
2 tests and 53 subtests skipped.
Failed 2/120 test scripts, 98.33% okay. 29/1828
subtests failed, 98.41% okay.
make: *** [test] Error 14


Not that you need to ask, but Cygwin ;-)

Cheers
Joshua Gatcomb
a.k.a. Limbic~Region



___
Do you Yahoo!?
Win 1 of 4,000 free domain names from Yahoo! Enter now.
http://promotions.yahoo.com/goldrush


Re: NCI Tests Failing

2004-08-26 Thread Joshua Gatcomb
--- Leopold Toetsch [EMAIL PROTECTED] wrote:

 Joshua Gatcomb [EMAIL PROTECTED] wrote:
 
  t/pmc/nci.t28  716835   28  80.00% 
 1-27
 
 strange.
 
  t/pmc/perlhash.t1   256361   2.78%  20
 
 Only that one is supposed to fail.
 
 leo

This might help shed some light:

$ cd t/pmc 
$ parrot nci_1.pasm
loaded
dlfunced
ok 1
ok 2

$ parrot --gc-debug nci_1.pasm
Segmentation fault (core dumped)

$ parrot --gc-debug nci_28.pasm
ok 1
ok 2
in callback
user data: 42
external data: succeeded
done.

Though it might also make things more confusing...

Joshua Gatcomb
a.k.a. Limbic~Region




___
Do you Yahoo!?
Win 1 of 4,000 free domain names from Yahoo! Enter now.
http://promotions.yahoo.com/goldrush


Re: parrotbench.pl - massive update (smaller update)

2004-08-26 Thread Joshua Gatcomb
--- Joshua Gatcomb [EMAIL PROTECTED]
wrote:
 Enhancements:
 1.  Should be platform independent now
 2.  Much greater control using ini configuration
 3.  Output is pretty
 4.  Lots of bugs squashed (probably more introduced)

I found a few and have erradicated them.  I also added
some new functionality.  You can now switch between
CPU time and real (wall-clock) time.  This was
actually pretty easy though I have to give credit to
fizbin from the Monastery:

require POSIX;
my $ticks = POSIX::sysconf( POSIX::_SC_CLK_TCK );

my $then = Get_Time();
select(undef, undef, undef, 0.25);
print Get_Time() - $then;

sub Get_Time {
return ( POSIX::times() )[0] / $clock_ticks;
}

I thought I was done fiddling with it yesterday, but I
am really done now - maybe.

I am going to move on to updating the benchit.pl and
webit.pl scripts to give a prettier output as was
requested and potentially see about changing the
storage method.

Joshua Gatcomb
a.k.a. Limbic~Region

__
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 

parrotbench.gat
Description: parrotbench.gat


parrotbench.pl - massive update

2004-08-25 Thread Joshua Gatcomb
I hadn't really expected Leo to check in my
modifications to parrotbench.pl.  I took the time
today to give it a proper overhaul/re-write, so please
try it out.  If after a few days no one grumbles, I
will ask for it to be checked in.

Enhancements:
1.  Should be platform independent now
2.  Much greater control using ini configuration
3.  Output is pretty
4.  Lots of bugs squashed (probably more introduced)
5.  POD updated
6.  Multiple regexes allowed for benchmarks to be run
7.  Multiple regexes allowed for benchmarks to be
skipped
8.  Probably some stuff I am forgetting

Joshua Gatcomb
a.k.a. Limbic~Region



___
Do you Yahoo!?
Win 1 of 4,000 free domain names from Yahoo! Enter now.
http://promotions.yahoo.com/goldrush

parrotbench.gat
Description: parrotbench.gat


Re: Benchmark Stuff

2004-08-24 Thread Joshua Gatcomb
--- Sebastian Riedel [EMAIL PROTECTED] wrote:

 
 Take a look at tools/dev/parrotbench.pl
 It already does most of the things you want, you
 just have to parse it's 
 output and feed it to your database.
 
 Cheers,
 Sebastian

parrotbench.pl didn't correctly handle hyphens in
names (it was using \w char class) - fixed

parrotbench.pl doesn't properly handle foo.pasm and
foo.imc, it quietly discards one

parrotbench.pl only provided a single regex for you to
specify which benchmarks to run.  This made it
difficult to say, run all but x.  I added a skip
benchmarks that match regex support.

I also modified the regex to parse the configuration
file (death to .*).  Unfortunately, I also added some
stuff that really doesn't need to be there to make my
life easier.

Here is the modified parrotbench script along with the
new data collection script and the script to make it
into a web page.

I don't know what kind of layout/data would be useful
to people so let me know if you want something else. 
I will update every Tuesday morning.


Cheers
Joshua Gatcomb
a.k.a. Limbic~Region



__
Do you Yahoo!?
Yahoo! Mail is new and improved - Check it out!
http://promotions.yahoo.com/new_mail

parrotbench.gat
Description: parrotbench.gat


benchit.pl
Description: benchit.pl


webit.pl
Description: webit.pl


Re: Benchmark Stuff

2004-08-24 Thread Joshua Gatcomb
--- Joshua Gatcomb [EMAIL PROTECTED]
wrote:

 Here is the modified parrotbench script along with
 the
 new data collection script and the script to make it
 into a web page.
 
 I don't know what kind of layout/data would be
 useful
 to people so let me know if you want something else.
 
 I will update every Tuesday morning.

I guess it helps if I share the web page to look at:

http://perlmonk.org/~limbicregion/parrot_bench.html

Cheers
Joshua Gatcomb
a.k.a. Limbic~Region




___
Do you Yahoo!?
Express yourself with Y! Messenger! Free. Download now. 
http://messenger.yahoo.com


Benchmark Stuff

2004-08-20 Thread Joshua Gatcomb
I recently noticed that the benchmarks in
examples/benchmarks was running significantly slower. 
I update Cygwin and Parrot daily - so there have been
a lot of changes to account for.  I idly asked on IRC
if anyone was regularly tracking benchmark performance
because I was feeling lazy.

Dan said not that he was aware of but if I was willing
to whip something up in Perl he would be more than
happy to do so on a regular basis.  Well, I can't get
Pg working on Cygwin anymore (should have regression
tests everytime I update) so after messing with it for
an hour I decided to use SQLite.  I also couldn't get
File::Basename to work correctly so I gave up and
rolled my own regex.  Since at this point it was no
longer portable I just threw caution to the wind and
coded it *nix centric.

It assumes the parrot executable is in your $PATH env
It assumes it is being run from examples/benchmark

It is also a very quick hack because I was on my lunch
break.

Enjoy
Joshua Gatcomb
a.k.a. Limbic~Region



___
Do you Yahoo!?
Win 1 of 4,000 free domain names from Yahoo! Enter now.
http://promotions.yahoo.com/goldrush

benchmark
Description: benchmark


Unicode Support - ICU Optional

2004-08-04 Thread Joshua Gatcomb
All:
After speaking with Dan in #parrot last night, I
either had originally misunderstood his position or he
has changed it (paraphrased):

We will ship Parrot with unicode support, but:.

A.  The unicode support does not necessarily need to
be limited to a single library or ICU specifically.
B.  Just because CVS will have unicode support, does
not mean the user will be forced to use it.
C.  Configure should detect a system unicode library
and do the right thing in choosing which one it uses.

So, we really need to decide what we want to do about
unicode support.  We are stuck with ICU unless someone
steps up to the plate to implement an alternative.  If
we implement an alternative, I don't necessarily feel
we should drop ICU support.  It just means that the
unicode support in CVS would not be ICU.  Configure
would notice supported system unicode libraries and do
the right thing.

Providing an alternative to ICU may:
1.  Eliminate the need for C++
2.  Reduce the size of CVS
3.  Make building on most platforms easier

WRT improving the ease of use of ICU.  My suggestion
is that a representative from each platform that
Parrot is currently being built on download the latest
stable version of ICU source, build it, and note
anything special they needed to do to get it
working. Those things should make putting a newer
version into CVS a realistic possibility.  I am
volunteering for Cygwin (yeah I know - big surprise
there).

Cheers
Joshua Gatcomb
a.k.a. Limbic~Region



__
Do you Yahoo!?
Yahoo! Mail Address AutoComplete - You start. We finish.
http://promotions.yahoo.com/new_mail 


Re: ICU Outdated - Ideas

2004-08-03 Thread Joshua Gatcomb

--- Dan Sugalski [EMAIL PROTECTED] wrote:
 ... and therefore ICU will continue to stay in CVS
 as part of parrot. Period.
 
 The alternative here is the same alternative as with
 GMP and big numbers--we can yank ICU *if* someone
 writes an alternate Unicode implementation for us.
 -- 
   Dan

The following comments aren't directed at you Dan,
just my personal opinion on ICU.

ICU is giving Parrot a black eye.  The ICU we have in
CVS right now is really old and broken.  We are
shipping a bare bones version of ICU that doesn't
build very easily anywhere.

I don't want to sound like I am complaining without
offering to help out with the work.  I just didn't
want to take the initiative without direction and have
it be an excersise in futility - that's why I made
multiple suggestions.

Ok - so which way do we go?
A.  Leave it as is
B.  Upgrade to a bare bones 3.0
C.  Upgrade to a full version of 3.0
D.  Improve the config/gen/icu.pl with any of the
previous options
E.  Something else entirely?

Joshua Gatcomb
a.k.a. Gat
(240) 568-5675




__
Do you Yahoo!?
New and Improved Yahoo! Mail - 100MB free storage!
http://promotions.yahoo.com/new_mail 


Re: ICU Outdated - Ideas

2004-07-31 Thread Joshua Gatcomb

--- Leopold Toetsch [EMAIL PROTECTED] wrote:

 Joshua Gatcomb [EMAIL PROTECTED] wrote:
  All:
  The ICU that is bundled with Parrot is old.
 
  George Rhoten, an ICU developer, has suggested we
  start shipping version 3.0 because:
 
  B.  Make ICU optional.
 
 Yes. And I'll vote for just tossing icu/* from
 Parrot CVS. If one wants
 to build Parrot with ICU he can download either the
 source or a
 pre-built package and use that. I don't see the
 point, why we have that
 code in CVS.
 
For some reason (likely because it was friday), what I
was thinking in my head was not what was coming out on
the screen in front of me.  The make ICU optional
was supposed to read make ICU like GMP - autodetect
it if present, but do not force it upon the user.
 
 leo
 
Joshua Gatcomb
a.k.a. Limbic~Region




__
Do you Yahoo!?
New and Improved Yahoo! Mail - 100MB free storage!
http://promotions.yahoo.com/new_mail 


ICU Outdated - Ideas

2004-07-30 Thread Joshua Gatcomb
All:
The ICU that is bundled with Parrot is old.  Normally
that wouldn't be a problem if you didn't require all
the features and bug fixes with a newer version, but
we are still having problems with ICU and are even
supplying patches for it.

I went through a personal nightmare of getting it to
work on Cygwin and others went through their own
trials and tribulations to get it to work for them. 
Options were added to allow linking against a system
ICU, but is this the sore thumb we really want to have
people giving Parrot a first look to encounter?

George Rhoten, an ICU developer, has suggested we
start shipping version 3.0 because:
It contains a lot of fixes and additional features to
improve such things as building on Cygwin, building
with the Intel compiler, quicker building of the data
library, additional platforms for building ICU and a
lot of other helpful fixes.


The trouble is someone has to volunteer to make it
work.  If we are going to go through that trouble,
maybe we should consider other alternatives:

A.  Bundling the whole thing instead of just the
pieces Parrot is going to use.  This, in theory,
should make upgrading ICU easier in the future.
B.  Make ICU optional.  I know this has been discussed
at it takes work.  If people don't want Unicode
support it shouldn't be forced on them, but if they do
want it should they be forced to download an external
library or should we provide it.  I think since we
already support linking to a system ICU we do that.
C.  Have someone volunteer to strip stuff out of the
3.0 version and start bundling that.

There are likely other options but as George pointed
out - we appear to be spending an awful lot of effort
making the old ICU work when upgrading would solve all
our problems (my words not his).

Cheers
Joshua Gatcomb
a.k.a. Limbic~Region



__
Do you Yahoo!?
Yahoo! Mail Address AutoComplete - You start. We finish.
http://promotions.yahoo.com/new_mail 


Call To Cygwin Users Everywhere

2004-07-22 Thread Joshua Gatcomb
If you have read any of my previous posts concerning
Cygwin - you will agree that it appears to be a
strange beast.  The problem is that outside of
teaching myself Perl a couple of years ago - I don't
have any real experience in this arena.  I have no
idea if things are really this bizarre or if I am just
a bumbling idiot.

It would be really nice if someone out there could
confirm my wife's suspicions (bumbling idiot).  Here
are some things in no particular order that would be
nice to be confirmed:

1.  To get ICU to work
A:  link = 'c++' in config/init/hints/cygwin.pl
B:  Ensure that the ICU .dlls are executable
C:  Ensure that the ICU .dlls are in $PATH
D:  If using ICU  2.8, needs shared not static in
config/gen/icu.pl
E:  You may need to download msvcr70.dll and
follow steps B and C if you are using a pre-built copy
F:  In general, if you get a Unable to remap
error about some .dll, then you will need to run the
Cygwin rebaseall utility.

2.  The following tests fail under JIT for no apparent
reason
A.  t/op/trans_9-12 t/op/trans_17-18


3.  Enabling these tests works but are being skipped -
I supplied a patch in bug report #29836
A.  Extend 12
B.  All threads 
C.  All timer (except the two being universally
skipped : 2004-05-24)

4.  As outlined in bug report #29936, JIT debugging
intermittently doesn't work.  I have not followed this
up since 2004-05-24 and it may no longer be
applicable.  The odd thing was I could never isolate
what ingredient would cause the failure.

5.   -mno-accumulate-outgoing-args is NOT required to
make JIT work properly.  For a few days this was
needed but as of 2004-07-22 it appears not to be.

6.  If using compiler optimization flag -O2 or -O3
when configuring parrot to build t/op/number_7.pasm
will fail I have isolated the test case to the
following:

abs N0, -1
end

where

abs N0, 1
end

abs N0, 1.0
end

abs N0, -1.0
end

all work

7.  perl Configure.pl --ccflags='-march=pentium4 -O3
-s -funroll-loops -fomit-frame-pointer' --debugging=0
--optimize --icushared='-licuuc -licudt'
--icuheaders=/usr/local/include

Obviously change your architecture and your ICU flags
accordingly - but that makes parrot really fly ;-)


Cheers
Joshua Gatcomb
a.k.a. L~R



__
Do you Yahoo!?
New and Improved Yahoo! Mail - 100MB free storage!
http://promotions.yahoo.com/new_mail 


Re: Recent change causing JIT problems on Cygwin

2004-07-20 Thread Joshua Gatcomb
--- Leopold Toetsch [EMAIL PROTECTED] wrote:
 If you are using gcc 3.0 or above,
 -mno-accumulate-outgoing-args must be set.

This was not a requirement prior to the changes I
outlined on the 16th.  

I was at gcc version 3.3.1 but I rebuilt 3.4.1 from
source.  Adding the compiler flag appears to have
fixed the JITed problem (though the handful of math
ops are still failing under Cygwin/JIT).

so in summary:  From 2004-07-16 until something
changes, if you want to build on Cygwin with and have
JIT work using gcc 3.0 or higher, add
--ccflags=-mno-accumulate-outgoing-args

Thanks
Joshua Gatcomb
a.k.a. Limbic~Region




__
Do you Yahoo!?
Vote for the stars of Yahoo!'s next ad campaign!
http://advision.webevents.yahoo.com/yahoo/votelifeengine/


Re: Recent change causing JIT problems on Cygwin

2004-07-20 Thread Joshua Gatcomb
incidently - things are running much slower now using
--optimize and -j -O2 

so how much is much slower
for primes2.pasm it was taking on average 2.15 real
seconds and is now taking on average 2.9 

Joshua Gatcomb
a.k.a. Limbic~Region



__
Do you Yahoo!?
New and Improved Yahoo! Mail - 100MB free storage!
http://promotions.yahoo.com/new_mail 


Recent change causing JIT problems on Cygwin

2004-07-19 Thread Joshua Gatcomb
As is part of my daily (to be read work day) routine,
I do a make realclean, a fresh CVS checkout, rebuild
parrot.

This morning I was noticing 2 problems
1.  object tests 40-45 were blowing up - thanks to
Nicholas for pointing it out and Leo for fixing it

2.  Almost everything but the most trivial JITed code
was coredumping.

I tracked it back to a change made between

2004-07-16 10:30 and 2004-07-16 11:00

unfortunately, I am not sure how CVS deals with
timezones so that might be GMT or EST.  In either
case, the 3 files and versions that changed are listed
below:

P jit/i386/jit_emit.h
* $Id: jit_emit.h,v 1.118 2004/07/16 14:35:43 leo Exp
$

P src/exec.c
$Id: exec.c,v 1.21 2004/07/16 14:35:47 leo Exp $

P src/interpreter.c
$Id: interpreter.c,v 1.312 2004/07/16 14:35:47 leo Exp
$

I am more interested in Leo helping Dan deliver a pie
to Guido's face than I am seeing this problem fixed
since I seem to be the only one regularly using Cygwin
- so no rush - just figured I would point it out as
soon as possible.

I can also produce some JIT debugging if someone
thinks that will help:

Cheers
Joshua Gatcomb
a.k.a. Limbic~Region



__
Do you Yahoo!?
Yahoo! Mail Address AutoComplete - You start. We finish.
http://promotions.yahoo.com/new_mail 


  1   2   >