»ö« | perl6.org/ | nopaste: paste.lisp.org/new/perl6 | evalbot usage: 'perl6: say 3;' or rakudo: / pugs: / std: , or /msg p6eval perl6: ... | irclog: irc.pugscode.org/ | UTF-8 is our friend!
Set by moderator on 10 October 2009.
diakopter also it needs sprixelCORE.setting copied to the snap 00:00
afk&
00:11 kst joined 00:18 muixirt_ joined 01:00 muixirt_ joined 01:04 hercynium joined, eternaleye_ joined 01:10 eternaleye joined 01:29 eternaleye joined, agentzh joined 01:33 kst joined 01:34 lumi joined, eternaleye joined 01:35 orafu joined 01:38 __ash__ joined
pugs_svn r28834 | diakopter++ | [STD Makefile] add sprixelCORE.setting 01:58
01:59 p6eval joined 02:00 p6eval joined
diakopter sprixel: say 4,5453424535232355532542452452389821009370765843100 02:01
p6eval sprixel 28833: OUTPUT«45453424535232355532542452452389821009370765843100␤»
diakopter it's alive.
yes, it double parses the setting. :) so it's slow x8 02:02
02:05 eternaleye joined
pugs_svn r28835 | diakopter++ | [sprixel] handle more than one setting .pm (by slurping them all together and feeding to STD in one bite). 02:15
r28835 | [sprixel] add Str.pm to the setting, with its (constant/internal, called from parser action) ctor function
r28836 | diakopter++ | [sprixel] implement quote__S_Double_Double, again. 02:20
diakopter I just realized that since none of the sprixel context's state is stored in JS closures, it can be trivially emitted to JS.....! 02:28
(and so the post-setting context can be loaded from a sprixelCORE.setting.js file) 02:32
diakopter leaves that optimization for another day 02:33
02:43 crythias left 02:58 synth joined 02:59 synth joined 03:00 kst joined
quietfanatic I have a very odd syntax error... 03:10
lisppaste3 quietfanatic pasted "fails at elsif $_[0], in the second method" at paste.lisp.org/display/88872 03:11
quietfanatic why does the first method parse and the second not? 03:12
(and yes that $_[0] is supposed to be $ not @ 03:15
) 03:18
03:20 pmichaud joined, tak11 joined, nihiliad joined, Solarion joined, Juerd joined, Trinity94 joined 03:21 astinus joined, Solarion joined
quietfanatic and commenting out the first methods stops the error 03:22
s/methods/method/
Aha, it is the postcircumfix:<{ }> declaration. 03:24
I guess that is NYQI 03:26
03:42 envi^office joined 04:12 desertm4x joined 04:17 mberends joined 04:24 kst joined, Confield left
mberends sprixel: say "the V8 is back"; 04:25
p6eval sprixel 28836: OUTPUT«the V8 is back␤»
04:31 zloyrusskiy joined, justatheory joined 04:39 eMaX joined
dalek p-rx: 66906e8 | pmichaud++ | src/NQP/ (2 files):
More nqp value handling improvements.
04:42
p-rx: 4778331 | pmichaud++ | src/ (3 files):
Allow Cursors to bind non-Match objects.

