»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg camelia perl6: ... | irclog: irc.perl6.org/ | UTF-8 is our friend! ! temporary logs at colabti.org/irclogger/irclogger_log/perl6
Set by moritz on 29 April 2013.
00:00 ZeroSkill joined 00:01 ZeroSkill left 00:19 xenoterracide joined
grondilu yet an other Rosalind problem where Perl6 is too slow: rosalind.info/problems/itwv/ 00:39
00:40 dayangkun joined
dalek pan style="color: #395be5">perl6-examples: b841ad6 | (L. Grondin)++ | rosalind/itwv-grondilu.pl:
(rosalind) ITWV [much too slow but added nevertheless]
00:41
pan style="color: #395be5">perl6-examples: a933e5a | (L. Grondin)++ | parsers/CSSGrammar.pm:
Merge branch 'master' of github.com:perl6/perl6-examples
grondilu please guys work on improving performance. 00:43
00:43 berekuk joined
pmichaud r: say 'def' ~~ /abc/ 00:44
camelia rakudo 802574: OUTPUT«Nil␤»
00:44 berekuk left
grondilu rn: my $x = "foo" | "bar"; say "foo" ~~ / $x /; # I wonder if this is specced 00:48
camelia niecza v24-37-gf9c8fc2: OUTPUT«Nil␤»
..rakudo 802574: OUTPUT«Can not get attribute '$!pos' declared in class 'Cursor' with this object␤ in regex at /tmp/_Eo0OX4ldt:1␤ in method ACCEPTS at src/gen/CORE.setting:11180␤ in method ACCEPTS at src/gen/CORE.setting:683␤ in block at /tmp/_Eo0OX4ldt:1␤␤»
TimToady grondilu: it's not 01:04
but it was suggested a day or three ago
pmichaud the tricky part there would be knowing what actually matched 01:07
since junctions only tell you if something matched, but not what actually matched.
01:10 MrMeek-afk joined 01:20 robinsmidsrod joined 01:30 FROGGS_ joined 01:47 mavcunha left 01:52 census left 02:22 kurahaupo left 02:26 kurahaupo joined 02:33 grondilu left, raiph left 02:36 orafu left 02:37 orafu joined 02:55 cognominal__ joined 03:13 jaldhar joined 03:55 cognominal__ left 04:22 thou joined 04:25 Psyche^ joined 04:26 Psyche^ is now known as Patterner 04:38 Kharec left 04:42 Kharec joined 04:43 dayangkun left
diakopter oy 04:48
05:07 moritz_ joined 05:09 skids left 05:12 hami joined 05:45 asdfgh joined 05:46 asdfgh left 05:47 eternaleye joined 05:52 eternaleye left 05:55 eternaleye joined 06:01 cognominal joined 06:05 FROGGS_ left 06:12 eternaleye left 06:14 dayangkun joined 06:16 frdmn joined 06:17 frdmn|afk joined, FROGGS_ joined 06:18 eternaleye joined, frdmn|afk left 06:19 frdmn|afk joined, frdmn left 06:20 skids joined 06:22 tangentstorm joined
FROGGS_ <pmichaud> since junctions only tell you if something matched, but not what actually matched. <-- why not treat junctions like arrays there? 06:26
06:28 hami left 06:39 raiph joined 06:45 domidumont joined 06:51 baest_ joined 06:57 cognominal left 07:01 skids left 07:02 ilbot_bck joined 07:04 domidumont left 07:05 domidumont joined 07:06 skids joined 07:12 [particle]1 joined 07:13 sqirrel joined 07:15 camelia left
masak morning, #perl6 07:18
07:18 camelia joined
FROGGS_ morning masak 07:19
07:20 ChanServ sets mode: +v camelia
moritz \o 07:20
FROGGS_ moin moritz
07:21 FROGGS_ is now known as FROGGS 07:28 satyavvd joined 07:29 skids left
satyavvd what happend no release of rakudo last month and this month? 07:29
07:29 dayangkun left
satyavvd and irclog.perlgeek.de/perl6/today is not working.. 07:30
FROGGS satyavvd: look at the topic
there are compiler releases: rakudo.org/downloads/rakudo/
moritz and pmichaud is working on the star release
FROGGS the star release is in preparation though, there are to-be-fixed bugs 07:31
moritz and logs are down due to hardware failure
lizmat rn: class A { }; my $a= A.new( foo => 1 ); $a # shouldn't this complain about trying to initialise a non-existing attribute?
camelia rakudo 802574, niecza v24-37-gf9c8fc2: ( no output )
satyavvd i am checking on home page of rakudo.. ok got it
lizmat it would seem to me that at least in this example, this should be possible at compile time 07:32
or am I missing something?
07:33 xinming left
satyavvd thnx FROGGS 07:33
FROGGS lizmat: I'm not sure if this really can happen at compile time, but I agree that slurping args to nirvana is a bit odd
moritz lizmat: see perlcabal.org/syn/S12.html#Interface_Consistency 07:34
hoelzro good morning #perl6! 07:36
lizmat morning hoelzro!
07:36 xinming joined
lizmat hmmm… suddenly the named parameters of Perl 6 just look a lot more like just passing a hash and not giving a damn as it is in Perl 5 :-( 07:37
labster good $localtime, all
07:41 daxim joined
hoelzro if I wanted to add Positional capabilities to a value, I could create a role that does Positional and apply it to the value in question, right? 07:42
ex. role PositionalPair does Positional { #`(implement) } $pair but PositionalPair; 07:43
07:43 skids joined 07:46 cognominal joined, kaleem joined
labster perl6 -c rebootstrap.pl > ===SORRY!=== No object at index 16 07:50
huh, I have no idea how I broke panda
07:50 rindolf joined
FROGGS may run rebootstrap? 07:52
recompiling+installing rakudo breaks it 07:53
labster uh, that's rebootstrap dying on me.
FROGGS ahh -.-
sorry, looks like I need more coffee :o)
labster > require "Shell/Command.pm"; Missing or wrong version of dependency 'src/gen/CORE.setting' 07:56
maybe that has something to do with it. Really though, LTA error.
the "No object at index 16" one.
FROGGS true 08:03
labster well, that wasn't the problem. 08:04
the error is in /nqp/src/vm/parrot/6model/serialization_context.c -- now I'm even more confused. 08:07
FROGGS O.o 08:10
labster okay, I guess I broke "use lib". somehow. 08:16
FROGGS r: say @*INC 08:19
camelia rakudo 802574: OUTPUT«/home/p6eval/nom-inst/lib/parrot/5.2.0-devel/languages/perl6/site/lib /home/p6eval/nom-inst/lib/parrot/5.2.0-devel/languages/perl6/vendor/lib /home/p6eval/nom-inst/lib/parrot/5.2.0-devel/languages/perl6/lib /home/p6eval/.perl6/2013.04-22-gd2af402/lib␤»
FROGGS r: use lib 'rary'; say @*INC
camelia rakudo 802574: OUTPUT«rary /home/p6eval/nom-inst/lib/parrot/5.2.0-devel/languages/perl6/site/lib /home/p6eval/nom-inst/lib/parrot/5.2.0-devel/languages/perl6/vendor/lib /home/p6eval/nom-inst/lib/parrot/5.2.0-devel/languages/perl6/lib /home/p6eval/.perl6/2013.04-22-gd2af402/lib␤»
FROGGS r: use lib 'rary'; say @*INC; use 'None'
camelia rakudo 802574: OUTPUT«===SORRY!===␤Undeclared routine:␤ use used at line 1␤␤»
FROGGS r: use lib 'rary'; say @*INC; use 'None'; 08:20
camelia rakudo 802574: OUTPUT«===SORRY!===␤Undeclared routine:␤ use used at line 1␤␤»
FROGGS r: use lib 'rary'; say @*INC; use None;
camelia rakudo 802574: OUTPUT«===SORRY!===␤Could not find None in any of: rary, /home/p6eval/nom-inst/lib/parrot/5.2.0-devel/languages/perl6/site/lib, /home/p6eval/nom-inst/lib/parrot/5.2.0-devel/languages/perl6/vendor/lib, /home/p6eval/nom-inst/lib/parrot/5.2.0-devel/languages/perl6/lib, /home…
labster ./perl6
FROGGS looks good here at least
labster > use lib 'foo';
No object at index 16
FROGGS is it the same if you do: :7perl6 -e 'use lib "foo"' ? 08:21
err, ./ ...
labster not sure now... just did make realclean
FROGGS do you have PERL6LIB set to something? 08:22
labster no
08:23 kresike joined
kresike hello all you happy perl6 people 08:23
dalek p: 5cf0134 | (Donald Hunter)++ | / (3 files):
Added remaining bigint nqp ops.
p: f3551cf | jonathan++ | / (3 files):
Merge pull request #94 from donaldh/master

Added remaining bigint nqp ops
labster wait, maybe I have an idea.
hello kresike 08:24
jnthn morning, #perl6
FROGGS \o/, looks like I fixed: sub choop (*@s is rw) 08:25
kresike labster, o/ 08:26
labster \o
jnthn FROGGS: Would be curious to see the patch. 08:29
FROGGS jnthn: like that, though I want to clean it up: gist.github.com/FROGGS/7af9fcdda8dc7db39316 08:33
pmichaud 07:37 <lizmat> hmmm… suddenly the named parameters of Perl 6 just look a lot more like just passing a hash and not giving a damn as it is in Perl 5 :-(
lizmat: note that it's only methods that have this... subroutines don't implicitly/quietly slurp named arguments 08:34
also, I suspect it would be possible (but perhaps not easy) to define .new so that it warns/carps about any unused named parameters. 08:35
FROGGS jnthn: updated the patch, I moved the last call to Rakudo_binding_bind_one_param to the else too 08:36
jnthn FROGGS: I...don't understand how that works. 08:42
arnsholt jnthn: Regarding the PPC/SPARC build fixes on GH, perhaps we should see if there's a newer version of dyncall we can bundle?
I'm a bit wary of making our own changes to a third party lib, TBH
jnthn arnsholt: Yeah, or we should at least pass them upstream 08:43
arnsholt Yeah, if there's no new version that'd be my next preferred move
08:43 rindolf left
jnthn FROGGS: What happens if you call sub foo(*@x) { } with foo($x, $y, $z) ? 08:44
FROGGS: It looks like it'd just try binding the $z there
08:44 kurahaupo left
jnthn (overwriting the binding of $x and $y 08:44
)
FROGGS jnthn: currently compiling, but wanted to add tests and spectest now
I'll report in a bit
jnthn /* We have to bind every slurped parameter to apply 'is rw' on them */ 08:45
That comment confuses parameter and argument, which is not helpful in a piece of code that needs to keep the two straight... 08:46
FROGGS maybe that is because I tend to be confused there :/ 08:47
08:49 rindolf joined
jnthn sub foo($x) { } 08:49
# $x is a parameter
foo(1) # 1 is the argument. Maybe 'cus we can argue about whether it shoulda been 2 instead...
FROGGS so an argument is the value of a param? 08:50
jnthn It's the thing that you pass
08:50 fhelmberger joined
pmichaud parameters are parts of signatures. arguments are the things you pass 08:50
FROGGS ahh, okay
jnthn The reason I'm about certain that code is wrong is because bind_one_param is menat to be called once for each *parameter* 08:51
FROGGS ahh, I see
pmichaud sub xyz($x) { say($x); } # $x is a parameter of &xyz, and it's an argument to say(). :-) 08:52
08:54 pmurias joined
FROGGS jnthn: but in case of a is rw slurpy param, pushing the args to an PMCA isnt a good thing, right? 08:54
i.e., making copies and such 08:55
pmurias what would be a good target for the gsoc nqp/rakudo js backend? boostraped nqp passing all tests? 08:56
or should I extend that to rakudo passing some tests (sanity for example) too?
pmichaud pmurias: I'd be happy with bootstrapped nqp passing all of its tests, I think. 08:57
FROGGS hmm, I think that is a bit much for a gsoc project, I think making nqp pass all is pretty good
pmichaud you could put that your expected target is bootstrapped nqp passing tests, and the "stretch target" is having rakudo pass sanity. 08:58
FROGGS jnthn: it explodes if I pass something else than a single array
pmichaud r: sub xyz(*@a) { say @a.WHAT }; xyz(1,2,3); 08:59
camelia rakudo 802574: OUTPUT«(Array)␤»
pmichaud In order for @a to be "is rw" there, it will need to be a List instead of an Array 09:00
jnthn FROGGS: Right, that's what I suspected :) 09:01
pmichaud Array elements don't typically bind to other containers.
whereas List elements can do that.
jnthn pmurias: Bootstrapped would be pretty awesome
pmurias: Doing Rakudo too may be a bit of a stretch. 09:02
pmichaud in fact, it may be that "is rw" simply tells the slurpy parameter whether it needs to be an Array or a List
jnthn That would be elegant... 09:06
FROGGS I am a bit lost, where do I have to tweak that? 09:07
pmichaud FROGGS: lost on the concept, or lost on how that would be implemented? 09:08
FROGGS I understand the concept
pmichaud okay
you're probably looking for whatever creates the slurpy array
and make that switchable so that it can be a list instead
FROGGS well, there is a line about Rakudo_binding_create_positional() and Rakudo_binding_create_lol() 09:09
ahh, that looks good 09:10
pmichaud indeed, I wonder if the slurpy parameter needs a third case... as an Array, slurpies have "is copy" semantics. 09:15
as a List, they'd tend to be "is rw" semantics 09:16
we don't have anything with "is readonly" semantics
jnthn Parcel? :)
pmichaud Seq.
Parcel's don't have flattening or readonly semantics. 09:17
jnthn Hm, true.
pmichaud and yes, we've been eliminating Seq.... but in earlier version of Rakudo, Seq was the "lazily flatten into values" type.
Array is the "lazily flatten into copies" type 09:18
jnthn Can a Seq be pushed/popped/shifted/unshifted? 09:20
pmichaud yes
Seq is List
jnthn Ah, it's that way around. OK.
09:20 berekuk joined
jnthn can see this 09:20
pmichaud yeah, that's something that earlier specs had backwards :)
jnthn It may almost be a good way to teach the three too: show how *@a is rw vs. *@a is copy vs. *@a is readonly work. 09:21
pmichaud well, the current implementation hasn't had much need for Seq, which makes me wonder if it's hiding somewhere else. 09:22
but Seq is/was also a common place for being able to handle/specify decontainerization
essentially, whatever we're doing to make return values readonly is similar to what slurpies need to do with their arguments when "is readonly" 09:23
jnthn Is there a parallel in the associative world?
I'm wondering if
constant @x = ...; 09:24
That @x should be a Seq
pmichaud well, that @x should probably not be an Array :-)
it could be a List.
jnthn Today that form doesn't really work
'cus I didn't know what to do with it
pmichaud List is fine for constant values, as long as you don't put any writable containers into the List
jnthn Yeah, I was thinking Seq as that deconts... 09:25
09:25 kivutar joined
pmichaud how are we handling deconts of return values now? 09:25
jnthn There's a p6decontrv op 09:26
FROGGS that seems to do it (updated): gist.github.com/FROGGS/7af9fcdda8dc7db39316
jnthn I'd have to go look at it to remember exactly what it does
FROGGS $ perl6 -e 'my @a = <abc def ghi>; sub choop (*@s is rw) { for @s -> $s is rw { $s.=chop } }; my $s = "hurz"; choop(@a, $s); say "@a[] $s"' 09:27
ab de gh hur
jnthn FROGGS: I'm much more comfortable with that.
FROGGS cool
jnthn Though pmichaud++ should probably glance it too :) 09:28
pmichaud I didn't see the earlier patch, but this one matches my notion of what's been missing with slurpy handling.
jnthn is kinda distracted finnishing slides... :)
FROGGS pmichaud: same gist, prev revision
pmichaud I hadn't seen anything in the spec that indicated how is rw / is copy would apply to slurpies.
FROGGS pmichaud: perlcabal.org/syn/S06.html#Parameter_traits
arnsholt jnthn: I didn't know you spoke Finnish O:)
pmichaud FROGGS: I'm not sure what that parenthetical part means. 09:30
I agree that it explains "is rw" on variadics
jnthn arnsholt: I don't...they're just for delivery on Finland. :) 09:31
*in
FROGGS pmichaud: you mean that sentence? (The variadic array as a whole is always modifiable, but such modifications have no effect on the original argument list.)
pmichaud yeah
I guess "as a whole" is referring to the ability to shift/unshift/push/pop 09:32
as opposed to "always modifiable" referring to the elements
FROGGS yeah, that is what I think too
I understand it as an implicit is copy trait 09:33
pmichaud oh, an implicit "is copy" trait would mean it refers to the elements as well
i.e., the elements of a variadic array are always modifiable
I should try to get back to sleep; I'm going to be paying for this later today, I suspect. :-| 09:35
FROGGS sleep well then :o)
jnthn yes, I was trying to figure if this was very late or very early...
nwc10 #perl6 - not a cure for insomnia
jnthn
.oO( insomnia - not a cure for #perl6 )
09:36
pmichaud it's very early... 04:36 here 09:37
I woke up a couple of hours ago and hadn't been able to get back to sleep... but I have to be up again in 1h30 sooooo....
09:38 birdwindupbird joined
pmichaud perlcabal.org/syn/S06.html#Perl5ish...clarations also mentions "is rw" and slurpy stars. 09:40
what bugs me about the synopses' description of slurpies is that while "is rw" is well described, it's not clear what happens with slurpies when it's not present. 09:41
in the section on Perl5ish declarations, for example, the sentence beginning with "More precisely" doesn't seem to be making anything more precise.. it looks like a new statement to me. 09:42
anyway, I'm going to try again for sleep -- bbl, perhaps. (today is full/hectic day at the house) 09:48
afk
09:55 thou left, dvj left 09:57 donaldh joined 10:05 atroxaper joined 10:08 atroxaper left 10:21 berekuk left 10:24 berekuk joined
FROGGS what does "splat"/"splatted" mean here? github.com/perl6/roast/blob/master...s-rw.t#L16 10:28
moritz slurpy 10:29
10:29 sqirrel left
FROGGS k, thanks 10:31
10:31 berekuk left
daxim tell masak I now will reveal the source data for the hash from 2013-04-24: $ cat prediction 10:31
echo "masakism will be full of math, but not actually useful programming" | sha1sum
I am pleased to be mostly wrong - only FRINGE and GRAPH, arguably HEX are mathy (== your bias).
you can do better; stack overflow is full of real world problems, mostly mundane of course, but also sometimes illustrative of program design, pick from them instead
10:32 satyavvd left
jnthn Graphs come up all over the place in the real world. Or at least, they do in my real world. :) 10:34
masak daxim: heh.
daxim: happy to see I at least foiled your pessimistic prediction :)
daxim: I agree that the workshop was high-level and strained the capabilities of the participants... but it was *meant* to. 10:35
10:36 pmurias left
masak daxim: if I had known that there would be that many complete beginners, I would have invested in a track for them, too. 10:36
daxim really? doesn't look that difficult to me, I've done half of "promise" but then got bored
masak daxim: if there's a next iteration, these are things I can do better then
daxim: I'm glad you find my difficult tasks easy to the point of boredom. :>
daxim perhaps the elevator will tickle my fancy 10:37
masak granted, it's not difficult in the sense of p6cc. (which is also more math-y)
daxim: I'll let you know when it's ready.
(probably later this week)
daxim: after your relevation, I'm mystified as to why you didn't simply warn me beforehand, if you thought "full of math" was a potential risk ;) 10:45
revelation*
daxim likes to gamble
masak well, I'm not actually able to check your sha1sum, because irclog is down. 10:46
but I'll take your word for it :)
daxim pfeh, foiled by software 10:47
lizmat hardware actually
daxim IT ALL SUCKETH
10:53 nebuchadnezzar left
GlitchMr masak, olive.undo.it/log?channel=perl6&...e=20130424 10:56
"masak, here's a prediction: 4c6348acc9ce3d37ff5930209fe2eb602db64d91 I will reveal it later. this hash proves I have made the prediction at this time"
I also think I should add searching functionality to my log page. 11:01
masak GlitchMr++ 11:02
sha1sum verified.
daxim: anyway, trawling through stackoverflow (and perlmonks, I guess) looking for inspiration for tasks sounds like a good idea. 11:07
I will do that.
11:14 nebuchadnezzar joined 11:15 Targen left 11:18 berekuk joined 11:23 drbean joined 11:25 tgt joined 11:31 tgt left 11:32 tangentstorm left 11:36 drbean left 11:38 drbean joined
GlitchMr olive.undo.it/log?channel=perl6&...h=sha\d%2B 11:41
Just testing
FROGGS btw, I got some information on how to build nqp/rakudo debian packages 11:43
hoelzro FROGGS: I would like to hear about that 11:48
I put some energy into packaging a while ago, but summoning the energy/time to do Perl 6 stuff after I got back from my vacation in the US has been difficult 11:49
GlitchMr ok, I've working regular expression based searching
hoelzro to my credit, I started two classes the week I got back =/
arnsholt I'd be interested to hear about packaging for .deb 11:50
GlitchMr The search allows PCRE regular expressions, but I trust you to not abuse it :-). Besides, I have 1 second timeout, just in case.
11:51 tangentstorm joined
arnsholt It'd be very cool if it were possible to do it so that the packages can be generated directly as part of the Star release 11:51
FROGGS the current maint uses git-buildpackage for anonscm.debian.org/gitweb/?p=pkg-ra...;a=summary
hoelzro arnsholt: I was working on a script/makefile target for star release managers
arnsholt hoelzro: Oh, that's very cool! 11:54
Do you have the in-progress stuff somewhere/what's left to do? 11:55
hoelzro it's sitting at home atm =/
I can upload it somewhere in the meantime!
I had some basics working
you could say 'make pkgbuilds' and it would create arch linux PKGBUILD files for all of the modules in star
I think my roadblock was they needed ufo to build, but I had no package for ufo or something 11:56
11:56 skids left
hoelzro catch 22 =/ 11:56
12:01 woosley1 joined
GlitchMr Pointless linking: olive.undo.it/log?channel=perl6&...130502#391 12:09
pmichaud I like the formatting being used on olive.undo.it 12:10
very easy to read
GlitchMr Actually, the formatting is just few small CSS rules. But thanks. 12:11
I'm just trying to make nice temponary logs. 12:14
12:15 sizz left
GlitchMr olive.undo.it/log?channel=perl6&...%E2%99%9F] 12:19
Just having fun with searching.
12:19 sizz joined 12:25 dayangkun joined 12:26 dayangkun left, dayangkun joined, sizz left 12:27 dayangkun left 12:28 mavcunha joined
[Coke] .tell moritz yes, that makes the failure go away, but it seems to sweep it under the rug. If that behavior is really platform dependant, it shouldn't be in roast, and if it's not, we should open a ticket. 12:29
yoleaux [Coke]: I'll pass your message to moritz.
12:30 sizz joined
[Coke] ... that said, good enough for me for now. 12:30
12:32 toebu joined 12:34 tgt joined
moritz [Coke]: then we should remove the tests 12:36
yoleaux 12:29Z <[Coke]> moritz: yes, that makes the failure go away, but it seems to sweep it under the rug. If that behavior is really platform dependant, it shouldn't be in roast, and if it's not, we should open a ticket.
pmichaud which test, ooc?
moritz worse than OS specific, it's specific to combinations of OS, file system and file system configuration 12:37
pmichaud: IO.accessed
and even mount options (noatime) can make that test fail
12:38 sqirrel joined 12:39 ldthien0 joined
pmichaud yeah, many of my filesystems have noatime 12:39
anyway, I agree -- tests that are platform specific and/or not required by the spec shouldn't be in roast. Coke++ 12:40
nwc10 most *nix systems I have access to seem to have noatime, or the variant where the atime is only updated if it's more than 24 hours old
only OS X seems to default mounts to the good old "every read is actually a write action"
it's just like the Perl 5 internals :-)
pmichaud here I am in Texas, a little over four weeks before YAPC::NA, and the outside temperature is 10 degC. *10* 12:41
weird weather this year. :)
nwc10 see, last year in Frankfurt you promised that it wouldn't be as hot in Austin
very wierd here. Was >25 recently
but snow 3 weeks ago
and it's currently early spring and late spring all mushed together 12:42
as everything is flowering at the same time
pmichaud oh yes, yesterday was warmer. 31 degC, iiRC
but tonight it's supposed to get down to 1 degC 12:43
anyway, housework here... bbiaw 12:44
colomon crazy, our low for the night is more like 5C 12:45
12:47 ldthien0 left
masak there's a "hidden theme" in the masakism workshop which I'm not sure if I managed to underscore enough. it's the semi-belief that (when the problem is complex enough to call for that much structure), the solution is a bunch of "core objects" supplying the desired behavior, supported by TDD and maybe DI. 12:55
the clearest example of this was perhaps BOT. 12:56
daxim I thought it was "principles of good software design", perhaps completely lost on said "complete beginners" 12:57
masak yes, it was.
(that was the topic, I mean)
timotimo i don't feel i got yelled at enough for my programming style to have learnt how to make elegant programming :P
masak timotimo: :)
timotimo: I didn't really have time to look at people's solutions, only to add them to that list. 12:58
12:58 ajr joined
masak I wouldn't mind terribly if we went over the solutions afterwards and spent some time commenting on style, etc. 12:58
12:58 ajr is now known as Guest93793
timotimo yeah, that's going to be a problem. turn on your cloning machine one more time, masak :) 12:58
masak :)
13:00 tgt left
Util What is the equivalent of `nqp --target=PIR foo.nqp` for the JVM branch of NQP? 13:03
When I run `nqp --stagestats foo.nqp`, I see these stages: <start classname parse ast jast classfile jvm>
Stages <start classname> fail as targets, with error "Cannot dump this object; no dump method"
Stages <parse ast jast> seem to work correctly.
Stages <classfile jvm> both fail as targets, with error "java.lang.NullPointerException in dumper" 13:04
13:04 tgt joined, brrt joined
brrt ping moritz 13:05
perlgeek.de down?
GlitchMr brrt, yep, it is
13:05 tgt left
nwc10 you can read the discussion in the IRC log... oh, wait :-/ 13:05
or, probably here: olive.undo.it/log?channel=perl6 13:06
but a few days ago
brrt yay!
moritz brrt: yes, hardware failure
brrt thanks
shame
13:07 bluescreen10 joined
moritz I'm in the process of procuring a replacement 13:07
but thing. take. time. 13:08
*things.
brrt well, thanks for the service, anyway :-) 13:09
GlitchMr olive.undo.it/log?channel=perl6&...h=perlgeek 13:10
Yeah...
It's down for 6 days. 13:11
13:12 MrMeek joined, spider-mario joined
masak moritz: as for me, I've learned in the past week or so how much I depend on (and appreciate) perlgeek.de and irclog in particular. 13:13
moritz++
GlitchMr Hardware failures happen... sadly.
moritz masak: and I've learned how much I rely on that host. My primary email address was on it :( 13:14
you can reach me at [email@hidden.address] in the interim
13:15 MrMeek-afk left
gtodd perlgeek is a great resource ... hope you had backups!! 13:15
gtodd does a open tab search ....
GlitchMr I just have logs for three months. I really wouldn't want perlgeek to disappear forever.
gtodd hmm I had 4 tabs open on perlgeek!
GlitchMr Then again, the temponary logs have data since 2005. 13:16
gtodd let's move perlgeek to Heroku ! ;-)
moritz gtodd: yes, backups are available (at least of the IRC logs) 13:17
gtodd ah ok .. I quite liked the blog/journal entries
perlgeek.de/blog-en/perl-5-to-6 ++ 13:18
etc.
moritz those sites are backed up on github :-)
(just not the comments that some folks left on the blog)
gtodd \o/ 13:19
GlitchMr github.com/moritz/perlgeek.de
jnthn Util: --target=jast is closest
GlitchMr You can run mowyw, and browse the website locally.
jnthn Util: However, it's nearly impossible to read, so in reality you do --classfile --output=blah.class
Util: And then javap -c blah.class
GlitchMr Similarly, if the perlcabal.org would die (it happened few times), you can browse the synopsis on GitHub. 13:20
13:21 skids joined
GlitchMr I think that many people here have copies of their blogs on GitHub. 13:21
gtodd and the source for mowyw (perlgeek.de/en/software/mowyw) is on github ... 13:22
:)
moritz and on CPAN
GlitchMr and in Arch Linux repository 13:23
It's already everywhere
Util jnthn: What command gets the --classfile option? `./nqp --classfile --output=z.class foo.nqp` fails with "Illegal option --classfile".
gtodd interesting how a Distributed Concurrent Versions System (git) is errm fairly centrally concentrated on github 13:24
dalek o: 79b8f5c | moritz++ | bin/ufo:
fix for latest IO::Path
gtodd has silly github question
GlitchMr I think that panda even supports other distributed concurrent version systems, but practically only Git (and only on GitHub) is used. 13:25
[Coke] and it should be noted that not generating java directly is a win. 13:26
Util jnthn: nm; I see that `--target=classfile` is what was needed. Thanks; very helpful!
GlitchMr Actually, no, panda only appears to support git. 13:27
gtodd I get github features mixed up with git all the time :-) ... so if I fork a repot on github and make a few changes send a pull request and they are merged ... can/do I then just delete my fork and refork to get the latest version of the master I forked. forking (github) seems not the same as cloning
GlitchMr Fork is just a clone 13:28
daxim no, GH forking establishes a parent-child relationship between the old repo and the new one
GlitchMr Just in GitHub database itself.
Just so you could easily do things like pull requests.
gtodd I can't figure out how to "git pull" my fork so it is up to date after my pull requests are merged 13:29
GlitchMr You have to add a remote.
And fetch from it.
gtodd oh I mean on github (webgui)
GlitchMr But I prefer to make changes in branches.
gtodd, well, you... cannot. 13:30
gtodd ok good
:-)
GlitchMr I think GitHub had button for that once, but they have removed it.
Not sure why.
gtodd then I'll just delete it
13:31 tgt joined, brrt left
gtodd if I clone to my local system and make a pull request that way then ... hmm do the deltas get uploaded to git hub and wait for merging or ... do I have to leave my system turned on?!? I've only ever used VCS from workstations (always on) so making pull requests from a laptop seems well 13:32
it seems like I might be better off using the webUI
timotimo the pull request feature is depending on there to be a github repository that has your changes 13:33
gtodd ok then once they are merged I just delete my fork :)
timotimo other ways to do it is to use git format-patch to create a series of mail messages (don't have to send them per mail) to someone who is allowed access to the "authoritative repo"
or, of course, host your changes somewhere where git pull works properly. that can be your home computer, if you set up a small git server or http server and forward ports on your router etc etc 13:34
13:34 PacoAir joined, tgt left
gtodd ah ok ... so pull reqeests from a local git repo (I mostly do stuff in vim in a terminal) would require my laptop to be running unless I make patches and send by mail etc. 13:35
13:35 tgt joined
GlitchMr But why bother will local git repo? 13:35
timotimo you need a local git repo to have a working copy that you can still create commits from
gtodd only because I mostly do stuff in vim in a terminal
GlitchMr Of course you have to
But why bother with having local git repo that is available remotely. 13:36
gtodd ?
daxim because internet 13:38
timotimo because if you don't have any other remotely available repository, nobody can get your changes, unless you get them to them some other way
13:38 Targen joined
GlitchMr timotimo, you can easily get a remotely available repository on GitHub, BitBucket, Google Code, and other services. 13:39
timotimo this isn't about how to do it the best way you can, just about how to make it work without putting your stuff on github
moritz free backups :-) 13:40
gtodd well if it's a project that needs compiling I build from the sources (but probably would never commit to it unless it's documentation, Makefiles etc) so I do git clone git://someplace/repot/project.git (fiddle fiddle) ... perl ./Configure.pl make install (fiddle fiddle) ... git pull ... git status ... etc
if I was an active committer developer on a project I'd probably make pull requests from my repo or one of many branches of stuff I was testing or something like that ... the git cli and what you can do with a local repo seems to have more bells and whistles than github's webGUI 13:43
timotimo or you'd have direct access to the "authoritative repo" and work on branches there ^H 13:44
daxim awesome, your ␡ totally breaks the rendering here 13:46
gtodd right ... then I could just "push" a branch ?? but for quick changes to website documentation and the like where the project is using github I might fork on github make a few changes and do a pull request from github gui ... if 6 months later the changes aren't merged ;-) I could delete my fork ... or if the changes get merged right away I could delete my fork ... I'm just adapting my workflow to the projects github pr 13:47
project's 13:48
timotimo you can make pull requests form repo A branch X to repo A branch Y, fwiw
so you don't even need a full github-fork to make a pull request
gtodd right ... git makes it easy to make branches
13:59 squ joined
squ take that 13:59
this-plt-life.tumblr.com/post/36425...-semantics
timotimo it seems to me that picture is meant to ridicule, not to praise
14:00 crab2313 joined, cognominal left, squ left
lizmat and squ has left the building 14:00
too soon to be hugged 14:01
14:01 cognominal joined
timotimo but seriously, is that supposed to make fun of perl6? 14:02
because when i read about perl6 semantics, it usually makes me happy
14:03 SmokeMac_ joined
lizmat first they ignore you, then they ridicule you, then they fight you, then you win 14:04
I guess we're getting out of the ridicule phase now
14:06 eternaleye left
dalek kudo/nom: 639d7f8 | (Tobias Leich)++ | / (2 files):
fix slurpy is-rw array-parameters

