»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, std:, or /msg camelia p6: ... | irclog: irc.perl6.org | UTF-8 is our friend! | feather will shut down permanently on 2015-03-31
Set by jnthn on 28 February 2015.
LonelyGM good night #perl 6 :) 00:16
vendethiel g'night 00:20
dalek kudo-star-daily: fba1aaf | coke++ | log/ (2 files):
today (automated commit)
00:52
kudo-star-daily: 482f76b | coke++ | log/ (2 files):
today (automated commit)
rl6-roast-data: 2d21a10 | coke++ | / (9 files):
today (automated commit)
rl6-roast-data: 66d15a2 | coke++ | / (9 files):
today (automated commit)
nbdsp .moon 02:04
yoleaux New Moon (0.01)
dalek ecs: 9831c81 | skids++ | S03-operators.pod:
Remove an extra word.
02:16
cschwenz From yesterday: 19:28 raydiak looks like spec changes..."source-url" was the old place to declare it, now specs say it goes in "source" in a "support" subobject...but Cairo's meta has "source-url" inside "support", so not valid either the old or new way I guess 05:54
where is the referenced spec?
skids probably design.perl6.org/S22.html 06:01
cschwenz thanks :-) 06:04
doc.perl6.org/language/modules is in conflict with design.perl6.org/S22.html#DISTRIBUTION . who (or what process) updates doc.perl6.org/ ? 06:10
skids doc is in github pel6/doc repo. I don;t know if the update scripts are in there as well. Changes to the repo auto-update within 10 minutes or so. 06:11
cschwenz thanks! :-) 06:12
skids However, there is a dichotomy between modules.perl6.org and S22.
cschwenz ???
can you explain the dichotomy?
skids S22 is intended for CPAN, IIRC, and modules.perl6.org is "the ecosystem" which predates that. 06:13
isBEKaml I think he means thatThere are no start and end dates. You can join at any time and start learning. You can pick a learning path of your choosing and learn at your own pace. modules.perl6.org do not always keep up with spec changes in S22
grr
isBEKaml really should fix the touch pad
skids (predates not CPAN itself but S22)
cschwenz does panda track S22?
isBEKaml I think he means that modules.perl6.org do not always keep up with spec changes in S22
skids I seem to recall panda getting a few updates for S22 but likely not all the way, yet. 06:15
cschwenz hmm
skids There's a lot of work needed in this area. 06:16
cschwenz so, when creating a module for deployment… there are three moving targets to take into consideration? (S22, de facto, and panda)
skids Well, the latter two are mostly the same. 06:19
For now you'll want a META.info in the current ecosystem format and then a META6.json in the S22 format.
cschwenz is there a versioned copy of S22?
skids Not sure they are stamping versions on the desgn docs quite yet. 06:20
cschwenz :-(
skids If you look at Sum (one of my modules) it has both files, if you need examples.
cschwenz okay, will do 06:21
skids The design docs are github perl6/specs.
lizmat good *, #perl6 from the last day of the QA Hackathon on Berlin 07:03
*in rather :-)
nwc10 good *, lizmat 07:04
please pass on my good *s to everyone else.
I hope tinita is still feeling sane.
cschwenz good *, lizmat :-) 07:07
lizmat nwc10: tinita_ is still asleep, I think... :-) 07:08
or having a quiet breakfast somewhere :0) 07:09
cschwenz when creating classes, both JSON::Tiny and Sum:: have their classes start with "class X::…", why is the X there? i would have thought the main class name would have been the same as either the module or file name. 07:12
s/main/primary/
FROGGS lizmat / tadzik / bartolin_: I'm going to stay at home.... does not make much sense to spend 2+ hours in buses to be at the betahaus for not more than 3 hours
lizmat :-( but understandable :-( 07:13
FROGGS :/ 07:13
nwc10 were the busses busses yesterday too? (or trains?) 07:14
lizmat they were busses all the time, I understand
although FROGGS only lives 1km outside of Berlin, it's still an hour's ride from his place to the Betahaus 07:15
(Berlin is not small)
FROGGS would take more time on sunday, but I dont know how much 07:16
nwc10 I thought that only London was London. If you see what I mean. 07:17
I didn't realise that Berlin was just as epic 07:18
cschwenz <soapbox> if we want truly liveable mega-cities, then we will need a shift in thinking about how we construct cities. (current modes of building cities max out around 1 million people) </soapbox> 07:20
FROGGS if there were no railworks it would take about 30 minutes to the center on business days, and about 45 to the betahaus
nwc10 aha, so I was sort of guessing right about rail works? 07:25
FROGGS probably... I did not get the reference about london :o) 07:26
Timbus cschwenz, generally classes that begin with X:: are exception classes 07:30
nwc10 FROGGS: it takes ages to get anywhere, unless it happens to align exactly with key transport routes 07:33
well, from anywhere arbirary to anywhere arbitrary else
bartolin_ g'morning, #perl6 07:34
FROGGS :o)
morning bartolin_
bartolin_ o/ FROGGS
FROGGS okay I learned something: the name of the SC one deserializes must be the same as the one that gets serialized 07:37
cschwenz1 Timbus: what do you mean by exception classes? 07:39
FROGGS m: say X::AdHoc
camelia rakudo-moar 1edd51: OUTPUT«(X::AdHoc)␤»
FROGGS cschwenz: this ^^
an exception type
cschwenz1 FROGGS: can you point me to some tutorials/docs/whatever where i can read more about them? 07:40
lizmat doc.perl6.org/type.html perhaps ? 07:41
FROGGS cschwenz: www.youtube.com/watch?v=rymhMkCUtuA
cschwenz: moritz.faui2k3.org/files/talks/2013...xceptions/ 07:42
cschwenz1 thanks! :-) 07:42
dalek ast: 2be443b | usev6++ | S03-sequence/basic.t:
Add tests for containers returned from seq iterator
07:56
labster m: Str.Str.codes; say "alive"; 07:59
camelia rakudo-moar 1edd51: OUTPUT«use of uninitialized value of type Str in string context in block <unit> at /tmp/o2s4ZeqSSF:1␤␤alive␤»
labster m: m: Str.codes; say "alive"; 07:59
camelia rakudo-moar 1edd51: OUTPUT«Invocant requires a 'Str' instance, but a type object was passed. Did you forget a .new?␤ in method codes at src/gen/m-CORE.setting:8603␤ in block <unit> at /tmp/isVWcUVTb8:1␤␤»
labster looks like something is missing a multi candidate. 08:01
lizmat well.... 08:02
Mu.Str returns ''
labster also it's kinda hilarious that it suggests fixing CORE.setting
Because that's what I'm doing. 08:04
lizmat labster: removing D: from Str.pm lines 61,62,63 ?
labster: cause that fixes it for me 08:05
labster Well, Str.codes should return 0 with a warning 08:06
lizmat $ 6 'Str.Str.codes'
Invocant requires a 'Str' instance, but a type object was passed. Did you forget a .new?
should it?
labster .chars does, it's the same idea. 08:07
yoleaux ' , . a d e h i m o s t
labster .botsnack
yoleaux :D
synbot6 om nom nom
labster m: Str.chars.say 08:09
camelia rakudo-moar 1edd51: OUTPUT«use of uninitialized value of type Str in string context in block <unit> at /tmp/O8fB1CG30j:1␤␤0␤»
labster Is str $!value in class Str equivalent to the result of nqp::unbox_s()? 08:11
lizmat yeah, was just looking at that, but yeas 08:12
*yes
according to BOOTSTRAP.nqp anyway
labster Because I think there are a lot of methods in Cool.pm that can be made faster by removing the unboxing op in Str.pm. 08:13
lizmat Str.HOW.add_attribute(Str, BOOTSTRAPATTR.new(:name<$!value>, :type(str), :box_target(1), :package(Str)));
labster Yeah, I saw that line, just didn't know how to interpret it :) 08:14
lizmat has str $!value is box_target # in Perl 6 code 08:14
labster Yeah, it's the "is box_target" part I'm less clear on. I don't really know NQP, but I think I'm learning. 08:15
lizmat afaik, box_target is what is used to encapsulate self 08:16
so nqp::unbox_s(self) is the same as $!value
(someone please correct me if I'm wrong) 08:17
FROGGS: making CURLI even more lazy by doing the from_json (or whatever we're using) inside candidates() once? 08:18
instead of in BUILD ?
labster Well, for now, the opinion of lizmat++ is good enough for me. I'm going to try moving some methods from Cool.pm to Str.pm and see if I can find some speed improvements. 08:22
tadzik FROGGS: ah, okay :( 08:29
FROGGS lizmat: yes, that might make sense 08:33
unless the common case is to use a module
lizmat yes, but probably not from all CUR's at once 08:34
FROGGS lizmat: true 08:35
lizmat FROGGS: especially if you're developing a module, it will most likely live in a CURLF anyway
lizmat and not get to the CURLI 08:35
FROGGS yes, on the other hand you probably load the modules from the biggest CURLI 08:36
(non-dev stuff)
lizmat will, I think the extra check would be dwarved by the CPU used for the search 08:36
so the gain of not having to do it when *not* needed, could be significant in many use situations 08:37
one could even go so far as to create a separate CURLI for e.g. the whole of CPAN / ecosystem
lizmat and a smaller CURLI with the ones you need regularly :-) 08:38
bartolin_ FROGGS: wrt the freebsd failure with closing a pipe: do you think the following would be sane: github.com/usev6/MoarVM/commit/a3c1c21987 08:38
FROGGS: (it passes spectests on freebsd and linux for me) 08:39
dalek kudo/nom: 788834d | lizmat++ | t/harness:
Don't show Inline::Perl5 message for specific test
08:51
FROGGS bartolin_: I dunno
nwc10: can you judge? github.com/usev6/MoarVM/commit/a3c1c21987
masak good antenoon, #perl6 08:57
moritz \o masak 08:58
travis-ci Rakudo build passed. Elizabeth Mattijsen 'Don't show Inline::Perl5 message for specific test' 08:58
travis-ci.org/rakudo/rakudo/builds/59101185 github.com/rakudo/rakudo/compare/1...8834d4606a
FROGGS hi masak 08:58
moritz m: say unival [1] 09:00
camelia rakudo-moar 1edd51: OUTPUT«Cannot call unival(Array); none of these signatures match:␤ (Str $str)␤ (Int $code)␤ in block <unit> at /tmp/dSCSbOzJT0:1␤␤»
moritz m: say univals [1]
camelia rakudo-moar 1edd51: OUTPUT«Cannot call univals(Array); none of these signatures match:␤ (Str $str)␤ in block <unit> at /tmp/wAeMoJMQvY:1␤␤»
moritz m: say unival "12foo" 09:01
camelia rakudo-moar 1edd51: OUTPUT«1␤»
moritz m: say [1].unival
camelia rakudo-moar 1edd51: OUTPUT«Cannot call unival(Int); none of these signatures match:␤ (Str $str)␤ (Int $code)␤ in method unival at src/gen/m-CORE.setting:4755␤ in block <unit> at /tmp/JO3PQphJ2d:1␤␤»
moritz it's a bit weird to have method unival in Cool, but not coerce
I mean, what's the point? 09:02
m: say '¾a'.univals 09:04
camelia rakudo-moar 1edd51: OUTPUT«0.75 NaN␤»
moritz m: say '¾'.univals.^name 09:05
camelia rakudo-moar 1edd51: OUTPUT«List␤»
moritz m: say '5'.ord.unival 09:06
camelia rakudo-moar 1edd51: OUTPUT«5␤»
dalek c: a87aab2 | moritz++ | lib/Type/ (2 files):
unival, univals
09:09
c: b6d9fb1 | moritz++ | WANTED:
update WANTED
nwc10 FROGGS: I think that that commit is reasonable. I'm a bit surprised that the waitpid() call is blocking (I thought we were deep down trying to be a non-blocking event loop) 09:25
FROGGS: according to the docs, the only time you get a return value of EINTR is if it was interrupted by a signal
so I think it it's safe to loop on it 09:26
FROGGS k 09:28
FROGGS we have to block for a spawned process to get its exit status... and I dont know other way to do that 09:28
lizmat I assume "use nqp" should have the same scope semantics as "use fatal", right ?
FROGGS probably, yes 09:29
lizmat as in: only allow in the scope that has nqp:: calls, but not in inner scopes ?
FROGGS only lexical inner scopes, but not scopes you call into 09:30
so this should be valid I think: use nqp; sub foo { nqp::whatever(); for ^2 { nqp::alsothat() } } 09:31
so 'use nqp' needs to set a lexical/local variable, and we need to check for that when calling nqp ops somehow 09:34
tadzik hmm, in Perl 6 grammars, where do you put :Perl5/:P5 to make it work?
FROGGS but I think it is easy to get wrong / unperformant
m: grammar G { rule TOP { :P5 \N{EURO SIGN} } }; say G.parse('€') 09:36
camelia rakudo-moar 788834: OUTPUT«5===SORRY!5=== Error while compiling /tmp/7lh2_Z5EvA␤Unrecognized regex modifier :P␤at /tmp/7lh2_Z5EvA:1␤------> 3grammar G { rule TOP { :P7⏏055 \N{EURO SIGN} } }; say G.parse('€')␤»
FROGGS tadzik: this is meant to work I think
RabidGravy with NativeCall if one has a C prototype like "void syslog(int priority, const char *format, ...);" how does one present the additional arguments? 09:42
FROGGS RabidGravy: varargs? these are not yet implemented :o( 09:43
RabidGravy: I imagine they will just end up as a slurpy positional 09:44
RabidGravy right, fake it up time then ;-)
FROGGS yeah :/ 09:49
tadzik FROGGS: or, maybe even a better question: is there any working code in the wild that generates grammars?
like, does add_method('TOP', m{arysnraysn}) 09:50
maybe that'd Just Work
dalek kudo/nom: 227cc6f | lizmat++ | src/Perl6/Grammar.nqp:
Centralize use/no token handling
09:52
lizmat tadzik: jnthn.net/papers/2013-yapcna-gramma...nerate.pdf 09:54
FROGGS lizmat: that talk was about generating text from datastructures using grammars 09:58
tadzik: IIRC someone tried and failed to add tokens/rules 09:59
lizmat ok, I guess I was just looking at "generating" and "grammars" :-)
FROGGS :o)
tadzik FROGGS: right. You can add methods, but you'd need to know what is the perl 6 method code equivalent to 'token Foo {blablabla}' 10:00
FROGGS aye 10:02
which is not trivial at all
so we probably want a .^add_rule and .^add_token
or so
vendethiel o/, #perl6 10:03
FROGGS hi vendethiel
tadzik /usr/bin/ld: /home/tadzik/.plenv/versions/5.20.0/lib/perl5/5.20.0/x86_64-linux/CORE/libperl.a(op.o): relocation R_X86_64_32S against `PL_sv_yes' can not be used when making a shared object; recompile with -fPIC 10:05
/home/tadzik/.plenv/versions/5.20.0/lib/perl5/5.20.0/x86_64-linux/CORE/libperl.a: error adding symbols: Bad value
nine: ^
nine tadzik: recompile with -fPIC?
yoleaux 18 Apr 2015 19:07Z <nbdsp> nine: thanks, for advise about CArray[int8]!
tadzik recompile what :)
it worked before
FROGGS: huh. It just works :o 10:09
r: gist.github.com/tadzik/626b00a9c7e26228979e
camelia rakudo-moar 788834: OUTPUT«「yaaaaaaay」␤»
..rakudo-jvm 788834: OUTPUT«cannot connect to eval server: Connection refused␤»
tadzik FROGGS: ^ 10:10
FROGGS O.o 10:11
nine Inline::Perl5 builds just fine here
FROGGS ahh of course
nine ==> Successfully installed Inline::Perl5
tadzik huh 10:12
FROGGS the regex gives you the right code object
nice
[TuxCM] rebuilds 5.20.2 without debugging ...
tadzik FROGGS: now this is a problem: 10:14
r: "yayayayaaay" ~~ regex :Perl5 { [ya]+y }
camelia rakudo-jvm 788834: OUTPUT«cannot connect to eval server: Connection refused␤»
..rakudo-moar 788834: OUTPUT«===SORRY!===␤Cannot invoke this object (REPR: P6opaque, cs = 0)␤»
tadzik so Perl 5 regexes are not invokable
but are they interpolatable in Perl 6 regexes? :D
FROGGS m: say "yayayayaaay" ~~ m:P5 { [ya]+y } 10:18
camelia rakudo-moar 788834: OUTPUT«False␤»
FROGGS m: say "yayayayaaay" ~~ regex { :P5 [ya]+y } 10:19
camelia rakudo-moar 788834: OUTPUT«5===SORRY!5=== Error while compiling /tmp/gMhZED_2vC␤Unrecognized regex modifier :P␤at /tmp/gMhZED_2vC:1␤------> 3say "yayayayaaay" ~~ regex { :P7⏏055 [ya]+y }␤»
tadzik m: say "yayayayaaay" ~~ m:P5 {[ya]+y}
camelia rakudo-moar 788834: OUTPUT«「yayayayaaay」␤»
tadzik :o
FROGGS m is a quoting construct, regex is a declarator
tadzik yes
but I tried anyway :P Method 'match' not found for invocant of class 'Any'
FROGGS making the :P5 regex modifier work should not be that hard btw... it is just I'm still working on the serialization stuff 10:20
ab5tract FROGGS: regarding serialization -- are you using any existing libraries for that? 10:21
FROGGS ab5tract: no, just nqp ops 10:22
ab5tract FROGGS: okay. I was going to point to Sereal as a good existing option that has some nice features for supporting dynamic languages 10:25
github.com/Sereal/Sereal
for binary serialization, specifically. which I guess may not be what you are currently hacking on? 10:26
I am pretty sure that it is meant to be explicitly Artistic licensed, but I will ask after that 10:29
dalek kudo/nom: 43db2d5 | lizmat++ | / (4 files):
Make use/no nqp a pragma
10:30
FROGGS ab5tract: it is about serializing Perl 6 datastructures, which is exactly what we do when we precompile modules... so I do just the same 10:32
masak .oO( it is about ethics in game journalism ) 10:33
tadzik masak, stahp 10:34
masak blames his pattern-matching abilities
leont nine: found it 10:36
dalek pan style="color: #395be5">perl6-examples: c4c99b9 | paultcochrane++ | lib/Pod/Htmlify.pm6:
Extract repeated metadata collection code into its own routine
10:53
pan style="color: #395be5">perl6-examples: 3dfe034 | paultcochrane++ | lib/Pod/ (2 files):
Revert commit 974e959

This had removed the wrong pod-insertion code.
pan style="color: #395be5">perl6-examples: f650e84 | paultcochrane++ | lib/Pod/Htmlify.pm6:
Stop adding source code when no pod in source

  ... and this time do it in the right place!
leont paste? 10:54
dalek kudo/nom: 9861648 | lizmat++ | src/Perl6/Actions.nqp:
Sample code handling nqp::ops without 'use nqp'
10:58
lizmat so what *are* we going to do if something has nqp::foo without use nqp ???
options: die, warn, deprecated type message ? 10:59
dalek ast: 4729c24 | usev6++ | S32-exceptions/misc.t:
Don't test for error message "will never work"
11:01
eli-se delete offending code 11:10
vendethiel damn
lizmat eli-se: that would be close to rm -rf ecosystem
eli-se works pretty well in practice; see github.com/munificent/vigil
vendethiel aug 2014 is "2 years ago" for github? what? 11:12
lizmat
.oO( brought to you from the future :-)
DrForr "15 minutes into the future" 11:14
RabidGravy has anyone indicated that they are thinking about making a logging framework?
timotimo has considered making a lagging framework 11:15
dalek pan style="color: #395be5">perl6-examples: dc21a89 | paultcochrane++ | categories/interpreters/ (3 files):
Document 'interpreters' category examples
pan style="color: #395be5">perl6-examples: 7ab417d | paultcochrane++ | categories/interpreters/calc.p6:
Wrap main code in MAIN sub
eli-se here's my logging framework: IO, map and grep. 11:16
RabidGravy :-O 11:17
eli-se here's how you filter by level: messages.grep(*.level != DEBUG)
dalek ecs: b41dada | lizmat++ | S (5 files):
s/MONKEY_TYPING/MONKEY-TYPING/
lizmat DrForr: 15 minutes is enough, as long as you can recurse :-) 11:18
eli-se all that is useful that a logging library can still offer is a log record struct and a logging DSL 11:19
DrForr that's a Promise.
eli-se and perhaps a formatting thing. supplies are sufficient for everything else
DrForr Must...resist...UHF joke. 11:20
timotimo don't change the channel 11:21
don't touch that dial!
we have it all on UHF! 11:22
eli-se but none of that filter and handler stuff that are crappy substitutes for callables and supplies
DrForr Kick off your sneakers, stay around for awhile
ab5tract FROGGS_: okay, I wasn't sure if the work was going into Storable territory or not 11:31
FROGGS_ ab5tract: if it is good enough for an internal thing it might be also good enough as a general purpose module... 11:32
FROGGS_ ab5tract: the good thing about the used nqp ops is that we also can serialize routines that way 11:33
nbdsp Greetings! Could someone advise please how to correctly update Rakudo from Git? When I do 'git pull', 'make', 'make install' I get then an error "Missing or wrong version of dependency 'src/gen/m-CORE.setting' " when using some module or when installing some module with "panda install ...". Clean new install of Rakudo solves the problem, but how to correctly update from git? 11:36
RabidGravy make distclean? at a guess
masak nbdsp: after 'git pull', you'll want something like 'perl Configure.pl --gen-moar --gen-nqp --backends=moar'
lizmat git pull/make/make install usually works for me
masak nbdsp: that should fix it.
lizmat also, if you have strange errors: rm -rf install 11:37
masak nbdsp: very occasionally, it doesn't. than I... what lizmat said.
nbdsp thanks! will try. 11:37
dalek pan style="color: #395be5">perl6-examples: fbb5baa | (Steve Mynott)++ | / (2 files):
fix ?? precedence
11:38
pan style="color: #395be5">perl6-examples: caf2efe | (Steve Mynott)++ | / (5 files):
Merge branch 'master' of github.com:perl6/perl6-examples
lizmat .tell jnthn I want to eradicate 'use' from the settings (we discussed this before, a long time ago)
yoleaux lizmat: I'll pass your message to jnthn.
lizmat .tell jnthn use Perl6::BOOTSTRAP would then become something like 'bootstrap-from-nqp Perl6::BOOTSTRAP' 11:39
yoleaux lizmat: I'll pass your message to jnthn.
lizmat .tell jnthn that would allow us to handle "use" / "require" / "need" etc completely from Perl6 11:40
yoleaux lizmat: I'll pass your message to jnthn.
lizmat .tell jnthn with associated flexibility and compile time pluggability
yoleaux lizmat: I'll pass your message to jnthn.
masak ++lizmat # sounds worthy
lizmat .tell jnthn allowing something like: "use Inline::Python; use FooLib<from:python>" 11:41
yoleaux lizmat: I'll pass your message to jnthn.
lizmat spend the better part of the past 24 hours finding 3.5 codepaths that load modules 11:42
there should really be only 2: one for bootstrapping, one for all the others
FROGGS_ but use Inline::Python; use FooLib:from<python> already works, no?
masak .oO( watch the new episode of Three And A Half Codepaths ) 11:43
boarding a train & 11:44
FROGGS_ but yeah, having another codepath for nqp-ish module loading and one for P6ish sounds sane 11:45
timotimo look at the wiktionary article on "apocalypse", example sentence of meaning 1 is about perl6 ... 12:05
tadzik :D
indeed 12:06
itz is there anything outside of vim which colourises perl6? 12:18
tadzik github :)
RabidGravy print it out, use crayons ;-)
dalek pan style="color: #395be5">perl6-examples: 7c69243 | (Steve Mynott)++ | htmlify.pl:
add cookbook chapter nos and sockets reference
12:20
itz thinks RabidGravy colourises his code with spilt beer 12:21
[ptc] itz: pygments does, but you want that in an editor I'm assuming... 12:22
itz I was thinking for perl6-examples 12:24
[ptc] my plan was to use the pygments code which docs.perl6.org uses 12:25
itz ah cool
moritz Text::VimColor is also an option
itz ptc: I was wondering about a quick hack to remove the # vim: line as well 12:25
[ptc] itz: have a look at how htmlify.p6 in perl6/doc does it, if you're looking for inspiration :-) 12:26
itz will do 12:27
[ptc] itz: quick hack currently being implemented 12:28
dalek kudo/nom: bc7b4fa | lizmat++ | src/Perl6/ModuleLoader.nqp:
Some more debugging info
12:31
kudo/nom: ecfb15c | lizmat++ | src/core/CompUnitRepo.pm:
Don't specify "load" if there is none
spider-mario I have used pygments’ perl6 lexer to colorize Turtle “code” 12:36
it works quite well 12:37
it recognizes @prefix and <…>
spider-mario hm, interestingly, it doesn’t seem to work that well on github 12:39
moritz github has stopped using pygments, iirc 12:41
[ptc] we need to convince github to implement perl6 highlighting somehow. Dunno how though :-/ 12:48
dalek pan style="color: #395be5">perl6-examples: dbcf8ec | (Steve Mynott)++ | categories/cookbook/ (13 files):
flesh out pod more
12:53
tadzik gists do have Perl6 hilighting 12:54
moritz [ptc]: by opening an issue? 12:57
dalek pan style="color: #395be5">perl6-examples: 5b3e591 | paultcochrane++ | lib/Pod/Convenience.pm6:
Remove vim coda from source code in html
13:04
pan style="color: #395be5">perl6-examples: 257224f | paultcochrane++ | categories/cookbook/ (13 files):
Merge branch 'master' of github.com:perl6/perl6-examples
dalek ast: aa419eb | usev6++ | S02-literals/pairs.t:
Use throws_like with EVAL

  (tests are still not specific but don't rely
on being caught at runtime)
13:08
andreoss m: my @s := False, False, True ... *; @s[1000]=False; say @s[1000] 13:20
camelia rakudo-moar ecfb15: OUTPUT«Cannot assign to a readonly variable or a value␤ in method ASSIGN-POS at src/gen/m-CORE.setting:2233␤ in sub postcircumfix:<[ ]> at src/gen/m-CORE.setting:3459␤ in block <unit> at /tmp/6PdscrqrYO:1␤␤»
andreoss m: my @s := False, False, True ... *; say @s.perl; 13:22
camelia rakudo-moar ecfb15: OUTPUT«(ListIter.new,)␤»
andreoss what's wrong here? 13:23
m: my @s = lazy False, False, True ... *; @s[1000]=False; say @s[1000] 13:25
camelia rakudo-moar ecfb15: OUTPUT«False␤»
dalek kudo/nom: 1659550 | lizmat++ | lib/Test.pm:
throws_like Str will EVAL in the scope of caller
13:31
lizmat m: my @a := False,True; say @a; @a[1] = False 13:40
camelia rakudo-moar ecfb15: OUTPUT«False True␤Cannot modify an immutable Bool␤ in method ASSIGN-POS at src/gen/m-CORE.setting:9320␤ in sub postcircumfix:<[ ]> at src/gen/m-CORE.setting:3459␤ in block <unit> at /tmp/NvSi5VLpFf:1␤␤»
dalek ast: cdf3ea4 | usev6++ | S32-exceptions/misc.t:
Fix two tests now EVAL'd in scope of caller
lizmat andreoss: ^^ perhaps the same thing ?
andreoss: I mean my code, not the commit message
dalek ast: b0b8187 | usev6++ | S02-literals/pairs.t:
Use "throws_like '$code'"
13:49
tadzik jnthn: are you around, perchance? 13:53
dalek ast: 2f3f43e | usev6++ | S02- (2 files):
Change to EVAL'd form of throws_like
14:12
DrForr tadzik: Panda question for ye - I'm getting the (rakudo) error 'Usupported serialization format version 12' (without the tyop) when attempting to run 'panda install Debugger::UI::CommandLine'. I've pulled panda from the git repo 10 minutes ago, and rakudobrew'd the latest maybe an hour ago. I assume I need to blow away a directory somewhere and rebuild? 14:13
tadzik DrForr: ow. Yeah, nothing else comes to my mind 14:14
dalek kudo/nom: ee40c0e | lizmat++ | src/ (2 files):
Eradicate 'use' from CORE settings

First step to sanitizing the 3.5 code paths to loading a compilation unit.
DrForr Fair enough.
tadzik rakudobrew nuke moar && rakudobrew build moar && rakudobrew switch moar && rakudobrew build panda && panda install Debugger::UI::CommandLine
this *should* be foulproof
er 14:15
foolproof, yeah :)
DrForr Obviously I have to self-upgrade first :)
tadzik oh yes :) 14:16
jnthn tadzik: Yes, for a little bit :)
yoleaux 11:38Z <lizmat> jnthn: I want to eradicate 'use' from the settings (we discussed this before, a long time ago)
11:39Z <lizmat> jnthn: use Perl6::BOOTSTRAP would then become something like 'bootstrap-from-nqp Perl6::BOOTSTRAP'
11:40Z <lizmat> jnthn: that would allow us to handle "use" / "require" / "need" etc completely from Perl6
11:40Z <lizmat> jnthn: with associated flexibility and compile time pluggability
11:41Z <lizmat> jnthn: allowing something like: "use Inline::Python; use FooLib<from:python>"
tadzik jnthn: gist.github.com/tadzik/7e7fcb0dfaf9be7dd9d9 funny riddle for you :)
tl;dr: a "token {}" object can only be passed once, otherwise it gets broken in transport 14:17
lizmat jnthn: after consultation with masak and FROGGS_, I just went for it
jnthn lizmat: We're not putting in anything magical like a "bootstrap-from-nqp", if nothing else we are going to just check that --setting=NULL was passed and assume we should call the approprite things on $*W to do it. 14:18
No point adding special syntax when we can just wedge it in somewhere around -M handling.
So that makes it simpler, even.
lizmat so no setting should assume loading Perl6::BOOTSTRAP ? 14:19
I can do that :-)
jnthn lizmat: Note tha it's not "no setting" which defaults to CORE, but rather an explicit --setting=NULL 14:20
lizmat: But we hang more things off that peg already.
lizmat found it
jnthn lizmat: See the line "unless %*COMPILING<%?OPTIONS><setting> eq 'NULL' {" for example :) 14:21
ok :)
lizmat yeah that one :-)
jnthn Except that's an unless and you're doin an if :) 14:22
Note that use is still going to have to go through $*W
Since it needs to do some code-gen
But it can from there call Perl 6 code.
tadzik: Can you try nqp::decont($<bottom>.ast[0]) ? 14:23
tadzik jnthn: ...that works 14:24
so, putting it in anything containerizes it
and I don't want that, right?
it worked! 14:25
THIS CHANGES EVERYTHING
jnthn tadzik: Yeah, I may well fix add_method :) 14:26
So you needn't do that hack.
tadzik jnthn: we were just thinking with sjn that add_method could perhaps say "WTF this is containerized (╯°□°)╯︵ ┻━┻" 14:27
(or any metamodel method) 14:28
jnthn yeah, building a fix now
Could you do a roast test for it?
lizmat: About nqp::op I think they need to give deprecation warning if used without nqp::op 14:31
Sorry
if used without *use nqp* :)
lizmat ok
jnthn lizmat: Last I checked, though, I noticed that nothing in Perl6::Grammar used deprecations
lizmat what is the way to get at the line number at that point ? 14:31
jnthn lizmat: And then wondered if that is because nobody figured how to do the plumbing.
lizmat I think the plumbing can be handled :-) 14:32
skids tadzik: JFYI, I install rakudo in a different path, and this has caused no end of rakudobrew/panda problems. Seems a different problem every week these days :-)
tadzik skids: :o
skids tries tadzik's foolproof recipe, with an instal path, and some extra deleting to start. 14:34
dalek kudo/nom: c94393f | lizmat++ | src/ (2 files):
Hardwire the bootstrap, jnthn++
14:35
jnthn lizmat: Search for HLL::Compiler.lineof in src/Perl6/World.pm
lizmat jnthn: okidoki
jnthn lizmat: Or even better example, SET_FILE_LINE 14:36
That has file and line number retrieval
dalek ast: 03018ed | usev6++ | S14-roles/mixin.t:
Unskip passing test for rakudo.jvm (RT #119371)
14:38
synbot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=119371
lizmat I only need the line number initiall 14:41
y
dalek kudo/nom: 9890d88 | jnthn++ | src/Perl6/Metamodel/M (2 files):
Missing nqp::decont on method additions.

Fixed meta-programming bug reported by tadzik++.
14:43
tadzik sjn: 14:44
sjn++ is onto the roast test :)
jnthn++ Thanks!
you know what I have, you know what I have?
lizmat .... ? 14:45
tadzik A SURPRISE \o/
jnthn Aww, I was hoping for cake!
DrForr THE CAKE IS A LIE.</obRef> 14:46
tadzik jnthn: I wrote a module that generates Perl 6 Grammars from BNF grammars 14:47
jnthn tadzik: Much wow!
tadzik++
tadzik \o/
DrForr tadzik: Quelle coincidence, I'm debugging an ANTLR4 grammar parser for much the same reason :)
tadzik :)
jnthn: have you seen the Qt profiler too? 14:48
tadzik (on the note of advertising my products) 14:48
jnthn tadzik: I didn't have chance to look closely yet, but saw a screenie :) 14:49
Looks cool :)
tadzik \o/
tadzik doesn't do half of what your does, but it needs less than a second to load a 20MB file 14:49
tadzik timotimo also said that an angular upgrade may help a lot with the webui too 14:50
skids tadzik: now just adapt it for ASN.1 (You do not actually want to try this, ASN is pathological :-)
DrForr I've been segfaulting the grammar engine the last few days ;) 14:50
jnthn ASN = A Sordid Notation? :) 14:51
skids Abstract Syntax Notation
lolisa Does it has anything todo with AST?
tadzik 2 things
(☞゚ヮ゚)☞ 14:52
jnthn DrForr: Is that RT #124333?
synbot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=124333
jnthn DrForr: If so, does "SEGV the compiler" mean that it actually crashes while compiling?
skids lolisa: No, it is self-modifying BNF where they forgot to put in semicolons to help the parser. 14:52
tadzik jnthn: oh, I also found a way to segfault the compiler :)
jnthn tadzik: Did you put yours in RT? :P
DrForr Segfaults while running the tests. It's a helluva waterbed as well. 14:53
lolisa Don't get it... You mean index "+" := plus kinds of stuff? Any link?
geekosaur the right way to do ASN.1 is to use someone else's library
tadzik jnthn: not yet :)
dalek ast: 39edd9f | usev6++ | S02-names-vars/names.t:
Use typed exeption (1 test); use EVAL'd form of throws_like (4 tests)
jnthn DrForr: OK, I'll try and reproduce it tomorrow when I'll have lots of time when I can concentrate well and don't have distractions :)
DrForr jnthn: Yes, RT #124333
synbot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=124333
skids geekosaur: nobody's library does ASN "right" either.
geekosaur yes, but it becomes someone else's problem :) 14:54
DrForr I'm pretty sure it's to do with either the UnicodeLetter declaration, or a left-recursive declaration on 'in'. 14:54
geekosaur lolisa: ASN.1 is an attempt at supporting typed binary data streams. the spec is pathological and implementations are painful
lolisa Thx. Find it on wiki 14:55
skids lolisa: www.itu.int/ITU-T/studygroups/com1...0-0207.pdf # base ASN.1 spec. It will fry your brain.
lolisa: sites.google.com/site/ramaswamyr/a...sing-asn-1 # a good article on why ASN.1 is ugly 14:56
lolisa Thx... I just though it is some theoretical stuff... Sorry but I am not very interested in it :) 14:57
DrForr jnthn: I'll also warn you the code is very fragile. It's got nothing to do with tests that pass or don't pass, all I have to do is comment out one test and the problem goes away. Or comment out a grammar rule. 14:58
jnthn DrForr: Well, if it's GC related, or memory corruption related, I have means to provoke it. :) 14:59
DrForr valgrind++ # I'm guessing :)
dalek ast: d100d7c | usev6++ | S02-names-vars/names.t:
Revert use of typed exception (39edd9fa0a)

X::Method::NotFound looks wrong, actually
15:00
DrForr I'd guess GC or related, but I don't have the tools/skillset to tackle the problem here. Yet.
Also, while I was working on perl6-readline, I noticed that GNU libreadline exports variables as well as functions. Is there a binding yet in NativeCall for that? 15:03
jnthn I think so 15:04
I think FROGGS++ implemented that a while ago
dalek osystem: d2279e8 | tadzik++ | META.list:
Add Grammar::BNF
tadzik \o/
jnthn \o/
DrForr Okay, I'll look. I didn't see that mentioned in docs, but I figured it was just there but silent.
DrForr (though there's a crashing bug in that module too.) 15:05
skids Could someone pull PR #405 into rakudo please? 15:06
Oh dear it has picked up a merge conflict since.
skids wonders how to see such a conflict in github UI. 15:08
tadzik jnthn: btw, that localized $/ in the gist; we shotgun-coded it in so it works, but should it really be necessary?
jnthn DrForr: Well, due to the nature of NativeCall there's plenty of ways to get SEGVs by mis-using the module that we can't do anything about, since there's no introspection API to see if you're calling the C code right :) 15:09
DrForr Oh, that was a separate issue.
jnthn tadzik: Yes
tadzik: Your alternative solutions are to "$/ is copy" in the signature, or just not call the thing you bind in the signature $/ 15:10
(But then you can't say $<...>
)
tadzik right
jnthn I think you have the first case of needing to deal with that issue I've seen where I can't say "bah, you're doing 2 pass parsing, you deserve the pain" :P 15:11
FROGGS_ DrForr: there is a sub called cglobal
DrForr I don't mind SEGVing because I did something stupid, this was that I couldn't invoke a binding because the compiler didn't consider typed arrays correctly.
jnthn Ah
Maybe NativeCall ain't using 6pe right yet :)
DrForr cglobal, gotcha.
dalek ast: 78f18c3 | (Salve J. Nilsen)++ | S12-meta/grammarhow.t:
Test if one can pass containerized values to GrammarHOW.^add_method
tadzik sjn++
tadzik where does dalek get nicknames from these days? 15:12
FROGGS_ rakudo/CREDITS 15:14
DrForr Hrm, my name seems to have gotten skipped (from Parrot days, I was release manager after Simon.) 15:18
timotimo o/ 15:22
jnthn: i finally figured out why my mast_localref stuff was the b0rk
FROGGS_ m: use NativeCall; say &cglobal.signature 15:23
camelia rakudo-moar 9890d8: OUTPUT«(Any $libname, Any $symbol, Any $target-type)␤»
FROGGS_ introspection++
hi timotimo
timotimo turns out i locally overrided $res_kind so i ended up with NQPMu (probably) in the $res_kind at the end of compile_var, which the rest of the compiler interpreted to mean "generate a new register that's nulled and use that henceforth"
DrForr Aha, thanks.
timotimo jnthn: i'm not exactly sure what a variable that's decl'd to be a localref would ... do ... ? 15:25
except if it's a parameter; in that case it can make sense to me
timotimo i suppose i should build the same tests for lexicalref/lexical that i've built for localref/local 15:30
jnthn timotimo: Same as if it's decl'd as a lexicalref
timotimo: It's an obj type register and you may bind to it
lizmat jnthn others: how would I do: @*NQP_VIOLATIONS[$line].push($op)
in nqp (Grammar) ?
timotimo jnthn: OK, so i'd op<bind> something that'd decl'd local but referenced in localref scope into the localref'd thing? 15:31
jnthn timotimo: If you access it as a localref you get the thing in the register
timotimo: If you access it as a local then you get it decont'd. 15:32
timotimo and if i access it as a local, i get the value
jnthn decont_[ins]
*nod*
timotimo OK, that makes a lot of sense
jnthn lexical and lexicalref behave the same way
timotimo good, i think i can make tests for that
jnthn We need them to be very close semantically since we lower lexicals to locals.
timotimo right 15:32
and maybe even build the pieces of the optimizer that do the lowering later today
jnthn lizmat: I'd...not do it like that as the array will end up sparse? 15:33
jnthn lizmat: I'd probably keep a %*NQP_VIOLATIONS 15:33
lizmat even keyed to line number ?
I mean, how many lines do we expect in a compunit ?
jnthn No, I'd key it on the op
%*NQP_VIOLATIONS{$op} 15:34
*or
*or*
lizmat that doesn't make sense from a deprecation message point of view, I would think
jnthn Why? Don't you want to know what you did, and where you did it?
dalek pan style="color: #395be5">perl6-examples: 7704d1a | (Steve Mynott)++ | categories/interpreters/RPN.pl:
remove duplicate line
jnthn And grouped by where?
uh, grouped by *what*
jnthn Anyway, easiest way is to just keep an array of violations if you don't need any grouping 15:35
moritz nqp:: is easy enough to grep for
group by file name?
jnthn @*NQP_VIOLATIONS.push([$op, $line])
lizmat but the fix is not changing each call, the fix is adding an "use nqp" as the simplest solution
lizmat to the applicable scope 15:35
jnthn lizmat: Fair enough, then just keep one violation or a list of violations.
jnthn lizmat: There's no auto-viv in NQP 15:36
lizmat this is different from the other deprecation messages where you would need to change actual calls
I know
but somehow I lack the foo to vivify manually
my @lines := nqp::getlexdyn('@*NQP_VIOLATIONS'); # is this valid ? 15:37
jnthn it's odd
my @lines := @*NQP_VIOLATIONS; is the same.
skids tadzik: gist.github.com/skids/86b2cd3bf4412efa44ac 15:38
jnthn @*NQP_VIOLATIONS[$line] := @*NQP_VIOLATIONS[$line] // []; @*NQP_VIOLATIONS[$line].push($thingy); 15:38
Is probably the shortest you can do.
lizmat @*NQP_VIOLATIONS is defined as part of the compunit initialization, under Extra
jnthn Uh
without pre-fetching it as a temp
If you do my @lines := @*NQP_VIOLATIONS; first then it's just (@lines[$line] := @lines[$line] // []).push($thingy) 15:39
tadzik skids: the thingy with panda on jvm is known
I spent 3 hours trying to minimize the testcase and it drove me nuts 15:40
skids tadzik: Last night I edited it to just "when Exception" and got through it, but the switchback to moar was still broken after that.
lizmat jnthn++ :-) 15:41
jnthn lizmat: But I'd still do hash instead. :)
uh, do *a* hash...
.oO( Freud strikes again! )
ugexe skids: i always do a manual rehash or i get similar problems seemingly randomly
jnthn lizmat: They're gonna be strings in the deprecation message anyway :) 15:42
lizmat jnthn: that's true, but I sort of expect many nqp::ops *if* they are being used anyway
jnthn True. :) 15:43
lizmat or not at all
jnthn Anyway, no point discussing it overly much, since this is code that we will kill pre-Christmas anyway :)
lizmat indeed :-)
skids ugexe: what is this "manual rehash" you speak of? :-)
masak wow, fancy this Christmas being *the* Christmas! 15:44
ugexe rakudobrew rehash
jnthn :)
masak even I, the Grinch, is slightly enthused by it.
jnthn I'll likely be gone-ish for the rest of the evening, but will be hacking on NFG and RTs all day tomorrow. :)
masak m: say Date.new # when is the Big Day? 15:44
camelia rakudo-moar 9890d8: OUTPUT«2015-12-24␤»
masak jnthn: o/
jnthn o/ 15:45
timotimo jnthn: i have a quick gist for you
jnthn timotimo: ok, be quick!
skids ugexe: no joy. But thanks.
timotimo gist.github.com/timo/40ccf1f09f3b94f47f2d
is that totally wrong?
sjn tadzik: stackoverflow.com/questions/9475642...ta-grammar
timotimo there's a decont in the spesh log that i wouldn't expect there
jnthn timotimo: yeah, what the heck 15:47
decont r2(2), r1(1) const_s r3(1), lits(hooray) assign_s r2(2), r3(1)
That's never gonna work, surely 15:48
timotimo yes, very much not so
but the qast is right in principle?
jnthn That decont should not be there
Yes the QAST looks right
timotimo good
that's all i need to know
jnthn the bytecode we get looks busted
timotimo now i can go hunting :)
jnthn OK
timotimo have a nice evening!
jnthn gone :)
timotimo o/
jnthn you too! o/
ugexe skids: if thats the solution, it would need to be done after you switch and before you build panda 15:49
because it looks like you are using a panda built for the opposite VM 15:50
although that could be due to not properly respecting the --prefix stuff as well
sjn tadzik: www.hcs64.com/files/pd1-3-schorre.pdf 15:52
ugexe try invoking panda directly instead of using the rakudobrew shim
dalek pan style="color: #395be5">perl6-examples: 4916405 | (Steve Mynott)++ | / (2 files):
start web automation section
timotimo ah, that was easy to find 15:54
zu früh gefreut! 15:55
[Coke] still -1 from me on Date.new being christmas, btw. ew. 15:57
lolisa zu fr􏿽xFCh gefreut!? What's that? 16:00
timotimo premature celebration, so to speak 16:01
dalek pan style="color: #395be5">perl6-examples: 3ff0590 | (Steve Mynott)++ | categories/cookbook/09directories/09- (4 files):
4 more directory examples
16:03
leont New trick, 􏿽xABHARNESS_PERL=perl6 prove t/perl6.t􏿽xBB 16:05
itz "by Christmas we always meant the Julian Calendar" :) 16:06
[Coke] I just did a fresh build of rakudo-moar and tried to run make spectest, and get:
perl t/harness --fudge --moar --keep-exit-code --tests-from-file=t/spectest.data
Unhandled exception: Unsupported serialization format version 15 (current version is 12) at <unknown>:1 (blib/Perl6/Pod.moarvm:<dependencies+deserialize>:239)
tadzik what is this madness ┻━┻ ︵ヽ(`Д´)ノ︵ ┻━┻ 16:07
lizmat [Coke]: fwiw, there was some chatter about ser format versions on MoarVM earlier todat 16:09
*today
lizmat jnthn: I'm not sure how to skip the non-initialized elements, nqp::isnull() doesn't seem to cut it ? 16:13
my $ops := @*NQP_VIOLATIONS[$line];
next if nqp::isnull($ops);
skids Hrm, MD.pm6 in Sum just spins and slowly eats ram when compiling mbc now. That will be "fun" to try to find the cause of. But for now, going to try to sleep off rest of this cold. 16:17
lizmat skids++ and get better!
itz things like gethostbyname don't exist anymore do they? I assume they can be loaded via nativecall? 16:23
timotimo anything that's C can be nativecalled - except i think var args are missing 16:26
itz oh gethostbyname does exist 16:31
ermmm gethostname 16:32
Ven should the "gotcha about <foo> + vs <foo>+" be added to faq.perl6.org? (I'm looking for it atm) 16:35
flussence whatever happened to the C++ nativecall thing? 16:36
Ven seems like Grammar::Debugger won't step through proto regexes? 16:39
DrForr timotimo: Ah, I was going to go digging for varargs as well, after the cglobal thing they're the last thing I need for a complete binding to readline. 16:40
Ven what's going on
timotimo cool
Ven the debugger sees " <expr> + %% ',' " and bails out. just plainly bails out. I don't get to see it try the options 16:41
(and trying to make that rule "regex" to backtrack doesn't help at all)
Ven Grammar::Debugger seems to be too unreliable? I change the rule call, that's one of the options of expr (expr:sym<call>) make the debugger unable to step through <expr>. 16:46
flussence there's a long-term problem with it having side effects, something to do with LTM 16:47
DrForr I'm working with a grammar myself and haven't been able to use ::Debugger on it. Not just you. 16:48
colomon I usually use Grammar::Tracer, but that doesn’t work well for complicated parses. 16:49
DrForr The last time I tried that I couldn't get anything out of a failed parse. 16:50
nine waves from Vienna
Is there a way to hoik into serialization/deserialization of my module? 16:51
flussence oh... I wrote a test for that bug and forgot all about it - github.com/flussence/p6-misc/blob/...feb2015.p6
[Coke] yup, tried again with a fresh copy of rakudo - getting the error about serialization format consistently.
tadzik wow, fast trains 16:52
[Coke] ah... bug in t/harness. 16:55
dalek kudo/nom: d4a9878 | Coke++ | t/harness:
Use the correct perl6 to check for Inline::Perl5
16:57
timotimo tadzik: you're going back home? 17:00
tadzik timotimo: no, but I noticed nine having arrived already 17:01
nine Coke: thanks for fixing my bug
tadzik I'll be back home monday late evening
nine tadzik: took a plane to Vienna, now a train to Linz
tadzik ah
that explains it 17:02
[Coke] nine: no worries, glad I was able to figure it out
nwc10 nine: direct train!
nine: are you at the airport currently? 17:03
[TuxCM] [Coke], is that nom patch for jvm? 17:05
nine nwc10: just entered the bus to Westbahnhif
nwc10: no direct trains at this time, but next year we'll finally have good connections
[Coke] [TuxCM]: the thing I just patched was so that "make spectest" uses the same perl6 that it uses to run the tests to see if Inline::Perl5 was installed. previously it used first in path. 17:06
nwc10 waves in at the airport
(from here, can't see much more than the top of the control tower) 17:07
nine :)
lolisa dont get what is going on
dalek kudo/nom: 7075007 | lizmat++ | src/Perl6/ (2 files):
List nqp::op violations after a compunit compiled

It turned out to be pretty bad to use the standard DEPRECATED mechanism for this. So instead of that, it's not writing the message to STDERR after the compunit has been compiled.
17:08
nine nwc10: do you have a quick idea on how to detect if we're compiling the main script in P5's pp_ctl.c? I'd like to make my use v6; support a little safer 17:10
I already improved its error handling on the way to the airport 17:11
nwc10 offhand, no.
nine Ok, will dig around a bit
I don't think I'll make much progress on Inline::Perl5's precompilation support. That will probably require more infrastructure in Rakudo. 17:13
dalek kudo/nom: 5d707b6 | lizmat++ | src/Perl6/Grammar.nqp:
Fix typo
17:15
lizmat nine: seems like you have to patch: 17:19
Compilation unit 'lib/Inline/Perl5.pm6' contained the following violations:
Line 765:
nqp::getcurhllsym
:-)
nine lizmat: oh, a use nqp should fix that, shouldn't it? 17:24
FROGGS_ nine: that's correct
lizmat yes, that's the idea ?
nine Will be fixen once I'm on the train :) 17:25
typing on phone sucks...
Ven wonders how he should parse a postfix if... <expr> 'if' <expr> will be recursive :( 17:29
lizmat jnthn: would it make sense to expose nqp %*PRAGMAS hash as %?PRAGMAS like $?LINE ? 17:33
geekosaur perl itself handles postfix if as a statement modifier instead of an expression 17:34
eli-se vendethiel: don't do that 17:35
instead, design your grammar so that either operand is an expression with a higher precedence than postfix if expressions 17:36
vendethiel eli-se: yeah, yeah.
geekosaur thinks expression-if should have both then and else (compare ?? !!), if-then is a statement
eli-se then it's just <higher-precedence-than-if-expr> followed by zero or more ('if' <expr>) 17:37
geekosaur (of which postfix if is a subcase)
eli-se just make if a function that takes a Boolean and two functions. 17:39
lizmat afk for kuchen kaiser& 17:42
dalek line-Perl5: 3e23d8c | (Stefan Seifert)++ | lib/Inline/Perl5.pm6:
Explicitly use nqp; for nqp::getcurhllsym

Thanks to lizmat++ for pointing this out
lichtkind hai lizmat 17:59
nine ribasushi: was module-authors the mailing list mentioned in today's discussion?
nine lizmat: that's odd. With current rakudo and your lazy @*INC patch, make test passes. Panda is still broken. File::Find tests successfully but Shell::Command fails with write string requires an object with REPR MVMOSHandle 18:19
.tell lizmat that's odd. With current rakudo and your lazy @*INC patch, make test passes. Panda is still broken. File::Find tests successfully but Shell::Command fails with write string requires an object with REPR MVMOSHandle 18:21
yoleaux nine: I'll pass your message to lizmat.
eli-se .botsnack 18:37
yoleaux :D
nine .tell lizmat seems like commit 43db2d5bbe75be4cb842d43991248c29b4a1897a is responsible for the progress. Maybe because use nqp; no longer invokes any ModuleLoader? 18:38
yoleaux nine: I'll pass your message to lizmat.
nine .tell lizmat Shell::Command's tests fail with a precompiled Shell::Command, but not with the source version 18:56
yoleaux nine: I'll pass your message to lizmat.
FROGGS .tell jnthn after successfully bootstrapping panda I try to install a dist, and then it explodes when serializing a null object: gist.github.com/FROGGS/c6d637b32e4665ec3882 19:33
yoleaux FROGGS: I'll pass your message to jnthn.
FROGGS .tell jnthn I believe this object is a string, the absolute path to the panda script that is currently running (aka $*EXECUTABLE)... is there something I need to take care of? 19:35
yoleaux FROGGS: I'll pass your message to jnthn.
nbdsp Greetings! I wonder, does someone else have the same problem with 'use DBI:from<Perl5>;'? The followong two lines take several minutes to execute with a query result consisting of one row with one text field (several KB of text): my $arrayref = $sth.fetchall_arrayref; say $q[0].decode('utf8'); Profile stat is here: pastebin.com/wMwAsJLv 19:38
dalek kudo/jsoff: 52b1be7 | FROGGS++ | src/core/CompUnitRepo/Local/Installation.pm:
use nqp::(de)serialize instead of json to improve performance
19:39
FROGGS .tell jnthn I pushed to rakudo/jsoff in case you are curious
yoleaux FROGGS: I'll pass your message to jnthn.
nbdsp my $arrayref = $sth.fetchall_arrayref; for @$arrayref -> $q { say $q[0].decode('utf8'); }
FROGGS nbdsp: cant you upload the html file? 19:42
nbdsp FROGGS: will upload 19:46
dalek q: 24f3a7c | lizmat++ | answers.md:
Mention Larry's announcement
19:54
nbdsp Err, pastebin has the limit 512 KB and the file report is about 1 MB. Is there another place for uploading? 19:55
Oh, I'jj upload to git
lizmat gist.github.com is used often around here, don't have any ideas about its limits though
yoleaux 18:21Z <nine> lizmat: that's odd. With current rakudo and your lazy @*INC patch, make test passes. Panda is still broken. File::Find tests successfully but Shell::Command fails with write string requires an object with REPR MVMOSHandle
18:38Z <nine> lizmat: seems like commit 43db2d5bbe75be4cb842d43991248c29b4a1897a is responsible for the progress. Maybe because use nqp; no longer invokes any ModuleLoader?
18:56Z <nine> lizmat: Shell::Command's tests fail with a precompiled Shell::Command, but not with the source version
lizmat use nqp not needing ModuleLoader is probably the reason, yes... 19:56
skids m: Array.new(0,1,2,3,4), { "OHAI $_".say; Array.new($_[1,2,3,0]); } ... { $_.perl.say; $_.WHAT.say; $_[0] == 3 } # What broke Sum::MD 19:58
camelia rakudo-moar 5d707b: OUTPUT«0␤(Int)␤1␤(Int)␤2␤(Int)␤3␤(Int)␤»
skids m: [ 0,1,2,3,4 ], { "OHAI $_".say; [ $_[1,2,3,4,0] ]; } ... { $_.perl.say; $_.WHAT.say; $_[0] == 3 } # works but... 20:00
camelia rakudo-moar 5d707b: OUTPUT«[0, 1, 2, 3, 4]␤(Array)␤OHAI 0 1 2 3 4␤0␤(Int)␤OHAI 1 2 3 4 0␤1␤(Int)␤OHAI 2 3 4 0 1␤2␤(Int)␤OHAI 3 4 0 1 2␤3␤(Int)␤»
skids m: [ 0,1,2,3,4 ], { "OHAI $_".say; Array.new($_[1,2,3,4,0]); } ... { $_.perl.say; $_.WHAT.say; $_[0] == 3 } 20:01
camelia rakudo-moar 5d707b: OUTPUT«[0, 1, 2, 3, 4]␤(Array)␤OHAI 0 1 2 3 4␤0␤(Int)␤OHAI 0␤0␤(Int)␤Unhandled exception: Index out of range. Is: 1, should be in 0..0␤ at <unknown>:1 (/home/camelia/rakudo-inst-2/share/perl6/runtime/CORE.setting.moarvm:throw:4294967295)␤ f…»
lizmat skids: I probably did that 20:02
looking at the issue now
skids Not sure what the proper flattenning behavior is, but weird in any case that the "say" in the first one does nothing. 20:03
lizmat star: [ 0,1,2,3,4 ], { "OHAI $_".say; Array.new($_[1,2,3,4,0]); } ... { $_.perl.say; $_.WHAT.say; $_[0] == 3 } 20:05
star-m: [ 0,1,2,3,4 ], { "OHAI $_".say; Array.new($_[1,2,3,4,0]); } ... { $_.perl.say; $_.WHAT.say; $_[0] == 3 }
m-star: [ 0,1,2,3,4 ], { "OHAI $_".say; Array.new($_[1,2,3,4,0]); } ... { $_.perl.say; $_.WHAT.say; $_[0] == 3 } 20:06
lizmat what was it again? 20:06
camelia star-m 2015.03: OUTPUT«(timeout)[0, 1, 2, 3, 4]␤(Array)␤OHAI 0 1 2 3 4␤0␤(Int)␤OHAI 0␤0␤(Int)␤OHAI 0␤0␤(Int)␤OHAI 0␤0␤(Int)␤OHAI 0␤0␤(Int)␤OHAI 0␤0␤(Int)␤OHAI 0␤0␤(Int)␤OHAI 0␤0␤(Int)␤OHAI 0␤0␤(Int)␤OHAI 0␤0␤(Int)␤OHAI …»
nbdsp The file report is here: github.com/nbdsp/profile-report/bl...ofile.html
lizmat m: my $a = 1; $a[0] = 3 # skids, isn't this really the problem? 20:08
camelia rakudo-moar 5d707b: OUTPUT«Cannot modify an immutable Int␤ in method ASSIGN-POS at src/gen/m-CORE.setting:2231␤ in sub postcircumfix:<[ ]> at src/gen/m-CORE.setting:3457␤ in block <unit> at /tmp/vjzKls6AHe:1␤␤»
skids lizmat: No, nothing get modified, other then the being-built array-of-arrays. 20:09
FROGGS nbdsp: 99.4% spend in unpack_return_values at lib/Inline/Perl5.pm6:425
skids m: array[uint32].new(0,1,2,3,4).item, { "OHAI $_".say; array[uint32].new($_[1,2,3,4,0]).item; } ... { $_.perl.say; $_.WHAT.say; $_[0] == 3 } # This works OK for my purposes and is probably more correct. 20:14
camelia rakudo-moar 5d707b: OUTPUT«array[uint32].new(0, 1, 2, 3, 4)␤(array[uint32])␤OHAI 0 1 2 3 4␤0␤(Int)␤OHAI 1 2 3 4 0␤1␤(Int)␤OHAI 2 3 4 0 1␤2␤(Int)␤OHAI 3 4 0 1 2␤3␤(Int)␤»
nbdsp FROGGS: Is it normal for this function to take so long?
lizmat some benchmarks: 20:23
m: my int $max = 1000000; loop (my int $i = 0; $i < $max; $i = $i + 1) { }; say now - INIT now # fastest
camelia rakudo-moar 5d707b: OUTPUT«0.006822␤»
lizmat m: my Int $max = 1000000; loop (my Int $i = 0; $i < $max; $i = $i + 1) { }; say now - INIT now # both Ints instead of natives, slower 20:24
camelia rakudo-moar 5d707b: OUTPUT«0.49885572␤»
lizmat m: my Int $max = 1000000; loop (my int $i = 0; $i < $max; $i = $i + 1) { }; say now - INIT now # mixed int and Int, slowest
camelia rakudo-moar 5d707b: OUTPUT«0.7657925␤»
lizmat skids: ^^^ there are several cases like that in Inline::Perl5 # nine :-) 20:25
nine I guess it's so slpw because I have to copy blobs byte by byte from CArray[int8] 20:32
Proper buf support for NativeCall will improve this a lot 20:33
nbdsp: if you can try passing decoded strings from P5 to P6. Should be much, much faster 20:34
nbdsp nine: how to do this? 20:35
nine nbdsp: tell your dbd to decode text fields. Recent DBD::Pg will do this automatically. DBD::mysql has some mysql_enable_utf8 flag. Others will probably too 20:40
nbdsp Thanks!
nine nbdsp: please report your results :) 20:41
nbdsp Yes. 20:42
nine Really time to sleep now. Good night #perl6 :)
skids Oh, I guess my last example didn't "work fine". 20:48
lizmat night, nine! 20:52
nbdsp When I do as follows, the time doesn't seem to improve: my $dbh = DBI.connect( "DBI:mysql:database=testDB; mysql_enable_utf8=1; host=localhost; port=3306;", "user", "password" ); The size of text field if the query is about 75 Kb. Maybe the utf8 flag needs to be set in some other place? 20:56
*in the query
DrForr Incidentally, github.com/drforr/perl6-ANTLR4.git # ANTLR4 grammar for perl6 - Still a few kinks to work out, but it can handle the sample CSV grammar from ANTLR4. 21:02
dalek kudo-star-daily: 7ebf7bd | coke++ | log/ (2 files):
today (automated commit)
21:05
RabidGravy in NativeCall is there a possibility that "const char *" is not doing something right when given a Str?
seems to come up with random garbage 21:06
skids m: my $i = 0; my @a = [0,1,2,3], { [$_[1,2,3,0]] } ... { $i++ == 4 }; @a.perl.say # note the last one is not itemized, another layer to the issue. 21:08
camelia rakudo-moar 5d707b: OUTPUT«[[0, 1, 2, 3], [1, 2, 3, 0], [2, 3, 0, 1], [3, 0, 1, 2], 0, 1, 2, 3]<>␤»
skids (or maybe the same layer from a different view) 21:09
Hah. I got bit by ?"0" == True :-). Bad me. 21:16
lizmat shutting down& 21:21
[Coke] t/spec/S17-procasync/kill.t is passing, but slow. Any reason not to add it to spectest.data ? 21:39
RabidGravy is sprintf implemented in such a way as it can be subverted^Wleveraged^Waugmented to provide domain specific formats? 21:47
dalek kudo/nom: c14bc41 | Coke++ | tools/update-passing-test-data.pl:
This isn't a Perl 6 test, don't try to run it.
21:49
kudo/nom: 4c1ae0d | Coke++ | t/spectest.data:
Run these passing tests

  ...some of which were recently fudged