Split NQP into shared (HLL) and non-shared (NQP) components.
04:43 dalek joined
pugs_svn r28837 | mberends++ | [sprixel] more documentation as sprixel convalesces after major surgery 04:44
05:03 patspam joined
diakopter mberends: do you want to write .DISPATCH :) 05:04
mberends hmm, must think about that. I was looking at getting 'make test' working 05:05
diakopter oh, hrm
oh
mberends it's yearning for && to work
diakopter well, I guess Test.pm could be made to work without any hacks/workarounds now
I mean, it would refer to the args in each sub in the jseval JS (not P6 named parameters) 05:06
gtg
mberends but && may be the first of many things todo for use Test to work
ok, nice work!
05:09 jaldhar joined
p-rx: b25240b | pmichaud++ | (5 files):
Split NQP into shared (HLL) and non-shared (NQP) components.
p-rx: 532f8aa | pmichaud++ | .gitignore:
Some .gitignore updates.
05:28 NorwayGeek joined 05:36 am0c joined 05:51 zloyrusskiy joined 05:53 flip214 joined
flip214 I've found another bug in rakudo 05:54
rakudo: my $a; say $a.WHAT.HOW.WHERE.HOW;
p6eval rakudo 827734: OUTPUT«Int()<0x10a8b18>␤»
flip214 that works
rakudo: my $a; say $a.WHAT.HOW.WHERE.HOW.HOW;
p6eval rakudo 827734: ( no output )
flip214 but two .HOW result in a segfault
at least for me
05:54 rfordinal3643 left
flip214 rakudo: my $a; say $a.HOW.HOW; 05:54
p6eval rakudo 827734: ( no output )
05:56 rfordinal joined, zloyrusskiy joined
diakopter segfault for me too 06:13
pugs_svn r28838 | mberends++ | [sprixel] yet another documentation update 06:14
flip214 @tell masak: rakudo: my $a; say $a.WHAT.HOW.WHERE.HOW.HOW; 06:16
lambdabot Consider it noted.
diakopter convert the program AST from YAML format to JavaScript
actually it's not yaml; it's just Perl values 06:17
06:17 canhope joined
mberends oh :/ 06:17
diakopter to contain source from all setting files 06:18
not setting files, runtime .js files
the setting (.pm) files are slurped in/together earlier 06:19
mberends is $r an AST in perl5 hash-of-hash format or somesuch?
diakopter yeah, though blessed
mberends ok, runtime .js, thanks
mberends re-documents
diakopter it's kinda neat... there are 3 layers of contexts there 06:20
well, 4
06:21 pnate joined
mberends "context" is a most overloaded name for ...whatever 06:21
diakopter the Perl context, the multiple V8 contexts (which can be controlled/injected from any of the Perl or [self or other] V8 contexts), the JS notion of lexical context at runtime, and then the Perl 6 context (lexical scope combo with interpreter state and ast) 06:22
mberends heh 06:23
06:23 lumi joined
mberends for my (in)sanity: @js is runtime library, $s is setting, right? 06:23
diakopter correct 06:29
mberends :) 06:30
06:41 jaldhar joined
pugs_svn r28839 | mberends++ | [sprixel] clarified difference between setting and runtime library 06:45
06:45 Su-Shee joined
Su-Shee good morning. 06:45
mberends gm Su-Shee 06:46
06:48 rfordinal joined 06:54 mariuz joined
moritz_ \\o/ 06:55
Su-Shee moritz_: you finished/managed what? :) 06:56
moritz_ Su-Shee: I finished putting my arms up in the air
mberends will put his arms up in a shower & 06:58
Su-Shee moritz_: congrats. if you define this as a success, it must have been some evening yesterday. ;) 06:59
diakopter approaches sleep
moritz_ ;-)
Su-Shee already had her arms under the shower and also in the bodylotion bottle. 07:00
moritz_ that must be quite a big bottle (or short arms :)
Su-Shee well, figuratively speaking. the channel now smells nicely only virtually, anyway. ;)
"perl 6 will also make camels smell nice." ;) 07:02
mberends smells virtually nice 07:28
well, that flew like a lead balloon :/ 07:38
07:45 eMaX joined 07:46 jferrero joined
Su-Shee to where do I direct a young perl padawan interested in perl6/dbi? 07:47
moritz_ here... 07:49
or #dbdi, though that's pretty empty right now
Su-Shee I'll bring him here.
moritz_ Su-Shee++
mberends see also: github.com/tene/perl6-sqlite 07:52
Su-Shee he'll have a full jabber window when he wakes up ;) 07:54
07:59 kst joined 08:04 lumi joined 08:09 envi^office joined 08:14 TiMBuS joined, JimmyZ joined 08:24 ihrd joined, ihrd left 08:41 NorwayGeek joined
dalek ok: 4fe7f7b | moritz++ | src/multi-dispatch.pod:
[MMD] give the proto the right arity
08:44
08:47 masak joined 09:05 am0c joined 09:12 araujo joined
jnthn oh morning 09:19
masak yawns
lambdabot masak: You have 1 new message. '/msg lambdabot @messages' to read it.
moritz_ \\☕/
masak @massage 09:20
lambdabot flip214 said 3h 3m 25s ago: rakudo: my $a; say $a.WHAT.HOW.WHERE.HOW.HOW;
moritz_ @tell := { say 'use phenny instead' }
actually betterworld reported the .HOW.HOW segfault a while ago
masak backlogs to find out what that cryptic message meant
jnthn why on earth would anyone do such a thing...
mathw oh hai
moritz_ jnthn: to test the semi-circularity of the MOP
rakudo: say .HOW.HOW 09:21
p6eval rakudo 827734: ( no output )
jnthn moritz_: Is a segfault a fail? ;-) 09:22
moritz_ :-)
jnthn makes coffee 09:24
09:28 lumi joined
carlin Argh 09:29
carlin is in unicode-hell :(
moritz_ found long ago that it really pays off to have a working all-utf-8 setup 09:30
especially when debugging encoding issues
Su-Shee ah, there's a code point for the devil's foot now? ;)
moritz_: indeed. 09:31
Su-Shee helped finding a utf-16 BOM problem last week. poor innocent developer didn't know what his windows editor produced...
masak rakudo: class A { has $.x }; my $a = A.bless(42, :x("OH HAI")); say $a.x
p6eval rakudo 827734: OUTPUT«No such attribute '$!x' in class 'A'␤in Main (file src/gen_setting.pm, line 206)␤»
masak is still a bit unclear on what can and can't be blessed 09:32
at the very least, it's a LTA error message.
jnthn masak: Rakudo answer: you can bless something that .CREATE gave you back.
masak: Anything else, forget it.
masak blech. :) 09:33
and Spec answer?
09:33 meppl joined
jnthn masak: Good question. I'm not sure exactly what else it's intended to do besides creating a default candidate if you pass not, then calling BUILDALL on it. 09:34
The smop guys probably feel differently though.
masak I can sometimes see the use for re-blessing an already .CREATEd object to a descendent class.
that would require running BUILD only on the newly introduced classes, I guess. 09:35
jnthn masak: I'd like to see a clear spec on what can and cannot be done with bless.
masak: Aye, that could work.
OK, I have 2 small @other-job to do. 09:36
And then it's on to the final resig2 issues.
mathw \\o/ 09:37
masak \\o/
colomon \\o/
jnthn really hopes to merge today 09:38
Then we get to close some RT tickets. :-)
mathw \\o/ \\o/ \\o/
mathw is too happy to express it with o/ anymore
masak moritz_: full ACK on the @!array handles <push etc> thing. also hashes. 09:39
moritz_: I find it much more common to have objects behave like arrays/hashes than using the Array special case of 'handles'. 09:40
mathw resets brain to Perl 5 and does some $work 09:41
jnthn masak: Well, that's three votes to kill it. :-)
masak as to the discussion about a newbie channel, I agree with everybody who has had an opinion in the matter. :P 09:42
I've heard the opinion that outsiders are "humbled" by the intricate discussions on #perl6. I think that's fine. 09:43
the day we lose that trait, is the day Perl 6 goes mainstream, and some of the magic goes away. :/
(I realize that may be read as an argument for elitism, but I don't think it is.) 09:44
jnthn 1337!
masak #perl6: Elitist Lolcats. :) 09:45
mathw The day we no longer have intricate discussions here is the day that they happen somewhere else instead 09:47
masak oh, absolutely.
I just like to have them here. :)
mathw They'll always be required, but particularly as the community grows somewhere else for people asking relatively straightforward questions instead of discussing why named parameters behave differently in multiple dispatch might be useful 09:48
masak quietfanatic: congratulations, you've discovered rt.perl.org/rt3/Ticket/Display.html?id=69438
Su-Shee the problem with the intricate discusssions is that they doesn't really look very much "perl 6 will be a programming language for non-academics as well"
mathw But all languages require such discussion 09:49
It's the only way you sort out how it works!
09:49 desertm4x joined
Su-Shee (didn't I suggest a devel and a user's channerl already? I don't remember if it was here..) 09:49
mathw: sure they do. and yet all languages require users if they don't want to be labeled as "it's an academic niche language, don't bother..." 09:50
09:51 kst joined
mathw Su-Shee: Of course 09:57
I think we all actually agree on this :)
10:13 dakkar joined 10:15 FCO joined 10:19 lumi joined 10:30 pmurias joined
moritz_ on the subject of newbie/dev channel I want to add that I'm not discussing this on my own account, but because I received feedback from people who perceived this channel to be suboptimal for newbies 10:34
10:39 hanekomu joined
Su-Shee I'd like to have a parrot-perl-6-and-related forum some day. 10:41
moritz_ start one. I'll answer as good as possible 10:43
if you need hosting, that can be provided
pmurias why do we need a forum in addition to a mailing list? 10:44
arnsholt pmurias: For one thing, there're a lot of people who don't like mailing lists 10:45
Su-Shee pmurias: because it's one contemporary and nowadays common way how people gather to ask technical stuff.
moritz_ various reasons: 1) some people just like a forum better 2) a forum can be specialized (like specific link syntax, syntax hilighting)
mathw But if we split it too far, we get so that the (still small) community who can answer these questions have too many places to look for them
moritz_ 3) you can introduce a perlmonks-like voting system to motivate people to good answers
Su-Shee mathw: that's true.
mathw but that said, perlmonks has shown its use over the years 10:46
moritz_ masak: I guess that's why Su-Shee wrote "some day", not "now"
mathw so perl6monks, why not
Su-Shee moritz_: and you can subscribe to rss feeds selectively.
masak moritz_: was that for mathw?
moritz_ actually I'd rather like to get the Perl 6 users onto perlmonks too
erm, yes
sorry
ma<tab> :-)
Su-Shee moritz_: I think, I looked into perlmonks about 50 times in xx years... 10:47
mathw When I changed my nick I had to keep one that preserved the tab completion mess :)
moritz_ s/mathw/wmath/ :-)
mathw There are occasionally Perl 6 things on PerlMonks at the moment...
moritz_ aye
and nobody objected to them as being off-topic or so 10:48
mathw They're probably taking the view that it's still Perl
which is nice
Su-Shee one can't force the success/failure of a forum/mailinglist anyway - only support or hinder.
moritz_ and [tye] (one of the gods there) seemed to be quite open to discussing future perl versions on perlmonks 10:49
Su-Shee: right. and supporting stuff is really a question of effort
Su-Shee yes. indeed.
there will also some day the question of a rakudo-parrot or rakudo-perl6 conference or something like this coming up... 10:51
10:55 payload joined
pmurias Su-Shee: spliting it from the standard YAPC::{NA,EU} doesn't make much sense 10:58
moritz_ I think NPW was very successful both in terms of Perl 5 and Perl 6
and I *so* regret that I couldn't be there 10:59
Su-Shee npw?
moritz_ nordic perl workshop
Su-Shee ah.
pugs_svn r28840 | pmurias++ | [re-mildew] start of Hash, t/hash.t passes 11:01
jnthn Yes, it was.
moritz_ mildew: my %h; say %h
p6eval mildew: OUTPUT«False()␤»
moritz_ mildew: my %h = a => 3; say %h 11:02
p6eval mildew: OUTPUT«Can't locate object method "emit" via package "AST::Pair" at src/AST.pm line 291.␤»
moritz_ mildew: my %h; %h<a> = 4; say %h
p6eval mildew: OUTPUT«unknown method "postcircumfix:{ }" at message line 70 file build/s1p/src/lexical.c␤»
pmurias mildew-js: my $foo = ::Hash.new;$foo{'foo'} = 123;say $foo{'foo'} 11:03
p6eval mildew-js: OUTPUT«123␤»
moritz_ wow, we have a mildew-js target :-)
pmurias diakopter++ added it 11:04
moritz_ it's nice to see that the bus number on evalbot increased
11:06 ihrd joined 11:07 ihrd left
moritz_ I mean it's not mission critical, but it does make discussions here a lot nicer 11:09
11:11 ihrd joined 11:12 ihrd left
carlin looks forward to an IRC bot written in Perl 6 11:15
Su-Shee looks forward to an irc bot, forum, blog engine, microblogging engine, wiki, cms, ... written in perl 6 :) 11:17
pmurias perl6: say ''.true,'0'.true
p6eval elf 28840, rakudo 827734: OUTPUT«11␤»
..pugs: OUTPUT«␤»
moritz_ looks forward to a Perl 6 compiler written in Perl 6
11:18 dr_df0 joined
moritz_ rakudo: say ~?'' 11:18
p6eval rakudo 827734: OUTPUT«0␤»
Su-Shee looks forward to moritz' book. ;)
moritz_ rakudo: say ~?'0'
11:18 snearch joined
p6eval rakudo 827734: OUTPUT«0␤» 11:18
moritz_ why does the .true thing answers with 1 both times? 11:19
Su-Shee: not mine. Our! :-)
announcement planned for Friday 11:20
the day after the rakudo release
pmurias title? 11:21
moritz_ NYI :/
dr_df0 @karma
lambdabot You have a karma of 3
Su-Shee moritz_: today in the morning I thought about a system administrator's example and a networking example and a linguistic's example.
moritz_ we just call it "the book" so far :-)
Su-Shee: do tell
pmurias moritz_: Perl 6: NYI ;) ? 11:22
moritz_ not sure we'll get around to proper networking in rakudo * though
pmurias: :-)
Su-Shee moritz_: admin example could be apache logs parsing and combined with a networking example some automated update of whatever or monitoring services. (which would be something very common)
moritz_ I have a very basic apache logfile parser already 11:23
Su-Shee moritz_: all of it doesn't require crypto yet.
pugs_svn r28841 | pmurias++ | [mildew-js] ID is always set
r28842 | pmurias++ | [mildew-js] add .true to Str
Su-Shee (which we probably don't have as well yet..)
in terms of showing off the grammars it could be a domain validating grammar for one or two *nics. 11:24
moritz_ well, it's not hard to come up with good grammar examples :-) 11:26
11:27 lumi joined
Su-Shee yeah, but this would target admins and networkers and the like. which always was (and is) one of perl's strongest clientel. :) 11:27
and I wish for a good chapter about oo in perl 6 with REAL examples and no barking dogs and meowing cats. ;) 11:28
moritz_ we already have a "real" example 11:29
for OO
but I'll think about the log parsing a bit more
github.com/perl6/book/blob/master/s...bjects.pod
pugs_svn r28843 | pmurias++ | [mildew] fix test 11:35
r28844 | pmurias++ | [mildew-js] .lookup on lexical scope returns a bvalue
11:37 NorwayGeek joined 11:41 jlaire joined 11:49 kst joined
dalek ok: 507c553 | masak++ | src/classes-and-objects.pod:
[OO] dot is a twigil, not a sigil
11:53
11:58 envi^home joined 12:09 takadonet joined
takadonet morning all 12:09
12:11 Kodi joined
Kodi rakudo: my @a = 1 .. 3; say @a.perl; say @a[1 .. *].perl; say @a.perl; 12:12
p6eval rakudo 827734: OUTPUT«[1, 2, 3]␤[2, 3, undef]␤[1, 2, 3, undef]␤»
Kodi I don't understand Whatever enough to be sure that "@a[1 .. *]" should work, but it surely shouldn't do that. Has this already been reported? 12:13
moritz_ it has been reported, yes 12:14
and nobody is really sure if it's supposed to work that way :-)
Kodi Ha, okay.
jnthn OK, onto the branch... 12:25
And the wrap.t fail. This one is...hard. :-/ 12:26
12:27 ruoso joined
jnthn holyshit...I think .wrap might be a register allocation bug. 12:38
*sigh*
12:39 SmokeMachine joined
masak :( 12:39
carlin ok 4 - Successfully created 1255956343unicode with Unicode intensive content \\ ok 5 - The Wikipedia and local unicode pages are indentical 12:48
carlin has escaped Unicode-hell o/ 12:49
12:50 NorwayGeek joined
masak lately, when I get an error in Rakudo, the error and the thing printed before the error are sometimes output in the wrong order. 12:53
moritz_ could be a STDOUT/STDERR buffering/autoflushing issue 12:54
jnthn Aye.
masak it's not terribly confusing, mostly surprising. 12:55
jnthn masak: Does it depend on if the thing printed has a newline on the end or not? 12:56
masak no.
or rather, all the things I output do.
jnthn k
jnthn scratches his head and thinks, wtf... 12:57
diakopter watches Camelia alight on a lambdacamel 13:08
PerlJam Release week! 13:10
masak \\o/
this is my last change to make a dry run release.
PerlJam masak: mine too ;-) 13:11
jnthn sweats as he tries to track down the stupid .wrap bug that is the thing currently most in the way of merging resig2
13:14 abra joined 13:15 kst joined
diakopter steals .DISPATCH from mildew-js/smop 13:20
13:24 Kodi left 13:26 mj41 joined
diakopter oh. nm. it's just as simple as the one in sprixel already. 13:31
:)
13:32 nihiliad joined
diakopter mberends: did you see my note about persisting the interpreter state/context to disk as js source? 13:32
jnthn Good news. I think I fixed wrap.t 13:40
masak \\o/
takadonet !!!!
jnthn Bad news. I had to do something really stupid to work around a probable Parrot bug I don't understand at all.
moritz_ it needs a good comment in the code
presumably containing lots of swear words 13:41
jnthn moritz_: Good point.
moritz_: ooh!
I like that idea.
13:41 abra joined
jnthn Also, callsame/nextsame's implementation just became a quarter of its original length. :-) 13:41
takadonet sweet 13:42
jnthn 1 files changed, 5 insertions(+), 44 deletions(-)
That's the kind of commit I like making. :-)
moritz_ aye 13:43
13:44 abra joined 13:45 kent\\n joined
jnthn moritz_: Comment added. However, swearing lots in the comment in English felt really childish and immature. 13:46
mathw so you swore in Slovakian instead? 13:47
jnthn mathw: er, 5 different languages actually
:-)
mathw :)
I can only swear in English unfortunately
moritz_ and that feels more mature? :-)
mathw I was very good, and never learned any German swear words
moritz_: makes him look more intelligent
jnthn moritz_: No, jsut more cultured. :-)
*just 13:48
mathw: Well, I try and create the illusion sometimes.
:-)
13:48 NorwayGeek_ joined
jnthn OK, that's one test off the list, and the one that I realy, really cared about fixing. 13:49
mathw :)
Take a break
jnthn makes a cup of tea
The others are actually rather less horrible.
In fact, they're even regressable imho, but I'll try and fix them anyway. 13:50
moritz_ do you need resig2 spectest?
jnthn moritz_: Give her a spin, yes.
arnsholt mathw: But swearwords are the fun part of language acquisition =D
jnthn moritz_: You should see 3 failures.
arnsholt And often quite informative about the culture
jnthn moritz_: One of them is in capture.t - after talking with pmichaud we're regressing on that one, since we both aren't sure what the test really wants anyway, and we'll re-visit it later on.
13:50 jlaire left
jnthn moritz_: The other two should be in instance.t (one failure) and package.t (2 out of 3 fail) 13:51
mathw arnsholt: I was a good boy at school. I didn't start swearing properly until my second stint at university
jnthn mathw: I thought the point of swearing was that it was improper? ;-)
mathw Maybe 13:52
13:52 JimmyZ joined
mathw I always used to say I'm saving it for special occasions 13:52
13:53 payload joined
jnthn I try not to over-do it. :-) 13:53
13:53 dakkar joined
jnthn OK, time to fix up package.t, and probably a bunch of other stuff accidentally at the same time. 13:54
.oO( this either works or goes horribly wrong )
13:55
moritz_: plz note on testing - test resig2, not resig. Just in case. :-)
moritz_ you'll also have to fix the build on linux if you want to merge :-)
jnthn erm, huh?
I did fix the build stuff, I'd thought. 13:56
moritz_ ok
jnthn It worked for @other on Linux, I'd imagined.
moritz_ it just failed, but that might be due to parallelism
jnthn Unless both masak and carlin are on something else.
moritz_: ah, OK.
masak I'm on Darwin.
jnthn How evolved.
masak :) 13:57
moritz_ compiling gen_setting.pm is slooow
masak yep. on Darwin, we don't monkey around.
jnthn Yeah, someone would go ape if they caught you doing that.
moritz_: Tell me about it. We need something that parses NQP faster. ;-) 13:58
moritz_ jnthn: we need to split up the compilation
masak jnthn: What kernel I'm running feels like a very primate matter.
or "my kernel doesn't have a long tail, but my dog does." 14:00
Su-Shee grrr. and _now_ would be the time when I would _love_ to have perl 6 in the office already. 14:01
14:01 pmurias joined
masak Su-Shee: what's stopping you? 14:01
Su-Shee masak: missing dbi and speed, mostly.
masak understandable. 14:02
Su-Shee but I'm really pressuring the old code refactorwise in a "ok, and then, when we use perl 6, that would be.." direction.
14:04 KyleHa joined
mathw Su-Shee: Oddly enough, I'm doing that 14:06
Or I was until I started using subroutine attributes
I'm not aware of a Perl 6 equivalent right now 14:07
moritz_ has &!callback; #?
masak moritz_: can you be more specific? 14:08
14:08 alester joined
moritz_ that's a "subroutine attribute", no? 14:08
masak I think mathw meant the other thing. 14:09
attributes on subroutines.
14:09 PacoLinux joined
moritz_ &myroutine does role { has $.thing } 14:09
masak moritz_: and I wouldn't call a &! attribute a 'subroutine attribute', because the Callable stored in it doesn't have to be a subtroutine.
mathw I'm doing this: 14:10
14:10 pnu joined
mathw sub something :myattribute { } 14:10
where the thing which handles myattribute is wrapping the sub
jnthn mathw: traits
mathw jnthn: ah yes
of course
lisppaste3 moritz_ pasted "spectest on resig2 for jnthn++" at paste.lisp.org/display/88888
mathw jnthn: do we do custom subroutine traits yet?
moritz_ I think we do :-) 14:11
mathw yay
jnthn mathw: svn.pugscode.org/pugs/t/spec/S14-tr...routines.t
moritz_: Hmm. Are you on 64-bit, by any chance?
mathw jnthn++
jnthn moritz_: And t/spec/S03-junctions/autothreading.rakudo exits with segv if you run it directly with Rakudo? 14:12
moritz_ jnthn: yes, I am
mathw jnthn: so in the trait_mod you could do something like $code.wrap ?
jnthn mathw: In theory, yes.
moritz_ jnthn: yes, segfaults directly after the plan...
mathw jnthn: yay 14:13
moritz_ jnthn: do you want access to that box to do some debugging on amd64?
mathw rakudo: multi trait_mod:<is>(Routine $c, woowoo) { $c.wrap: sub { say "Woowoo" } }; sub foo is woowoo { say "foo" }; foo(); 14:14
p6eval rakudo 827734: OUTPUT«Unable to parse multisig; couldn't find final ')' at line 2, near ", woowoo) "␤in Main (file <unknown>, line <unknown>)␤»
mathw oh
of course
it's wrong, but it's also an LTA error
jnthn moritz_: I have a 64-bit box to hand, I'll give it a try.
moritz_: The worst bit is that it explodes in some throw-away code. :-( 14:16
moritz_: That'll be getting changed as soon as pccreapply lands.
moritz_ well
but you want to branch before the release, and pcc_reapply lands after the release
d'oh 14:17
14:17 meppl joined
jnthn s/branch/merge/, but yes 14:19
moritz_: So I'll have to tyr and fix it.
mathw rakudo: role woowoo {}; multi trait_mod:<is>(Routine $c, woowoo) { $c.wrap: sub { say "Woowoo" } }; sub foo is woowoo { say "foo" }; foo(); 14:22
p6eval rakudo 827734: OUTPUT«Lexical '__CANDIDATE_LIST__' not found␤in Main (file src/gen_setting.pm, line 206)␤»
mathw meh 14:23
moritz_ mathw: ticket it!
masak wow :)
jnthn Ooh.
masak mathw: what moritz_ said. RT it! :)
jnthn Ouch.
mathw jnthn: Did I get the syntax right?
If so, I shall file ticket
jnthn mathw: Ticket it, but now I see the code, I remember this. 14:24
moritz_ I think you did, and if not it's still a LTA error message
jnthn I even remember debugging why .wrap in trait mods didn't work and discussing the issue with pm, I think.
masak mathw: doesn't matter whether the syntax is right. those are guts sticking out.
pmichaud good morning, #perl6
moritz_ oh morning
jnthn Talk of the de^Wguy
:-)
mathw jnthn: so was that because of the call to wrap then?
jnthn mathw: Yeah, something is bad in the interaction between .wrap and trait mods. 14:25
masak pmichaud: morning!
jnthn I forget exactly what it was now though. :-(
mathw RT #69893 filed
moritz_ rakudo: role woowoo {}; multi trait_mod:<is>(Routine $c, woowoo) { $c does woowoo }; sub foo is woowoo { say "foo" }; foo();
mathw jnthn: wrap is the main reason I'd want to use them at the moment, so please fix it please please please please please
p6eval rakudo 827734: OUTPUT«foo␤»
mathw Offtopic: does perldoc.perl.org search work? 14:26
jnthn mathw: I've a horrible feeling it was not a 5 minute fix. I'll have a look sometime soon and try and figure out what it really was. 14:27
mathw jnthn: If it was, your usual strategy would be to have already fixed it...
pmichaud (gen_setting compilation) that's rakudo's speed, not nqp's
gen_setting is built by rakudo
moritz_ that's why I started that branch, yes
jnthn pmichaud: ah, yes
pmichaud: I was thinking actions.pm ;)
pmichaud right. :) 14:28
jnthn pmichaud: Which I'd also love faster.
pmichaud we'll know soonish
today is writing an operator precedence parser for nqp (and other languages)
it's the last big piece before it all starts coming together
14:29 payload joined
mathw pmichaud: this is me, appreciating your work 14:30
mathw appreciates
jnthn pmichaud: Gee, you just made my day's Rakudo hacking feel like child's play. :-) 14:32
pmichaud++
pmichaud: I'm attempting the package block changes atm.
My results so far mostly involve making the setting not compile. 14:33
mathw you always have to break something on the way... 14:35
it's a rule of nature I think
moritz_ it is. It's called Second Law of Thermodynamics 14:38
mathw although perhaps it's a good thing that evolution doesn't work like that 14:39
imagine being part of the generation who failed half their unit tests
masak pmichaud: how did you manage to bootstrap without already having an operator precedence parser? or do you have one, just not a general one? 14:40
pmichaud
.oO( "Far-right Republicans?" )
jnthn lol!
14:41 kst joined
jnthn tracks down what he thinks is the source of the trouble and tries again 14:41
pmichaud masak: parsing regular expression syntax doesn't really need operator precedence 14:42
masak pmichaud: it's just nice to have?
pmichaud well, not quite (more)
there's really only four levels of precedence involved
|, ||, &, &&
moritz_ you can just write the AST for regexes, no? 14:43
that is, for a regex that parses regexes
just like we generate PAST nodes in actions.pm
pmichaud the engine currently doesn't implement &&, I'm not sure what & will mean, and for the moment the engine treats | and || as being identical
so that means only one level of precedence, which is easy :)
masak :) 14:44
I see.
pmichaud (treating | and || as identical is the same as current PGE, fwiw)
masak nod.
pmichaud moritz_: (just write the AST) I started out that way, then decided it was a bit more complex than I wanted to do or maintain
moritz_ hm, ok 14:45
pmichaud so the p6regex syntax actually parses its own definition
the definition is in src/Regex/P6Regex/Grammar.pm
so, here's how the bootstrapping works
the repository contains a known working version of the parser (in src/stage0) 14:46
that gets compiled to produce a stage0 executable
that executable is then used to compile the source to produce a stage1 executable
the stage1 executable then compiles itself again to produce the final product
moritz_ sounds like normal bootstrapping (in)sanity 14:47
masak why the last step?
I know there must be a reason, but I don't see it.
pmichaud because the stage1 executable was built from a (possibly incomplete) stage0 compiler
masak ah, right. 14:48
pmichaud i.e., the source might have features not present in the stage0
moritz_ you could add another step for testing
pmichaud I thought about another step for testing, but I figure if the executable passes the (ever growing suite) that's good enough for me
moritz_ which uses the bootstrapped executable to compile itself again
and if all goes right, the result is binary identical to itself
pmichaud it won't ever be binary identical 14:49
because the subroutine identifiers change.
moritz_ that's what gcc does
ok
14:49 payload joined
pmichaud but one could compare the generated sources to make sure that the only differences are due to subids 14:49
(which is what I did manually when doing the first rounds of bootstrapping) 14:50
jnthn pmichaud: Well hey, guess what
> my $x = 42; class Foo { method bar { say $x } }
> Foo.new.bar
42
moritz_ woot
pmichaud \\o/
masak jnthn++
moritz_ does the setting build? :-)
jnthn moritz_: Yes, unfortunately one sanity test fails. 14:51
moritz_ oh yes, it's using say
jnthn moritz_: Not sure quite why yet.
t\\00-parrot\\06-op-inplace..........ok 1/11Could not find non-existent sub gcd
And yes, this fixes integration/package.t
moritz_ oh 14:52
gcd
jnthn If I can track down these failures as a result of this (actually quite big in terms of impact) change, that'll be down to the instance.t test.
moritz_ sounds like Rat
jnthn: class Rat has a private gcd() function
jnthn Oh hmm. 14:53
I wonder if it's because it's a lexical sub.
jnthn tries removing the my to see what happens
That could narrow it down quite nicely.
moritz_ though I have no idea why it might want to call that function in op-inplace.t :-) 14:54
pmichaud something did an integer division?
moritz_ oh
jnthn Yes, probably.
moritz_ $a /= 3; 14:55
jnthn yes, making it a non-lexical sub helps.
So the problem is to do with lexical subs in classes, it seems.
moritz_ maybe that should be changed to div=
in the sanity test
having rats there feels wrong
masak moritz_++ # thanks for the tip about 'make install' after --gen-parrot, that solved all my problems! 14:56
14:57 Psyche^ joined
moritz_ heh, it's straight from the README :-) 14:57
masak there's a README? :P
jnthn shhh...that's where my password list is! 14:58
moritz_ git mv README IGNOREME
pmichaud I think I'll write a book titled "README", and see if I can get the lowest rank on Amazon.
14:58 pyrimidine joined
masak pmichaud: naming your book "README" does seem a tad desperate... 14:58
moritz_ www.amazon.com/Steal-This-Book-Abbi...56858217X/ 14:59
pmichaud www.amazon.com/readme-txt-Bill-Read...833409401/
Su-Shee the second volume could be titled "readme, please" and the third "readme already, dammit" ;) 15:00
moritz_ sounds like a fun triology 15:01
awwaiid now all you need is content
but I hear the title is the hardest part
mathw they lie 15:02
masak 'Where God Went Wrong', 'Some More of God's Greatest Mistakes' and 'Who is this God Person Anyway?'
15:02 rdice joined
mathw I've had plenty of titles, but I've never finished a novel 15:02
masak (by Oolon Colluphid)
mathw masak: And then wrapped up with 'Well, that about wraps it up for God'
masak :)
moritz_ :-) 15:03
mathw $god.wrap
moritz_ (Douglas Adams)++
awwaiid masak, that does not actually logically imply that, after you _have_ completed a novel, you won't look back and realize that the title was indeed the hardest part :)
mathw mat<tab>
awwaiid er, mathw
:)
mathw :) 15:04
awwaiid "irssi: warning, I think that perhaps you are attempting to address mathw, rather than masak. Would you like me to correct this error, you careless human?"
masak that would be an awesome warning. 15:05
mathw it would, but it would require some serious perl fu to write the plugin
masak in both the old and the new senses of the word.
awwaiid masak, indeed.
mathw use Understand::English
Su-Shee the new school of polite user interfaces..
15:05 vmbrasseur joined
mathw Ah don't get me started on user interfaces 15:06
masak doesn't get mathw started on user interfaces
Su-Shee I'd like to have something like "Su-Shee, it's after 10 already - shouldn't you go to bed now?" ;)
masak Su-Shee: now, that could be arranged.
moritz_ that shouldn't be too hard to do
PerlJam Su-Shee: that's easy enough to write
Su-Shee masak: actually, I already have that and usally ignore it :)
masak :) 15:07
moritz_ at least if you delivered enough chocolate that day :-)
15:07 vmbrasseur joined
PerlJam you just need to hook it into some software that shuts your computer off 15:07
Su-Shee the problem is, you get too easily used to all those messages and start to ignore them.
awwaiid you mean you want me to show my wife the kill switch on my power strip? 15:08
seems dangerous
PerlJam Su-Shee: that's why it needs to be smart and vary the messages in a way that makes it unignorable.
moritz_ 22 0 * * * halt
masak I have the latest version of unreleased-tote talk to me. it's very helpful.
Su-Shee PerlJam: I've had a cron job during writing my thesis which shut down irc clients and I made a firewall rule to prevent "accidently" connecting to host xy. ;)
moritz_ man cron :-)
PerlJam awwaiid: I was thinking of an article I read recently on the pomodoro (sp?) technique.
masak it says 'testing', 'back to coding', and 'checkpoint -- oh yea!'
awwaiid googles pomodoro and starts getting hungry 15:09
PerlJam masak: it's sad when you have to program your computer to talk to you ;)
masak PerlJam: why? it works really well. :)
mathw Computers don't argue back... 15:10
PerlJam awwaiid: www.pomodorotechnique.com/
mathw ...much
masak oh, you were referring to the pathetic aspects of it. that doesn't bother me.
and when I'm using it among people, I just turn the $loud variable off.
Su-Shee I personally like the speaking computer in "eureka" very much ("sarah" :)
15:10 hanekomu_ joined
mathw The only one that talks to me is my satnav 15:11
It talks to me in German, which I find amusing when I have passengers
jnthn pmichaud: oh ouch, I think I found what's wrong. 15:12
pmichaud: We don't actually run the code in the setting, do we?
pmichaud: That is, we just load the thing and that's it...
pmichaud the begin blocks run
jnthn Yes, but the body of a class ain't a begin block now. :-)
pmichaud: And that's what does the setting up of the gcd lexical. 15:13
:-)
mathw gcd?
jnthn mathw: gcd is a "my" sub.
In the setting.
But it appears we never set the lexical at startup.
Aye, 'tis the case. 15:14
It works for lexical subs outside of the setting (e.g. user written ones).
pmichaud well, this is a similar problem with being able to do other setting-initialized things
jnthn I think we've a separate ticket about lexical subs in the setting anyway, it's just that we got away with it before when they were in classes. 15:15
Let's make it non-lexical for now, and whoever deals with said ticket can deal with this too.
pmichaud well, the setting produces a block of its own when it's compiled -- we just need to find a way to have that block execute
sure, making it non-lex for now is fine 15:16
jnthn I've added a TODO comment.
pmichaud jnthn++
jnthn Now let's see what the spectests have to say. 15:17
Knowing my luck, probably "omg FAIL" quarter of an hour in.
yup, sanity passes again \\o/ 15:19
15:19 iblechbot joined
jnthn Man, this will be a nice on-the-side win from resig though. :-) 15:19
mathw best kind 15:20
15:22 doolittle joined
jnthn moritz_: I'm curious, are there any compiler warnings on 64-bit that you see around line 640-647 when compiling perl6.ops there? 15:22
moritz_ recompiling now to check.. 15:23
perl6.ops:638: warning: cast from function call of type ‘int’ to non-matching type ‘struct PMC *’ 15:24
perl6.ops:638: warning: cast to pointer from integer of different size
perl6.ops:638: warning: cast from function call of type ‘int’ to non-matching type ‘struct PMC *’
oops
perl6.ops:638: warning: cast to pointer from integer of different size
also appears a few times, and once on line 637
mathw oh my 15:25
15:25 hercynium joined
mathw that's not good 15:25
not good at all
never assume ints are the same size as pointers!
jnthn hmm, those line numbers may be a little off. 15:26
mathw: no, indeed not...I'm trying to spot where I may have done that.
mathw really wishes C was not so lenient
masak I have a moral dilemma. The Configure script of a project with dependencies needs to set PERL6LIB correctly, but it cannot do that without knowing the location of the other projects -- information which rests mostly with proto, which isn't available in the general case. so there's no way to win.
mathw The solution is to design and implement a proper Perl 6 module system 15:27
Now
I expect it handed in before bedtime
moritz_ masak: the solution is to install the modules, of course
masak moritz_: aye.
moritz_: that would solve it.
moritz_: I was just looking for the correct short-term solution, but there does not appear to be one.
which is kinda bad, because we have build failures which depend on exactly that issue being solved. 15:28
moritz_ assume that the user already set up PERL6LIB already
masak that would solve it.
but it's kind of a tall order when 'install' should download and build in one go. 15:29
pmurias masak: where does it install to? 15:30
masak pmurias: nowhere. it just makes .pir files in loco. 15:31
pmurias 'make install' does?
masak nono, './proto install <module>'
15:35 NorwayGeek joined 15:38 donaldh joined, cdarroch joined
masak I've successfully gotten bin/web-druid to run on feather. what measures do I need to take to make something show up on the Web? 15:38
jnthn aww...I broke anonymous classes. :-/ 15:39
moritz_ masak: you need to connect to the port you've opened
feather.perl6.nl:$portnumber/
masak to be more specific, it says 'Druid now runs on 127.0.0.1:8888/', but going to 'feather.perl6.nl:8888/' doesn't help.
15:40 zloyrusskiy joined
masak if it's the port number that causes problems, I have the power to change it to something else. 15:41
15:42 zostay joined
moritz_ no port 8888 open on feather 15:42
jnthn Are you running on feather, or a vm on feather? Could that matter?
moritz_ that would matter
different hostname
masak tried another portname. didn't help.
dalek kudo: 1f16505 | moritz++ | README:
[README] mention win32 builds
masak my HTTP-fu only takes me this far. 15:43
diakopter if druid is bound only to 127.0.0.1, it wouldn't be accessible from off that machine..
masak diakopter: ah.
that would explain it.
15:43 kst joined 15:44 pyrimidine joined
masak tries setting the :$LocalAddr parameter in HTTP::Daemon.new 15:45
15:46 colomon joined
pmichaud disappears from irc for a while to focus on nqp-rx opp 15:47
15:47 cdarroch joined
masak no, that didn't help. :/ 15:48
moritz_ what did you set it to? 15:49
masak 5463
moritz_ huh?
masak the $$ of my bash session.
moritz_ not an IP address?
masak oh, the host.
feather.perl6.nl
moritz_ try 193.200.132.135, just for the lulz 15:50
masak I could try that.
it workz!
feather.perl6.nl:5463/
(be gentle, it's slow) 15:51
moritz_++
pmurias diakopter: how does .DISPATCH in sprixel look like?
masak anyone fancy a game of druid? 15:52
moritz_ ENOTIME
masak oops, there it crashed.
Segmentation fault.
back up again. :)
diakopter pmurias: it will take a method name and references to the js objects representing the invocant and/or the array of args 15:53
jnthn Hmm
masak playing on the web app currently requires angelic attributes in both players, since anyone can make a move for anyone.
jnthn src_indexes=0x7fffe0da32d0, dest_indexes=0x41a7140,
pmurias diakopter: and names ones?
jnthn Ah, maybe not a problem, one is on the stack and the other not.
diakopter names ones?
pmurias err named ones 15:54
15:55 ejs joined
diakopter named whats 15:55
pmurias named arguments 15:56
masak hihi, someone made a move on the board. :) 15:58
jnthn masak: whee, it works 15:59
masak (yes, I realize passing moves using GET is horridly wrong, since GET are meant for idempotent operations...)
jnthn: was that you? cool!
pmurias diakopter: you also need to take care of named arguments from the beginning
diakopter pmurias: yes, ok. :)
moritz_ did a move, but doesn't really know the rules 16:00
16:00 justatheory joined
masak the object of the game is to connect top and bottom (if you're vertical) or left and right (if you're horizontal). 16:01
I'm currently playing horizontal, it seems.
jnthn masak: How does board updating work?
masak jnthn: you mean the ASCII drawing, or the persistence?
jnthn masak: no, do I have to refresh manually to see the latest moves? 16:02
masak oh. yes. unfortunately.
no AJAX yet. :/
might be best to remove the ?move=xx when updating, too... :/
jnthn masak: yes, I guessed I should do that 16:03
masak this is primitive, but fun!
I'm playing Druid, over the web, with an application I wrote in Perl 6!
moritz_ shouts SVG, SVG
masak moritz_: I'm using the "moritz_ principle", and hoping others will chip in... 16:04
moritz_ you know, you can make SVG elements clickable, indicating possible future moves
masak I know. :)
colomon how many spectators do you think can watch the game without bringing down the system? ;)
masak moritz_: it's definitely on the agenda.
jnthn colomon: /. ? ;-)
masak colomon: however many we just were. :) 16:05
booting up again.
back up. :)
16:05 Bucciarati joined
colomon Oh, geez, no, I was just wondering if everyone on #perl6 could watch safely! 16:05
mberends masak++ # getting web-druid this far
jnthn masak: Is the web server written in Perl 6 too?
masak mberends++ # that's HTTP::Daemon in the bottom
moritz_ it is. That's teh fun part
jnthn Wow!! 16:06
masak++, mberends++
masak pure Perl 6.
16:06 justatheory joined
masak it's a relief not having to set up Apache, really. 16:06
jnthn ispressed
mberends expressed
jnthn erm, impressed
oh, I see what happend
masak Druid pulls in Web.pm, which pulls in http-daemon and perl6-sqlite. 16:07
jnthn "is impressed"
masak jnthn: it's watching neurons cross-fire in your brain, live! :P
jnthn: your move. 16:08
jnthn jsut moved
If I'm playing badly, it's because I'm fixing anonymous classes too ;-) 16:09
masak you play better than a total novice.
heh, segfault again. :) 16:11
jnthn oh noes connekshun is fail
masak try again.
we need to do something about that stability issue. 16:12
jnthn Indeed
Wonder if it's the same segv that we hit every so often.
With the ass. fail.
masak it segfaulted again... 16:13
jnthn bah, teh sux
masak gotta run -- we're going swimming. :) 16:14
jnthn Nice 16:15
masak I'll leave the webapp up until it crashes.
jnthn Have fun.
masak thanks -- I will!
16:18 rfordinal joined
jnthn rakudo: say eval('package Simp2 {sub pkg { $?PACKAGE }}; Simp2::pkg').WHAT 16:20
p6eval rakudo 1f1650: OUTPUT«Nil()␤»
pugs_svn r28845 | jnthn++ | [t/spec] Turn a todo'd spec to a skip, since a Rakudo improvement now sees it fail more spectaculorly. 16:22
jnthn resig2 now updated to fix packages.t and the lexicals in classes things now work. :-) 16:30
16:35 doolittle left 16:38 stephenlb joined 16:44 slavik joined
jnthn rakudo: Q:PIR { $S0 = "123" } 16:45
p6eval rakudo 1f1650: ( no output )
jnthn rakudo: Q:PIR { $S0 = 123" }
p6eval rakudo 1f1650: OUTPUT«error:imcc:syntax error, unexpected $undefined, expecting '\\n' ('"')␤ in file 'EVAL_23' line 51␤»
jnthn rakudo: Q:PIR { $S0 = unicode:"123" }
p6eval rakudo 1f1650: ( no output )
jnthn rakudo: Q:PIR { $S0 = unicode:'123' } 16:46
p6eval rakudo 1f1650: OUTPUT«error:imcc:syntax error, unexpected LABEL ('unicode')␤ in file 'EVAL_23' line 51␤»
jnthn ah crap
16:50 am0c joined, stephenlb joined
slavik ooh 16:54
parrot assembly inline with perl6?
nice!
jnthn slavik: Obviously, only works with Rakudo, so using it is generally not advised. But it's useful for in the setting. :-) 16:56
slavik jnthn: might be interesting stuff for optimization and such
what would be nice is to have PMX :) (JMX for Parrot) 16:57
jnthn JMX? 16:59
PerlJam is that like BMX? 17:02
jnthn Yeah, but done in Java, so it's like, not as fast. ;-)
cognominal purl says JMX is Java Management eXtensions 17:03
17:03 rfordinal3643 joined, donaldh left 17:16 stephenlb joined 17:17 payload joined
moritz_ jnthn: latest spectest on resig2 branch: cpature.t, unicode.t and autothreading.t have issues, the rest is fine 17:18
pugs_svn r28846 | lwall++ | [S12] treat all delegation objects equally including arrays and hashes 17:20
moritz_ TimToady++
moritz_ dances the happy dance 17:21
pugs_svn r28847 | jnthn++ | [t/spec] Todo one test that we're going to regress on for now. 17:22
jnthn moritz_: Not methods/instance.t?
erm, S12-method
moritz_ oh, yes
Failed test: 26
missed that among all the TODO passed
jnthn aye 17:23
I've got a local fix for that, just testing then will push.
For the unicode.t one, can you pull and re-build and try that one again now?
I just pushed what I hope is a fix for it.
However, no ICU here... 17:24
moritz_: We're regressing on that one test in capture.t - that spec commit there was just doing that.
s/spec/t\\/spec
17:26 bionoid joined, NorwayGeek joined
TimToady heh 17:27
17:27 dalek joined
jnthn pmichaud++ :-) 17:28
OK, with my latest push, and provided my unicode named parameters fix worked, I think we're now down to only having the segv on 64-bit in the junction auto-threading test. 17:37
I have rather mixed feelings on that. I've spent half an hour monkeying around with not much progress. 17:38
It's in code that is going to be ripped out in the next week or so anyway, when Parrot merge in pcc_reapply.
17:39 kst joined
jnthn And it's "only" affecting 64-bit in 1 test script out of the whole suite. 17:39
TimToady Damn the speed, full torpodoes ahead!
jnthn I'm rather loathed to spend hours trying to fix something in a bit of code that ain't going to last much over a week anyway.
colomon jnthn: what TimToady said. Debugging what will be thrown away is silly. 17:40
jnthn OK, good.
In that case, I'd like to solicit spectest runs on resig2, and unless anything besides that one issue comes up, I propose we merge in a couple of hours time. 17:41
colomon in general? I haven't been building it, but I guess I could and give the a spectest workout on OS X... 17:42
17:42 NorwayGeek joined
jnthn colomon: Yes, from anyone who has time to try it. :-) 17:42
I'd rather know about serious issues before we merge, not after. :-) 17:43
colomon Is it "git fetch resig2" to pull it?
jnthn colomon: I *think* you can just do a git pull 17:44
And then git checkout origin/resig2
At least, it worked for me...
When I wanted to grab it onto my 64-bit box. 17:45
17:45 kst joined
colomon "Moving to origin/resig2 which isn't a local branch." I guess that worked? 17:46
git log gives me a ton of your patches, guess it is right!
jnthn colomon: Yes.
colomon: I looked at that message and did a double-take too ;-)
And then realized it was just telling me something I already knew.
colomon Building now.
PerlJam colomon: you probably wanted "git co -t origin/resig2" That would have made a local resig2 branch than tracks the remote.
colomon PerlJam: not a big deal if it's going to merge today, but I'll keep that in mind for the future. :) 17:47
17:47 payload joined
jnthn PerlJam: Thanks, that's nice to know. 17:48
OK, short break. 17:50
bbs
diakopter TimToady: any ideas on enabling ./setting to persist the ast(s)? 17:55
TimToady feel free to hack on it 17:59
pmichaud nopaste.snit.ch/18372 # operator precedence parsing in nqp-rx
(still incomplete)
18:01 hexmode joined
diakopter TimToady: currently STD saves the .syml files for the setting .pm in perl6 instead of perl6/lib; is that correct? 18:01
hexmode how can I find a list of files in a directory? I tried opendir() and glob() from www.learningperl6.com/Chapters/10.d...ndles.html
dalek p-rx: 9083197 | pmichaud++ | src/ (2 files):
Refactor the opstack and termstack to hold Match objects instead of cursors.
18:03
p-rx: ecc6416 | pmichaud++ | src/cheats/hll-grammar.pir:
Add left associativity to precedence parser.
p-rx: 5b872f0 | pmichaud++ | src/ (3 files):
Reduce higher predecence operators immediately.
p-rx: 0428b85 | pmichaud++ | src/cheats/hll-grammar.pir:
Remove some debugging code.
diakopter pmichaud: will those eventually use the mangled names in the Past;Op names? 18:04
(merely curious)
pmichaud two answers 18:05
(1) are mangled names part of the spec yet?
(2) the operator precedence parser doesn't make the names directly, it allows the action methods to select the names 18:06
diakopter (1) not that I know of
pmichaud anyway, it's an action method that is producing the name -- it could easily mangle it to whatever we want. The OPP itself doesn't care about the names. 18:07
here's the code that produces the name:
$past := PAST::Op.new(
$/[0].ast, $/[1].ast,
:name( 'infix:<' ~ $<sym> ~ '>' )
);
18:12 nihiliad joined
jnthn pmichaud: Nice work. :-) 18:12
pmichaud well, it only works for left and right associativity at the moment :) 18:13
jnthn pmichaud: Is it just infixes that work so far, or prefixes/postfixes?
pmichaud and just infixes
but the rest should be very easy to add in 18:14
jnthn OK
Still, a nice start. :-)
pmichaud I'm a little surprised I got this far this quickly
jnthn If you didn't catch it in the backscroll, resig2 merges today, all being well.
pmichaud fantastic
that's good timing
jnthn++ 18:15
jnthn I'd hoped to have it before now, but it's been...some effort.
pmichaud I'm impressed it's done now, tbh
(or about to be done now)
that's a hugely significant piece of work and effort
jnthn It's just about all I've done since I got back from Asia. :-)
pmichaud :)
well, if opp goes well today, I will definitely take a break tonight to blog progress 18:16
depending on distractions around the house, I may have the new version of nqp ready on wednesday.
(looks likely.) 18:17
jnthn That would be excellent.
Are we going to use it to parse the current actions.pm?
PerlJam DCCs some good vibes to pmichaud to help with things "going well" :)
jnthn (I guess it's a good "backward compatibility" test.
)
pmichaud I hadn't planned on using it to parse current actions.pm, but we could try it.
There are a couple of items that might break backwards compat. 18:18
jnthn Note that i'm not proposing grammar.pg too, just the actions.
pmichaud for loops being the big one
jnthn Oh?
pmichaud NQP treats for $val { ... } as being for $val.list { ... } and not for list($val) { ... }
because NQP was created before we had those semantics well-defined in p6
so we might have to change actions.pm to be for @$val { ... } or for $val.list { ... } instead of what it currently has. 18:19
that's the only significant change I'm aware of at the moment, though. 18:20
we could probably go ahead and update actions.pm to be the .list form and have it work in both nqp-old and nqp-rx
anyway, I have errands to run around town, so bbl 18:21
jnthn Aye, I'm doing make dinner now too.
TimToady diakopter: do whatever seems best; I'm in Mr Fixit mode at my daughter's new (but old) house 18:23
diakopter ok I'll tinker 18:24
18:25 lumi joined, payload joined
PerlJam TimToady: are you like Richard Feynman? do you "fix thinks by thinking"? :) 18:28
colomon jnthn: resig2 spectest passes on OS X (10.5.8, 32-bit) with a nice batch of TODO passes. 18:30
jnthn colomon: \\o/ 18:31
colomon I'm going to try the skipped trig tests now to see what happens...
TimToady I do play the congas... 18:32
colomon jnthn: Do named positional arguments still not work? 18:38
jnthn colomon: Should work. 18:42
colomon Do they work on multisubs? 18:43
jnthn > sub foo($a, $b) { say "$a $b" } > foo(a => 1, b => 2) 1 2 > foo(b => 2, a => 1) 1 2
oh, that was meant to be several lines
Work on multi-subs in what way?
colomon I'm trying sin(:x(1.2)) and get No applicable candidates found to dispatch to for 'sin' 18:44
jnthn If the question is, "will they be treated as if they were positional arguemtns when considering narrowness", the answer is "no".
You need to write a proto that re-dispatches.
colomon multi sub sin($x, $base = 'radians') {
$x.sin($base)
}
is what the setting has now.
jnthn Right.
But you need a proto somewhere too.
colomon Can you explain more? I guess I'm not sure what a proto is... 18:45
jnthn sure, one moment though, dinner needs some attention...
colomon no hurry
TimToady hmm, if we called proto like an only, and wrote the proto with nextsame to access the multis, the we could say "nextsame or ..." to write default code, and maybe do away with "is default" 18:47
nextsame in a proto would be special, and use a revised capture with positionals where the original capture had nameds 18:48
jnthn OK, it's bubbling way happily now. :-) 18:49
So, how it works. When it's an only sub, it's simple. We call with named arguments, and the signature binder knows what to do with them when binding the signature. 18:50
colomon nods
jnthn So you can just call a only-dispatch sub or method and have the nameds mapped to positionals right away, and all is good.
18:50 desertm4x joined
jnthn Multi-dispatch is a bit trickier. Multi-dispatch doesn't consider named parameters when choosing a candidate, only positional ones. 18:51
If there are no positional ones, it's going to fail.
Erm, sorry, named *arguments*.
TimToady even if there's a multi () ?
jnthn It doesn't do any per-signature rearrangement of arguments.
TimToady: TimToady That'll work, yes. 18:52
TimToady: Provided it takes the nameds either explicitly or into a slurpy.
I was considering the sin($x) case more here. :-)
colomon: Anyway, if multi-dispatch fails, then you can write something called a proto.
This gets invoked just like an only, and so the nameds at that point get turned into positionals.
It can then re-dispatch. 18:53
So you'd write for example a proto sin($x) { sin($x) } 18:54
TimToady and hopefully the proto gets aggressivly inlined at some point
*agrsvly
jnthn TimToady: Hmm...how'd we know to do that?
colomon Is proto a keyword there?
jnthn colomon: yes
18:54 SmokeMachine joined
jnthn TimToady: Oh, I guess we know the multi candidates arities and stuff statically. 18:55
TimToady all function defs are lexical, and (after CHECK) immutable
jnthn Right.
colomon: It's in the same syntactic category as only and multi.
colomon: Note that you need just one proto per sub name, and then there may be many multi candidates, btw. 18:56
TimToady: nextsame in proto - hmm, maybe. 18:58
Too much magic?
Dunno. Would have to ponder it more.
18:58 masak joined
colomon So if I say something like 18:58
proto sin($x, $base) { sin($x, $base); }
it will handle the named arguments as positionals correctly? 18:59
pnate i'm having a little trouble building latest perl6 on mac os x 10.6.1
19:00 NorwayGeek joined
pnate i ran perl Configure.pl --gen-parrot and i got inter::progs - Determine what C compiler and linker to use...Compilation failed with 'gcc-4.2' 19:00
Use of uninitialized value $make in system at build/gen_parrot.pl line 68.
Unable to locate parrot_config.
colomon pnate: that's the master branch of Rakudo you're talking about, yes?
pnate yes
TimToady sin($x, $base = CALLER::<$?TRIGBASE>) or some such
pnate does it not like gcc 4.2?
or does gcc 4.2 not like it lol
19:00 rblasch joined
colomon TimToady: Except the trigbase stuff is all broken in Rakudo at the moment. 19:01
pnate: 32-bit or 64-bit?
jnthn TimToady: And we don't have CALLER yet.
colomon jnthn: but we do have proto already?
pnate i booted the 32-bit kernel 19:02
TimToady is wondering whether trigbase should be contextual instead
colomon TimToady: I thought $? was contextual? 19:03
colomon still gets very confused by some of this stuff.
pnate: this is the first I've heard of 32-bit problems with 10.6. 19:04
TimToady no, $? is a compiler constant, lexically scoped
jnthn colomon: Do we?
colomon TimToady: lexically scoped means you can change it your scope, yes?
jnthn colomon: Dinner ready now...back in a bit.
TimToady in an inner lexical scope, yes
colomon TimToady: I thought that's what contextual meant, I fear... 19:05
TimToady contextual means you can override it in an inner dynamic scope
pnate how do i show where compilation failed?
Su-Shee pnate: use a nopaste: paste.lisp.org/new/perl6 19:06
pnate oh, i mean it didn't even print anything
it just said what i pasted already
Su-Shee ah, got it. no idea, i've never compiled something on a mac. 19:08
colomon pnate: give me a moment, and I'll poke around here. (I'm still running 10.5.8...)
jnthn: proto sin($x) seems to work! More as I have a chance to test.... 19:09
19:10 kst joined
colomon pnate: Did it say "Configuring Parrot" ? 19:11
pnate nope
hmmm 19:12
i just configured parrot fine by checking iut out of svn myself
using "svn co svn.parrot.org/parrot/trunk parrot"
colomon and that configured and built okay for you? 19:14
pnate i'm compiling now
looks like parrot built fine 19:15
i was able to configure perl6 by using --parrot-config= 19:16
to the parrot_config i presumably just built
colomon So you (in theory) have a working configure of Rakudo now?
pnate correct
i'm compiling now 19:17
colomon There goes my theory on what could be wrong. Sigh. I'm afraid I'm in over my head here.
pnate well, if this works, it no longer matters to me, but it's obviously a concern for others ;) aw, compile failed
colomon Certainly we'd like to have it working in the next day or two, with a release coming up. 19:18
19:18 NorwayGeek joined
lisppaste3 pnate pasted "10.6.1 compile failed" at paste.lisp.org/display/88915 19:18
19:23 hanekomu joined 19:24 __ash__ joined
jnthn back 19:26
colomon: The proto helps, yes? 19:27
colomon jnthn: yes.
jnthn \\o/
colomon sorry, got distracted and haven't tested it all properly, but my first test was a success
jnthn colomon: OK. I'm going to work on improving the error messages that the new binder gives, 'cus they're teh sux right now. 19:28
And then it'll be merge time.
colomon (trying to help with the OS X 10.6.1 issue, quite ineffectively)
19:29 Su-Shee left
__ash__ does proto have the Test.pm in a library you can use outside of the perl6 stuff? 19:29
jnthn It's possible that latest Parrot has resolved the issue, but the one in build/PARROT_REVISION hadn't.
__ash__: If it does, it'll be in proto's project list. 19:30
colomon jnthn: you're talking about the 10.6.1 thing? That's a good idea! 19:31
and btw, proto passes my second test with flying colors 19:32
__ash__ colomon: what issue are you having? i am also on snow leopard 19:33
colomon __ash__: isn't me, it's pnate. he can't build on 10.6.1 (32-bit). It craps out in perl Configure.pl --gen-parrot 19:34
jnthn colomon: It's my best guess.
colomon is too chicken to upgrade to Snow Leopard this year....
__ash__ colomon: which part crapps out? does he have an error message? (just joined the irc channel so he might of posted it before i joined) 19:35
pnate i resolved that by downloading the latest parrot and manually passing in the path to parrot_config
but then when i tried to compile: paste.lisp.org/display/88915
colomon pnate: my suggestion would be to try bumping build/PARROT_REVISION to the latest Parrot (svn info in that parrot directory you downloaded) and trying from perl Configure.pl --gen-parrot again 19:36
pnate: (actually that's jnthn++ suggestion, just spelled out in more detail) 19:38
__ash__ i'll try re-building mine to see if i get any problems
19:39 zerhash joined
__ash__ your not upgrading are you pnate? or is this a fresh install? 19:42
pnate yep, fresh install
__ash__ hm
pnate i just did that and it can't find the parrot version
lisppaste3 pnate pasted "configure attempt with latest parrot" at paste.lisp.org/display/88919 19:43
__ash__ 41942
is the current parrot revision
pnate is there something i need to do other than check that parrot out into that directory?
__ash__ i have mine setup /Users/john/Projects/parrot and /Users/john/Projects/rakudo then just build parrot first, and when i configure rakudo i do perl Configure.pl --parrot-config=/usr/local/bin/parrot_config 19:46
pnate yeah, that's what i did before i got that compile error i pasted earlier
__ash__ parrot's configured with no custom options, just perl Configure.pl, then make && make install
what gcc do you have?
gcc -v
pnate i686-apple-darwin10-gcc-4.2.1 19:47
Configured with: /var/tmp/gcc/gcc-5646~6/src/configure --disable-checking --enable-werror --prefix=/usr --mandir=/share/man --enable-languages=c,objc,c++,obj-c++ --program-transform-name=/^[cg][^.-]*$/s/$/-4.2/ --with-slibdir=/usr/lib --build=i686-apple-darwin10 --with-gxx-include-dir=/include/c++/4.2.1 --program-prefix=i686-apple-darwin10- --host=x86_64-apple-darwin10 --target=i686-apple-darwin10
19:48 bhuron joined
__ash__ when you build parrot, try a make test in that directory 19:50
make sure parrots working fine
pnate nope lol
__ash__ whats that giving you?
lisppaste3 pnate pasted "parrot make test" at paste.lisp.org/display/88921 19:51
__ash__ are you in the parrot channel? 19:52
on irc.perl.org
pnate i can be
__ash__ k, they would know more about parrot related issues, this might be a parrot issue more than rakudo
what happens when you run make test a second time? 19:53
pnate it runs more tests 19:54
many are ok
19:54 ShaneC joined
pnate all tests successful ... not sure why that happened the first time 19:56
__ash__ i am asking in the parrot channel, i had the same issue the first time i ran it 19:59
kinda weird, its consistantly happening the first time i run tests after a make clean
omega perhaps some test leaves behind some cruft? 20:00
lambdabot omega: You have 1 new message. '/msg lambdabot @messages' to read it.
omega can I tell lamdabot I have read that msg? I seem to be getting it time and time again :p
colomon jnthn: With appropriate protos, all the currently skipped sin and asin tests past (as well as all the currently passing ones). Given that, once you get resig2 merged and I get a chance to add protos as needed, we'll have something like 5000 additional passing tests.... 20:02
__ash__ pnate: well, either way, that error hasn't prevented me from building rakudo, so... back to your issue, can you paste this: /usr/local/bin/parrot_config --dump
(correct the path if you need to) 20:03
lisppaste3 pnate pasted "parrot_config --dump" at paste.lisp.org/display/88924 20:05
jnthn colomon: I think that's a win. 20:06
:-)
colomon jnthn: I'm inclined to agree. \\o/
moritz_ re 20:08
diakopter colomon: do those trig tests expect a certain number of significant digits? 20:12
colomon diakopter: they're using is_approx, so they use its accuracy
which I believe is 0.00001
moritz_ oh wow, I didn't know about www.learningperl6.com/ 20:13
__ash__ pnate: i have no idea why your's isn't building, yours is basically identical to mine, other than a few paths
its also kinda odd that they put the stuff out in different orders
diakopter colomon: ok cool 20:14
pnate cool
moritz_ why do these Perl 6 book authors don't discuss with us? is everything in Perl 6 clear to them?
__ash__ pnate: is your parrot build a debug build?
pnate ash: yeah, who knows, i'm glad i could be of help though 20:15
ash: not that i know of
moritz_ or did I just miss all the discussions?
diakopter JS's number has a couple more digits precision that parrot
than parrot
moritz_: that website has been online for several years 20:16
colomon diakopter: I would expect that we generally get much better precision than that, though perhaps not on some of the funkier trig tests.
moritz_ just saw it, "Last Modified: Tue May 1 09:34:54 2007"
diakopter I seem to recall it being mentioned a few times on the mailing list(s) 2-3 years ago. 20:17
moritz_ ah well
__ash__ pnate: you have a ccflag for -g , which is one of the only differences I see that is major between ours, but thats not that big of a difference, wonder where that got set, do you have any CFLAGS set in your env?
pnate nope
moritz_ then my question just applies to the newer "
Beginning Perl 6: From Novice to Professional"
__ash__ moritz_: is that a book? i'd be amazed if an author could have a book about perl 6 out already... since, you know, the specs not even done... 20:20
diakopter By: James Lee , Richard Dice 20:21
# Pub. Date: October 26, 2009
# 500pp
moritz_ __ash__: www.amazon.com/Beginning-Perl-Novic...590598334/ "Currently unavailable"
diakopter search.barnesandnoble.com/Beginning...1590598337 20:22
__ash__ amazon knows the future, i think thats the real issue
diakopter rdice: hiya 20:24
rdice diakopter: G'day mate. 20:25
diakopter (see above) folkses've stumbled upon yer book 20:26
rdice Er, wot? 20:27
Oh, look there, a URL.
The project has been stalled for a few years. :-)
__ash__ pnate: did you do a make install of parrot?
pnate yep, actually let me try compiling rakudo again fresh 20:28
rdice # Pub. Date: October 26, 2009 -- I have no idea where this date came from.
diakopter so B&N's release date of 7 days from now... oh.
rdice I promise that it has no reflection on reality.
diakopter :D
rdice I think we started working on this in early 2006, and by mid-2006 we got as far as Pugs would allow us. We've been waiting for Rakudo to get to the point where we could start things back up again. And you know, we're probably there now. But there hasn't been forward movement on it. 20:29
diakopter oh. 20:32
pnate nope, same compile failure 20:33
paste.lisp.org/display/88915
__ash__ which git commit are you at? 20:36
pnate is it 08b7890? i'm not very familiar with git 20:37
20:38 hanekomu_ joined
moritz_ that's quite old 20:38
Feb 26
pnate wow
moritz_ please try a newer rakudo
pnate guess i should have installed git after all
doing that now
__ash__ could be the issue hehe 20:40
20:41 kst joined
pnate --gen-parrot works 20:43
20:45 gbacon joined
__ash__ cool, so you just had an old version of rakudo then? 20:48
pnate yeah, not sure why i downloaded that 20:49
i guess it was the most recent i saw in the directory listing
jnthn finishes up awesomizing the new binder's error messages
pnate yeah, there we go, it compiled successfully 20:51
thanks for that
now i can start writing perl 6
moritz_ I also recommend running 'make install'
which will install it to rakudo/parrot_install/bin/perl6
pnate yep, already did
moritz_ add that to your $PATH - PROFIT! 20:52
PerlJam always just does make install && sudo cp perl6 /usr/bin 3 :)
__ash__ mine lives in /usr/local
moritz_ I have a symlink in ~/bin/
__ash__ well /usr/local/bin/perl6
moritz_: how do you install proto? 20:53
just check it out?
moritz_ and then switch to the installed-modules branch
that's already much more awesome than the master branch, IMHO 20:54
jnthn But what if master branch was suddenly to get more awesome? ;-) 20:55
moritz_ then magic git fu would be required!
speaking of which... ETA for resig2 merge? 20:56
omega oi?
__ash__ so, i run the perl6 installer ?
omega wrong window
__ash__ to have it install itself?
jnthn moritz_: Within the next hour, I think. :-)
moritz_ __ash__: ./proto install proto 20:57
(not that I expect much git magic to be necessary to merge that branch...)
__ash__ moritz_: it doesn't like that i didn't let rakudo build parrot... 20:58
moritz_ __ash__: there's a config file where you can change the rakudo location...
config.proto
should work if you put the right path there 20:59
__ash__ kk, that fixed it
hm 21:00
Downloading all...Use of uninitialized value is that normal?
moritz_ no, but that branch isn't well tested either yet
__ash__ ah, kk
well, i might switch back to master, see if that still gives that warning 21:01
jnthn Running hopefully final spectest before merge. 21:11
21:12 jaldhar joined 21:32 meppl joined
mberends is hopeful about jnthn's resig2 branch, and has just got V8 running on amd64 21:33
jnthn mberends: It's looking good. :-) 21:34
mberends: Just about to merge.
21:46 pinchyfingers joined
__ash__ what is the resig2 branch? 21:46
jnthn It was a branch that replaced the signature binder. 21:47
21:49 dalek joined
colomon jnthn: I like that "was". :) 21:49
jnthn Merged.
moritz_ that branch brakes parallel build, again 21:50
jnthn moritz_: aww
moritz_: I thought I'd declared all the deps. :-/
I mean, there's not that much to them.
Just make sure bind$(O) is built before the dynpmcs...
21:51 tylerni7 joined
jnthn And it's declared there. 21:51
$(DYNPMC): $(PMC_SOURCES) src/binder/bind$(O)
moritz_ perl6_ops.c:29:38: error: ../pmc/pmc_p6lowlevelsig.h: No such file or directory
jnthn Oh
colomon \\o/
jnthn We need to build ops before dynpmcs I guess.
moritz_: adding 21:52
moritz_ Util++'s old patch seems to still work for that one 21:53
(though it doesn't apply cleanly anymore)
jnthn moritz_: pushed, give it another try
21:54 athomaso1 joined
moritz_ aye, works 21:54
jnthn \\o/
Yeah, I'd forgotten we need dynpmcs before ops.
dalek kudo: fca32d8 | jonathan++ | build/Makefile.in:
Try to unbreak parallel build.
moritz_ jnthn++ # resig2 merge
jnthn :-) 21:55
moritz_ since dalek didn't report the commits here, I had to give out the karma myself ;-)
colomon jnthn++ indeed 21:56
moritz_ build worked with -j (no limit) on a quad core machine
jnthn Excellent.
rakudo: sub foo(:$x) { }; foo(x => 1, y => 2, z => 3)
p6eval rakudo 1f1650: OUTPUT«Failed allocation of 375679515973768 bytes␤Parrot VM: PANIC: Out of mem!␤C file src/gc/alloc_memory.c, line 61␤Parrot file (not available), line (not available)␤␤We highly suggest you notify the Parrot team if you have not been working on␤Parrot. Use parrotbug (located in
..parrot's…
jnthn erm...
colomon awesome!
jnthn rakudo: say "hi" 21:57
p6eval rakudo 1f1650: OUTPUT«Failed allocation of 382045815036040 bytes␤Parrot VM: PANIC: Out of mem!␤C file src/gc/alloc_memory.c, line 61␤Parrot file (not available), line (not available)␤␤We highly suggest you notify the Parrot team if you have not been working on␤Parrot. Use parrotbug (located in
..parrot's…
jnthn :-/
colomon that's a lot of bytes!
jnthn Yeah!
moritz_ t/spec/S02-lexical-conventions/unicode.rakudo .................. Dubious, test returned 1 (wstat 256, 0x100)
Failed 5/31 subtests (less 2 skipped subtests: 24 okay)
jnthn moritz_: Gah, evidently my fix for that didn't quite work after all. :-( 21:58
jnthn lacks ICU
colomon I mean, I thought my program trying to use 9 gigs of ram the other day was impressive, and this is orders of magnitude more than that.....
moritz_ jnthn: do you want access to a machine with icu installedß ;-)
jnthn moritz_: Well, I could be less lazy and install it on my one too. :-)
moritz_ s/ß/?/
whatever works for you ;-) 21:59
jnthn moritz_: Any idea why evalbot has gone explodey?
moritz_ jnthn: no - realcleaning and building now 22:00
jnthn moritz_: I did bump PARROT_REVISION, btw.
ah, hopefully that fixes it.
diakopter 382045815036040 bytes
moritz_ rakudo: say 382045815036040 / 2**30 22:01
p6eval rakudo 1f1650: OUTPUT«355807.892080434␤»
diakopter heh
moritz_ that's just a few hundred peta bytes
what's the buzz all about?
__ash__ thats 0.339 PB 22:02
moritz_ anyway, going to bed now... in 5 minutes rakudo should be rebuilt on the p6eval server, and in 10 you should have the first smolder report
er, right
less than a PB. Neglectible ;-) 22:03
__ash__ 347 TB :P
can a 64 bit address space even make enough space for that?
moritz_ rakudo: say 2**64
p6eval rakudo 1f1650: OUTPUT«Failed allocation of 378723779532936 bytes␤Parrot VM: PANIC: Out of mem!␤C file src/gc/alloc_memory.c, line 61␤Parrot file (not available), line (not available)␤␤We highly suggest you notify the Parrot team if you have not been working on␤Parrot. Use parrotbug (located in
..parrot's…
moritz_ heh ;-)
diakopter moritz_: I'll watch it in a bit 22:04
__ash__ the world may never know
moritz_ really zZzZ
jnthn night, moritz_ :-)
22:08 hercynium joined
jnthn rakudo: say "lol I'm back" 22:08
p6eval rakudo fca32d: OUTPUT«lol I'm back␤»
jnthn \\o/
rakudo: sub foo(:$x) { }; foo(x => 1, y => 2, z => 3)
p6eval rakudo fca32d: OUTPUT«2 unexpected named parameters passed (z, y)␤in Main (file src/gen_setting.pm, line 288)␤»
jnthn ooh, it mentions *both* names. ;-)
rakudo: sub foo($x, $y?) { }; foo() 22:09
p6eval rakudo fca32d: OUTPUT«Not enough positional parameters passed; got 0 but expected between 1 and 2␤in Main (file src/gen_setting.pm, line 288)␤»
jnthn rakudo: sub foo($x, *@y) { }; foo()
p6eval rakudo fca32d: OUTPUT«Not enough positional parameters passed; got 0 but expected at least 1␤in Main (file src/gen_setting.pm, line 288)␤»
mberends jnthn++ # awesome error messages 22:10
jnthn rakudo: sub plot($x, $y) { say "($x,$y)" }; plot(1,2), plot(1, y => 2); plot(2, x => 1); plot(x => 1, y => 2); 22:11
p6eval rakudo fca32d: OUTPUT«(1,2)␤(1,2)␤(1,2)␤(1,2)␤» 22:12
cognominal jnthn++ # compiling rakudo on snow leopard
jnthn rakudo: my $count = 0; class Food { method pub { $count++ } }; Food.new.pub for 1..10; say $count;
p6eval rakudo fca32d: OUTPUT«10␤» 22:13
jnthn You can now also use lexicals outside of class blocks, as an added extra bonus.
rakudo: say 1; class Food { say 2; }; say 3;
p6eval rakudo fca32d: OUTPUT«1␤2␤3␤»
jnthn diakopter: And we get that one right now. :-)
diakopter++ # getting the spec clarification on that one 22:14
__ash__ anyone seen github.com/quietfanatic/link-c yet? 22:17
jnthn Haven't had chance to play with it, but heard about it. 22:18
__ash__ would that let you link to other non-C libraries too perhaps? Like say, ObjC or C++ ?
doesn't C++ just mangle the names of its symbols?
22:19 Whiteknight joined
arnsholt IIRC C++ only does name mangling, but that mangling is also compiler-specific, unless I'm much mistaken 22:19
colomon arnsholt is right about the mangling. 22:20
If link-c actually works already, that's awesome.
jnthn I got the impression that it does. 22:21
__ash__ there are some samples you can try in there
kinda odd that the git repo has a .so file in it though
hmm, wonder if i can ask that guy about linking to other libraries, like C++ or ObjC ones 22:22
22:22 dj_goku joined 22:29 kst joined
cognominal make test successful on smow leopard 22:30
22:31 kst joined
jnthn cognominal: Excellent, thanks for testing. 22:33
cognominal spectest doing well except autothreading 22:35
jnthn cognominal: You on 64-bit? 22:37
22:44 mikehh joined
arnsholt jnthn: I just tried the latest Rakudo on my Snow Leopard and make test worked fine 22:45
According to file, the perl6 executable is "Mach-O 64-bit executable x86_64" 22:46
jnthn Aye.
S03-junctions/autothreading.t in the spectests hits some issues on 64-bit.
It's in some throw-away code that will last about a week (until Parrot's pcc_reapply branch is merged). 22:47
So I'm not inclined to spend hours tracking down exactly why it explodes (especially sicne the bit of Parrot it crashes in is also going away within a week or so, I expect).
I tried a few things and had it under gdb, but didn't see anything obviously wrong. :-| 22:48
22:49 Chillance joined 22:50 cognominal joined 22:51 lumi joined 22:53 cognominal joined
cognominal jnthn, yes I am on 64 bits at the applicative level 23:02
dalek p-rx: 2188043 | pmichaud++ | src/cheats/regex-cursor-protoregex.pir:
Empty protoregexes return a fail.
23:04
p-rx: 2d1ddd7 | pmichaud++ | src/ (5 files):
Add prefix: and postfix: processing.
cognominal rakudo: sub quicksort ([$pivot, *@data], $reverse?, $inplace?) {...} 23:07
p6eval rakudo fca32d: OUTPUT«Malformed routine definition at line 2, near "quicksort "␤in Main (file <unknown>, line <unknown>)␤»
dalek p-rx: 7574241 | pmichaud++ | src/NQP/ (2 files):
Verify that right associativity is working (it is).
23:10
jnthn cognominal: Heh. You don't get those yet. :-P
cognominal: Though the binder already has various stubs in place to fill out for them.
cognominal: They're part of the grant - you'll get 'em within the next month. :-) 23:11
cognominal: You'll be pleased to know though that you now do have:
rakudo: say :($x, $y).WHAT
p6eval rakudo fca32d: OUTPUT«Signature()␤»
jnthn siglits. :-)
cognominal I am sure I have plenty to play with 23:13
say :($x, $y).perl 23:14
oops
rakudo: say :($x, $y).perl
p6eval rakudo fca32d: OUTPUT«:(Object $x, Object $y)␤»
dalek p-rx: 29c3519 | pmichaud++ | src/ (4 files):
Add circumfix: .
23:15
jnthn
.oO( . is a circumfix? oh, wait... )
23:19
pmichaud Maybe it's a circumfix in NQP-rx. :-) That way we can write "..." as being circumfix:<. .>( term:<.> ) 23:20
jnthn ;-) 23:21
Oh, the possibilities. :-)
colomon jnthn: wrt proto, it looks like I can get away with replacing the existing "multi sub sin($x, $base = 'radians')" with "proto sin($x, $base = 'radians')" (instead of creating a separate proto version). Does that seem right? 23:24
jnthn hmm 23:27
erm
jnthn 's brain grinds into action
If it's an untyped variant, you may get away with that.
oh wait 23:28
no, don't do it
Bad idea. :-)
Consider you have overloads;
multi sin(Complex $x) { }
And somebody does sin(x => $some_complex_number)
If you're not re-dispatching, then you'll ignore the overloads.
As in, the other candidates. 23:29
.oO( multi sin(Original $x) { ... } )
So no, the proto should just re-dispatch to one of the matching multis. 23:30
loliblogged! use.perl.org/~JonathanWorthington/journal/39772 23:35
cognominal jnthn++ 23:37
23:37 frew joined
cognominal what's this board game? 23:38
jnthn Druid
See github.com/masak/druid/
cognominal sounds nice 23:39
jnthn I've actually played it once in person. It was fun, though I lost. :-) 23:40
23:41 tak11 joined
cognominal I guess I need to write a goban to play go with masak. I have not explored Web though. 23:41
23:43 __ash__ joined 23:47 payload joined
colomon jnthn: okay. 23:50
cognominal specteston snow leopard : Files=438, Tests=32257, 2051 wallclock secs (11.96 usr 3.32 sys + 3016.78 cusr 228.38 csys = 3260.44 CPU) only autothreading fails 23:51
23:56 j2j joined
carlin Yay, resig was merged \\o/ 23:58
jnthn :-)
carlin but now I can't use junctions 23:59
not that I did before anyway though
jnthn ;-)