This also adds the test file: S06-traits/slurpy-is-rw.t
14:07
lizmat afk 14:08
14:08 eternaleye joined, xinming left
Util I think that picture and caption are better understood in the context of the whole blog. See the other entries in this-plt-life.tumblr.com/ for comparison. 14:08
dalek ast: ac30e28 | (Tobias Leich)++ | S06-traits/slurpy-is-rw.t:
added a second variable to the sub call

Which shows better what "$@array is rw" does. Also fixed synopsis link.
14:09 xinming joined, baest_ left
masak Util: :) 14:09
I can certainly relate to this-plt-life.tumblr.com/post/43238...cro-system 14:10
14:11 drbean left
timotimo wow, that looks like some intense swearing right there 14:11
14:12 drbean joined
Util Here is the original blog of the same person: axisofeval.blogspot.com/ 14:14
The tumblr looks like an extract of just the funny PLT-Life tagged posts. 14:15
14:20 PacoAir left 14:21 Targen left 14:22 kaare_ joined 14:23 PacoAir joined 14:32 Targen joined 14:33 echo joined, echo is now known as Guest51656 14:34 Guest51656 left, swuecho joined
swuecho Hi,It seems that the irc log site is down. 14:35
is there another site for the log? 14:36
thanks
masak yes, it's linked to in the backlog :P 14:37
swuecho find it. 14:38
thanks
moritz olive.undo.it/log?channel=perl6
14:39 crab2313 left 14:40 rindolf left 14:44 kbenson joined
pmichaud it's also in the topic, I think. 14:44
14:44 am0c joined 14:46 toebu left
tadzik r: say so "00" 14:49
camelia rakudo 639d7f: OUTPUT«True␤»
14:51 kaleem left 14:52 skyheights joined, sizz left 14:53 Guest93793 left, sizz joined
FROGGS tadzik: is that DWIM? 14:53
tadzik FROGGS: hardly :) 14:55
diakopter hey y'all.. I need some help with a few YAPC::NA planning/organizing/preparation tasks... would anyone like to help?
tadzik I was just checking if it's the same as in P5 (it is)
diakopter: what's to be done?
diakopter some administrivia and website updating and some emails 14:56
14:56 ajr joined, ajr is now known as Guest49903 14:57 Guest49903 left
diakopter also, organizing/planning/prioritizing a bunch of other tasks and finding appropriate people to do them and delegating them then making sure they get done. :) 14:57
14:57 ajr_ joined
diakopter privmsg me if you'd like to help out. :) 14:58
no prior experience required except passable English and mild computer skills
14:58 frdmn|afk left 14:59 am0c left, birdwindupbird left, am0c joined 15:00 fhelmberger left 15:01 pecastro left 15:03 avar joined, avar left, avar joined 15:04 birdwindupbird joined 15:07 groky joined, Bucciarati joined
kresike bye folks 15:07
15:07 kresike left
tadzik bye kaare_ e 15:07
:( 15:08
kaare_: sorry, tabfail
kbenson Are the backlogs of this channel available anywhere else but at irclog.perlgeek.de/perl6/, or in raw form somewhere?
15:08 pecastro joined
geekosaur [02 10:38] <moritz> olive.undo.it/log?channel=perl6 15:09
we should just have something spit that out every time someone uses the word 'log'
kbenson ah, thanks! Have to get my fix. :)
gtodd should this exist --> doc.perl6.org/language/operators#infix+ff 15:12
tadzik fun fact: I copied .ssh from one laptop to another 15:14
feather lets me in on pubkey, github doesn't
FROGGS gtodd: I think so
kbenson Are the logs available in raw form anywhere? I was thinking IRC logs would actually be a good candidate to use for git as a DB, and github as a distribution channel. 15:16
gtodd FROGGS: am I correct that is equivalent to ".." :-) 15:18
moritz kbenson: not as raw, just as sqldump
kbenson Oh, I can work with that. :)
15:19 skyheights left
FROGGS gtodd: I have no idea, it is the first time I see infix:ff 15:29
gtodd FROGGS: it seems not
timotimo GCC 4.9 introduces support for colored outputs in debugging - yay, they're taking good ideas from perl6! ;)
tadzik yeah, flip-flop
from clang, more like ;) 15:30
gtodd yeah
tadzik r: for 1..10 { say if /3/ ff /8/ }
camelia rakudo 639d7f: OUTPUT«␤␤␤␤␤␤»
FROGGS ahh, there is even fff^ and ^ff^ and ^fff and others
tadzik r: for 1..10 { say 'DING' if /3/ ff /8/ }
camelia rakudo 639d7f: OUTPUT«DING␤DING␤DING␤DING␤DING␤DING␤»
FROGGS r: for 1..10 { say /3/ ff /8/ } 15:31
camelia rakudo 639d7f: OUTPUT«Nil␤Nil␤1␤2␤3␤4␤5␤6␤Nil␤Nil␤»
FROGGS do I have to understand that?
gtodd r: for 1..10 { say /3/ .. /8/ }
camelia rakudo 639d7f: OUTPUT«regex(Mu : Mu *%_) { ... }..regex(Mu : Mu *%_) { ... }␤regex(Mu : Mu *%_) { ... }..regex(Mu : Mu *%_) { ... }␤regex(Mu : Mu *%_) { ... }..regex(Mu : Mu *%_) { ... }␤regex(Mu : Mu *%_) { ... }..regex(Mu : Mu *%_) { ... }␤regex(Mu : Mu *%_) { ... }..regex(Mu : Mu *%_…
gtodd hahah
tadzik FROGGS: no :)
FROGGS r: say /3/ .. /8/
camelia rakudo 639d7f: OUTPUT«regex(Mu : Mu *%_) { ... }..regex(Mu : Mu *%_) { ... }␤»
FROGGS regex ranges O.o 15:32
ahh, the ff thing didnt work because it doesnt do smartmatching yet, right?
gtodd r: say 1 .. 8
camelia rakudo 639d7f: OUTPUT«1..8␤»
tadzik FROGGS: it's not limited to regex, I think 15:33
it's just what its name says, flip-flop :)
a condition flips on the left side, flops on the right side. On-off
gtodd it's not "fast forward" :-)
tadzik haha
gtodd say 1 ... 8
c: say 1 ... 8 15:34
15:34 frdmn joined
tadzik hmm, building rakudo on i5 is almost a pleasant and fast experience 15:36
took about 2 minutes, compared to 5-6 on c2d
FROGGS but not 2min in total 15:38
only stage parse, right?
15:39 thou joined
gtodd r: my @list = '1' .. '8' ; say @list 15:45
camelia rakudo 639d7f: OUTPUT«1 2 3 4 5 6 7 8␤»
gtodd my @list = 1 ... 8 ; say @list ;
is equivalent 15:46
colomon r: my @list = '1' .. '8' ; say @list.perl 15:49
camelia rakudo 639d7f: OUTPUT«Array.new("1", "2", "3", "4", "5", "6", "7", "8")␤»
colomon r: my @list = 1 ... 8 ; say @list.perl 15:50
moritz FROGGS: on my $work machine, parsing the setting takes about 70s
camelia rakudo 639d7f: OUTPUT«Array.new(1, 2, 3, 4, 5, 6, 7, 8)␤»
15:51 Targen_ joined, Targen left
gtodd my @list = 1 .. 8 ; say @list <--- perl6 15:52
my @list = 1 .. 8 ; say "@list" <--- perl5
but perl5 say "@list[4..6]"
15:53 tgt left, domidumont left 15:54 tgt joined, FROGGS left, swuecho left
gtodd is like perl6 say "@list[4..6]" and nothing like "for @list {say /4/ ff /6/}" 15:55
(sorry for figuring this out in the channel) 15:56
r: my @list = 1 ... 8 ; say @list[4..6] ; for @list {say /4/ ff /6/}
camelia rakudo 639d7f: OUTPUT«5 6 7␤Nil␤Nil␤Nil␤1␤2␤3␤Nil␤Nil␤»
gtodd is {say /4/ ff /6/} just counting members of the list/array when it says 1 2 3 ? 15:57
masak gtodd: I'm mystified by that output. 15:59
gtodd I thought it would say 5 6 7 ... but if ff means "flip flop" then I guess the last bit should be: for @list {say "beep" if /4/ ff /6/} 16:03
moritz r: for 1..8 { .say if /4/ ff /6/ }
camelia rakudo 639d7f: OUTPUT«4␤5␤6␤»
gtodd oh
the >.< infernal dot strikes me again
moritz r: for 1..8 { my $a = /4/ ff /6/; say "$_: $a" }
camelia rakudo 639d7f: OUTPUT«1: ␤2: ␤3: ␤4: 1␤5: 2␤6: 3␤7: ␤8: ␤»
gtodd stares at screen and burns dot into retina 16:04
moritz and yes, it seems to count the number of times it returned True, starting from 1
gtodd moritz: heh I figured that part out!! :-) 16:06
what I thought ff would be useful for in that sort of construction is for printing values from a list by position like you just did so
16:07 ajr_ left
gtodd I feel I'm getting closer and closer to being a perl6 newborn 16:07
16:08 kivutar left
masak we'll try to not throw you out with the bathwater. 16:08
gtodd :) 16:10
PerlJam gtodd: maybe you wanted: say grep { /4/ ff /6/ }, @list; # ?
masak hm, how would that use case interact with the proposed change to make infix:<ff> smartmatch...? 16:16
16:19 woosley1 left 16:21 dmol joined, am0c left 16:25 domidumont joined 16:31 FROGGS joined 16:40 alester joined 16:42 snearch joined 16:55 Chillance joined 17:03 daxim left 17:10 birdwindupbird left 17:12 tgt left 17:22 Celelibi joined 17:27 frdmn left, frdmn joined 17:31 frd|afk joined
timotimo tries, on a whim, to build EXPORT_HASH merged with nom and hopes to see it suddenly magically work 17:33
17:35 frdmn left
arnsholt You never know =D 17:40
timotimo well ... it doesn't build the CORE.setting :( 17:42
maybe git failed to properly merge the rename of the .pm to .nqp files? 17:43
dalek ecs: 6e2d9c9 | larry++ | S03-operators.pod:
Define flipflops to use smartmatch semantics
arnsholt timotimo: Could be, but if the merge isn't fully automatic, it usually complains pretty loudly
timotimo the merge seems to have worked fine, but somehow the world around it must have changed 17:45
Method 'stash' not found for invocant of class 'DEFAULT' - not sure ... what?
the changes i made should not make the build break. i'll try building nom to make sure it's my changes that make it break 17:48
17:48 cognominal left
dalek rl6-roast-data: bf2fdf0 | coke++ | / (4 files):
today (automated commit)
17:51
17:54 frd|afk is now known as frdmn 18:25 brrt1 joined
TimToady masak: by current semantics, grep { /a/ ff /b/ } cannot work because ff is returning integers, not Match, Nil, or Bool. You'd need to say grep { so /a/ ff /b/ } 18:26
18:27 brrt1 left
TimToady a full-fledged OKness solution would have forced those numbers into the OK category to prevent that, but right now we simply enumerate the "OK" types that smartmatching treats as success/failure, and Int cannot be one of them, since Int.ACCEPTS is important 18:28
PerlJam yeah ... is ff specced to return ints? Or is that more of an implementation accident?
TimToady "anything not specced is like Perl 5"
PerlJam Perl 5 doesn't have ff ;) 18:29
TimToady :P
masak TimToady: why does .grep care whether infix:<ff> emits Bool or (boolable) Int?
TimToady grep does smartmatching on its own, apart from ff 18:30
moritz_ TimToady: grep doesn't smart-match against the return value of the block
it smart-matches against the block, which invokes it
and then it boolifies the result
TimToady Oh, yeah, I guess that fixes it
masak thought so.
TimToady nevermind
TimToady would like to think he's still overly stupid from the surgery... 18:31
masak hugs TimToady
TimToady but probably the surgery merely removed my memories of how stupid I was before...
lizmat hugs TimToady as well
PerlJam If only there were an easy way to tell each other's cognitive capacity and current cognitive load
lizmat and OS running 18:32
rn: my @a; my $b; @a.push $b 18:34
camelia niecza v24-37-gf9c8fc2: OUTPUT«===SORRY!===␤␤Two terms in a row (method call requires colon or parens to take arguments) at /tmp/u_r1eaHmQi line 1:␤------> my @a; my $b; @a.push ⏏$b␤␤Parse failed␤␤»
..rakudo 639d7f: OUTPUT«===SORRY!===␤Two terms in a row␤at /tmp/6oBSTH7N1f:1␤------> my @a; my $b; @a.push ⏏$b␤ expecting any of:␤ method arguments␤ postfix␤ infix stopper␤ infix or meta-infix␤ statement end␤ …
lizmat rn: my @a; sub foo {1}; @a.push &foo
camelia rakudo 639d7f, niecza v24-37-gf9c8fc2: ( no output )
lizmat the last one doesn't give a "two terms in a row" error because it is parsed like: "my @a; sub foo {1}; @a.push & foo" (note the space after &) 18:35
18:35 rindolf joined
moritz_ lizmat: yes, there's an infix:<&> but not an infix:<$> 18:35
lizmat masak earlier today stated that he also got caught by the duality of & in the past
colomon rn: my @a; sub foo { say 1}; @a.push &foo; say @a.perl 18:36
moritz_ and the interpretation as @a.push() & foo() is perfectly valid
camelia niecza v24-37-gf9c8fc2: OUTPUT«1␤[].list␤»
..rakudo 639d7f: OUTPUT«1␤Array.new()␤»
colomon why does @a.push() make sense? 18:37
moritz_ you can't expect the parser to catch all of your thinkos
lizmat and had it been written like that (with whitespace after &), I would have seen that immediately as well
TimToady we could probably cobble together a warning that would operate only if the whitespace around & was unbalanced
moritz_ colomon: why shouldn't it?
TimToady people usually write 1&2 or 1 & 2
if they mean the infix
lizmat colomon: you should be able to push an empty list
colomon moritz_: you're not pushing anything.
moritz_ colomon: which is perfectly fine. Consider @a.push: @b 18:38
would you want that to fail just because @b is empty?
or @a.push: |@b;
colomon no, but @a.push() is clearly *wrong* 18:39
TimToady only if you haven't redefined .push
PerlJam depends on the meaning you assing to those () if it's wrong or not :)
colomon whereas @a.push(|@b) is perfectly sensible
lizmat colomon: as masak stated, there are other situations where &foo can be a surprise
moritz_ colomon: the parser does't know about the type of @a (other then it's positional), and at runtime it's too late to know how the empty list was passed 18:40
colomon: so I don't see which part could decide that it's "wrong"
TimToady we can certainly treat operators as verbs known at compile time, but it's much dicier to assume we know what method names mean in the current language
since it's the object that's deciding, not the lexical scope
lizmat so I wonder, maybe it would be an idea to *force* whitespace around an infix &, to visually seperate this from the sigil & ? 18:41
TimToady no, only force balance
1&2 is also okay
moritz_ not even perl 5 descends into this madness (guessing the arity of methods)
lizmat: forcing stuff that doesn't need to be forced isn't the Perl way 18:42
TimToady the other option is for & to refuse to parse as in infix if the &foo can be taken as a known function name
then you'd actually get a TTIAR error there
lizmat that would actually make more sense
TimToady well, except for things like sin($x)&cos($x) 18:43
lizmat I suggested "termizing &foo" earlier today on #masakism
ok, back to unbalanced whitespace warning 18:44
masak moritz_: heh, calm down. not suggesting madness here ;) 18:45
lizmat too bad we can't have another sigil for subroutines
masak moritz_: suggesting catching a thinko in the vicinity of [email@hidden.address] &fn', which caught out lizmat and would catch out me just as well, if I hadn't been bitten by similar things before.
TimToady all the good ones are taken
PerlJam There's a whole bunch of unicode ones ;) 18:46
moritz_ masak: I'm not against trying to catch thinkos, I just strongly oppose that one road
masak moritz_: I'm arguing for something like "no-one would ever write [email@hidden.address] &fn' if they meant [email@hidden.address] & fn()'"
TimToady it's not being considered
masak moritz_: a suppressible warning? 18:47
TimToady by balancing the whitespace
PerlJam TimToady: why balanced exactly? 1& 2 wouldn't trip up any one, would it?
masak moritz_: to help people who really didn't mean that.
TimToady PerlJam: they probably think they're backgrounding the 1 there :)
the point is, silently doing the wrong thing is Very Upsetting 18:48
FROGGS maybe there should be a warning "... better written as ..." in general for: thing.method\s&alpha 18:50
... thing.method\s&\salpha to mean a junction
moritz_ or more general, for <term> <?term><infix><term>
FROGGS ... thing.method: &alpha to pass it as an arg
lizmat moritz: I think the problem really only exists when & is involved, because of its duality as a sigil and an operator 18:51
FROGGS % too 18:52
lizmat damn, you're right
FROGGS r: my @a; sub foo { }; @a.push %foo
camelia rakudo 639d7f: OUTPUT«use of uninitialized value of type Nil in numeric context in block at /tmp/GNbCPGARwM:1␤␤»
moritz_ and don't forget that there can be user-defined operators too 18:53
FROGGS hmm, or? % may be not
moritz_ sure, it's both an infix and a sigil
FROGGS r: my @a; my %foo; @a.push %foo # TTIAR
camelia rakudo 639d7f: OUTPUT«===SORRY!===␤Undeclared routine:␤ foo used at line 1␤␤»
masak r: sub infix:<@> { return 7 }; my @a; sub foo; @a.push @foo; say @a
camelia rakudo 639d7f: OUTPUT«===SORRY!===␤Missing block␤at /tmp/9lUs6EyT7H:1␤------> b infix:<@> { return 7 }; my @a; sub foo⏏; @a.push @foo; say @a␤ expecting any of:␤ scoped declarator␤ constraint␤ postfix␤ statement end␤ …
masak r: sub infix:<@> { return 7 }; my @a; sub foo {}; @a.push @foo; say @a 18:54
camelia rakudo 639d7f: OUTPUT«Too many positional parameters passed; got 2 but expected 0␤ in sub infix:<@> at /tmp/woJQHGDvpN:1␤ in block at /tmp/woJQHGDvpN:1␤␤»
masak r: sub infix:<@>($, $) { return 7 }; my @a; sub foo {}; @a.push @foo; say @a
camelia rakudo 639d7f: OUTPUT«␤»
masak heh :)
r: sub infix:<@>($, $) { return 7 }; my @a; sub foo {}; say @a.push @foo
camelia rakudo 639d7f: OUTPUT«7␤»
TimToady much likelier with &foo since there's going to be something callable as 'foo'
FROGGS true
masak yeah.
we help fivers who accidentally infix:<.> when they should infix:<~>. we help them when they accidentally 'say' instead of '.say' (though it's a longstanding Rakudo bug that we don't any more). we help them when they 'while (<>)'. I think we should do something when they [email@hidden.address] &foo', too. 18:56
lizmat ich bin ein fiver! 18:57
TimToady well, though that's not a fivers-ish error
since methods require parens for args, and there's no colon equivalent
lizmat aspiring to be more ;-)
18:57 domidumont left
lizmat I think my error came from mentally translating p5: "push @a" to just [email@hidden.address] in perl 6 18:59
19:00 [particle]1 is now known as [particle]
lizmat in p5 I wouldn't have done any parens 19:00
TimToady because push isn't a method
masak TimToady: saying it's not a fivers-ish error is fine and all, but lizmat making the error is still a data point.
:)
TimToady well, and a very fine datapoint it is
huf but what color is it?
lizmat well, not an important one
I wouldn't have pushed this without masak's datapoint 19:01
TimToady we wouldn't be wast^Winvesting all this time discussing it if it weren't a good datapoint
19:01 census joined
PerlJam lizmat: two data points shows a trend right? :) 19:01
19:02 dmol left
lizmat I suggest we turn this into a rakudobug and let this simmer for a while, until we get more data points? 19:02
huf PerlJam: and one shows all the trends, surely that's even better!
TimToady it's more of a STDbug
19:02 dmol joined
masak lizmat: let me find you the RT ticket wher I get bitten. 19:02
might be interesting.
TimToady ooh, I already have a baremeth memo, so this should be easyish 19:04
FROGGS TimToady: btw, should I report STDbugs when I hit them? 19:06
err, STD_P5 bugs I mean
TimToady you could just, like, fix 'em instead :)
FROGGS okay, that is fine too :o) 19:07
like:
std: use v5; say 1 foreach 1
camelia std 316b40b: OUTPUT«===SORRY!===␤Confused at /tmp/wqkpzudKHB line 1:␤------> use v5; say 1 ⏏foreach 1␤ expecting any of:␤ p5infix␤ p5statement_mod_loop␤ statement modifier␤Parse failed␤FAILED 00:01 52m␤»
timotimo moritz_: you were the one who was helping me make EXPORT_hash, right? 19:08
TimToady mind you, I'd love to kill 'foreach' as a synonym for 'for' in P5 too...
it's ugly, ugly, ugly...
FROGGS well, we are here to kill ugly things, but not in Perl 5 :P 19:09
masak lizmat: here: rt.perl.org/rt3/Ticket/Display.html?id=76432
TimToady </whimper>
FROGGS *g*
moritz_ timotimo: well yes, I tried to
timotimo: and I asked jnthn++ for help, who was overloaded
lizmat fwiw, I always used "foreach" in P5 as true Perl style loop, and "for" for C-style loops
timotimo what exactly is the sub EXPORT supposed to return again? i'm getting get_iter() not implemented in class List or Hash depending on what i return from that sub
i have only one WIP commit up on my rakudo fork and it doesn't seem to be correct enough yet 19:10
do you still have your code somewhere?
moritz_ timotimo: a hash 19:11
timotimo in that case i must be using it wrong. probably need to decont it before passing it to $*W.import? 19:12
19:12 tgt joined
jnthn If you're writing NQP code, you need to grab the underlying storage of the hash, not work with the Perl 6 Hash object. 19:13
FROGGS timotimo: I pretty much interested in this too, do you have local patches to make something work or are you just testing someting?
moritz_ decont and de-6ize
timotimo ah, grabbing the underlying storage, i think i've done that somewhere else before.
jnthn .FLATTENABLE_HASH() is the current hack for doing it.
lizmat masak: and of course, that ticket gets worse if there actually had been a "x" sub
because then there would have been a good chance it would fail silently 19:14
jnthn In the future you'll be able to write nqp::hllize($a_p6_hash) in NQP code.
But I'm not quite there with that yet.
Like so many things I should do but ain't got to...
moritz_ but the real problem was taht the serialization context was null
jnthn Was it being used in a wval? 19:15
moritz_ yes
timotimo: the code is in your fork in branch EXPORT_hash
timotimo: five commits related to that branch, in fact
jnthn Shouldn't be much worse than: if nqp::isnull(nqp::getobjsc($obj)) { $*W.add_object($obj); }
There may already be a method inherited from HLL::World that does this. 19:16
timotimo huh. i must have pulled wrong!
FROGGS /o\ pulled at the wrong end
timotimo indeed it is! 19:17
moritz_ jnthn: iirc it was during PAST compilation, I don't even know if there's a $*W still around
anyway, time for me to sleep; might try again tomorrow
FROGGS gnight moritz_
timotimo good night moritz_!
moritz_ waves 19:18
19:18 pmurias joined
pmurias is there a backup irc log? 19:18
FROGGS look at the topic
masak 'nacht, moritz_
lizmat pmurias: see topic, olive.undo.it/log?channel=perl6 19:19
jnthn moritz_: That needs doing at the point the thing is put in a WVal, I suspect.
So, in World somewhere
19:25 grondilu_ joined
grondilu_ wtf, someone stole my nick?! 19:25
FROGGS timotimo: so this is about ex-/importing a single symbol?
19:26 moritz_ left
pmurias jnthn: what was nessecary to go from nqp-running-on-parrot passing all tests with the jvm backend to nqp-running-on-jvm passing all tests with the jvm backend? 19:26
FROGGS timotimo: since I need that too for v5 and I have some knowledge about this, I'd like to hook in 19:27
pmurias is writing the schedule for his gsoc nqp-javascript proposal
FROGGS pmurias++
19:27 grondilu_ left, grondilu_ joined
jnthn pmurias: Well, you can't quite do the cross-compile thing to get all of the tests. 19:28
19:28 cognominal joined
jnthn pmurias: 49-regex-interpolation.t requires eval functionality, essentially. Which you can't get until selfhost. 19:28
pmurias: I remember doing quite a bit of work in that stage, but I think most of it was actually mostly about abstracting things so they could be ported. 19:29
pmurias: The rest is adding various missing ops that don't show up in the test suite and hunting bugs, by and large. 19:30
pmurias: For bootstrap, the big task is to write the serialization side of things (to get to a selfhost you need a deserializer, but to get it to build itself you need the serializer part too). There are tests that guide you through much of that.
19:31 tgt left
jnthn (The "abstracting things so they could be ported" was mostly a one-shot thing, so you don't need to do that again.) 19:32
19:32 grondilu_ is now known as grondilu
grondilu \o/ 19:32
19:32 diakopter left
timotimo "the thing", that is being returned from the EXPORT sub? but it would probably be put into a WVal when the EXPORT sub is being run from the piece of Grammar.nqp code that parses and executes the use statement? 19:37
jnthn timotimo: I dunno, what are you putting in WVals? :) 19:38
timotimo i don't manually add anything yet. i will probably have to, since the EXPORT sub is being called "outside of the world", is that somewhat right? 19:39
jnthn I dunno...I probably need to see the code.
timotimo easy, i'll give you a link 19:40
github.com/timo/rakudo/tree/EXPORT_hash - this is the one
19:40 ajr joined 19:41 ajr is now known as Guest49779
jnthn ah, you're treating it as a stash and passing it to import... 19:42
So I guess the question is what import does
timotimo didn't manage to fully grok it last time; or maybe i did and forgot until now ;)
jnthn hmmmm 19:43
OK, I don't immediately see what's wrong.
19:43 Guest49779 left
pmurias does the plan look sane thus far (Inch-Stones in pastie.org/7754601)? 19:45
jnthn timotimo: Try applying gist.github.com/jnthn/5504848 and seeing what kind of object it complains about in the QAST::WVal compilation. That should give us a much better clue at what is going on, I hope. 19:46
19:46 ajr_ joined 19:47 ajr_ left
jnthn pmurias: On "Implement grammars." it's really "implement QAST::Regex compilation and the NFA-related nqp:: ops" 19:48
labster github.com/perl6/specs/commit/206a...-names.pod -- this change for $*OS to $*KERNEL happened 4 years ago and still isn't implemented. Anyone know what mailing list the message is talking about?
jnthn pmurias: No strong objection to the current wording really though 19:49
pmurias: "Implement multi methods." is in a similar camp - the actual candidate sort is done in NQP code now, it's a cache and a few other capture related ops that need adding.
pmurias: Overall, looks good 19:50
pmurias: It doesn't quite get that 49 needs self host, not bootstrapped.
(self host = you can use the cross-compiler to get an NQP that runs without Parrot; bootstrapped = that NQP running purely in JavaScript can compiler itself.) 19:51
49 requires selfhost, not bootstrap.
But the plan seems sane and I like we'll get a better test suite from this too \o/ 19:52
pmurias++
19:52 ajr_ joined
lizmat std: my @a[*] 19:53
camelia std 316b40b: OUTPUT«ok 00:00 43m␤»
lizmat std: my @a[4]
camelia std 316b40b: OUTPUT«ok 00:00 43m␤»
lizmat rn: my @a[4] 19:54
camelia niecza v24-37-gf9c8fc2: OUTPUT«===SORRY!===␤␤Postconstraints, and shapes on variable declarators NYI at /tmp/fdcLYd_um9 line 1 (EOF):␤------> my @a[4]⏏<EOL>␤␤Potential difficulties:␤ @a is declared but not used at /tmp/fdcLYd_um9 line 1:␤------> [3…
..rakudo 639d7f: OUTPUT«===SORRY!===␤Shaped variable declarations not yet implemented. Sorry. ␤at /tmp/YTrNN7zyqV:1␤------> my @a[4]⏏<EOL>␤»
masak Rakudo says sorry twice. 19:57
lizmat RSN, Real Sorry Now :)
masak :)
masak .oO( YTYST -- You Think You're Sorry Today ) 19:58
20:00 tgt joined 20:09 bruges_ joined
[Coke] I come not to bury Perl 5 but to Bayes it? 20:11
TimToady probably 20:12
lizmat :-)
[Coke] TimToady++ 20:13
pmichaud Rakudo feels especially bad about the lack of shaped variable declarations. 20:14
jnthn: I've been thinking we might want t/ops in nqp to test the nqp:: ops. 20:15
I might start a few examples. 20:16
TimToady wow, these habaneros are almost like having real hot sauce... 20:18
timotimo is "cakes" really one syllable? 20:19
TimToady yes
PerlJam timotimo: no, I pronounce it "CA-kes"
;>
This guy is really not a good Go advocate: devslovebacon.com/conferences/bacon...-milkshake 20:20
masak PerlJam: I tried watching that video, but my hotel connection is too slow. :/ do you think you could summarize why he's not a good Go advocate? 20:22
PerlJam: I only got a few minutes in, and noticed that he's not an experienced speaker, because he had already criticized his own slides twice by the fourth slide.
PerlJam my summary would be: the first 10 or 15 minutes is whinging about javascript and scala, and then gives fairly weak examples of why Go is great. It seems to boil down to "Go is simple and I can understand it" 20:25
lizmat which might actually be important 20:26
PerlJam aye 'tis true.
lizmat I've come to the conclusion that writing threaded programs is not for most, even experienced, programmers
PerlJam still very one dimenisonal though
lizmat there are too many ways for creating deadlocks 20:27
PerlJam There's always "other stuff" that comes into play when actually using a language.
lizmat or have race conditions that won't show up until a system is actually loaded
PerlJam lizmat: parallelism is not natural for humans :) 20:28
lizmat that's what I like about Perl 6: it will do a lot of that automagically under the hood
indeed
20:30 grondilu left
jnthn pmichaud: That may make sense. 59-nqpops.t is rather long and will only get longer. 20:30
masak "Unaligned end in UTF-8 string"
masak curses under his breath
I thought we had gotten rid of that bug. :/ 20:31
pmichaud jnthn: I'll give it a start, then. That's a good LHF task for others, too.
20:31 rindolf left 20:32 kivutar joined
jnthn pmichaud: Yeah. When porting, the feedback being "we either can compile this whole big test file or we can't" is a little LTA 20:37
20:38 dmol left 20:42 tgt left
dalek kudo/jvm-support: 4917384 | jnthn++ | src/vm/jvm/Perl6/Ops.nqp:
Map p6getcallsig for JVM.
20:44
kudo/jvm-support: db60056 | jnthn++ | src/ (2 files):
Eliminate or add JVM options to some QAST::VM.
p/rak-jvm-support: 6a561fc | jnthn++ | src/vm/jvm/QAST/Compiler.nqp:
Implement missing sub want.
20:45
20:46 tgt joined, swuecho joined 20:47 toebu joined 20:50 sqirrel left 20:54 spider-mario left
labster Okay, that was exciting. I finally found the bug that made panda fail on my IO::Path branch. lib.pm failed because I used MAKE_REGEX in IO::Spec::Win32. 20:54
FROGGS ahh, wow 20:55
labster Not that lib.pm actually uses regexes or anything... I honestly have no idea why it fails, as it alternates between "No object at index 16" and "get_attr_str() not implemented in class 'NQPMu'" errors 20:56
MAKE_REGEX was sort of my last ditch attempt to make Win32 readable, because rx// and regex {} make the core not compile :( 20:57
20:58 tgt left
labster But I have no idea how those functions even interact at all. 20:58
21:00 kaare_ left
dalek /experimental: 63f1ed2 | (Tobias Leich)++ | lib/Perl5/Actions.nqp:
?-quantifier doesnt make PMCA's now, moving towards rakudo
21:02
/experimental: 64b67da | (Tobias Leich)++ | lib/Perl5/Terms.pm:
(almost) support chop and chomp properly
21:05 skids left
dalek /experimental: 4ef1315 | (Tobias Leich)++ | rakudo.patch:
latest rakudo changes
21:05
: 311d5e3 | (Tobias Leich)++ | lib/ (3 files):
a try to replace Cool from CORE.setting with our own fivy stuff
21:06
v5: 60402f5 | (Tobias Leich)++ | / (11 files):
v5: rename all Perl6::P5... to Perl5::...
21:06 dalek left, dalek joined, ChanServ sets mode: +v dalek
FROGGS labster: the problem is that you are between the chairs, so not everything is available at that time 21:07
21:07 mavcunha left
lizmat sleep& 21:10
21:17 snoopy joined
masak could someone try and reproduce this? gist.github.com/masak/5505540 -- I thought we had gotten rid of those problems, but it seems not :/ 21:18
FROGGS file q 21:21
q: HTML document, UTF-8 Unicode text, with very long lines
froggs@TL02L-R8RXTCW-linux:~/dev$ perl6 -e 'qx[cat q]'
froggs@TL02L-R8RXTCW-linux:~/dev$
masak: no problems
jnthn Worked for me on Windows. 21:22
Well, I don't have the "file" program
And s/cat/type/
masak :)
FROGGS masak: what is your locale? maybe this is the difference? 21:23
masak hm, I copied the file from the gist, and that works here, too :/
FROGGS I'm on ubuntu btw, LANG=de_DE.UTF-8
O.o
masak what's a safe way to transfer the file in binary form?
here, let me put it online. 21:24
masak.org/carl/tmp/q
timotimo gzip it, that'll either give you a faithful replication on the other end, or it will maim the file so bad that it will fail to come out at the other end at all
masak yes, that triggers it.
21:24 swuecho left
masak please try with that one :) 21:25
FROGGS no, doesnt trigger it
ohh, hold on
wget makes a q.1
masak yeah.
if you already had a q
FROGGS yeah, triggers it
masak bingo.
timotimo reproduced here, too
masak now let's diagnose the file.
timotimo and now i'll go to bed
FROGGS masak: line ending?
masak looks like. 21:26
a bunch of whitespace is the only diff between the innocent one that I copied from the gist, and the one that fails.
so we all agree that there's nothing wrong with q.1, UTF-8-wise?
FROGGS no, there is another whitespace
flussence "iconv q.txt | wc" and "iconv -c q.txt | wc" both give identical results, so that doesn't seem to mind whatever it is...
masak I tried to golf the input file, but then the bug goes away :( 21:27
FROGGS masak: the diff just shows a regular space char before LN on the blank lines
masak yeah. 21:28
FROGGS so the bad file has LNLN
masak would like to find a better way to reproduce the file q before submitting this
FROGGS if I add a space to line 2 and four it parses
I guess this is about chunks 21:29
maybe like: 256 bytesLNLN breaks, while 256bytesLN\sLN does not
will try
masak FROGGS++ 21:30
flussence all the byte values look 7-bit-clean to me too, other than the two em dashes 21:31
masak yeah.
21:34 tgt joined
masak hm, I can create a Perl script that just recreates q from hex numbers... 21:35
FROGGS .u —
yoleaux U+2014 EM DASH [Pd] (—)
FROGGS this might cause it
last text line col 89
flussence ...*sigh* 21:36
that char is RIGHT ON a 1024-byte boundary
21:37 kurahaupo joined
FROGGS that is what I testing right now.. 21:37
hmmm 21:38
masak flussence: aha!
jnthn r: say self.WHERE.WHAT
camelia rakudo 639d7f: OUTPUT«===SORRY!===␤'self' used where no object is available␤at /tmp/ghY53UTauT:1␤------> say ⏏self.WHERE.WHAT␤ expecting any of:␤ argument list␤ prefix or term␤ prefix or meta-prefix␤»
jnthn r: say Any.WHERE.WHAT
camelia rakudo 639d7f: OUTPUT«(Int)␤»
masak flussence: so we should be able to generate a file with 1023 spaces and an EM DASH, which blows up?
21:39 snoopy left
flussence doesn't happen if I pipe it and print $*IN... 21:40
21:40 bluescreen10 left
FROGGS I tried: perl6 -e 'qx[perl6 -e "say 1 x 2047,q|—|"]' 21:41
doesnt trigger it either
[Coke] r: say Any.WHERE.WHAT.HOW
camelia rakudo 639d7f: OUTPUT«Perl6::Metamodel::ClassHOW.new()␤»
masak FROGGS: perl -e 'print " " x 2047, q|—|'
FROGGS: pipe it to a file. triggers it here.
FROGGS masak: shortest example evar!!: perl6 -e 'qx[perl6 -e "say 1 x 2047,q|—|" | cat]' 21:42
flussence yep, just did the same thing here
(mine was a bit more long-winded though: for i in `seq 2042 2048`; do perl6 -e "say q{ } x $i ~ qq{\x[2014]}" > r.txt; perl6 -e 'say qx[cat r.txt]'; done; )
masak FROGGS++
masak submits rakudobug
FROGGS looks like chunksize is 2048 21:43
since 1023 and 2048 is fine
masak in short, Parrot blows chunks. and it's not pretty.
FROGGS++ flussence++ # helping narrow this down 21:45
FROGGS these are fun tasks actually :o) 21:46
21:47 PacoAir left
jnthn They ain't fun if you're trying to get shit done. :/ 21:48
[Coke] maybe we can catch more of Util's tuits.
FROGGS jnthn: I know that, do you think working on a should-be-simple problem for a week is fun? nah :o)
jnthn FROGGS: Know it all to well. 21:49
jnthn has spent the last couple of hours trying to de-magic the way we handle $/ and $!.
FROGGS is still waiting for his learning curve to pay off
jnthn Joy, a segfault. 21:50
flussence I think I'm desensitized to the wonders of parrot IO already because I wrote PHP code for a few years
FROGGS hmmm, I never have problems with file IO and php 21:52
flussence (my favourte bug there was that their equivalent of a LEAVE-block at the top level would run outside their equivalent of the setting, but only when run as a fastcgi)
FROGGS but, I usually run a regex of an input stream to make it (non-)utf8 21:53
labster FROGGS++ #excellent golfing
FROGGS :o)
thanks
masak this last bug made me depressed. if it had happened in 2008 I wouldn't have blinked. but we should really have shaken out simple stuff like that by now. 21:55
well, Parrot should have. 21:56
FROGGS :/ 21:58
21:58 tgt left
FROGGS masak: so an answer is the selfhosting nqp on Go? 21:59
:o)
I really like that idea
masak well, the JVM is closer to being available.
FROGGS yeah, of course 22:00
and it will give us major improvements
and one of the best things: we can fiddle with it 22:01
I just can give up when lookup at parrots code, it is so damn huge
[Coke] masak: Does ranting about what parrot should have done by now help fix the problem or identify a process problem that could be fixed?
labster I think that means I'm going to have to finally upgrade from Mac OS X 10.6 -- I'm currently stuck with Java 1.6 22:02
[Coke]: that's not really a rant.
FROGGS I think ranting about parrot just helps the ranter
22:02 robinsmidsrod left 22:03 tgt joined
[Coke] No, that particular send wasn't a rant, no. 22:03
labster Well, ranting about Perl 6 doesn't seem to make it go any faster, either.
22:03 kivutar left
FROGGS it just makes the few devs depressive 22:04
22:04 robinsmidsrod joined
masak [Coke]: ranting about Parrot doesn't fix anything. 22:05
[Coke]: let's just say I'm eager to get off it.
I don't want to fix it.
dalek kudo/jvm-support: 8a33dd1 | jnthn++ | src/core/Mu.pm:
Avoid possible infinite recursion in setting comp.

