The Return of the Journal : pugs.blogs.com/ | pugscode.org | pugs.kwiki.org | paste: paste.lisp.org/new/perl6 or sial.org/pbot/perl6
Set by stevan on 23 December 2005.
GammaRay can := bind to lexical variables(ones created w/ my)? 01:47
audreyt yes. 01:50
?eval my $x; $x := 7; $x = 8; 01:51
01:51 evalbot_8500 is now known as evalbot_8501
evalbot_8501 Error: Can't modify constant item: VInt 7 01:51
Khisanth heh
audreyt (as it should be)
Khisanth that "Can't modify constant item" thing seems to come up a lot
audreyt it's roughly equivalent to "let x = 7 in writeTVar x 8"
Khisanth in very non DWIMy ways 01:52
audreyt yeah, because p6 defaults on pass-by-ref but marks the refs as immutable
s/immutable/readonly/
that's perhaps the largest B&D change
it does make nasty $_[0]-related bugs go away, though. 01:53
Khisanth err it's actually specced that way?
I recall trying to do something like @foo = (1..10) and then not being allowed to modify @foo
audreyt er no, I mean just the function params 01:54
?eval @foo = (1..10); @foo = (7..10); @foo[1]=5;
evalbot_8501 Error: Undeclared variable: "@foo"
audreyt ?eval my @foo = (1..10); @foo = (7..10); @foo[1]=5;
evalbot_8501 \5
audreyt all these should be fine
Khisanth ?eval my @foo = (1..10); @foo >>++; 01:56
evalbot_8501 Error: Can't modify constant item: VInt 1
audreyt ?eval my $x = 1; my @foo := $x; 01:57
evalbot_8501 \1
audreyt ?eval my $x = 1; my @foo := $x; @foo >>++;
evalbot_8501 Error: Hyper OP only works on lists
audreyt ?eval my $x = 1; my @foo := [$x]; @foo >>++;
evalbot_8501 Error: Can't modify constant item: VInt 1
audreyt that... is definitely a bug.
ok, I'll do _proper_ container type implementation now and fix this for good 01:58
Khisanth w00t! :) 01:59
audreyt hacketh
stevan_ audreyt: ping 02:27
audreyt stevan_: pong 02:34
stevan_ audreyt: how go the containers :) 02:35
anything I can help with
02:36 stevan_ is now known as stevan
audreyt stevan: I've just waken up 02:40
probably going to model scalars first
and make another surface language for PIL2
stevan ok 02:41
audreyt that has assignments and Code closures
stevan ah
one step closer to p6?
audreyt yeah, the surface syntax should be legal p6 02:44
stevan cool
audreyt but a rather constrained subset
sprinkled with MY::<$foo>.FETCH calls
etc 02:45
that makes all operations explicit
stevan ah
audreyt as usual there will be sugar for writers
stevan like P6-ObjectSpace
audreyt not sure how much sugar we want at this point
yeah
stevan sugar rots your mental teeth :)
audreyt heh
stevan well I am trying to work out all the p6 boxed types
audreyt also thinking using Text.Parser.Rule for the minilang
because with that we get Grammar for free 02:46
stevan yes
thats a very good idea :)
audreyt and bootstrapping is much easier
and now with sane error reporting (instead of silent failure that's impossible to debug), it seems even attractive
stevan cool
oh,.. speaking of errors I need to get you a role error object 02:47
audreyt yup
stevan how about a nul opaque with two attrs; methods, attrs
audreyt that will do for now
stevan I will give you the method name, the first time I saw it, and the role which conflicts with it 02:48
I will figure out the details of the structure later 02:49
oh,.. re: Scalar
are you going to have it inherit from Object?
or do you want to have breakfast first, then talk :)
audreyt hm 02:51
Scalar is going to inherit from Object
and mix in container role
I think.
stevan what about Tieable?
audreyt we'll worry about Tieable later.
stevan ok
audreyt i.e. not for today.
stevan cool (it is on my list of Boxed-type-things)
hey svnbot6 02:52
audreyt :)
ok... let me try for 15mins if I can turn the current minilang into Rules
stevan audreyt: do we need AUTOLOAD for Scalar? or will there be an implicit FETCH? 02:53
audreyt then I'll box up Integer as "Int" to agree with spec and experiment with autoboxing nonexposed types
stevan: the desugarer will add a FETCH call.
you need not worry about that
stevan cool
stevan doesnt like AUTOLOAD
audreyt neither do I
stevan audreyt: cool,.. I will continue to dig through AES for types 02:54
audreyt ?eval my @a = (1..10).reverse; @a.elems
02:54 evalbot_8501 is now known as evalbot_8502
evalbot_8502 10 02:54
gantrixx Will Perl6 still use XS to interface with C/C++ code?
stevan gantrixx: hopefully not
audreyt gantrixx: no. something line Inline::C or NCI is far more likely. 02:55
use c:stdio;
stevan or just writing Parrot extensions of some kind
audreyt printf("or maybe this")
SamB audreyt: Inline::C needs to do its dirty work somehow
stevan for the parrot version that is ;)
audreyt SamB: yeah and that's going to be runtime specific.
SamB: on a language level though it makes sense to be a unified interface.
gantrixx Well it's been a while since I fooled around with Perl6 02:56
stevan Haskell is the new XS :P
audreyt heh :p
SamB shouldn't the standardization be done for FFI, not inlining?
gantrixx I've done a lot of work in Perl5, so I'm a fan of Perl, however Python is gobbling up a lot of market share
SamB that would probably be simpler... 02:57
audreyt see this for NCI: svn.perl.org/parrot/trunk/runtime/p...r/Syck.pir
gantrixx I even had a client that was interested in using Perl6 already, but had to tell him it's not ready
audreyt SamB: I think inlining should be part of FFI, as Inline::Python and Inline::Perl5 is and Inline::Tcl all uses it
SamB eh.
stevan gantrixx: yes, we missed this christmas,.. maybe next one
SamB I think inlining would make more sense as a library built on FFI primitives.
audreyt SamB: I agree. all I'm saying is it should be part of standard library and part of the standard. 02:58
implementation stragegy is something else :)
strategy, even
SamB part of the standard lib, sure. but shouldn't be the lowest standardized level ;-) 02:59
gantrixx how long before ActiveState has a Perl6 distribution and Redhat is including it in there distro?
audreyt SamB: I think we... are in vehement agreement
SamB heh
audreyt gantrixx: instead of RedHat... may I interest you in Mandriva :) 03:00
gantrixx no, not really
audreyt rpm.pbone.net/index.php3?stat=3&...;srodzaj=3
is the .rpm not compatible? hmm
gantrixx I focus on just 1 or 2 distros since that is what I use in the corporate world
audreyt also, instead of ActivePerl, there's PxPerl 03:01
SamB I guess I don't think of libraries as standard so much as de-facto standard...
audreyt www.codeproject.com/tools/pxperl.asp
gantrixx OK, I guess the question should be, "how long before Perl6 is mainstream"
on the windows platform, every company I know uses ActiveState Perl 03:02
audreyt gantrixx: my best guesstimate is "sometime around 2007"
pugs.blogs.com/photos/visiolization...eline.html
gantrixx hmmmm.....do you think Perl will even be relevant by then? 03:03
I'm getting more and more of a call for Python in place of Perl these days
audreyt well, if we did ship something that compiles perl6 to perl5 in 2006, that's going to help a lot 03:04
and I'm fine with people using python or ruby meanwhile :)
gantrixx and after Perl has lost that market share to Python and Ruby, do you really think they will come back? 03:05
audreyt I have no idea. :)
stevan gantrixx: Perl 6 is pretty much a new langauge,.. I have no fear of it's ability to compete
audreyt probably because my brain doesn't work in market share terms
our market share is currently 0%
(rounding off fractional insignificant points) 03:06
gantrixx Oh I understand the challenge, it is a complete rewrite. An evolution.
audreyt so it can't go anywhere but up!
stevan thinks market shares are basically not fun, so in Pugs they are optimized away
audreyt yup
gantrixx and I wish there all the effort that was going into Python develompent was going into Perl6
audreyt oh, but they are 03:07
gantrixx but more than likely, the guy is going to move on to a new girlfriend, and just because his ex lost weight doesn't mean he will re-unite
audreyt we stole^Wlifted a _lot_ of ideas from PyPy and IronPython
stevan gantrixx: we have stolen a LOT of their ideas :)
gantrixx good
very good
stevan gantrixx: but if that ex was his true love,.. he might :)
gantrixx but it can't be stolen, they are community ideas
audreyt ..and this is more like the daughter of his ex ;) 03:08
SamB hmm. I feel like I ought to try PyPy ought.
er, out.
gantrixx yes, but waiting for her to be of legal age is a bit frustrating
audreyt lol 03:09
gantrixx I've been trying to convince the lugradio guys to do a piece on Perl6. I figure if a little bit more of a buzz can be generated, maybe more people will get behind it.
stevan gantrixx: we already have 100+ commiters :) 03:10
gantrixx what are commiters?
audreyt ponders posting this exchange on her journal
SamB well, in theory I am one.
stevan people who can commit to the pugs svn repo
gantrixx Oh, well I'll be unemployed in March, maybe I can write some modules 03:11
stevan gantrixx: thats the spirit! :)
SamB I only did a few, and a large percentage of those broke things for people with no Linker.c implementation for their platform...
this may be related to the fact that I do not know perl
gantrixx And I am in a position with my current contract to push for the use of Perl6, if it were available.
stevan gantrixx: I am in a similar position 03:12
gantrixx that's the problem with open source, it's all done in spare time 03:13
stevan we are instead adopting p5 technologies which will port to p6 easily
gantrixx corporations take from open source, but don't give back
stevan gantrixx: thats not always true
audreyt gantrixx: want a commit bit? :)
gantrixx when was the last time you heard of a company hiring a developer to simply contribute for all that they have taken
SamB the great thing about open source is also that it is often done in spare time
stevan there is a lot of corprate sponsorship behind linux these days
and I do much of my pugs work on company time with full permission of my boss 03:14
SamB so, you are more motivated to do something nice
gantrixx who do you work for?
audreyt bbiab
stevan gantrixx: we are a small consulting firm, and we build LAMP apps for corporate clients
gantrixx uhg, PHP 03:15
stevan no perl
no PHP
gantrixx oh very good then
SamB why would you hire someone just for that? if you didn't think you would benefit from what they did, directly or otherwise?
gantrixx I never understood why PHP existed when we have mod_perl
stevan our clients know that they are getting high quality software with little or no lisence cost,.. and they understand that in order to sustain that we open source as much of our stuff as possible 03:16
gantrixx: PHP has it's place
its an ugly dark place,.. but it has it's place ;)
SamB and that is... nightmares?
gantrixx I view it this way, if a company uses SVN instead of ClearCase to save USD $100K, maybe they should at least donate $30K or so to the development of SVN 03:17
stevan SamB: if you need it quick, and cheap,.. and maintaince is not a concern,.. then PHP is for you
SamB well, if they use SVN, they are likely to gain from improvements
stevan gantrixx: well, we are too small to give $$, so we give time
SamB stevan: $$ == time! 03:18
stevan I think this is a fair trade
gantrixx Hmmm....I'm very pro-open-source, but ClearCase is far more mature than SVN
stevan SamB: yes very true :)
SamB only if you give time, you don't need to pay more money
you just get less other stuff for it
gantrixx but ClearCase is often much more than you really need
stevan SamB: what "other stuff"? 03:19
gantrixx I agree, if you allow an employee to spend 20% of his time giving back to the open-source community, that is a great contribution
stevan gantrixx: it makes business sense too
we use DBI on *every* project
so my boss didnt hesitate to let me do some Phalanx work on DBI 03:20
gantrixx yes, but business people don't always see the business sense in it....they are a little more quarterly report oriented
stevan gantrixx: yes, on high levels that is true, but some small managers do understand the benefits
SamB okay. 03:21
so you get less money. maybe.
stevan gantrixx: and there are many OSS success stories out there now too 03:22
SamB: less money? how? I am not understanding 03:23
gantrixx yes, I agree. OSS is now being embraced by the corporate world
scook0 audreyt: (when you get back) I'm looking to get back into Pugs/Haskell after months of being slack; any TODOs you can recommend?
gantrixx however, we need to take it to the next stage where corporations give back too
SamB stevan: well.
if you assume that coding non-OSS directly results in you getting money.
stevan gantrixx: many business people are starting to realize that infastructure software (OS, web servers, etc) are not profitable products 03:24
gantrixx To be honest, I don't think software is a profit product
SamB but, there is this wonderful thing about writing patches.
other people are always improving on them
gantrixx like Eric Raymond said, "it's widget frosting"
stevan gantrixx: me either :) but I am a consultant
gantrixx it basically is a tool to allow you to deliver/serve your core product better 03:25
stevan SamB: ahh, I see, we charge by the project usually,.. and that cost usually includes work that gets open sourced
SamB ah
yeah. makes sense.
stevan gantrixx: dont forget that contributing to non-profit orgs are tax deductable
SamB but lots of peoples thinking doesn't ;-)
stevan SamB: :) 03:26
SamB stevan: even contributions of labour?
gantrixx so I can put an hourly rate to the time I spend contributing to OS projects and deduct that from my taxes?
stevan SamB: we charge our clients for the final delivered product
gantrixx will you guys still chat with me when I'm in the federal jail?
SamB gantrixx: that depends 03:27
stevan if in order to build that product we build some OSS first, then it all works out
SamB do you get to use IRC when you are in jail?
stevan gantrixx: ask your accountant,.. you might be able to
SamB if so, you'd probably get out early for using too much bandwidth
stevan seriously
contributing to charity is deductable
SamB: but we tend to subcontract, so we work with technical managers who understand all this :) 03:29
plus I sell in the "many eyes find more bugs" part of OSS pretty hard ;) 03:30
gantrixx: www.tgci.com/magazine/02spring/tax.asp :) 03:32
SamB I suppose what you should sell is the part where they don't have to maintain the code after 03:33
stevan SamB: we tend to maintain the code actually (long term contracts ++)
SamB hmm.
so they won't have to pay you as much to maintain it, then?
gantrixx thanks stevan, I'll talk to my accountant about it 03:34
stevan gantrixx: worth a try :)
SamB if it doesn't work, you can officially announce that the taxmen don't think time == money
stevan SamB: it all depends,. every case is different 03:35
and we rarely can OS the bulk of the app, only modules we use within it
in fact all my CPAN modules were at some point parts of an application 03:36
or were written to anticipate a need in a particular project
and like I said,.. we discuss this with our clients, and explain to them the benefits of OSS and that if we build thier application out of reusable parts, it makes it easier for us to extend/refactor/enhance the application to suit their needs 03:41
but as a business we favor long term involvement/partnerships over quicky projects 03:42
avar mm 03:48
will the perl6 perl6 compiler be fast enough so that you could write stuff like Digest::MD5 in pure perl?
SamB hands avar a blocked MVar 03:49
that is, an empty MVar
stevan avar: sure, if its compiled well
if you use unboxed types, and your compiler is agressive in it's optimizations its quite possible 03:50
audreyt: ping (when you have a second) 03:59
azuroth is there some way to say, you've got a class, and you want it to implement SomeInterface, but you want it to implement it through a member function so that $b.foo() is like method foo() {$member.foo()} 04:56
tewk stevan: I've got some spare tuits, what needs work with respect to the mini-language? 05:10
SamB tewk: are they round ones?
tewk SamB: yep :) 05:11
aufrank hello! 06:21
wolverian good morning 06:22
aufrank mind if I ask a question about building pugs from a svn checkout? 06:23
wolverian ask away 06:24
aufrank I'm on OSX
I've got ghc 6.4 06:25
I built happy
I built hsx
I built hs-plugins
but when I do perl Makefile.pl for pugs
it tells me that I need to ranlib on haskell-exts 06:27
ld: archive: /usr/local/lib/haskell-src-exts-0.2/libHShaskell-src-exts-0.2.a has no table of contents, add one with ranlib(1) (can't load from it)
oops 06:29
lemme try ranlib on that file
that's a good first step, eh?
azuroth teehee
aufrank crosses fingers 06:30
it's never until you've asked the quesiton that makes you look like an idiot that you realize you're an idiot ;) 06:32
s/question/quesiton/
well, good thing I signed on 06:33
otherwise I wouldn't've noticed I'm a dolt :) 06:34
wolverian phew, it's good helping people :)
aufrank you're my hero! 06:37
oh man, look, there it is on google too! 06:41
I rule!
azuroth what is? 06:42
aufrank instructions for building on OSX that say "I don't know why, but I had to do sudo ranlib /usr/local/lib/plugins-0.9.10/libHSplugins-0.9.10.a" 06:44
by "I rule!" I meant "look how silly I am"
svnbot6 r8503 | tewk++ | Makefile.PL - added support for parrot_config.pir 06:50
r8503 | tewk++ | The parrot team has renamed all imc references to pir
gaal morning 07:20
obra morning
gaal audreyt: got a minute for some FFI questions? 07:25
aufrank hi again! 07:46
is there a way to specify the location of my readline libs on the command line after 'perl Makefile.pl'? 08:22
tewk aufrank: what error are you getting? I think Makefile.pl just checks to make sure the haskell readline works. 08:24
You may need to go up the stack and make sure your ghc build knows where readline is. 08:25
08:26 integral_ is now known as integral
aufrank ok 08:28
I didn't build that one from source, but I guess I might have to if I want to add a non-standard directory for includes
the error I got was "ld: can't locate file for: -lreadline" 08:29
tewk Your on OSX right have you tried setting the OS X eqiv of LD_LIBRARY_PATH? I think it is DYLIB_somthing 08:32
aufrank I know I had that set before... lemme see if it's still in my .profile 08:35
I think this is it: export DYLD_LIBRARY_PATH=/opt/svn-1.3.0-rc4/lib:/sw/lib/:$DYLD_LIBRARY_PATH 08:36
that's a line from my .profile, and the readline libs are in /sw/lib. so I think they're in the path for ld. 08:43
tewk Well that was just a suggestion off the top of my head. I don't have happy, hsx or hs-plugins on my OS X box, just on my debian linux box. 08:45
wq
aufrank it's no big deal 08:46
just trying to iron out as many kinks as I can in this install
was the wq meant for a vim session? 08:47
tewk I have a /usr/include/readline.h and /usr/lib/libreadline.dylib on OS X, not sure where they came from though, I've got a lot of stuff on this box.
aufrank yeah, it's tempting to just uninstall the fink libs and build them myself in /usr/local 08:49
tewk aufrank: yep I keep irc on a seperate monitor and OS X doesn't have a good focus follows mouse solution yet :) I'm still going through X on linux withdraws :)
aufrank heh
I did the same thing once, but unfortunately it was a password that carried over into an IM 08:50
anyway, I think I need to leave the fink readline libs in there because the fink packages are linked against them 08:51
and I don't know if multiple versions can live happily in different places on the same box
tewk Multiple version at different places shouldn't be a problem.
I've got fink, darwinports and a system version of readline 08:52
aufrank good to know
I think I'm going to have to deal with that tomorrow, though
time for bed
actually, do you have a committer bit? 08:53
tewk yep
aufrank want a quick project? the last commit is a little bit broken
it changed Makefile.pl
tewk That was me!, I did it from linux and I just tried it on OS X, you've got a patch :) 08:54
aufrank are you asking if I have a patch for you? I don't 08:55
tewk Yeah, what your bug, I'll see what I can do.
aufrank "Use of uninitialized value in concatenation (.) or string at Makefile.PL line 627." 08:56
tewk Yeah I'm looking at that sorry.
aufrank is it that which() searches in $PATH and not in $PARROT_PATH? 08:57
line 282
because parrot-config.imc lives in $PARROT_PATH, but $PATH holds ${PARROT_PATH}/bin
am I making any sense? 08:59
tewk Yes, the code at 298 does the real work, parrot_config_imc shouldn't be in the path at all. I think the previous author was trying to code for the eventuall existance of a parrot_config executable 09:01
aufrank I see.
tewk That's my guess. 09:02
aufrank so $parrot_config should be undefined in the conditional at 298, since there's not an executable in the path 09:04
but gets defined as long as there's a parrot-config.imc in $PARROT_PATH 09:05
tewk Yeah
aufrank so now I'm confused-- what's ending up undefined at 627? 09:06
tewk I'm just about to find out.
aufrank (I guess the smart money's on either $parrot or $config, since we just eliminated $parrot_config) 09:07
tewk Sorry I'm a little slow I just realized i ran make realclean in parrot and didn't rebuild 09:10
aufrank I reckon that would slow you down ;) 09:11
maybe I have it though 09:12
line 312
single quotes, but the variable should be interpolated, right?
tewk that single quote should only be around the inc, thats it 09:15
:q
aufrank don't you quit on me now, tewk! 09:16
tewk fix and testing, checkin coming
aufrank heh 09:17
at this rate maybe I'll actually use my committer bit before the new year! 09:19
tewk Thanks for the find. That qualifies you for a commiters bit. Ping audreyt. Hey they gave me one. It doesn't take much :)
aufrank he actually already gave me one 09:20
I just haven't had the guts to commit yet
I talked to him about concurrency back when he was drafting S17, and he gave me one then 09:21
tewk Well I just committed, which means the possibility for another bug :)
aufrank that's right, I'm watching you, tewk
grrrr
tewk wait a second, I don't have my auth info on the mac and I forgot my openfoundry passwd 09:22
aufrank yah?
tewk Ok it's in. svnbot must be asleep. 09:26
svnbot6 r8504 | tewk++ | typo fix
tewk I introduce bugs like that just so I can inflate my karma. 09:27
aufrank well I'll do my best to steal the next one from you.
Khisanth inverts tewk's karma
aufrank ok, now it's really goodnight for me 09:29
thanks all
geoffb Thanks for the fix, tewk
geoffb does his first build in months
Insomnia ... is there *anything* it can't do?
aufrank get my term paper written, apparently ;)
zing! 09:30
thanks folks, I'm here all week. Tip your waiters!
geoffb *chuckle*
Alias_ ping? 09:44
geoffb Ah, an up to date, working Pugs. My soul is ever so slightly happier. 09:46
Alias_ Does pugs/Perl6/etc have a package installation method yet? 09:47
Something akin to C< perl Makefile.PL; make; make test; make install >
geoffb Um ... exactly that, in fact 09:48
Alias_ put pugs itself, bug pugs packages
Or is it all still glommed in
geoffb Judging by the output from my last make install, I'd say a lot of stuff is carried along. 09:49
But then, I've been away for a couple months.
gaal yo geoffb, Alias_. 10:08
geoffb g'day, gaal 10:09
howya?
gaal not too shabby!
and you?
geoffb Pretty good!
gaal puzzles over include paths keeping him from puzzling over FFI 10:11
nnunley Trying to do FFI in pugs by bridging over to the NCI stuff in parrot? 10:12
gaal no, no. just a .yaml emitter. 10:14
but for some reason -Isrc/cbits isn't making it into the makefile rule
and I don't know where's the correct place to add it. 10:15
is 83 C too hot for a CPU? 10:23
Khisanth hmm depends on the CPU :) 10:28
gaal intel p4 pencost 3ghz 10:29
s/pencost/whatever it's really called/ 10:30
prescott
it died on me before...
nnunley www.digit-life.com/articles/pentium...anagement/ 10:44
Looks like it's probably too hot in your case.
10:44 Aankh|Clone is now known as Aankhen``
gaal looks like I have to do some underclocking. 10:47
nnunley Anything blocking airflow in your case? 10:48
geoffb gaal, I wouldn't think that would be necessary unless you have a very hot case, or your thermal paste / thermal tape is crappy 10:49
gaal nope. the other sensor registers 19 C
not that I know where it's located. 10:50
geoffb (or your heatsink isn't fully pressure-locked to the chip)
gaal the hot sensor gives readings that fluctuate a lot (10 C). I'm not sure how accurate it is. 10:52
wolverian 19C is very low. sure that sensor is connected? : 10:54
s,$,),
gaal i think i'll let the computer cool down a bit and go play with the cat. & 10:57
svnbot6 r8505 | asavige++ | RPN example in p5/p6/Haskell 11:06
xah hi guys, may i ask a personal q? 13:14
how much do you charge for building a whole estore website? 13:15
Alias_ Totally depends on how custom it needs to be 13:16
And thus how many hours
xah Alias_: a average estore website. 13:22
for small merchant
nothing really particular,
just need a way to input inventory,
using HTML interface and also CVS upload,
and check out area where people can put things in cart and checkout, 13:23
register new account if new,
and be able to trcak of course current status,
also discount with coupon field if user has it, 13:24
azuroth I'm assuming you don't want to just use an existing oss one?
xah and be able to show a log of users who started but didn't complete checkout.
azuroth: existing one? like what?
azuroth hmm. I remember seeing one written in PHP. can't think of its name, though 13:25
xah i didn't know there's existing estore code...
i'm planning to built in myself, probably with php,
azuroth there has to be, how many e-stores are there?
xah and i'm thinking 3 weeks. 13:26
svnbot6 r8506 | audreyt++ | * Beginning to port PIL.Native.Parser to Text.Parser.Rule. 14:58
r8506 | audreyt++ | * Much more thorough Rules support:
r8506 | audreyt++ | - capturing, non-capturing and negated subrules
r8506 | audreyt++ | - positional and named captures
r8506 | audreyt++ | - greedy and lazy quantifiers
r8506 | audreyt++ | - backtracking
r8506 | audreyt++ | - character classes and character escapes
r8507 | audreyt++ | * proper support for mutually recursive subrules. 15:07
Alias_ mutually recursive subrules? 15:20
Sounds scary
audreyt rule foo { foo <bar> }; rule bar { bar <foo> } 15:28
or, more likely:
rule foo { foo <bar>? }; rule bar { bar <foo>? }
dinner, bbiab &
Alias_ right 15:41
Still sounds scary
audreyt: ping? 16:13
Trouble in M:I land...
anatolyv if audreyt or anyone else who can help my rt.openfoundry registration problem is around, that'd be great too. 16:18
aufrank hello! 18:13
svnbot6 r8508 | audreyt++ | * Bootstrap.pil is now compiled as part of "make pil"/"make pili". 18:25
theorbtwo "make pili"?
audreyt like "make ghci" 18:26
anatolyv: I'll look at the rt.openfoundry.org thing in a moment.
aufrank can you all check something for me?
do you have a ${PARROT_PATH}/blib ? 18:27
anatolyv audreyt: thanks!
aufrank I don't in my tree for 0.4.0
audreyt I do
aufrank and it broke the build process for me because $PARROT_PATH/blib is in the includes in Makefile.pl
svnbot6 r8509 | audreyt++ | * Text.Parser.Rule: Squash -Wall warnings.
audreyt but it's created only afte r"make" I think
aufrank audreyt: the stock 0.4.0, or a recent checkout? 18:28
audreyt a recent checkout
aufrank audreyt: I did make and make install-- is there any reason that it would be made but not installed?
aufrank looks 18:29
audreyt hm, not sure... try irc.perl.org #parrot? 18:30
aufrank I have blib in /usr/local/src/parrot-0.4.0, which is where I made everythign
but not /usr/local/parrot
audreyt right
aufrank where everything installed
I'll go check over there
thanks
audreyt because blib/ is the list of things to be installed
normally perl doesn't install blib/ as blib/
but rather blib/* as *
aufrank so should Makefile.PL really be trying to include blib? 18:31
svnbot6 r8510 | audreyt++ | * PIL.Native: The first container type, ::Scalar, lands!
r8510 | audreyt++ | $ ./pil -e '::Scalar`new_opaque(3).STORE(9).FETCH()'
r8510 | audreyt++ | ### Evaluated ###
r8510 | audreyt++ | 9
r8510 | audreyt++ | * PIL.Native: Proper .is_a(::Object) support for autoboxed
r8510 | audreyt++ | types and ::Scalar types. Also "Int" is now internally a
r8510 | audreyt++ | Haskell "Integer" type with BigInt capabilities.
aufrank audreyt: is that a scalar in PILN?
audreyt aufrank: yes. 18:32
aufrank congrats!
very exciting
audreyt thanks! :)
aufrank (did stevan have a perl5 metamodel for you this morning?)
audreyt no... so I got distracted and implemented subrule captures and backtracking for Text.Parser.Rules
aufrank slacker :P 18:33
audreyt :p
geoffb Speaking of parrot embedding build problems ... my PARROT_PATH ends in 'svk/parrot-trunk', and when I go to install, I see an error about '.../svk/parrot doesn't exist or isn't a directory ...' from ghc-pkg 18:34
This is an old bug, as it existed a couple of months ago when I last had a chance to build. :-) 18:35
aufrank geoffb: I'm aimin' to maybe do my first commit with some Makefile.pl changes
I'll look at that one too
geoffb aufrank, cool, thanks
Alias_ audreyt: Do you have a perl Makefile.PL etc equivalent yet for pugs/perl6? 18:36
audreyt: Also, getting bug reports that the new M:I version kills Cygwin
... support
tewk M:I ?
Alias_ Module::Install 18:37
audreyt Alias_: first question is "not yet" -- we piggyback on p5 M::I currently
Alias_: second question is "aww". url?
Alias_ rt.cpan.org/Ticket/Display.html?id=16810
# Similar reports for other people
audreyt k, looking 18:38
stevan audreyt: ping 18:43
audreyt stevan: pong 18:55
stevan audreyt: :)
audreyt yo :)
stevan I am looking over the code right now
audreyt ok. I overloaded `new_opaque 18:56
stevan so is PIL^N now parsed with p6 rules?
audreyt the idea is that each class object can dictate their own layout
independent of the :repr
or rather, totally ignoring :repr
it may take :repr as an argument later
stevan audreyt: cool, we needed that too since we need to support hash/array/cstruct/pydict
audreyt not at all sure about what to do with that
yup
geoffb Where should I be looking for most up to date specs on language? Still P6::Bible on CPAN? 18:57
stevan geoffb: yes, there have been several recent updates
aufrank geoffb: I checkout a copy of the docs from svn
geoffb Yeah, since I've been away for 2-3 months, I expect it's best just to read again from scratch
audreyt stevan: it's not yet using Rules... took me a while to implement the subrule capture
geoffb aufrank, SVN repo url?
aufrank svn.perl.org/perl6/doc 18:58
audreyt stevan: if you'd like you can try porting stuff in src/PIL/Native/Parser.hs
geoffb aufrank, thanks
stevan audreyt: ok, but that is the plan correct?
audreyt or other rules-happy people could
stevan: yes
anatolyv: check your mail again
stevan audreyt: I am not a rule-type-person , so I will leave it for the more qualified
audreyt nod 18:59
tewk audreyt: I'll take a shot at porting to rules
aufrank question:
geoffb Oh man, are there really 7K doc revisions?!?
audreyt tewk: ooh, thanks
stevan audreyt: so as far as autoboxing,.. I have compiled a list of all the "types" I found in the recent Syns
geoffb Oh phew, sparse
aufrank I just got confirmed from the parrot folks that our include lines in Makefile.pl are correct for an uninstalled parrot
audreyt tewk: look at src/PIL/Native/Parser.hs and fill in the "miniLang" part 19:00
aufrank should we tell people that PARROT_PATH should point to the uninstalled parrot
audreyt tewk: there's a documentation primer as comment right afterwards; then there's the haskell Parsec implementation
anatolyv audreyt: nothing yet, should I be getting another verification email?
audreyt which should be self explanatory
aufrank or should we add checks to Makefile.pl to handle both the cases of installed and uninstalled parrot?
audreyt tewk: don't worry about generating terms; just getting them parsed is sufficient
tewk audreyt: Ok
audreyt anatolyv: yes. you are avorobey at pobox, right? 19:01
tewk aufrank: I think the code attempts to do both, but it probably needs some rework.
aufrank (parrot people say just use the uninstalled)
audreyt aufrank: the latter if you can manage it; the former for now
anatolyv audreyt: yes. Got it. Going through the motions. 19:02
aufrank tewk: my build of pugs died last night because there was no blib in my install directory, but it's listed in the libraries
audreyt excellent
stevan: I have another full hacking day tomorrow
tewk aufrank: Got it, making the connections.
audreyt and it's 3am, so I should journal a bit and sleep :)
aufrank tewk: leo just confirmed that $embed_flags .= " -I$base/include -L$base/blib/lib -DPUGS_HAVE_PARROT -L$base/blib/lib -L/usr/local/lib $ldflags "; 19:03
is only correct for the uninstalled version
stevan audreyt: cool, I will be back more after the new year
aufrank (line 321)
audreyt stevan: yay :)
stevan in the meantime I will keep trying to find "types" and figure out what we need to build
aufrank types 19:04
did that help?
stevan adds the aufrank type to the list
aufrank w00t!
stevan aufrank: not sure if it will past muster on p6l though :P 19:05
anatolyv audreyt: confirmed the registration and was able to log in, thanks! 19:06
aufrank not much of what I say does ;)
tewk: and now I see that the INSTALL file TELLS you to use the src/parrot/ and not the installed version 19:07
so I was wrong and the code is fine and... bla
tewk aufrank: Most serious parrot/pugs hackers are always bleeding on HEAD at this point. Maybe a RT todo? Does pugs use RT currently? Best option, fix it to work with a installed parrot. 19:10
If we break it later we will be forced to fix it :)
leo we have to fix a few things, before installing it is a good option
audreyt anatolyv: woot! 19:11
aufrank hey, look what I did-- now leo said something! :)
leo I'm always with you ;-)
wolverian hm, parrot is apparently being optimised to be faster than python currently :) leo++ 19:15
(or was.) 19:16
audreyt Alias_: ping
Alias_ pong
audreyt Alias_: can you rebuild Config::Tiny with trunk M::I
leo wolverian: some intermediate optimizations went in, yes just for the shootout 19:17
audreyt and tell JDHEDDEN to try again?
wolverian leo, it's just nice that I can now disuss performance with a python friend without being laughed at.. :)
audreyt Alias_: ...that is, after I finished committing 19:18
Alias_ ok
Also, more docs changes in too
geoffb leo, wolverian: link?
leo we have to rework strings, but the math stufff is fine
Alias_ Culled out some stuff that's just out of date now
Reread at your leisure
wolverian geoffb, groups.google.com/group/perl.perl6....66ca1d83b1
geoffb wolverian, thx 19:19
wolverian google, please fix your URLs. thanks.
leo shootout.alioth.debian.org/sandbox/...ang=parrot 19:20
or just the sandbox page
geoffb leo, thx
audreyt Alias_: r70 19:21
leo some recent improvments aren't covered yet
audreyt Alias_: cool, docs look nice 19:35
geoffb Hmmm, I think shootout's source printer needs to be taught that ' within a # comment in PIR does not start a new string: shootout.alioth.debian.org/sandbox/...t&id=0
audreyt I need to crash now... see you all tomorrow :)
Alias_ I hope so... getting there slowly
audreyt *wave* &
aufrank audreyt: gnight! 19:36
geoffb And leo, good job. How many of those optimizations that you made were improvements to Parrot, as opposed to just the test code?
audreyt, g'night!
leo geoffb: thanks. I just continued a few optimization thingies and did them a bit earlier as e.g. milestones would say, when these should be done 19:38
geoffb leo, ah, gotcha 19:39
leo there are some optimization hooks like PIC (polymorphic inline cache) which is kind of dynamic recompilation according to runtime actual data, and I've implemented a few opcodes for that 19:40
geoffb ah 19:41
leo mainly to get function calls back to normal speed (or faster than it ever was ;-)
geoffb nodnod
leo it's still low priority for me, OTOH showing some results isn't bad either 19:42
geoffb What state is Pugs -> PIR compilation in? Do all Pugs-handled Perl 6 constructions result in working PIR at this point?
leo, right, exactly. 19:43
leo e.g. just showing the potential: shootout.alioth.debian.org/sandbox/...p;lang=all
pugs -> pir is currently being reworked (or in an early state) 19:44
geoffb OK, thx
leo above harmonic timing is mostly due to an unoptimzed startup/init sequence, it's actually faster ;-) 19:48
the bench is running too short
geoffb That's damned cool that PIR is less than 40% slower than the top dog there. 19:52
That's pretty impressive. 19:53
leo it's probably near ~20% now with svn head (I've removed some unneeded method cache invalidation in the startup sequence) 19:56
but the whole init sequence is still a bit slow 19:57
geoffb nodnod
leo anyway - more realistic code 'pidigits' with PMCs and coroutines: shootout.alioth.debian.org/sandbox/...p;lang=all 19:58
just statically compile langs ahead ;) 20:00
geoffb Very nice
Wow, D seems to fly 20:01
rep PMCs = performance monitoring coutners?
geoffb Parrot Magic Cookies
leo or just objects
D is really fast, yes 20:02
21:14 avarab is now known as avar
avar Is some perl6 stuff being backported to perl5? 21:24
use.perl.org/article.pl?sid=05/12/2...p;from=rss 21:25
like ~~
Alias_ via C< use features; >
It won't be enabled by default
avar ah
still kind of strange...
Alias_ sigh
yes
avar the switch statement too apperently.. 21:26
or, the pseudoswitch
Alias_ A real one
but yes
avar given ...
Alias_ I think all the people attracted to shiny things were sort of left to do what they wanted once they promised not to play in the main language and keep everything fully back-compatible
avar ;) 21:29
any other stuff besides given & ~~ ? 21:30
Alias_ I certainly stopped fighting them
Damian's say function
What will probably be dor
avar mm
Alias_ The string version of //
avar what perl release will this be in?
use feature ...
Alias_ 5.9.3
avar use feature qw(say given ... ) ? 21:31
Alias_ dunno, haven't seen it
Just fought in the war on the pro-backcompatible side
aufrank Is gather/take borrowed from some other language? 21:38
none of the apos or syns really explain it
A12 says it's conjectural, and S06 and S09 both use it 21:39
but it's not explained on its own anywhere
revdiablo aufrank: It's in there somewhere. Let me try to find it 21:43
aufrank had no luck grepping
whoops, there it is in A12 21:44
revdiablo Ah, in the objects apoco... that makes sense, yeah 21:45
=)
aufrank I persist in my belief that it's not in any synopsis, though
maybe it should be?
avar "since the purpose of the operator is to let you try out something, and if that doesn't work, get something else, then it should be called the Jagger-Richards operator, because you can't always get what you want, but you might find you get what you need." 21:46
revdiablo aufrank: I would think it probably should be somewhere else
aufrank: But who am I? =)
aufrank are you saying you think it exists elsewhere and we haven't found it? or that you agree that it should be documented in more than A12? or that it shouldn't be in a synopsis? 21:47
aufrank is confused :)
revdiablo aufrank: I'm saying it should be documented somewhere else, and also should be in that somewhere else's corresponding synopsis 21:48
aufrank gotcha
looks like lwall is the maintainer for S12... maybe I'll write and ask him 21:52
leo geoffb: still about? 22:18
geoffb leo: yep
leo I compared pidigits here again:
parrot 0.25s
python 0.96
amd X2@2000 w 512 K cache 22:19
geoffb w00t
very nice
leo that'll be 2nd pos in the list ;-)
geoffb :-) 22:20
leo these benches probably are very cpu dependent, though, or some at least
geoffb still, nice to see parrot doing so well. 22:21
leo yup - I like that
Alias_ leo: How are you doing platform testing atm? 22:22
leo pdcawley: shootout.alioth.debian.org/sandbox/...p;lang=all
(was the topic)
Alias_: we have a smoke server collecting available results coming from folks doing 'make smoke' 22:23
Alias_ hmm
Alias_ ponders 22:24
leo plus the usual reports on the list of course
Alias_ What sort of testing domensions to you need?
leo well, a regular test run on *all* platforms would be nice ;) 22:25
Alias_ what are the platforms...
CPU-based? CPU+OS?
CPU+OS+Dist?
leo $parrot_svn_trunk/PLATFORMS might be a good beginning 22:26
Alias_ Got a full URL for that? I've never looked at Parrot before
Two levels below where I normally work
leo $ svn cat svn.perl.org/parrot/trunk/PLATFORMS 22:28
and 22:29
smoke.parrotcode.org/smoke/
Alias_ leo: I think we can handle about 2/3rd of that
leo 'we' is who in that case (sorry that I've to ask)? 22:30
Alias_ ali.as/pita/
irc.perl.org/#pita 22:31
leo ah
I've seen that recently (or read about it)
Alias_ It's not formally announced yet, but I'm slowing bouncing it off more people 22:32
brb
buu evalbot_8502: join #perl 22:37
?join #perl
STUPID. BOTS. 22:38
22:38 evalbot_8502 is now known as evalbot_8510
_tcc Can I get some help reading a file into a hash? 22:49
integral into a hash? You'd have to process it a bit before you could do that. Files are normally streams of byte or characters first, and then arrays of lines, and perl has builtin things for both of those, but beyond that you've got to add your own code first... 22:51
_tcc I am pasting the code into #perlcafe
I've done this before.
I rm'd the project and I forgot how to do it. 22:52
integral perlcafe?
_tcc yes
integral cool, I didn't realise they were more perl6 people. Neat
Alias_ back 22:53
leo: So yeah, Maddingue is our sysadmin image wrangler
Amnesiac Alias_!
Alias_ And each image should be able to handle multiple "install schemes" 22:54
leo you got the hardware? the testing software? all?
Alias_ "perl5" (auto), "perl5-make", "perl5-build", "perl6" (whatever that is)
Maddingue uh?
Alias_ * Maddingue downloads a few ISOs to prepare disk images
Maddingue oops, yeah :) 22:55
Alias_ leo: We are using virtualised hardware
leo: And I'm pulling the software together
So far the reporting XML/code is done, image launching is mostly there, and I just finished the report capture server 22:56
leo: So some stuff to do the actual running of the testing schemes, and maybe some image-management code, and we should be ready to start generating reports
leo well, a virtualized VMS test is better than none (not that parrot will even compile, ...) - but is the same as one a real machine? 22:57
Alias_ leo: That's up to VMWare/Qemu/Bochs to work out
leo ok
Alias_ Some of them do have arch-testing kits though
That exercise every operation for the arch
leo great stuff anyway 22:58
Alias_ Seems a bit ad-hoc for now, but it's a start
leo yeah
Alias_ What's your testing scheme look like
The sequence of instructions
leo I'd like to delegate further talks about that to involved parrot folks 22:59
Alias_ You aren't involved in parrot? :)
leo (I'm the poor man that just tries to manage some of that stuff ;)
Alias_ But, you must have run the smoke before once right
leo and staff
Maddingue uh, for VMS, Qemu cannot help
Alias_ For example, the "perl-make" scheme is C< perl Makefile.PL; make; make test; > 23:00
Maddingue you need specific emulator and a licenced copy of the system
leo forget vms for now when parrot is involved at least ;)
Maddingue though there are ways to get that
plus there's a monger who proposed access to VMS systems for tsting Perl stuff
he did a LT at Belfast about that 23:01
Alias_ And if it takes a little while to get proxying working, it shouldn't matter too much
leo Alias_: could you come other to #parrot at irc.pobox.com for a moment - some folks that do a lot of testing are here
Alias_ pobox is it's own network?
geoffb Alias_, yes. 23:02
integral umm, pobox is just MagNet (inc. irc.perl.org) 23:05
geoffb integral, right, I meant, it's not in Freenode. 23:06
Alias_ already has 8 magnet channels open 23:07
integral *nod* it's just that alias's #pita is on magnet
geoffb gotcha