»ö« 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!
Set by sorear on 25 June 2013.
timotimo FROGGS++ # for seeing it through to the end 00:01
colomon FROGGS++ indeed! 00:09
timotimo: any progress on the ABC-triggered bug?
timotimo no, sadly not 01:01
i haven't spent more time on it, to be honest 01:02
timotimo .tell FROGGS to remind me to ask a favor of you tomorrow 01:41
yoleaux timotimo: I'll pass your message to FROGGS.
JimmyZ .tell masak github.com/papers-we-love/papers-w...ter/macros 06:14
yoleaux JimmyZ: I'll pass your message to masak.
dalek rl6-bench: 1122f8b | (Geoffrey Broadwell)++ | microbenchmarks.pl:
Start adding output and expected routines to microbenchmarks
07:04
FROGGS[mobile] o/ 07:09
timotimo: what do you need? 07:10
peteretep lizmat: Nice to meet you on Saturday! 07:15
FROGGS . 07:29
yoleaux 01:41Z <timotimo> FROGGS: to remind me to ask a favor of you tomorrow
masak morning, #perl6 07:51
yoleaux 06:14Z <JimmyZ> masak: github.com/papers-we-love/papers-w...ter/macros
masak thank-you 07:52
adding to @pile-of-articles
moritz www.glendix.org/ plan 9 userspace for linux 07:55
dalek ast: 82914ab | TimToady++ | S02-literals/char-by-number.t:
"\01" is not illegal, just doesn't dwym
07:57
ast: f50f63d | TimToady++ | S02-literals/listquote.t:
should test for ComplexStr too
lizmat good *, #perl6 08:22
lizmat survived LPW and associated touristing and shopping :-) 08:23
masak oh, it's the LPW time of year? nice. 08:24
lizmat I think the question most asked was, whether TimToady's announcement was for real or not
masak we're all wondering that.
nwc10 lizmat: and the car survived the trip back, with the inevitable haul of books?
lizmat and the amazed look on everybody's face, when I told them it was real :-)
masak .oO( TimTrollay ) 08:25
lizmat nwc10: mostly CD's this time, but also some books
oddly enough, TimToady's announcement does not seem to have made it to the Perl Weekly yet 08:26
JimmyZ wonders what status the GLR is
lizmat JimmyZ is not alone 08:27
moritz pmichaud: is there anything I can do to help with GLR? 08:30
lizmat peteretep: it was good to see you as well! 08:31
FROGGS lizmat: when you have time (and are in a good mood :P), then we should talk about IO::* on windows 08:33
lizmat now would be good
FROGGS ohh, okay
well, it is broken on windows atm
because chdir and friends do not handle backslashes as dir-seps anymore, which we talked about 08:34
but.... $*CWD and dir() do spit out backslashes
lizmat ok, that's a migration issue I hadn't thought about yet... 08:35
which makes it important I move forward asap :-) 08:36
FROGGS :o)
lizmat or maybe return chdir() back to it's former logic
hmmm....
FROGGS I'll happily test things for you, or try stuff as a pre-commit hook
lizmat the problem is that the complete move forward still breaks panda in a very hard to debug way :-( 08:37
FROGGS really? 08:39
hmmm
I can probably help with that too
(if you put your changes in a rakudo branch for example)
lizmat :-) 08:40
masak FROGGS++ lizmat++ 09:22
timotimo o/ 10:47
lizmat timotimo \o 10:49
lizmat hmmm..... interesting way of losing information: 11:31
m: LEAVE die 2; die 1 # where is the info about die #1 ?
camelia rakudo-moar 72703b: OUTPUT«2␤ in block <unit> at /tmp/qwRosv31pU:1␤␤»
timotimo m: LEAVE die 2; die 1; CATCH { default { say $_ } } 11:32
camelia rakudo-moar 72703b: OUTPUT«2␤ in block <unit> at /tmp/5nMjofQwda:1␤␤»
timotimo m: { LEAVE die 2; die 1; CATCH { default { say $_ } } } CATCH { default { say $_ } }
camelia rakudo-moar 72703b: OUTPUT«===SORRY!=== Error while compiling /tmp/JQ57KXf6Uj␤Two terms in a row␤at /tmp/JQ57KXf6Uj:1␤------> ; die 1; CATCH { default { say $_ } } } ⏏CATCH { default { say $_ } }␤ expecting any of:␤ postfix…»
timotimo m: { LEAVE die 2; die 1; CATCH { default { say $_ } } }; CATCH { default { say $_ } }
camelia rakudo-moar 72703b: OUTPUT«1␤ in block <unit> at /tmp/P0VUJqE0sL:1␤␤2␤ in block at /tmp/P0VUJqE0sL:1␤ in block <unit> at /tmp/P0VUJqE0sL:1␤␤»
timotimo interesting result 11:33
lizmat yeah, of course this can be handled ad-hoc 11:36
but if you have LEAVE code in a block, and you call a module that deep in its bowels does a die, and as a result of that, the LEAVE will also die
you never find out what happened deep inside the module 11:37
I think that's what bugging wrt to panda / File::Find
timotimo but then the LEAVE is your own problem, no?
lizmat yes, it is :-)
timotimo ah, then i seem to be understanding correctly
timotimo i agree that panda swallowing error information everywhere is annoying 11:38
FROGGS I still think that you have to care about such a situation by yourself
lizmat but it can be very confusing... as the reason why the code in the LEAVE is failing, could be caused internally
FROGGS one could argue that LEAVE is only for leaving "normally", but I don't know if that has a design smell or not 11:39
lizmat no, no
that's not what I meant
but I do think we need to have a way to preserve the "inner" stacktrace
timotimo for leaving normally, there's KEEP
and UNDO for the explicit case of leaving with error
lizmat as in, we should never drop stack traces 11:40
something I think we need to think about, specifically wrt to phasers that are called upon exit states, like LEAVE, NEXT, LAST, END etc
Juerd moritz: Note that the end of the year is not a hard deadline 11:47
Juerd moritz: Also, is the 350 euro all that's needed? I'll cough up a significant bit then. It's much less than I would have spent on keeping the current feather. 11:48
dalek p/openpipe: d74d5c5 | (Tobias Leich)++ | tools/build/PARROT_REVISION:
bump parrot rev for a GC fix, rurban++
11:49
p/openpipe: 12f9f84 | (Arne Skjærholt)++ | docs/ops.markdown:
Document control QAST op.
p/openpipe: ee2ca3a | (Tobias Leich)++ | src/vm/parrot/ (25 files):
silence most warning when building on parrot, fixes #198
p/openpipe: c0bc3d9 | (Tobias Leich)++ | / (27 files):
Merge branch 'master' of github.com:perl6/nqp into openpipe
timotimo looking for some more suggestions for the weekly 11:56
p6weekly.wordpress.com/?p=255&s...0a7e54dbec
moritz Juerd: we're aiming for a bit beefier hardware, and I have various pledges for donations already
Juerd: and it's good that it's not a hard deadline, 'cause it might take some time
nwc10 timotimo: if you want to add some humour, you might want to add a footnote after the GLR, NSA and NFG acronyms something like "Any resemblance to real TLAs, living or dead, is purely coincidental." 11:58
masak :) 11:59
timotimo would have to look up two of the three to figure out what they could stand for
nwc10 I don't think that there's a "real" definition for GLR 12:00
but the usual meaning of NFG is quite inappropriately rude, and NSA quite inappropriately out of context
(although the NSA would probably disagree, as I'd guess that they view themselves as always in scope) 12:01
timotimo: I can't spot anything *constructive* to suggest :-) 12:02
timotimo hah
that sounds like you're barely holding back your insults :D 12:03
nwc10 I was only intending to insult my previous suggestion
timotimo all right then
jnthn timotimo: LPG to me 12:20
timotimo i'm adding even more, though! :) 12:21
JimmyZ LPG? 12:23
timotimo "looks pretty good"
(is my guess)
lizmat just wondering: in File::Find, is checkrules part of the external API ? 12:24
brrt \o 12:26
liquified propane gas
FROGGS does somebody here know how to please such a warning? 12:27
nqp_ops.c: In function ‘quicksort’:
nqp_ops.c:171:1: warning: stack usage is 1512 bytes [-Wstack-usage=]
brrt what.. why would that be wrong?
timotimo because smaller stacks are better stacks
brrt i'd think by splitting stuff over multiple functions
FROGGS splitting up quicksort? hehe, no, that's out of my reach :P 12:28
brrt not sure if sarcasm or not
FROGGS no sarcasm involved
brrt hmmm 12:29
FROGGS github.com/perl6/nqp/blob/master/s...p.ops#L101
ohh, I think my openpipe port works O.o 12:30
I am shocked 12:31
brrt well, you allocate 100 'begin' integers (400 bytes at least), 100 'end' integers, that shouldn't be a problem unless intval is 64 bits wide
which i'd expect given this is perl6
FROGGS it is 64bits, aye
timotimo so that quicksort would support arrays with how many elements exactly? :) 12:32
brrt note that 100 levels of recursion deep is either a sign of a pathological case or 2^100 ints deep 12:32
also.. why u no use qsort()
FROGGS timotimo did that, it is all his fault!
timotimo oh crap, they found it out! 12:33
timotimo hides, quickly
brrt only data can ever going to convince me the function call overhead will kill usb :-)
:-D
s/usb/us/
FROGGS it is also funny with 'usb' :D
sort of
timotimo there's no overhead to "allocating" 100 64bit integers on the stack
brrt no 12:34
it is an OK solution
this will not be called recursively
timotimo correct
brrt HOWEVER i think this will fail for a pre-sorted array because it always pick the left element for the pivot 12:35
timotimo selecting a pivot is A Hard Problem™
brrt yes, and it is adequately solved by randomisation :-) 12:36
timotimo i agree
FROGGS we have the very same quicksort in MoarVM... does it make sense to replace it with qsort and benchmark it? 12:37
brrt i think it does
but that's just, like, my opinion dude
FROGGS hehe
masak I know some algorithms that flip the sorting strategy in the middle if the array turns out to be "mostly sorted".
FROGGS GO OUT OF THAT CHANNEL!!11 NO OPINIONS HERE DUDE!!11
brrt really? that seems.. tricky 12:38
masak I think the Java API's sort does that.
brrt and edge-case-vulnerable
timotimo does something unspeakable to brrt's carpet
there's TimSort, which was invented by a python person
masak and they do it that way because that's what fell out of profiling.
timotimo it's pretty clever about sorted subsequences or something like that
rurban the stack access should fit into the L0 cache 12:39
so >256 is excessive
brrt L0 cache is that small? 12:40
timotimo l0 is very small
brrt i see
rurban depends on the processors.
timotimo hmm. not entirely sure how small it is in my system
rurban but my rule of thumb is stack < 256 or < 1024 occasionally 12:41
wordsize of course, not bytes
leont Yeah, I was surprised by that too 12:42
rurban parrot even emits emits a warning on overlarge stack sizes with —cage 12:43
brrt well, even if your pseudostack would fit into l0 cache, that doesn't mean your sorted array will, so even then i'm not seeing the benefit yet 12:46
brrt or rather, the worry 12:46
lizmat so do we have a way to exit a process pronto *without* running any LEAVE / END / whatever blocks ? 13:06
similar to p5's POSIX::exit0() ?
brrt signal(getpid(), 9) :-P 13:07
lizmat hehe
Hmmm... nqp::exit()?
moritz from an email that pledges a donation for the server: "BTW, do you know of a consultant that can assist us with a few debian server details: hot cloning, exim4 and spamassassin?" 13:08
if anybody wants to do such things, please tell me 13:09
lizmat m: END say "hello world"; exit 13:10
camelia rakudo-moar 72703b: OUTPUT«hello world␤»
lizmat m: END say "hello world"; nqp::exit(0)
camelia ( no output )
leont brrt: you mean kill instead of signal ;-) 13:17
brrt leont - you're quite right 13:17
masak m: END say "OH BAI"; exit # clearly an END block can't say "hello world" :P 13:20
camelia rakudo-moar 72703b: OUTPUT«OH BAI␤»
masak but nqp::exit() feels like exactly the low-enough layer to trigger an immediate exit that doesn't go via LEAVE/END phasers. 13:27
jnthn The quicksort in question is only ever used for LTM fates 13:29
jnthn Given it's mostly shuffling, a bubble sort may even be mroe effective... 13:29
About L0 cache, it's a darn *cache*, so what matters is what memory you access, not how much is allocated. So whining about oversized stack frames is stupid. 13:31
You have to know something about the usage pattern to know if it's a problem.
brrt LTM? 13:34
jnthn Longest token matching
brrt ah 13:35
hmm
then changing to qsort might make a differenc
e
rurban We have a problem with nqp lstat vs stat. parrot uses POSIX lstat, nqp thinks that stat should perform lstat with STAT_ISLNK 14:44
moar and jvm should use lstat for symlinks
or use a different symlink check 14:45
Juerd moritz: What's the total amount you're aiming for? 14:49
moritz Juerd: there are several options I'm considering right now. The highest would be new hardware for 1900EUR 14:57
Juerd: though other folks are currently investigating if a company that's rather friendly to Perl developers has spare, used hardware that we could get cheaper, and with more power
moritz Juerd: so I'd say once we know if it'll actually be new hardware, I'll tell you (and the rest of the world), and then you can make an informed decision about donating 14:59
moritz and after szabgab++ mentioned my article in Perl Weekly, there has been a second wave of pledges 15:01
pmichaud good morning, #perl6 15:02
moritz \o pmichaud
TuxCM reminds the p6 people there is a (very slow) HP-UX machine at their disposal, might they want to use that
FROGGS hi pmichaud
TuxCM reminds FROGGS about Tuxic :P 15:03
FROGGS *g*
yeah...
have to do that
nwc10 good *, Pm
lizmat pmichaud o/
FROGGS TuxCM: I'd like to get MoarVM+nqp+rakudo tor un on that box... 15:04
to run*
TuxCM send a mail with your id_rsa.pub and the required logname to h dot merijn at procura dot nl 15:05
nwc10 FROGGS: I might have a patch to get MoarVM slightly further than it is currently on HP-UX
FROGGS nwc10: I'll happily accept it :o)
nwc10 but the next thing that I hit was the build system for one of the embedded deps
FROGGS: Offhand I don't know where it is. IIRC it's to do with not busting the length limits on pre-processor macros 15:06
the static inline detection code should (bloody) work on HP/UX and AIX (because I tested it)
FROGGS ohh, okay
TuxCM nwc10, HP-UX 10.20 is *not* a target for MoarVM I presume
nwc10 TuxCM: I think the answer is "oh $deity no" 15:07
TuxCM then there are options to set the limit on macro space
nwc10 I'm still attempting to get $real_life back down to size
TuxCM (not supported on 10.20)
lemme check if I can find those options 15:08
nwc10 TuxCM: there was a much easier way to fix it. It was the MVM_ROOT macro, which is just a shortcut for other code
please don't look, it wasn't needed
TuxCM stops searching
nwc10 and IIRC it's also needed for xlc
TuxCM xlc--
nwc10 but
xlc++ # if you code works on xlc, it probbaly works everywhere
TuxCM and it is not xlc that is buggy, it is the preprocessor it uses 15:09
moritz one would think that writing a preprocessor would be much easier to get right than writing a C compiler
nwc10 oh yes, *that* one (the processor)
IIRC it managed to mis-substitute macro parameters
TuxCM it is not ansi-compliant 15:10
IIRC ^\s+define\s+foo(a,b)\s+... is misinterpreted
IIRC ^\s+#define\s+foo(a,b)\s+... is misinterpreted 15:11
or ^\s+#\s+define\s+foo(a,b)\s+...
dalek kudo/nom: 7ecf691 | (Elizabeth Mattijsen)++ | src/core/IO.pm:
Fix problem with MAKE-ROOT
15:29
peteretep I am trying to understand github.com/rakudo-p5/v5/ at a high level 15:38
How does it get around the fact that Perl "can't be parsed", in terms of barewords and sub signatures?
hoelzro morning #perl6 15:40
moritz peteretep: it can't be parsed without being executed. v5 also executed it, just like perl5 does
\o hoelzro
peteretep moritz: OK, that makes sense
dalek p/openpipe: 4818829 | (Tobias Leich)++ | / (5 files):
add working openpipe op for nqp on parrot on linux