ast: efb1904 | Coke++ | S32-str/length.t:
Fudge for rakudo

Also make sure .length dies with appropriate exception type
andreoss how can i have several :nth in subst? 21:51
andreoss m: "11123".subst("1", "0", :nths(1 3)); 21:51
camelia rakudo-moar 5d707b: OUTPUT«5===SORRY!5=== Error while compiling /tmp/7pjfpgp5S9␤Two terms in a row␤at /tmp/7pjfpgp5S9:1␤------> 3"11123".subst("1", "0", :nths(17⏏5 3));␤ expecting any of:␤ infix␤ infix stopper␤ statement end␤ …»
raydiak m: say "11123".subst("1", "0", :nth(1, 3)) # or :nth<1 3> if you prefer to skip the comma 22:04
camelia rakudo-moar 5d707b: OUTPUT«01023␤»
lizmat [Coke]: re irclog.perlgeek.de/perl6/2015-04-19#i_10468028 (t/spec/S17-procasync/kill.t) 23:02
I would recommend against it as the tests that *really* matter, are TODO's because we cannot actually send signals yet 23:03
[Coke] lizmat++ thanks. 23:19
japhb Is Proc::Async now running correctly on r-j? 23:36
Or still just r-m?
lizmat japhb: I have no idea 23:38
japhb Fair enough. :-) 23:40
How was the hackathon? (I know it occurred, but I have no idea what awesomeness transpired ....) 23:41
dalek kudo/nom: 4ba4aab | lizmat++ | src/Perl6/Grammar.nqp:
Handle all pragmas with -M (not just "strict")
23:43
lizmat well, if you look at the past 4 days git log
I would think a lot has happened on the P6 end :-) 23:44
there was a lot of discussion at the QA hackathon
mostly about P5 / CPAN
I'm pretty sure we will here more about that in the near future from the people involved 23:45
also: PAUSE has been migrated from Apache/mod_perl to Plack
and 5.24 (next year) will most likely allow you to transparently execute Perl 6 code if Inline::Perl6 is installed 23:46
5.22 is already in code freeze, so we were too late for that
act.qa-hackathon.org/qa2015/wiki?node=Results for a list of achievements 23:47
timotimo lizmat: oooh you improved autogenerated accessors? 23:52
lizmat One of the most exciting things I saw was tadzik developing a BNF to Perl 6 grammars converter
timotimo how?
:D
lizmat they have D: on them, and they don't show up in backtraces 23:52
m: class A { has $.a }; A.a 23:53
camelia rakudo-moar 4c1ae0: OUTPUT«Invocant requires a 'A' instance, but a type object was passed. Did you forget a .new?␤ in block <unit> at /tmp/NXg_R_vxCG:1␤␤»
timotimo ah
the next step for autogenerated accessors will be to actually generate code for them rather than just having closures that close over the attribute name 23:54
that ought to make accesses a bit cheaper
timotimo but custom code will be bigger in ram than just a closure clone :\ 23:54
lizmat I guess we could do that for autogenerated accessors in the core settings 23:55
or have a pragma like "use more memorry"
that would autogenerate them in a different way ? 23:56
so with 5.24 you should be able to say: "perl -Mv6 -e '.say for ^10' 23:58
iff Inline::Perl6 is installed
lizmat is tired and goes to sleep& 23:59