Certain errors hit Mu.Str, which uses Int.Str, before Int.Str had been defined. The result was infinite recursion.
kudo/jvm-support: 5dd6eb7 | jnthn++ | src/Perl6/Actions.nqp:
Don't use add_implicit_var for $*DISPATCHER.

That will be about doing $/ and friends.
masak [Coke]: here's the process problem that should be fixed: a "refactor" that has negative effects for actual production code months later should be rolled back, or preferably not happen in the first place. 22:07
[Coke]: here's what Parrot should have done: care deeply about UTF-8. test it thoroughly. consider it a process error if something as blatant as the just-reported RT ticket snuck past the tests. 22:08
here's what I'm going to do about it: focus my energies elsewhere, on more mature stacks. 22:09
22:12 mtk left 22:14 donaldh_ joined 22:15 mtk joined 22:18 wooden joined, wooden left, wooden joined
FROGGS did you guys know? 2+0+1+3 is actually 6, this has to mean something.... gnight 22:19
masak coincidence? I think not!
FROGGS :o)
22:20 FROGGS left
masak rn: say [+] "2013".comb 22:20
camelia rakudo 639d7f, niecza v24-37-gf9c8fc2: OUTPUT«6␤»
labster If you add the first and last digits, it makes 5, which means that the Law of Fives holds.
22:26 Chillance left
labster is there something similar to the /o switch in perl 6 -- make a regex compile only once? 22:27
jnthn labster: Are you doing some kind of interpolation? 22:28
labster yes
jnthn Of the <$x> kind, interpolating a textual thing? 22:29
jnthn ponders a bit
labster I'd precompile, but everything I've tried to do that in the setting fails by either parsefailing or breaking random (and I do mean random) modules
22:29 arlinius joined
labster I can just put everything in the regex expressions, it's just ugly and harder to maintain. 22:30
jnthn labster: Have you taken a look at where in the setting you're putting it, ooc? 22:31
labster: Order can matter.
lue hello world o/
lue saw "parrot" and general bad vibes, thus he backlogs 22:32
masak 'night, #perl6 22:33
labster Well, it needs to be before IO.pm, which doesn't leave me a lot of options. I can play with it a bit, I guess.
jnthn Just looking through the order though, at the moment all the IO stuff comes before any of Match, Cursor or Regex. 22:37
It may be you can move all the IO stuff after those, and that it helps. 22:38
22:43 sizz left 22:44 sizz joined 22:45 snearch left 22:48 sizz left
donaldh_ jnthn: java.lang.RuntimeException: Method code too large! when compiling src/stage1/gen/QAST.nqp on MacOS 22:51
sorear does it know that methods are limited to 65534 bytes of code? 22:52
and is that what the error means?
jnthn Yes. *sigh*
donaldh_ I guess that's what the error means 22:53
22:53 sizz joined 22:54 nyuszika7h joined
jnthn It's probably because the mainline of that file is *huge*, combined with me not having got around to improving various bits of code-gen. 22:55
22:55 woosley1 joined 22:56 woosley1 left
jnthn I'm presuming it's the mainline, anyways. 22:57
22:57 pmurias left
donaldh_ Yeah, I was guessing that too. 22:57
jnthn Well, the workaround is easy: move a chunk of the mainline into a sub and call it. 22:58
donaldh_ :)
jnthn otoh, that mainline should not take 64kb of code :)
donaldh_ I'll give it a try.
[Coke] gzip it! ;) 22:59
(sorry, I've been living inside .xlsx files for the last few months. :P
flussence
.oO( :set ts=2 )
jnthn heh
jnthn wonders if we shouldn't just have some array of all the ops
And loop over it, adding them.
23:00 skids joined
jnthn At the moment we end up with a CallSite for all of those setup method calls which we only do once... 23:00
23:02 alester left 23:04 shachaf_ joined, shachaf_ left, shachaf_ joined, shachaf_ is now known as shachaf
dalek kudo/jvm-support: 4ea6b14 | jnthn++ | src/ (5 files):
Eliminate $! and $/ magic tricks in lexpad PMC.

This is part of trying to eliminate the Perl6Lexpad PMC overall. This does also make $! and $/ more "normal" and we can probably generate better lookups for them in some cases now (which at the times the tricks were put in didn't exist; they landed with QAST).
23:05
23:06 mikemol left
dalek kudo/jvm-support: b84e933 | jnthn++ | src/vm/parrot/pmc/perl6lexpad.pmc:
Remove left behind debugging code.
23:06
pmichaud I added to the RT ticket, but I'm not able to reproduce the 2048-byte-boundary bug on my system. 23:07
23:08 mikemol joined
donaldh_ Mmm, yes. Method is 65838 bytes long and has 739 local vars :-) 23:14
jnthn Wow. :-)
YOu get 64K vars in a method too I guess, but I dunno how you can ever use them with only 64K of code :) 23:15
Is it the mainline?
.oO( The joy of things made in the 90s... :) )
23:16
.oO( At least it drives code-gen improvements... )
sorear wait, how can you define a method that long? 23:17
jnthn donaldh_: oh, question...
Are you in the master branch?
sorear the length field is only 16 bits no?
jnthn Or on rak-jvm-support?
donaldh_ master
jnthn Ah.
Because the stage0 in master still uses the pre-indy code-gen.
Which meant every method call was, um, impressive. :) 23:18
donaldh_ pre-indy?
Happy to switch to rak-jvm-support
jnthn Before I updated method calls to use invoke dynamic.
donaldh_ ah
jnthn Which took the size of QAST.class from something like 1.2MB down to the 500KB or so it is today. 23:19
donaldh_ I have moved a big bunch of opcodes into a sub and it compiles again. 23:20
jnthn Yeah. I'd try in the branch, though. I suspect we're well within the limits there.
Feel free to merge latest master into that branch if you need to.
donaldh_ I'm just looking at the REPL so can work off the branch. 23:21
23:21 fgomez left
jnthn ah, cool 23:22
I'm not attached to the way I did any of the IO ops, fwiw.
If you're looking at it and thinking "huh, I know how to use the Java class libraries better than this!", you probably do. :) 23:23
donaldh_ there is a System.console() when run n a console, but it looks like the readlinefh ops won't be able to make use of it. 23:24
*in*
Possibly just make the Console available and use it if present. 23:25
jnthn Note that the REPL uses nqp::readlineintfh 23:26
(int as in interactive)
donaldh_ which gets passed an IOHandleInstance created by nqp::getstdin ? 23:30
jnthn Yeah
donaldh_ Oh, okay, I might be able to mark the IOHandleInstance as stdin, or get nqp::getstdin to stash the Console in the IOHandleInstance 23:32
hacky, but it should give us a REPL. 23:33
jnthn \o/
sorear jnthn: later I'm going to have to ask about indy. When I read the spec for indy I couldn't think of what it was possibly any good for. 23:36
jnthn sorear: Sure, feel free...thought maybe when it's not 2am my time ;-) 23:38
sorear: I'll be at YAPC::NA if you're making that.
donaldh_ night / 23:39
jnthn yeah, I should prolly rest... :) 'night o/
23:40 donaldh_ left 23:41 tgt left 23:45 tgt joined
lue r: class Foo {has $.bar; }; my $a = 42; my $b = Foo.new; $b.bar := $a; say $b.bar; # I'm not sure if it's me or not (I get the feeling it is) 23:45
camelia rakudo 639d7f: OUTPUT«===SORRY!===␤Cannot use bind operator with this left-hand side␤at /tmp/sWJCaCE2EK:1␤------> y $a = 42; my $b = Foo.new; $b.bar := $a⏏; say $b.bar; # I'm not sure if it's me ␤ expecting any of:␤ postfix␤»
23:47 ajr_ left 23:58 drbean left 23:59 tgt left