That means that we have openpipe on all platforms/backends except for parrot on windows.
15:57
lizmat timotimo++ for weekly 15:59
hoelzro indeed 16:02
timotimo++
FROGGS nice article 16:04
timotimo++
dalek rl6-roast-data: 94bcb86 | coke++ | / (5 files):
today (automated commit)
16:08
moritz timotimo++ indeed 16:10
timotimo: would you mind including a link to perlgeek.de/blog-en/perl-6/2014-com...nding.html
dalek p/parrot-lstat: d5f7c98 | rurban++ | / (3 files):
support lstat for symlinks on parrot

requires the parrot fix for GH #1129
[Coke] the parrot macport is currently at 3.3.0; no one has complained about a lack of updates there. If someone wants to own the macport and provide builds, let me know. 16:14
rurban I am a macports user, but apparently never needed it 16:15
do you have register there somehow?
I'm not strong with tcl 16:16
rakudo would be important there, with the 3 backend variants
rurban A parallel test target for nqp would also be nice (prove -j4) 16:19
FROGGS TEST_JOBS=4 should do 16:20
rurban hmm, didn't work for me
works fine on parrot though
FROGGS make -j4 p-test 16:22
prove -r --exec "./nqp-p --vmlibs=nqp_dyncall_ops" t/nqp t/parrot t/hll t/qregex t/p5regex t/qast t/serialization t/nativecall
it just swallows the -j
but you could use the prove command directly as a workaround
rurban yes, did that.
but I'll forget about it, and parallel is so much faster 16:23
FROGGS true
[Coke] (parrot macport) - whoops, meant to ask in #parrot. 16:30
FROGGS sigh 16:32
now I've got openpipe working perl6-p on linux... and now sending the report segfauls
segfaults* 16:33
japhb timotimo: The branch I merged was called 'stress', not 'stresstest'
FROGGS again in 0x00007ffff2e3f582 in Rakudo_cont_is_rw_scalar (interp=interp@entry=0x610060, check=0x109dbb88) at container.c:203
203 if (IS_CONCRETE(check) && STABLE(check)->WHAT == scalar_type) {
dalek kudo/openpipe: e5ae2e7 | (Tobias Leich)++ | src/core/IO/Handle.pm:
unfudge open("rp") on parrot
16:35
FROGGS okay, this line: my $buf = Buf.new(self.to-json.ords); 16:41
fails with: Unmarshallable foreign language value passed for parameter '$value' 16:42
PerlJam greetings! 16:49
hoelzro o/ PerlJam 16:50
FROGGS hi PerlJam
FROGGS perl6-p: say $*VM 16:51
p: say $*VM
camelia rakudo-parrot 7ecf69: OUTPUT«parrot (6.9.0)␤»
FROGGS p: say $*VM.perl 16:52
camelia rakudo-parrot 7ecf69: OUTPUT«VM.new(config => {"perldoc" => "/home/camelia/perl5/perlbrew/perls/perl-5.20.1/bin/perldoc", "i_syssysctl" => "define", "nvsize" => "8", "has_core_nci_thunks" => "1", "optimize" => "-O2", "intvalmin" => "LONG_MIN", "has_glut" => "4", "nv" => "double", "h…»
FROGGS p: say $*PERL.perl
camelia rakudo-parrot 7ecf69: OUTPUT«Perl.new(compiler => Compiler.new(release => "", build-date => DateTime.new(year => 2014, month => 11, day => 10, hour => 16, minute => 17, second => 1), codename => "", name => "rakudo", auth => "The Perl Foundation", version => Version.new('2014.10.97.…»
FROGGS p: say $*KERNEL.perl
camelia rakudo-parrot 7ecf69: OUTPUT«Kernel.new(release => "#1 SMP Fri May 31 20:21:23 UTC 2013 (97c14ba)", name => "linux", auth => "unknown", version => Version.new('1.SMP.Fri.May.31.20.21.23.UTC.2013.97.c.14.ba'), signature => Blob, desc => Str)␤»
FROGGS p: say $*DISTRO.perl
camelia rakudo-parrot 7ecf69: OUTPUT«Distro.new(release => "3.7.10-1.16-default", is-win => Bool::False, path-sep => ":", name => "linux", auth => "unknown", version => Version.new('3.7.10.1.16.default'), signature => Blob, desc => Str)␤»
jdv79 are there any good resources, aside from src diving, to learn about slangs. i don't get most of how Tuxic works. 16:54
FROGGS jdv79: slangs are pretty new actually
FROGGS so we are exploring how they could work atm 16:55
I try to make it user friendly these days, but it is not yet the case
jdv79 new in concept or in implementation? i could have sworn i read about them years ago. 16:56
FROGGS implementation
I can explain later how you can create a slang today
tony-o coffeeperl
masak \o
FROGGS but I've got to move home in a few minutes
tony-o (gags self)
jdv79 that would be great. maybe a line by line of Tuxic for dummies. 16:57
masak tony-o: because you've always wanted to indent your Perl and avoid declaring variables?
jdv79 good luck with that
tony-o masak: hahaha
masak I'll take that as a "no".
tony-o i have good indenting and always declare :-), just not a fan of coffee script 16:58
tony-o it has some cool tricks but it prints out some ugly JS 17:00
nine I'm looking for someone who is doing or wants to do a port of a serious module from P5 to P6. Doesn't have to be something major like Dancer but shouldn't be something trivial either. mohawk++ has volunteered to convert any lessons learned into some real good documentation.
dalek : dd41d2a | duff++ | misc/perl6advent-2014/ (2 files):
Start on Advent 2014
tony-o nine: of a serious module?
FROGGS "No such method 'gist' for invocant of type 'NQPLexPad'" - I fear there is something strange going on still
PerlJam tony-o: no Acme modules ;)
FROGGS nine: XML::LibXML?
nine tony-o: in essence something large enough to allow a good number of lessons to be learned
PerlJam nine: got any candidates?
FROGGS nine: and then XML::Compile? 17:02
brb
masak nine: do github.com/jnthn/json-path and strangelyconsistent.org/blog/sweet-ports count? 17:02
tony-o FROGGS: i thought you were working on xml-libxml
nine PerlJam: me, no. Should probably be something the porter wants/needs herself for motivation. If I want to use some P5 module in P6, I make sure Inline::Perl5 can do it. Seems like a better way for me to invest my energy. 17:03
PerlJam nine: btw, do you have an account for perl6advent.wordpress.com ?
nine PerlJam: not that I'm aware of, no. 17:04
masak: hard to say as I'm just the in-between guy here, but I guess he had something larger in mind.
nine FROGGS: XML::LibXML sounds like something every language needs and is something quite substantial. 17:05
PerlJam nine: Are you willing to write something for this year's Perl 6 Advent Calendar? (If so, tell me an email address I can send an invite to)
jnthn The JSON::Path port is one that very nicely illustrates the power of some Perl 6 things 17:06
It came out radically different.
masak and the power of some lambda-based programming, too.
jnthn ayez 17:07
tony-o jnthn: i was just reading JSON::Path, it looks really cool
PerlJam masak/jnthn: Sounds like good fodder for Advent! :)
masak basically, you can build entire programs dynamically, if you know how to plug your lambdas together.
PerlJam (I know it's early yet, but I thought I'd start mentioning it to get people thinking about advent)
jnthn I have some slides on it somewhere too
masak PerlJam++
nine PerlJam: willing yes. But I don't think I'll have the time. Will spend the next three weeks trying to inflate my master's thesis by another 15 pages just to satisfy some arbitrary size criteria for acceptance :/
PerlJam nine: you don't have to write anything big or involved. You could just quickly illustrate Inline::Perl5 for instance. IT doesn't have to take loads of time. 17:08
jnthn ah, yeah, it's in jnthn.net/papers/2013-apw-lessons.pdf
Which is a talk I only gave once, but really deserves giving another time... 17:09
nine jnthn: that talk is one of the absolutely most useful talks I've ever seen 17:10
PerlJam: what would be the time frame? 17:11
PerlJam Is anyone working on a DBIC-like thing for P6 yet?
PerlJam nine: produce one (or more) articles at your convenience sometime between Dec 1 and Dec 24 (inclusive) :) You could write something up now if you wanted and publish it on one of those days. 17:12
nine: See github.com/perl6/mu/tree/master/mi...dvent-2014 for the schedule and some ideas for topics 17:13
jnthn +1 to an Inline::Perl5 one. Since a lot of advent readers are not close followers of what happens the rest of the year in Perl 6, it doesn't have to be anything advanced. Using the examples presented in the Inline::Perl5 talk would and some words around them would probably cut it. :)
tony-o PerlJam: which part? i wrote something on dbiish that is not at all like the dbix::class stuff 17:13
it's loose and good for prototyping but i wouldn't use it for a real productive system unless you're super lazy and don't care for your job 17:14
nine Ok, I'll see what I can do :) December should be a bit more quiet already.
PerlJam tony-o: any of it. I was curious if ORMish things have cropped up on anybody's radar yet 17:15
tony-o PerlJam: github.com/tony-o/perl6-db-orm-quicky
PerlJam nine: send me your email address and I'll get you an invite so you can contribute
moritz PerlJam: too late, I already invited nine++ 17:17
nine In Perl 6 we could finally have an ORM with LINQ like query syntax...
PerlJam moritz++
tony-o PerlJam: i think i have a pretty good/similar searching mechanism as DBIC
PerlJam tony-o: do *you* have an account for the advent calendar? :)
tony-o PerlJam: i don't
nine I seem to be doing something wrong. I was looking for a volunteer and somehow ended up volunteering myself.
tony-o nine: lol. 17:18
moritz tony-o: same game, /msg somebody (PerlJam or me) an email address, you'll get an invitation
tony-o i need to read what you asked nine to do real quick 17:20
moritz tony-o: write an article about someting Perl 6-related for the perl 6 advent calendar 17:21
FROGGS[mobile] GIVE US YOUR FIRST BORN REAL QUICK11!!
tony-o is it just going on a blog?
FROGGS[mobile]: lol
PerlJam tony-o: Look at github.com/perl6/mu/blob/master/mi...instorming for some ideas of what to write (if you have commit access to perl6/mu, feel free to add your own ideas too)
tony-o: look at perl6advent.wordpress.com/ to get an idea of past advent articles size and shape :) 17:22
colomon oh, 2014 Advent planning started? 17:23
PerlJam colomon: aye. 17:24
at least I'm starting to remind people about it. 17:25
colomon PerlJam++ 17:25
dalek rl6-bench: 57fa5f1 | (Geoffrey Broadwell)++ | microbenchmarks.pl:
Add output and expected subs to three more microbenchmarks
17:30
japhb timotimo: The above ^^ commit should help you with the infinilooping while_pushme benchmark. Please let me know if it does not. 17:31
tony-o PerlJam: was that what you were looking for or something more substantial? re: orm 17:41
PerlJam tony-o: that'll do, thanks. :) I was mostly just curious, but now you've given me a toy to play with ;) 17:43
tony-o PerlJam: i imagine there is some things you'll run into with querying that could be extended more 17:44
nine: do you have an example of a good implementation of LINQ?
ABAP ?
dalek kudo/nom: cb1b1c5 | (Elizabeth Mattijsen)++ | src/core/IO.pm:
Fix issues with MAKE-CLEAN-PARTS
17:59
dalek c: b8d0d4d | (Steve Mynott)++ | lib/Type/Date.pod:
truncated-to args as spec and code
18:03
vendethiel o/,#perl6 18:06
TimToady tweaking qsort in LTM won't make much difference, given compiling the setting gives a preponderance of 0 or 1 fates *total*, with occasional 2's, which might or might not be the same length (didn't measure that) 18:30
FROGGS k 18:31
so I leave it as it is
TimToady excessive numbers of fates does not seem to be a problem, at least for parsing Perl 6 18:31
I'm sure pathalogical cases could be generated
*patho
TimToady probably the 2's are different lengths, given the longer one is a keyword requiring a whitespace, and the shorter is <identifier> or so 18:33
might have better luck cutting down the size of the NFA table, which is just a flat array of int64s right now, with lots of wasted bits and probable cache misses 18:34
or taking the parallel nfa and doing state set caching DFA, like grep does 18:35
or maybe just cache the state set of the first characters, which probably cuts the first pass way down 18:36
since most keywords are disjunct in the first char
(you can tell I've been thinking about this some while getting over my "flu-like symptoms") 18:37
FROGGS yeah, and I have problems to follow :o) 18:39
cxreg is there any replacement for planeteria yet? 18:40
lizmat going interstellar for a bit& 18:40
TimToady pl6anet.org 18:41
cxreg TimToady++
Diederich lizmat: amazing, fantastic movie 18:44
though it won't be for everyone
masak jnthn++ # jnthn.net/papers/2013-apw-lessons.pdf 18:55
dalek ast: 5d89b28 | usev6++ | S19-command-line/dash-e.t:
Unfudge passing tests for Parrot on Mac OS X
19:20
rlito: aabebb0 | (Flavio S. Glock)++ | misc/typeglob/dumper.pl:
misc - dumper script tweak
19:22
nwc10 itz: You're aware that the top link on pl6anet.org/ is to p6weekly.wordpress.com/2014/11/10/2...ease-year/ which is a 404 ? 19:23
itz: something has got double URL encoded
nwc10 something seeming to be U+202F 19:29
ugexe the perl6-most-wanted module list seems outdated. if i were to go through it and remove items how should I treat WIP? For example: under algorithms Levenshtein is marked as WIP although it is complete, but other items like Config::INI i dont really know enough to determine completeness. 19:40
masak m: say chr(0x202F)
camelia rakudo-moar cb1b1c: OUTPUT« ␤»
masak ugexe: (a) even a partial update is better than no update at all. (b) feel free to ask here for specific statuses -- maybe someone knows. 19:41
also, ++ugexe
vendethiel masak, any reason you switched to prefix increment these days? 19:42
PerlJam vendethiel: prefix:<++> is appropriate for work that will be done in the future IMHO 19:43
:)
masak what PerlJam++ said.
vendethiel That's... an interesting view
PerlJam It's just a normal pun
masak as far as I know, that's a "standard" that evolved here on #perl6. 19:44
but my view is limited.
vendethiel Interestingly, I don't think I've seen it before
FROGGS hmmm, I've seen that before somewhere: 19:48
===SORRY!=== Error while compiling lib/Cache/Memcached.pm
Unsupported use of /i; in Perl 6 please use :i
at lib/Cache/Memcached.pm:479
------> $ip ~~ s:g [ \[ | \] ] = '' i⏏f $ip.defined;
m: my $foo = ""; $foo ~~ s:g [ \[ | \] ] = '' if $foo.defined
camelia rakudo-moar cb1b1c: OUTPUT«===SORRY!=== Error while compiling /tmp/3RGHPjSBid␤Unsupported use of /i; in Perl 6 please use :i␤at /tmp/3RGHPjSBid:1␤------> foo = ""; $foo ~~ s:g [ \[ | \] ] = '' i⏏f $foo.defined␤»
FROGGS std: my $foo = ""; $foo ~~ s:g [ \[ | \] ] = '' if $foo.defined 19:49
FROGGS hmpf 19:49
camelia std : OUTPUT«Can't chdir to '/home/camelia/std/snap': No such file or directory at lib/EvalbotExecuter.pm line 166.␤ EvalbotExecuter::_auto_execute(HASH(0x1c009c8), "my \$foo = \"\"; \$foo ~~ s:g [ \\[ | \\] ] = '' if \$foo.defined", GLOB(0x7e30ae0), "/tmp/H1ieJ8I0fq", "std") call…» 19:51
PerlJam FROGGS: maybe change old_rx_mods to look for a word boundary after the character class since it's comparing against single characters anyway. 19:53
(Is it a bug that we don't look for repeated modifiers?) 19:54
masak FROGGS: ooh -- can I rakubmit that one? 19:55
FROGGS masak: surely :o)
masak does
FROGGS ++masak :P
masak rt.perl.org/Ticket/Display.html?id=123168 19:58
FROGGS masak++ 19:59
masak :)
FROGGS hopefully I can close it in a bit 20:00
TimToady maybe check for <?terminator> there
FROGGS - <.old_rx_mods>? 20:01
+ [ <?{ $<sibble><infixish> }> || <.old_rx_mods>? ]
TimToady or rather, <!terminator>
m: s/foo/bar/ if 42;
camelia ( no output )
TimToady m: s/foo/bar/if 42;
camelia rakudo-moar cb1b1c: OUTPUT«===SORRY!=== Error while compiling /tmp/kOi4w6idgX␤Unsupported use of /i; in Perl 6 please use :i␤at /tmp/kOi4w6idgX:1␤------> s/foo/bar/i⏏f 42;␤»
FROGGS I hope we don't want to make that one work :o) 20:02
TimToady I guess the space is not eaten in that case
j4janicej hot damn i'm tired
FROGGS j4janicej: you're not at work hopefully? 20:03
PerlJam also, should we even check for old regex mods on the assignment form of s/// ? It's unlikely that a P5 person would make that mistake in that context IMHO
j4janicej FROGGS: egh, no
TimToady well, hopefully nobody wants to use postfix:<i> on s/// :
FROGGS j4janicej: well then, off to bed :P
TimToady :)
j4janicej TimToady: yo 20:04
dalek kudo/nom: cd6da9a | (Tobias Leich)++ | src/Perl6/Grammar.nqp:
fix parsing of s{}="" plus statement mod if

We should not check for old regex modifiers (/i) when we have the assignment form of a substitution. Fixes RT #123168.
20:08
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=123168
masak FROGGS++
dalek rlito: 24a46f3 | (Flavio S. Glock)++ | misc/typeglob/dumper.pl:
misc - dumper script tweak
ast: f5e132d | (Tobias Leich)++ | S05-substitution/subst.t:
RT #123168, test parsing of s{}="" if ....
20:14
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=123168
tony-o FROGGS: are you doing libxml? 20:21
FROGGS tony-o: yes 20:21
timotimo updated the weekly post a bit: added the link to moritz' article on server donations, changed the permalink (naughty me!) and something else i forgot about 20:25
FROGGS [Tux]: done: github.com/FROGGS/p6-Slang-Tuxic 20:30
[Tux]: though you will see that you have to add many (otherwise not needed) parenthesis to let it DWYM 20:31
[Tux]: like this is wrong: is (42.fmt: '-%d-'), '-42-', 'foo.bar: baz'; 20:32
[Tux]: so I have to do this, which is ugly: is( (42.fmt: '-%d-'), '-42-', 'foo.bar: baz');
masak feels just like Perl 5. 20:33
FROGGS yeah :S
colomon why does that need the extra parens?
FROGGS colomon: because that slangs allows whitespace after identifiers 20:34
FROGGS (in sub and method calls) 20:34
masak it works for method calls too now?
FROGGS yes
masak FROGGS++!
colomon oh! the first way is equivalent to is(42.fmt: '-%d-') … other stuff ? 20:35
dalek ecs: 36aa886 | usev6++ | S32-setting-library/Exception.pod:
[S32::Exception] Add X::Regex::SolitaryQuantifier
FROGGS I just had to copy&pase token methodop, add a \s* before <args>, and remove the :dba (because only nqp can handle it)
colomon: aye
colomon FROGGS: gotcha
FROGGS m: say "abcd" ~~ m/[abc]**{5}/ 20:44
camelia rakudo-moar cb1b1c: OUTPUT«False␤»
FROGGS m: say "abcabcabcabcabcd" ~~ m/[abc]**{5}/
camelia rakudo-moar cb1b1c: OUTPUT«「abcabcabcabcabc」␤␤»
FROGGS m: say "abcabcabcabcabcabcd" ~~ m/[abc]**{5}/
camelia rakudo-moar cb1b1c: OUTPUT«「abcabcabcabcabc」␤␤»
nine tony-o: I'd say it's done quite well in C# 20:46
tony-o nine: that syntax looks pretty doable in p6 already, is it DB agnostic? i'm not familiar with linq and haven't written anything in c# for 4 years 20:48
masak LINQ is db-agnostic, yes.
vendethiel you mean LINQ-to-sql is?
masak yes, I guess so. 20:49
dalek c: 05e18c9 | usev6++ | / (2 files):
Add exception X::Syntax::Regex::SolitaryQuantifier
tony-o nine: have you used ABAP's version of that? (is that considered LINQ?) 20:50
moritz I have a problem with htmlify.p6 in doc/perl6 20:55
it dies with "dot command failed! (did you install Graphviz?)"
it runs the command dot -Tsvg -ohtml/images/type-graph-Mu.svg /tmp/p6-doc-graphviz-2801
when I run that command myself, it works fine, with exit status zero 20:56
any idea why it might fail?
nine tony-o: no, never seen any ABAP
FROGGS moritz: dot is not in PATH when invoked the failing way? 20:57
moritz github.com/perl6/doc/blob/master/l...Viz.pm#L96 that's the line that fails
masak 'night, #perl6 20:58
FROGGS gnight masak
moritz FROGGS: it should, since it's in PATH when I invoke it form the same shell
FROGGS hmmm
moritz: does it load the precompiled version of Perl6/TypeGraph/Viz.pm? 21:01
moritz FROGGS: there is no precompiled version, afaict
FROGGS okay
moritz does the next obvious step and say()s the return value of run() 21:02
FROGGS maybe add this before the call to run: run "which", "dot" or die "huh" 21:02
;
moritz Proc::Status.new(exit => -1, pid => Any, signal => 244) 21:03
FROGGS maybe run it under shell() to get an error message printed 21:05
jdv79: you are still there?
moritz FROGGS: shell 'which dot' says /usr/bin/dot 21:13
FROGGS: but run 'which', 'dot' says ./usr/bin/dot
FROGGS moritz: it does not do that on my box 21:14
perl6-m -e 'run "which", "dot"'
/usr/bin/dot
moritz FROGGS: oh wait, maybe the dot comes from the progress report somewhere else 21:15
FROGGS the bug that pops up in Rakudo_cont_is_rw_scalar is nasty 21:28
itz nwc10: thanks .. I blame Daveorg's perlanet software :) I'll look into a p6weekly workaround 21:30
jdv79 FROGGS: what? 21:31
FROGGS jdv79: you wanted to talk about slangs
timotimo itz: i changed the permalink, the rss feed should have the new (and working) url 21:32
jdv79 i was looking for info on them, yes.
as someone that has a very basic knowledge of perl 6 and related i found the Tuxic code intriguing.
itz timotimo: ah yes thanks 21:33
jdv79 maybe a line by line explanation of how that file works in the context of someone that knows very little perl 6 would help more than just me...
FROGGS k 21:34
cognominal I don't understand the point of atkeyish in Tuxic? Why atkeyish($/, 'identifier') instead of $/<identifier> ?
jdv79 see:) 21:35
FROGGS cognominal: because $/ is an NQPMath
since Perl6::Grammar is written in nqp
jdv79: first you must know that grammars in perl6 (or nqp) are class like... they have methods (tokens, rules, and normal methods) and all other stuff 21:36
cognominal Ok. FROGGS++
FROGGS they can inherit from another grammar, and can also do roles
and like how we can mix in a role into an object of a certain class, we can do that with our grammar 21:37
so, the entire logic of Slang::Tuxic is in an EXPORT sub
cognominal I can't wait the day when Perl 6 will be written in Perl 6 instead of nqp
jdv79 i thought the point of nqp was that it was intentionally not full Perl 6 21:38
FROGGS and that is because when you use a module (like Slang::Tuxic), the Perl6 grammar will parse your use statement, and call the EXPORT sub from inside the Perl6 grammar
to retrieve the symbols that it would make available to your program 21:39
jdv79: that's correct
nqp is our toolchain to build the guts of compilers like rakudo
cognominal jv79, yes, it is necessary to boot full Perl 6 but it causse all sort of problems at the frontier, like the necessity of atkeyish in Tuxic 21:40
FROGGS back to my explanation... when the Perl6::Grammar calls the EXPORT sub, all its innards (like dynamic variables) are available inside the EXPORT sub 21:40
that might be by accident, but, who cares :O
err, :P 21:41
dalek c: ee0ea36 | moritz++ | lib/Type/Date.pod:
fix truncated-to signature
jdv79 FROGGS: where is EXPORT doc'ed? i did some grepping and didn't see it.
FROGGS good question 21:42
cognominal jdv79, in S11 and S12
timotimo FROGGS: what parts are missing until we can have multiple versions of the same module loaded properly? 21:43
jdv79 ah
thanks
FROGGS timotimo: this is already possible, you just need to put a CompUnitRepo::Local::Installation into your %*CUSTOM_LIB<site> 21:44
FROGGS jdv79: so, we can access the current grammar in our EXPORT sub, can mix into it (to replace/add methods), and that grammar will stay active after our EXPORT finishes 21:45
that's it
TuxCM FROGGS, mail sent. (and beauty is in the eye of the beholder) 21:47
jdv79 thanks. and what parts of slangs are you thinking about changing?
FROGGS TuxCM: *g*, true, very true :o)
TuxCM thinks «function( arg, arg );» is extremely ugly
FROGGS jdv79: ohh, no idea... I'll continue with v5, but I have no ideas what else could be interesting 21:48
jdv79 I was wondering what you meant by "I try to make it user friendly these days, but it is not yet the case" 21:50
timotimo FROGGS: could you please write a short example of having two versions of a module in use in the same process?
tony-o FROGGS: are you saying it's possible to load the perl6 grammar or am i lazy reading?
timotimo "you just have to" is not close enough to a working example for me :P 21:51
FROGGS jdv79: v5 is a totally different approach btw, it does not mix into the current language (Perl 6), but replaces it entirely for a given scope
tony-o: only in an EXPORT sub, but yes
jdv79: I want to provide a helper module (called Slangy) that let you write slangs more easily, without knowing any nqp 21:52
timotimo: gimme a sec or two
timotimo cool, thanks :)
tony-o FROGGS: how would i call that up to parse a file? 21:52
cognominal FROGGS, what is the purpose of the keyword slang if neither Tuxic nor V5 use it?
tony-o i know you're inundated with other questions but i don't have time for perl6::tidy because of that piece of the job :-) 21:53
FROGGS cognominal: the purpose will be to add sugar, helper methods and sane defaults
cognominal: but it is not there yet
cognominal ok, FROGGS++ 21:54
TuxCM ===SORRY!=== Error while compiling test-t.pl
Unsupported use of -> as postfix; in Perl 6 please use either . to call a method, or whitespace to delimit a pointy block
at test-t.pl:103
------> for (@ch.kv ->⏏ $i, Str $chunk) {
expecting any of:
FROGGS tony-o: you should be able to call .parse on it
TuxCM postfix
dotty method or postfix 21:55
tony-o FROGGS: how do i actually load the grammar?
FROGGS tony-o: it already is in %*LANG<MAIN> in your EXPORT sub
TuxCM: we can try to turn it around and not allow whitespace after a sub or method name, but to allow whitespace before an arglist... 21:56
TuxCM: but I'm not sure this will out
TuxCM => $HOME 21:57
HAVE FUN!
FROGGS TuxCM: looks like I need more tests... will add that one
TuxCM: please pull 22:00
tony-o FROGGS: i get an error if i try to use %*LANG<MAIN> in an exported sub .. 22:02
FROGGS tony-o: not an exported sub, an EXPORT sub
tony-o oh!
FROGGS like this: github.com/FROGGS/p6-Slang-Tuxic/b...uxic.pm#L1
dalek Heuristic branch merge: pushed 47 commits to panda/eleven by FROGGS 22:15
lizmat is back on Earth 22:21
dalek kudo/nom: 10543b3 | (Tobias Leich)++ | src/core/CompUnitRepo/Local/Installation.pm:
make filemtime more friendly for to-json
22:23
lizmat I just had the oddest error when running a spectest (which it completely aborted: 22:36
===( 27697;177 13/60 0/? 0/? 0/? 0/? 0/? 1/35 0/? )==========Can't use an undefined value as an ARRAY reference at /usr/local/lib/perl5/5.20.0/TAP/Parser/Multiplexer.pm line 138.
make: *** [m-spectest] Error 9
anybody seen anything like that before? leont? 22:37
FROGGS I've not seen that yet
lizmat I never seen it before either 22:44
*'ve
tadzik computer, messages 22:53
yoleaux 7 Nov 2014 18:04Z <azawawi> tadzik: it would be nice to have bin/script => bin/script.bat in win32 environment. This is one of the things that prevents the inclusion of farabi6 in Task::Star
tadzik hmm
japhb
.oO( "OK, IRC ..." )
23:05
timotimo hm. a github issue doesn't get reopened when i add a comment to it 23:17
vendethiel no, you have to reopen it manually 23:19
timotimo there was no button 23:24
FROGGS O.o
timotimo seems like only the project owners & contributors are allowed
FROGGS timotimo: the CompUnitRepo::Local::Installation seems to have bitrotted, I hope to get it into a good shape until tomorrow evening 23:50
japhb
.oO( But then after that, I'm going to let it fall apart again. )
23:55
FROGGS ohh, it seems to do... 23:58
timotimo that's good. thank you!