Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2013-11-16

Perl 6 | Reference Documentation | Rakudo

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:00 FROGGS that is the module database, right?
00:01 FROGGS I just used json for now (because there is a module, and I can manipulate the database easily)
00:02 lue anyone else get "error: ‘ASSERT_ARGS_COMPARE’ undeclared (first use in this function)" compiling nqp-p?
00:02 FROGGS lue: no, I compiled nqp right now without problems
00:03 FROGGS nqp-p --version
00:03 FROGGS This is nqp version 2013.10-241-gfd308ad built on parrot 5.9.0 revision RELEASE_5_9_0
00:03 lue :/ at the end I get "cc1: some warnings being treated as errors", so perhaps therein lies the problem?
00:03 lue FROGGS: I'm at commit fd308ada ...
00:04 FROGGS that's the same
00:04 lue that's weird then.
00:04 lue FROGGS: yeah, I was confused by the initial 'g' :)
00:04 FROGGS nqp/parrot/src/utils.c:70:#define ASSERT_ARGS_COMPARE __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
00:05 FROGGS lue: that does not belong the the version hash
00:05 FROGGS the 'g' is always there :o)
00:05 lizmat FROGGS: the point is that *a* CompUnitRepo module should implement its database, if any., in such a way that it can get .candidates from it
00:05 FROGGS lizmat: yes
00:05 FROGGS I remember :o)
00:05 lizmat problem I had with JSON is that it loses type information
00:06 FROGGS lue: is your parrot too old perhaps? can you grep for that #define?
00:06 FROGGS lizmat: what do you mean? I only need strings, no?
00:06 lizmat is Any a string ?
00:07 FROGGS what should be Any?
00:07 FROGGS I think that release a module involves putting information into it... and IMO auth and ver are not optional
00:08 lue FROGGS: I just pulled and compiled the latest parrot to make sure.
00:08 lizmat FROGGS: that's also a way to do it  :-)
00:08 lue FROGGS: but auth and ver are optional.
00:08 FROGGS lizmat: btw, json support null
00:09 FROGGS lue: I don't think it can stay that way...
00:09 FROGGS at least not for the version
00:10 lizmat it's just that I can foresee that :auth at least could become something else than just a string
00:10 lizmat something that stringifies, yes
00:10 FROGGS well, it could be a structure in json, no doubt
00:10 lue FROGGS: I'm not sure how I'd feel about auth and/or ver being mandatory. I suspect the likes of TimToady and jnthn would have better opinions/reasonings.
00:10 lizmat but please, don't let me stop you!
00:11 FROGGS *g*
00:11 FROGGS btw, I am not designing the final product... I just wanna make something that works
00:12 FROGGS if there will be demands to change the structure of something, or its behaviour, we can make a new version or release another moduleloader
00:12 FROGGS since you can pick the module loaders you want
00:12 FROGGS (like a panda auto-installer)
00:13 Psyche^_ joined #perl6
00:17 lizmat indeed
00:17 lizmat or an installer from github or something akin CloudPan, that would allow execution on the fly (without installing)
00:18 lizmat ah, the possibilities
00:18 lizmat I'm gonna dream about them now
00:18 lizmat gnight, #perl6!
00:18 FROGGS gnight liz!
00:25 kurahaupo joined #perl6
00:26 kurahaupo_ joined #perl6
00:26 btyler joined #perl6
00:36 k-ray Perl 6 shininess: http://cyberuniverses.com/pray/
00:44 tadzik amazing!
00:44 tadzik k-ray: is that your creation?
00:44 k-ray tadzik: it is
00:45 tadzik k-ray++
00:45 k-ray thanks :) it only took about 9 or 10 hours to render on my $5/mo VPS
00:47 tadzik I look forward to seeing the code :)
00:47 tadzik experience tells me that people will find ways to make perl 6 faster by profiling it
00:48 k-ray I suspect there's a lot of room for improvement in my code, once I have a less-foggy idea of what I'm doing
00:50 k-ray is it normal for rakudo's memory usage to balloon up to a couple gigs before leveling off? I'm doing a bunch of math in loops, but the results are written out to a file as it goes, not stored in memory
00:51 tadzik hmm
00:52 k-ray rendering at like 32x32 is around 1 gig, and 512x512 is around 2 gigs...it levels off like a log function, then jitters up and down for the rest of the run
00:52 tadzik is that rakudo on parrot, or jvm?
00:52 k-ray parrot...october rakudo star
00:52 k-ray on linux
00:52 tadzik in both cases you could try tuning GC settings to see if it really needs all that memory or is it just lazy collecting it
00:53 tadzik but it's possible that it needs a couple of gigs to do the job
00:53 tadzik rakudo is quite a memory hog
00:54 k-ray I noticed...had to resize my swap file as my VPS only has half a gig, and it kept running out of memory
00:56 tadzik any reason to not do this on your regular machine?
00:57 k-ray my best machine is pushing half a decade old...the VPS is actually somewhat faster :P
00:57 kurahaupo_ joined #perl6
00:59 k-ray where do I tune the garbage collection?
01:00 k-ray (on a side note, one of my laptops will outperform the VPS once I can make use of both CPU cores)
01:02 tadzik on jvm you can
01:02 k-ray hmmm
01:02 tadzik parrot has options like --gc-dynamic-threshold=percentage    maximum memory wasted by GC
01:03 tadzik but you have to run rakudo like parrot <switches> perl6.pbc <rest of the options> or so
01:03 k-ray ah, got it
01:07 kurahaupo joined #perl6
01:19 k-ray I was playing with the idea of incorporating Pray into an automated benchmark that would pull and build the latest rakudo parrot and jvm and report the results on a webpage which charts improvements over time and comparison of parrot vs jvm etc once a week or whatever...would that be useful?
01:19 tadzik that rings a bell
01:19 tadzik https://github.com/japhb/perl6-bench
01:20 tadzik it's on a website somewhere, I don't remember the URL though
01:20 diakopter some website with a URL, I think
01:21 k-ray lol
01:25 * diakopter still giggling at "listless"
01:31 diakopter Amdahl's law
01:34 kurahaupo joined #perl6
01:44 logie joined #perl6
01:49 diakopter and the momeraths outgrabe
02:25 kurahaupo_ joined #perl6
02:41 davecc1 joined #perl6
03:18 kurahaupo joined #perl6
03:19 xenoterracide joined #perl6
03:27 kurahaupo joined #perl6
03:33 kurahaupo_ joined #perl6
03:35 kurahaupo joined #perl6
03:36 Grimnir_ joined #perl6
03:38 emma joined #perl6
03:38 emma Do any of you ever make irssi scripts?
03:38 emma w 3
03:45 kurahaupo_ joined #perl6
03:47 xinming joined #perl6
03:48 xenoterracide joined #perl6
03:51 kurahaupo joined #perl6
03:54 kurahaupo__ joined #perl6
04:15 preflex_ joined #perl6
04:49 kurahaupo_ joined #perl6
05:03 kurahaupo joined #perl6
05:10 kurahaupo_ joined #perl6
05:30 kurahaupo joined #perl6
05:40 hummeleB1 left #perl6
05:47 bonsaikitten joined #perl6
05:48 kurahaupo joined #perl6
05:50 kurahaupo_ joined #perl6
05:52 thou joined #perl6
05:57 SamuraiJack joined #perl6
06:01 Grimnir_ joined #perl6
06:03 kurahaupo joined #perl6
06:09 xinming joined #perl6
06:16 xinming_ joined #perl6
06:27 tadzik emma: nope; I wrote a few for weechat though, but not in Perl 6 :)
06:29 rurban1 joined #perl6
06:38 xinming joined #perl6
06:45 rurban1 joined #perl6
06:47 kurahaupo_ joined #perl6
06:49 kurahaupo__ joined #perl6
06:51 kurahaupo joined #perl6
07:04 kurahaupo_ joined #perl6
07:15 xenoterracide joined #perl6
07:35 kurahaupo joined #perl6
07:40 kurahaupo_ joined #perl6
07:42 kurahaupo__ joined #perl6
07:59 wrp6 joined #perl6
07:59 cibs joined #perl6
08:01 rurban1 joined #perl6
08:04 FROGGS[mobile] joined #perl6
08:05 araujo joined #perl6
08:05 araujo joined #perl6
08:08 cognominal joined #perl6
08:13 kurahaupo joined #perl6
08:14 FROGGS k-ray++
08:16 FROGGS timotimo: you might be interested in the fails of t/spec/S06-signature/unspecified.rakudo.parrot
08:20 moritz \o
08:22 kurahaupo_ joined #perl6
08:27 [Sno] joined #perl6
08:27 FROGGS morning moritz
08:28 FROGGS you feel better?
08:28 moritz yes
08:28 moritz (though not fully recovered yet)
08:29 FROGGS well, that's at least something :o)
08:29 timotimo FROGGS: oh, yes, i've been meaning to change these tests!
08:30 kurahaupo joined #perl6
08:30 FROGGS ahh, I thought we needed that feature
08:30 * moritz wants to bake Vanillekipferl today
08:30 FROGGS moritz: we did that last sunday actually
08:31 FROGGS we had Vanillekipferl, Zimtsterne, Butterplätzen and a delicious Marzipanstollen :o)
08:31 moritz and yesterday, Kokosmakronen :-)
08:32 kurahaupo__ joined #perl6
08:32 FROGGS my wife could do that every weekend... and she is a bit of a Christmas maniac
08:34 timotimo FROGGS: TimToady said it would be okay to do string comparison instead
08:34 timotimo but i'm not so sure any more it's correct, because the signature doesn't stringify to have Mu in it
08:35 iSlug joined #perl6
08:35 FROGGS timotimo: how that? I think it was supposed to accepts things from nqp, non-6model things
08:35 FROGGS rp: say num ~~ Any
08:35 camelia rakudo-parrot 8a0089: OUTPUT«True␤»
08:35 FROGGS rp: say str ~~ Any
08:35 camelia rakudo-parrot 8a0089: OUTPUT«True␤»
08:38 FROGGS and I would almost propose that we smartmatch every element of a slurpy against the given type... if we had not the problem to incidently invoke something
08:40 timotimo i think the slurpy is actually typeconstrained to Mu, but it doesn't stringify to say so
08:41 FROGGS ohh, I had thought it is Any too
08:41 FROGGS rp: sub a(*@a) { 42 }; say a(Mu)
08:41 camelia rakudo-parrot 8a0089: OUTPUT«42␤»
08:42 FROGGS timotimo++
08:43 webmind joined #perl6
08:43 webmind ah, this channel is bigger
08:43 webmind moin
08:44 timotimo hi
08:44 FROGGS hi webmind
08:44 timotimo rp: sub a(*@a) { 42 }; say &a.signature.^methods
08:44 camelia rakudo-parrot 8a0089: OUTPUT«<anon> <anon> <anon> <anon> arity count params returns ACCEPTS perl␤»
08:44 timotimo rp: sub a(*@a) { 42 }; say &a.signature.params[0].^methods
08:44 camelia rakudo-parrot 8a0089: OUTPUT«<anon> <anon> <anon> <anon> <anon> <anon> <anon> name constraint_list constraints type named named_names positional slurpy optional parcel capture rw copy readonly invocant default type_captures sub_signature perl␤»
08:44 webmind I'm trying to install panda on ubuntu
08:44 timotimo rp: sub a(*@a) { 42 }; say &a.signature.params[0].constraints.perl
08:44 camelia rakudo-parrot 8a0089: OUTPUT«all()␤»
08:44 timotimo rp: sub a(*@a) { 42 }; say &a.signature.params[0].type.perl
08:44 camelia rakudo-parrot 8a0089: OUTPUT«Positional␤»
08:44 FROGGS webmind: the easiest thing would be to get rakudo star
08:45 timotimo hohum.
08:45 webmind FROGGS, and not panda?
08:45 timotimo panda is bundled in rakudo star
08:45 FROGGS webmind: rakudo star is the compiler plus modules, like panda
08:45 webmind ah
08:45 webmind I kinda liked how rakudo was packaged in ubuntu
08:45 webmind it's why I started looking at perl6 again
08:45 FROGGS webmind: might be a bit outdated still
08:45 FROGGS what version is it?
08:46 webmind 2013.02.1
08:46 timotimo wow, that's *old*
08:46 FROGGS (two or three months does mean much these days for rakudo)
08:46 timotimo we do monthly releases (well, almost.)
08:46 webmind odd, the package version is 2013.03-1
08:46 FROGGS and I fear latest panda would not work on 2013.02 :/
08:47 webmind but there are no newed .deb files
08:47 webmind *newer
08:47 FROGGS webmind: installing from source is no option?
08:47 webmind FROGGS, no
08:47 FROGGS :(
08:47 timotimo aaw
08:47 webmind that would mean I'd need to be able to do that on every system I'd want to run the code on
08:47 FROGGS well, then checkout an older version of panda?
08:48 timotimo do we know who packages rakudo for debian & ubuntu?
08:48 FROGGS we should be able to see that on debian's page
08:48 timotimo right
08:48 webmind timotimo, it's not in the package details
08:48 timotimo i recently stopped using debian, otherwise i maybe would have done something about it ...
08:49 FROGGS webmind: might that be an option? http://packages.debian.org/sid/rakudo
08:49 timotimo oh yes, that's the current one
08:50 webmind lemme try
08:50 FROGGS and see https://launchpad.net/ubunt​u/+source/rakudo/2013.10-1
08:50 FROGGS it is in proposed though
08:51 webmind it ofcourse dependson loads of libs I don't have yet
08:51 timotimo d'oh
08:53 berekuk joined #perl6
08:55 mls joined #perl6
08:55 grondilu joined #perl6
08:58 * moritz has read https://research.microsoft.com/en-u​s/people/mickens/thenightwatch.pdf and chuckled a lot
08:59 webmind FROGGS, it'll mean 2013.10 will get in at the next version though, which is in 6 months, by which it'll lag behind again I'm afraid?
08:59 FROGGS hmpf
09:00 webmind well, 5 months :)
09:02 timotimo can we at least get 2013.12 in there?
09:02 timotimo that'll have a good chance of having the java port in finally
09:02 webmind I'd guess there should be time, I don't know when ubuntu freezes
09:03 timotimo or even better, 2014.01, because that has the new year number in it :P
09:04 webmind some projects have a seperate PPA/repository for their software as they move faster then your avg. release cycle
09:04 timotimo yeah, but then you have to pester the users to include it in their config :P
09:04 timotimo although that's very easy nowadays
09:05 FROGGS webmind: would you use a perl.org ppa?
09:05 FROGGS err, perl6.org
09:05 webmind sure
09:05 webmind either :)
09:05 FROGGS damnit, now I'd need days that had at least 36 hours :(
09:06 timotimo try polyphasic sleep :)
09:06 FROGGS maybe I can sleep in parallel?
09:06 * webmind wouldn't mind helping with running that, but no idea how to run a ppa :)
09:07 FROGGS me neither
09:07 timotimo well, you chmod +x it, and then you ./ it and presto!
09:07 FROGGS daxim++ could probably tell
09:07 kurahaupo joined #perl6
09:08 FROGGS but, I think S11 should happen before we can package modules... (I am working on S11 atm)
09:08 cognominal joined #perl6
09:08 timotimo you mean package individual modules as deb packets?
09:08 timotimo packages*
09:09 FROGGS timotimo: this is the only way a packager would go I think
09:10 webmind that would make sense
09:10 webmind confusingly btw, there are some libperl6-* modules
09:10 webmind in ubuntu (I'd guess also debian), which are perl5 modules :)
09:10 FROGGS so... when we had S11, after a single-module.deb got installed, there need to be an after-install-hook which registers the package in the "database"
09:11 FROGGS yeah, hehe
09:11 FROGGS >.<
09:11 sqirrel joined #perl6
09:11 webmind modules need to registered?
09:11 webmind +be
09:12 timotimo in the future, yeah
09:12 FROGGS webmind: in contrast to P5 you can have several modules with the same package name installed
09:12 webmind why?
09:12 FROGGS and then a script or another module can use a specific version of a module, and another program just uses latest
09:13 FROGGS webmind: read S11#1 :o)
09:13 webmind ah
09:13 FROGGS err
09:13 FROGGS synopsebot: ?
09:13 FROGGS http://perlcabal.org/syn/S11.html
09:14 webmind thnx
09:15 FROGGS another example, you install a dev-version of Foo.pm or a fork from github, and want to use that from your script, whereas all other modules should still use the official non-dev version
09:15 FROGGS so, less breakage
09:16 FROGGS since we can offer different module loaders, we could have a packager friendly one
09:16 FROGGS I guess that would make daxim happy :o)
09:17 FROGGS can somebody please test that for me?
09:17 FROGGS perl6-j t/spec/S02-types/deprecations.rakudo.jvm
09:17 FROGGS 1..27
09:17 FROGGS No such method 'package' for invocant of type 'Any'
09:17 webmind hmk
09:18 FROGGS I am not sure if my local hackage caused this to fail
09:18 eiro_ a
09:18 kurahaupo joined #perl6
09:19 timotimo deprecations is known to fail at least on the jvm
09:19 FROGGS cool
09:20 timotimo but see here for parrot: https://github.com/coke/perl6-roast-dat​a/blob/84394670c718e09e156106f3b11140fb​ecc0b78b/rakudo.parrot_summary.out#L250
09:20 kurahaupo joined #perl6
09:20 timotimo https://github.com/coke/perl6-roast-da​ta/blob/84394670c718e09e156106f3b11140​fbecc0b78b/rakudo.jvm_summary.out#L233 - that's the equivalent line for jvm
09:21 kurahaupo_ joined #perl6
09:21 go|dfish joined #perl6
09:22 dalek rakudo/nom: dc3f0fb | (Tobias Leich)++ | src/Perl6/World.nqp:
09:22 dalek rakudo/nom: use registered ModuleLoader instead of hardcoding P6::ML
09:22 dalek rakudo/nom:
09:22 dalek rakudo/nom: When parsing we invoked P6::ML before, and at runtime the registered one.
09:22 dalek rakudo/nom: Now it is consistant and lets us register a custom ML.
09:22 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/dc3f0fbabd
09:23 webmind deprecations can be a good reason not to use the latest version of X :)
09:23 webmind but then again, I guess rakudo doesn't have a stable release yet :)
09:24 FROGGS webmind: well, we are on a good path atm :o)
09:24 rurban1 joined #perl6
09:24 webmind FROGGS, yeah, it looks promising
09:24 FROGGS timotimo: thanks!
09:24 kurahaupo__ joined #perl6
09:38 rurban2 joined #perl6
09:49 berekuk joined #perl6
09:54 nwc10 good #perl6, UGT
10:00 FROGGS hi nwc10
10:02 kurahaupo joined #perl6
10:04 kurahaupo_ joined #perl6
10:04 kurahaupo joined #perl6
10:06 amkrankruleuen joined #perl6
10:06 kurahaupo_ joined #perl6
10:08 timotimo good good, good
10:12 timotimo does anyone feel like porting the richards benchmark to perl5 when i've finished making it work?
10:13 lizmat good *, #perl6!
10:13 lizmat what is the richards benchmark ?
10:14 timotimo it models a scheduler for IO and computation tasks
10:15 lizmat I'll give it a try after brunch&
10:16 timotimo but my code is currently not giving the right results :(
10:18 timotimo https://github.com/japhb/perl6-​bench/blob/master/nqp/richards - this is the nqp version, i would have to look again to find the values it's supposed to output
10:19 timotimo oh, the numbers are in there!
10:19 timotimo great
10:20 timotimo wait what, the code is actually correct?
10:20 timotimo i don't remember having fixed it :D
10:20 timotimo lizmat: if you were on questhub, i'd invite you to my quest ;)
10:21 timotimo http://questhub.io/realm/perl/​quest/5286bad79f567a5f3c0000d6 - this is the quest
10:23 sctt joined #perl6
10:42 rurban1 joined #perl6
10:46 dmol joined #perl6
10:48 SamuraiJack joined #perl6
10:57 kurahaupo joined #perl6
11:08 ssutch_ joined #perl6
11:24 kurahaupo_ joined #perl6
11:29 Rotwang joined #perl6
11:29 timotimo Stage pir        :   3.141
11:29 timotimo we should put more precision into these outputs so i can see if it approximates pi well
11:33 rindolf joined #perl6
11:36 kurahaupo joined #perl6
11:36 woolfy1 joined #perl6
11:36 lizmat_ joined #perl6
11:40 itz y
11:40 itz oops
11:46 rindolf joined #perl6
11:48 SamuraiJack joined #perl6
11:49 kurahaupo_ joined #perl6
11:51 timotimo i was hoping my lexreg_opt branch would perhaps reduce memory usage, but it increases it instead
11:58 FROGGS lizmat: update: https://github.com/FROGGS/p6-S11​Versioning/blob/master/README.md
11:58 FROGGS lunch &
12:04 rindolf joined #perl6
12:06 tgt joined #perl6
12:09 timotimo should i bump the nqp revision up as little as possible to get a commit in rakudo to work, or just liberally up it to the current master?
12:12 pecastro joined #perl6
12:16 kurahaupo joined #perl6
12:21 FROGGS[mobile] Up to head
12:21 timotimo i'd still like to get the stage0-minifier to work :|
12:21 timotimo and then get eqat available in nqp's source code
12:24 lue joined #perl6
12:29 rindolf joined #perl6
12:43 FROGGS timotimo: can't you just filter the resulting diff?
12:45 FROGGS like, make p-boostrap-files, save the diff, if only the timestamps changed then remove that chunk, then checkout these files to HEAD, and reapply the diff
12:47 FROGGS k, now I'll read S11 again, and think about how to wire panda to my CompUnitRepo(tm)
12:47 timotimo that's probably easier than what i'm doing right now, yeah
12:48 timotimo but that leaves manual work for cases where there's timestamp changes together with real changes
12:48 FROGGS the problem might be that you need to collect the uids, so if you revert it to an old timestamp at one point, you do it everywhere it is used
12:48 FROGGS timotimo: truee
12:48 FROGGS -e
12:48 FROGGS or....
12:49 FROGGS you could just collect the lines you want to revert, and revert the source code files directly
12:49 FROGGS I guess that was your plan?
12:49 timotimo my current plan scans the diff for -... +... pairs and builds a "database"
12:50 timotimo then it goes through all the stage0 files and replaces things it knows by the previous thing
12:50 timotimo it takes a lot of time, even with the jvm version and parallelism
12:51 timotimo i might re-do it in python and it'd run in a fraction of the time >_<
12:51 timotimo especially if i run it with pypy
12:51 timotimo there's simply no contest there.
12:51 timotimo which makes me sad. but oh well. that's why i'm here :)
12:51 timotimo where does the QAST Compiler actually spit out an invocation of the nfa?
12:51 FROGGS well, it make sense to use something else than nqp/perl6, because you are fiddling with these
12:52 timotimo nah, that's no problem. i'm only fiddling with the nqp stage0, as the jvm and moarvm stage0s are not textual
12:52 FROGGS that is in src/QRegex, no?
12:52 timotimo and since i use jvm's parallelism stuff anyway, i just need a perl6-j
12:52 PacoAir joined #perl6
12:53 timotimo oh, it calls the actual method of a QRegex::NFA instance
12:54 kurahaupo joined #perl6
12:57 kurahaupo_ joined #perl6
12:57 timotimo i see no mention of "run_alt" or even "run" in the QAST/Compiler.nqp :\
12:58 timotimo ah, there it is!
13:02 rindolf joined #perl6
13:03 colomon time for the "Stage parse" building parrakudo last night (smoke test) went from its normal 98-99 to 93.5.  Dunno who's responsible, but that's great!
13:04 kurahaupo joined #perl6
13:06 timotimo i've done a few things, but others did, too :)
13:06 * timotimo is making a CRAZY optimisation happen in the qregex compiler that's probably going to destroy nqp's capability to parse completely
13:07 kurahaupo joined #perl6
13:07 timotimo (a lexical after an alt will be skipped completely instead of matched)
13:07 timotimo (a literal*)
13:09 jnthn Glad you corrected that :P
13:09 jnthn Afternoon, #perl6
13:09 FROGGS hi jnthn
13:09 timotimo oh, interesting, literal in qregex is still using substr + eq even in the case sensitive case
13:09 timotimo i could optimize that with an eqat, even on master
13:10 * timotimo runs the tests
13:11 timotimo t/nqp/19-file-ops.t ................... Failed 8/40 subtests - is that my fault?
13:12 timotimo nope, because i'm running nqp-j which i didn't change
13:12 jnthn timotimo: You mean !LITERAL?
13:12 jnthn o/ FROGGS
13:12 timotimo "method literal" in the QAST Compiler
13:12 jnthn ah
13:12 timotimo generates a substr + 'eq'/'ne' op
13:12 timotimo !LITERAL was patched that way a week ago or so
13:13 timotimo All tests successful. - crazy! :)
13:13 timotimo there's not terribly many literals in rakudo's grammar, but it may still make a difference.
13:13 jnthn Yeah. This is a mini version of the more general thing we were discussing earlier in the week I guess.
13:16 nnunley joined #perl6
13:17 timotimo Stage parse      : 104.930
13:17 jnthn What was it before?
13:18 timotimo 106-ish
13:19 timotimo so no visible change
13:19 timotimo i'll get some debug output to tell me if the optimisation even happened at all
13:20 timotimo well, visible change, but nothing impressive
13:20 lizmat_ joined #perl6
13:20 timotimo yeah, it does the optimization
13:21 woolfy joined #perl6
13:21 timotimo it mostly skips 1 or 2 characters long literals it seems
13:22 FROGGS so, I am thinking about how the compiler should remember the shiny module loaders / ComUnitRepos...
13:22 FROGGS I think that we would need some config file with a fixed name that the compiler knows about, alá:
13:23 FROGGS ModuleLoader::Classic : [ "/home/froggs/dev/nqp/install/"[...] ]
13:24 FROGGS ModuleLoader::Shiny : [ "/usr/lib/perl6/modules.sqlite" ]
13:24 FROGGS something like that
13:25 * timotimo widens the optimisation significantly
13:25 FROGGS this file would be managed by panda, or a tool that is shipped by the compiler
13:25 jnthn .oO( Who loads the loaders... )
13:25 FROGGS the loader \o/
13:26 timotimo there's some 1-char-literals that could get ordat instead of eqat.
13:27 jnthn Is that actually faster?
13:28 timotimo if you write nqp::eqat in the source, and your literal is 1 character, the QAST Compiler will already emit an ordat instead of an eqat
13:28 timotimo but i'm pushing pirops here. i think it would be faster.
13:28 kurahaupo joined #perl6
13:29 timotimo it may not actually make a big difference, though, you may be right there.
13:30 FROGGS we might stop when stage optimise takes longer than stage parse :P
13:30 timotimo :D
13:30 timotimo this optimisation happens directly in the qast compiler, not in the optimiser
13:31 FROGGS aha! you even hide it!
13:31 timotimo :D
13:32 jnthn Hm, so the Rakudo on Moar failure mode changed...
13:33 FROGGS O.o
13:33 jnthn Cannot find method 'arity'
13:33 timotimo oh no, that must be my fault
13:33 FROGGS ahh
13:33 timotimo did you get a fresh nqp?
13:33 jnthn Yeah
13:33 timotimo oh crap.
13:33 jnthn but mebbe I need to merge latest nom in?
13:33 timotimo oh. yes, there's a commit you need there
13:33 woolfy1 joined #perl6
13:33 timotimo it checks istype against QAST::Block before trying to .arity a qast node
13:34 jnthn yeah, it was way behind
13:34 jnthn merged locally, retryng
13:34 FROGGS right
13:36 FROGGS "retryng" sounds a bit Scottish though
13:36 jnthn yeah, that gets things bck to where we were a week or so ago
13:36 timotimo phew
13:37 dalek Heuristic branch merge: pushed 33 commits to rakudo/moar-support by jnthn
13:37 FROGGS jnthn: do you have time to attack it?
13:38 jnthn Yeah, this weekend is pretty free. Slept lots, but my brain still feels like a big heap of mush...
13:38 FROGGS :/
13:38 FROGGS I have beer here though :o)
13:38 FROGGS problem is: when I drink that early, I'll instantly fall asleep
13:38 jnthn Oh, when I get to that time of day my fridge has some great stuff. :)
13:38 timotimo one thing that may be good to try is reducing the amount of checks against pos and eos
13:39 jnthn timotimo: Given that's just comparing two integers...
13:39 FROGGS so, I expect to have nice Czech beer at midnight or later
13:39 jnthn Czech is good :)
13:40 timotimo jnthn: if we have a quant with an enumcharlist or charrange, it'll compare the integer after every step; if we have a quant that has a fixed width of these, it could have a fast path if it knows there's more to the string than in the cclass
13:40 FROGGS yes, a bit better than german beer even :o)
13:40 sctt joined #perl6
13:40 * jnthn has a 15% ale from NL to try at some point... :)
13:40 FROGGS hehe
13:41 FROGGS I prefer 4.8 to 7%
13:41 timotimo i'm a bit disappointed by the lack of speed boost i got ouf of that :\
13:41 jnthn timotimo: Sounds micro-opt-y
13:41 timotimo i must run a primitive benchmark that directly hits literals i think
13:41 jnthn (The skipping pos < eos checks)
13:41 FROGGS timotimo: that is the point somehow... there are no big issues I fear
13:41 timotimo yes, i'll keep that until we're at 10 seconds for stage parse and still need a bit more speed :P
13:42 timotimo FROGGS: since that's the only stuff i know how to change, i'll keep banging my head against it until i run out of brain matter or ideas
13:42 timotimo at least it'll keep me busy :P
13:42 jnthn FROGGS: Well, it's somewhat that if we want to get a big-ish win, we need some big-ish changes, but they need careful design work...
13:43 FROGGS jnthn: and we need to know what can be improved
13:43 jnthn timotimo: One thing I've pondered trying: keeping a $!actions in ParseShared rather than just having it in $*ACTIONS
13:43 FROGGS I guess the huge as_post mmd (multi mass dispatch) is slow, but is that really so?
13:43 FROGGS we need some better profiler tools I think
13:44 jnthn FROGGS: That hits a cache, written in C. It's likely rather fast.
13:44 FROGGS ohh yes, MATCH and CAPHASH take quite a lot of time
13:44 jnthn Yes, those two do.
13:45 FROGGS I hope that we an port these hot paths to C on moar some day
13:45 FROGGS this would at least eliminate^Wreduce function call overhead, if nothing else
13:45 jnthn FROGGS: Well, on Moar we should have a good JIT some day that saves us this task :)
13:46 FROGGS looks like I have to read something light about JITs to know where this will help us :o)
13:46 FROGGS (for compiling rakudo for example=
13:46 FROGGS )
13:46 jnthn Well, the REPR specialization is the first step
13:49 timotimo i got about 0.5% out of the whole thing \o/
13:49 timotimo :P
13:49 timotimo jnthn: i'll try that. dynamic vars are a bit slow?
13:49 jnthn timotimo: Well, it's a hash lookup at every frame, the parse goes quite deep...
13:49 jnthn timotimo: You'll need some care in e.g. LANG
13:51 tobyink joined #perl6
13:52 tobyink Hello, can anyone offer a Rakudo-to-English translation of an error message for me?
13:52 tobyink "SORRY! Cannot type check against type variable $?CLASS"
13:52 tobyink Helpfully, no pesky line numbers clutter up the message.
13:53 dmol joined #perl6
13:53 FROGGS tobyink: you can pass --ll-exception to get a backstrace
13:53 jnthn "Oh crap, we treated something generic as if it was concrete"
13:55 jnthn tobyink: I'm guessing you're doing something with roles?
13:55 tobyink FROGGS: it never rains, but it pours. Very long stack trace, but none of the files or lines mentioned are mine.
13:55 tobyink jnthn: indeed. I'll paste it somewhere and post a link.
13:56 FROGGS tobyink: yes, that is internal stuff, but you should be able to see the things it tried to parse for example
13:56 tobyink http://paste.scsys.co.uk/paste
13:56 tobyink Grrr...
13:56 FROGGS *g*
13:56 tobyink http://paste.scsys.co.uk/278650
13:56 FROGGS $self?
13:56 FROGGS strip the $
13:57 FROGGS rp: role R { method foo { say $self } }; class C does R { }; say C.foo
13:57 camelia rakudo-parrot dc3f0f: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/7ExegC0Jiaâ�¤Variable '$self' is not declaredâ�¤at /tmp/7ExegC0Jia:1â�¤------> [32mrole R { method foo { say $self[33mâ��[31m } }; class C does R { }; say C.foo[0mâ�¤    expecting any of:â�¤  â€¦Â»
13:57 jnthn tobyink: Can you nopaste me the very long backtrace?
13:58 timotimo without $
13:58 tobyink FROGGS - thanks; that stops the error, but I don't get any output at all now.
13:58 FROGGS rp: role R { method foo { say $self.noise }; method noise { ... } }; class C does R { }; say C.foo
13:58 camelia rakudo-parrot dc3f0f: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/6Nsg_S1D6oâ�¤Variable '$self' is not declaredâ�¤at /tmp/6Nsg_S1D6o:1â�¤------> [32mrole R { method foo { say $self.noise[33mâ��[31m }; method noise { ... } }; class C does[0mâ�¤    expecting a…»
13:58 FROGGS rp: role R { method foo { say self.noise }; method noise { ... } }; class C does R { }; say C.foo
13:58 camelia rakudo-parrot dc3f0f: OUTPUT«===SORRY!===␤Method 'noise' must be implemented by C because it is required by a role␤»
13:58 FROGGS rp: role R { method foo { say self.noise }; method noise { 42 } }; class C does R { }; say C.foo
13:58 camelia rakudo-parrot dc3f0f: OUTPUT«42␤True␤»
13:58 jnthn tobyink: Types are not strings in Perl 6.
13:58 jnthn tobyink: Not ever.
13:59 FROGGS tobyink: looks like stubbed methods don't land in the class
13:59 tobyink jnthn: OK, so that's the .does(...), right?
13:59 jnthn $tractor.does('Hitchable'); # is $tractor.does(Str) which is always false as Str is not even a role :)
13:59 jnthn Right.
13:59 tobyink Yay! It runs!
14:00 tobyink jnthn: here's that stack trace - http://paste.scsys.co.uk/278651
14:00 jnthn Gallops, no? :P
14:00 jnthn tobyink: Yeah, it's an error reporting error
14:00 jnthn timotimo: I think you did suggest_lexical? Can you look into making it robuster? :)
14:01 timotimo is it my fault? oops
14:01 jnthn timotimo: Well, "fault".
14:01 timotimo i'm sorry, tobyink
14:02 jnthn timotimo: It's just that the code isn't aware that type variables might sneak in I gues
14:02 jnthn timotimo: Users typically never encounter them 'cus by the time you run code they're reified into real types. But at compile time they're very present.
14:03 * tobyink is doing an article that will compare Moose roles with PHP traits, Ruby mixins and Java interfaces. Not directly including Perl 6 roles in the comparison, but it will be mentioned in passing, and there will be a link to the full code in Perl 6.
14:03 jnthn r: role Foo { BEGIN { say $?CLASS.HOW } } # may show one up
14:03 camelia rakudo-parrot dc3f0f, rakudo-jvm dc3f0f: OUTPUT«Perl6::Metamodel::GenericHOW.new()␤»
14:03 jnthn Yeah.
14:03 dmol joined #perl6
14:04 jnthn tobyink: Cool! Will be interested to read that.
14:04 timotimo jnthn, you made method is_type ;)
14:04 jnthn :P
14:04 jnthn hm :)
14:04 tobyink My Perl6 code probably has very much a Perl5 accent. If there is anything more idiomatic than what I posted, please give me hints. :-)
14:05 eiro_ \o #perl6
14:05 jnthn tobyink: Mostly people write $tractor ~~ Hitchable rather than .does, but in this case being clear and writing .does is maybe helpful for understanding.
14:06 jnthn o/ eiro_
14:06 FROGGS hi eiro
14:06 FROGGS and a semicolon after ... does not make very much sense :o)
14:06 tobyink .does will also make it look more like the Perl5 code (I've done three copies - using Moose, Moo and Class::Tiny+Role::Tiny)
14:06 FROGGS but that is just cosmetic
14:09 timotimo jnthn: i don't understand why it explodes; the code in is_type is wrapped in a try.
14:10 jnthn timotimo: is_type isn't anywhere on the backtrace?
14:10 jnthn It fails in walk_block?
14:10 timotimo it's the one on line 2054
14:10 timotimo and 2053
14:10 timotimo wait
14:10 timotimo i must have a different version
14:11 jnthn hmm
14:12 timotimo sorry, i don't understand where the type check actually happens
14:12 timotimo i mean
14:12 timotimo it does nqp::istype($val, QAST::Block)
14:12 timotimo but neither is there a type variable involved, nor should it throw, because it has a try right before it
14:13 timotimo jnthn: yeah, i have *no* idea how to properly track changes to LANG :|
14:13 jnthn um
14:13 jnthn my $val := $symp.value<value>;
14:13 jnthn if (try nqp::istype($val, QAST::Block)) {
14:13 timotimo i don't even know if there's a central spot where that would happen
14:13 jnthn Is that *ever* true?
14:14 jnthn I mean, value in a symbol table entry typically means "what value will the variable have" which is going to be a Perl 6 value
14:14 timotimo let me check.
14:14 timotimo i don't really know why i did that :)
14:14 jnthn I don't understand what it's doing :)
14:15 jnthn I mean, it' already walking all the scopes with the for @!BLOCKS...
14:15 jnthn There's not really other places to look.
14:15 timotimo good, i'll just kill that branch then
14:15 jnthn Should probably add a test to cover it too...
14:16 jnthn Anyway, fixing bugs by deleting code I don't understand always makes me happy ;)
14:16 timotimo there's a few tests for the suggestion stuff
14:16 jnthn Yeah, but not one where it suggests a variable inside a role, I guess... :)
14:17 timotimo oof ;)
14:17 timotimo is there a special method/sub that is a good spot to hook into for checking if $*ACTIONS has changed?
14:18 timotimo couldn't potentially any "qast" in a QRegex change $*ACTIONS, directly or indirectly?
14:18 jnthn timotimo: I think LANG is the place that it changes, no?
14:19 jnthn timotimo: I don't think we need to support people just doing :my $*ACTIONS = ...;
14:19 jnthn timotimo: iiuc, the API is that the current actions are available through $*ACTIONS...
14:19 timotimo ah. i must look into LANG
14:20 jnthn Not that you set the actions by declaring one.
14:21 timotimo good
14:24 timotimo is LANGs return value used?
14:25 jnthn Yeah
14:26 jnthn I mean, that's what was parsed in the other language
14:27 timotimo OK
14:29 * timotimo compiles a version with the ACTIONS cache
14:31 timotimo Method 'has_compile_time_value' not found for invocant of class 'NQPMu' - oops :)
14:31 timotimo in colonpair_nibble_to_str ... :\
14:33 * timotimo has an idea
14:34 * moritz too
14:35 moritz but my 'git pull' hangs :(
14:37 timotimo nope.
14:37 timotimo i'll go for a walk in the park instead
14:37 timotimo see you in ~an hour :)
14:38 FROGGS o/ have fun
14:43 moritz r: say chars 'CORE.setting'
14:43 camelia rakudo-parrot dc3f0f, rakudo-jvm dc3f0f: OUTPUT«12␤»
14:50 xinming joined #perl6
14:53 FOSScookie joined #perl6
14:56 kurahaupo joined #perl6
15:00 kurahaupo_ joined #perl6
15:10 berekuk joined #perl6
15:13 dalek rakudo/nom: 5d2cbe4 | moritz++ | src/core/Backtrace.pm:
15:13 dalek rakudo/nom: Fix classification of errors as coming from the setting
15:13 dalek rakudo/nom:
15:13 dalek rakudo/nom: the build system refactor changed the file name of the generated
15:13 dalek rakudo/nom: CORE.setting file
15:13 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/5d2cbe4d88
15:14 * moritz runs ulimit -v $(./perl6-p -e 'say 2**21') before spectesting
15:22 moritz if anybody wants to see the logs of the moar-support branch, I recommend   git log --first-parent origin/moar-support
15:22 moritz the --first-parent means that the commits pulled in by merging nom into moar-support aren't shown
15:27 FROGGS k, back to S11 again
15:27 moritz somehow even with ulimit, there's a resource hog during p-spectest that makes my laptop freeze :(
15:27 FROGGS ó.ò
15:27 FROGGS somewhere along S06?
15:28 moritz dunno
15:28 jnthn Adding --no-merges probably declutters it further
15:29 moritz the fact that stuff freezes makes it kinda hard to switch to the right terminal and see where it hangs
15:29 dalek rakudo/moar-support: 339c340 | jnthn++ | src/ (2 files):
15:29 dalek rakudo/moar-support: Stub p6isbindable, getting us a bit further.
15:29 dalek rakudo/moar-support: review: https://github.com/rakudo/rakudo/commit/339c3405cd
15:29 nwc10 moritz: solution - ssh to a different laptop to run the tests? (or ssh from a different laptop)
15:32 moritz nwc10: ENOTENOUGHLAPTOPS
15:32 moritz though I put a rasperberry pi on my christmas wish list :-)
15:33 * FROGGS 's Christmast present was the trip to Frankfurt
15:34 FROGGS Christmas*
15:34 moritz good one :-)
15:35 kurahaupo joined #perl6
15:35 FROGGS yes, it was awesome :o)
15:36 moritz now trying a single-job spectest with a more sever memory limit
15:36 tobyink joined #perl6
15:37 denis_boyun joined #perl6
15:37 kurahaupo joined #perl6
15:39 raiph joined #perl6
15:40 emma Do any of you ever make irssi scripts?
15:42 moritz emma: I have a deja-vu
15:42 emma moritz: well i was here late last night or something but i fell asleep before anyone answered me :P
15:42 FROGGS emma: no, never till now
15:42 emma FROGGS: i see.
15:43 * jnthn just uses it as it is
15:43 kurahaupo joined #perl6
15:43 emma irssi is scripted in perl so many of you could probably do it easily.
15:44 moritz also http://irclog.perlgeek.de/​perl6/2013-11-16#i_7867531
15:44 jnthn emma: For me, it's lack of need rather than lack of ability ;)
15:44 moritz emma: modulo documention of the plugin system
15:44 emma for me its lack of ability :(
15:45 moritz no worry, you can learn
15:45 moritz though I'd recommend a Perl 5 channel plus a book for that :-)
15:47 emma There's a lot of Germans here. I just noticed. (nothing wrong with that, just stood out to me)
15:47 emma Is Perl6 very popular in Germany?
15:47 huf there's a lot of germans period :)
15:48 FROGGS hmmm, don't think it is more popular here than anywhere else...
15:48 FROGGS just coincidence :o)
15:48 jnthn FROGGS: Given the size of the German Perl Workshop, I'd say Perl in general is more popular in Germany than in some other European countries...
15:48 moritz also Germany is usually the first or second country of YAPC::EU participants (after the host country)
15:49 huf i think some nationalities keep to their own channels and others frequently join american/uk english-speaking ones
15:49 huf germans do, so they're a visible nationality on irc :)
15:49 * timotimo has returned
15:49 FROGGS jnthn: might be... last time 130 peeps, the workshops before had about 80 I think
15:50 moritz yes, 80 to 90 is the usual amount for GPW
15:50 FROGGS in Berlin where 130 because I helped organizing it of course :o)
15:51 * jnthn may make it to the next one in Hangover
15:51 jnthn uh
15:51 jnthn Hannover
15:51 jnthn ...wat :)
15:51 moritz jnthn: Freud is typing today? :-)
15:51 jnthn Thankfully not :)
15:52 jnthn At least I didn't type Hamburg :)
15:52 huf or "mother"
15:52 * jnthn seems to confuse those two a bunch...
15:52 jnthn I mean, they're both north-ish :)
15:52 moritz and both match /^Ha/ :-)
15:52 nwc10 I do too
15:53 moritz but only one them is a Hansestadt, and very proud of it
15:53 timotimo lots of planets have a north!
15:53 FROGGS I will be there too
15:53 nwc10 I will be surprised if I'm not there
15:53 * moritz won't :(
15:54 nwc10 awww.
15:54 moritz bad timing (rather close to ETA of me.children[1])
15:54 FROGGS uhh, children++
15:54 huf that's not a terrible reason to be kept away
15:55 moritz huf: agreed :-)
15:55 huf very exhausting i imagine :)
15:55 timotimo when is GPW in hannover?
15:55 moritz on of the best, actually
15:55 kurahaupo_ joined #perl6
15:55 moritz timotimo: end of March
15:55 timotimo mhm, mhm
15:55 timotimo maybe exam timings will allow me to attend, too. a perl6er will probably be welcome there, right? :)
15:55 nwc10 http://act.yapc.eu/gpw2014/ -- sign up now!
15:56 moritz timotimo: they usually are :-)
15:56 timotimo "See want you as an speaker" wat
15:56 FROGGS maybe "See" is a nick?
15:56 FROGGS O.o
15:56 huf has to be a plural
15:56 moritz probably s/See/We/
15:57 huf maybe they mean the holy see?
15:57 moritz or maybe the lake wants you as a speaker :-)
15:57 timotimo the what now
15:57 huf the usual madness.
15:58 huf moritz: damp women distributing speaking slots is no basis for a conference!
15:58 moritz timotimo: just joking around, cause see = lake
15:58 timotimo yeah
15:59 * moritz informed one of the organizers about the typo
16:03 timotimo can the result of nqp::can be invoked? or is it required to findmethod after can-ing?
16:04 jnthn timotimo: nqp::can is just 0/1
16:04 timotimo OK
16:04 timotimo is "findmethod if can" already optimal?
16:04 moritz is there a variant of findmethod that doesn't die when nothing is found?
16:05 timotimo i suppose it probably hits the C cache
16:08 beastd joined #perl6
16:11 kurahaupo joined #perl6
16:14 kurahaupo_ joined #perl6
16:15 kivutar joined #perl6
16:16 kurahaupo joined #perl6
16:22 mtk joined #perl6
16:25 timotimo ah, nibble is expecting my $*ACTIONS to work just like that
16:25 tobyink left #perl6
16:26 timotimo that's why nothing i tried to do worked :P
16:27 denisboyun joined #perl6
16:29 timotimo jnthn: for Rakudo::Debugger to work (rather, build) on the jvm, we need to have a fake-executable creation tool or something, agreed?
16:29 jnthn timotimo: Something like that.
16:30 dalek rakudo/moar-support: 4a2b7bb | jnthn++ | src/Perl6/Metamodel/BOOTSTRAP.nqp:
16:30 dalek rakudo/moar-support: Start filling out more of the binder logic.
16:30 dalek rakudo/moar-support: review: https://github.com/rakudo/rakudo/commit/4a2b7bb982
16:30 jnthn timotimo: REally it needs to make a .bat or shell script.
16:30 timotimo i wonder if the person who made the rakudo and nqp launcher generators would like to whip something up
16:31 jnthn timotimo: tbh, you can probably figure it out... ;)
16:31 jnthn timotimo: Though, writing one in NQP could be a good idea.
16:32 timotimo mhm
16:35 dmol1 joined #perl6
16:36 lizmat joined #perl6
16:36 woolfy joined #perl6
16:40 timotimo meeeeeh, this isn't working and the error messages are unhelpful
16:53 FOSScookie left #perl6
16:59 timotimo there must be some way to find out where my actions and the cached actions are going out of sync
17:00 timotimo and i think i kind of know how to do it
17:02 Guest76277 joined #perl6
17:04 btyler joined #perl6
17:11 berekuk joined #perl6
17:18 dalek roast: f1d90ff | moritz++ | S06-signature/unspecified.t:
17:18 dalek roast: avoid using typed slurpy for unrelated things
17:18 dalek roast: review: https://github.com/perl6/roast/commit/f1d90ffd90
17:32 timotimo lizmat is having quite the brunch :)
17:32 lizmat sorry, was away some more
17:32 timotimo no problem ;)
17:33 lizmat shopping, re-positioning our wifi now that we have glass and 100Mbit supposedly
17:33 lizmat getting the power cable of the wifi lengthened
17:33 lizmat stuff you know
17:33 lizmat now it's time for dinner  :-)
17:34 lizmat back later&
17:34 timotimo oooh, how much upstream do you have?
17:35 lizmat supposedly 100Mbit as well
17:35 timotimo holy want!
17:52 FROGGS O.o
17:58 dalek rakudo/moar-support: 4ac4643 | jnthn++ | src/vm/moar/ops/perl6_ops.c:
17:58 dalek rakudo/moar-support: Chase API change.
17:58 dalek rakudo/moar-support: review: https://github.com/rakudo/rakudo/commit/4ac4643f0e
18:17 stevan__ joined #perl6
18:21 mtk joined #perl6
18:42 lue has no-one else gotten problems with qrpa.c while compiling nqp-p?
18:43 * TimToady is still feebly backlogging
18:43 thou joined #perl6
18:44 [Coke] timotimo for these changes to see if you're improving timings, you could use cachegrind to see if you're reducing actual instructions called.
18:46 FROGGS lue: no problems here... can you no-paste the output?
18:46 timotimo that's not such a bad idea; but the numbers will probably fluctuate a lot just by themselves?
18:48 lue FROGGS: https://gist.github.com/lue/55fe66c4328ce963a004
18:48 lue (and no, it doesn't matter if I use gcc or clang)
18:48 [Coke] timotimo: that's the point of using something like cachegrind, you're comparing work done, not time spent. IIRC.
18:49 FROGGS lue: do you have more than one parrot installed?
18:49 timotimo oh
18:49 timotimo well, we have a GC ;)
18:49 lue FROGGS: no...?
18:49 FROGGS hmmm
18:50 FROGGS nqp/parrot/src/utils.c:70:#define ASSERT_ARGS_COMPARE __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
18:50 FROGGS and there is not even an #ifdef before that line
18:51 lue Unless it's suddenly a bad thing to have libraries as far back as 4.10.0
18:51 moritz well, since you also need a parrot 5.9.0, you have at least 2 parrots, no?
18:52 lue moritz: I only have one /usr/local/bin/parrot
18:52 moritz lue: that's not the only parrot component
18:53 lue Also 1 parrot-nqp, parrot-prove, parrot_config, and parrot_nci_thunk_gen
18:54 lue (and I don't see anything but 5.9.0 in the configure and make output for nqp)
18:57 FROGGS no idea :/
18:58 moritz qrpa.c:54:5: error: use of undeclared identifier 'ASSERT_ARGS_COMPARE'
18:58 moritz ASSERT_ARGS(COMPARE)
18:59 * moritz doesn't understand the jump from ASSERT_ARGS(COMPARE) to ASSERT_ARGS_COMPARE
19:00 geekosaur presumably it's a macro? #define ASSERT_ARGS(x) ASSERT_ARGS_ ## x
19:00 lue moritz: /usr/local/include/parrot/5.9.0-d​evel/parrot/exceptions.h:293:28: note: expanded from macro 'ASSERT_ARGS'
19:00 lue #    define ASSERT_ARGS(a) ASSERT_ARGS_ ## a ;
19:01 moritz eeks.
19:02 * TimToady wants to create lots of variable names with numbers on the end of them; how do I do that?   :) :) :)
19:02 moritz TimToady: with PHP :-)
19:06 sqirrel joined #perl6
19:09 emma TimToady: maybe you could use a hash?
19:10 FROGGS emma: I think that was a joke :o)
19:12 timotimo luckily there's test cases in nqp/t/ that trigger my bug
19:12 timotimo so i know i don't have to look at rakudo yet
19:13 * TimToady welcomes emma to the madness :)
19:14 nwc10 even Perl 5 isn't *that* crazy on that one
19:14 geekosaur someone already passed emma the hash... :p
19:14 nwc10 and Parrot stole that from Perl 5
19:14 moritz pmurias++ # lots of nqp tests
19:15 lue TimToady: my $::<foo3> I believe :)
19:15 TimToady nwc10: mostly because token gluing hadn't been very invented when perl macros were being written :P
19:17 TimToady lue: I think I read somewhere that it's $::('foo' ~ 3)
19:17 * [Coke] watches desert bus for hope 7 a bit.
19:18 nwc10 TimToady: that particular clutch of macros in perl 5 dates from about 5 years ago, and was my doing
19:18 nwc10 but yes, in the general case, stuff is old
19:18 nwc10 and dates from before I knew C. Or dealing with compilers that were around from then.
19:18 TimToady .oO(ow)
19:21 lue moritz: what should I do to deal with qrpa? Delete the non-relevant directories under /usr/local/lib/parrot/ ? Something else?
19:22 moritz lue: that would be one approach
19:22 moritz the other would be to figure out whether the missing macro was defined anywhere
19:22 timotimo ooooh desert bus for hope. swee.
19:23 frdmn joined #perl6
19:24 lue moritz: FROGGS seems to have found it (see the last 50m mark in the log)
19:24 FROGGS utils.c or so
19:25 TimToady "When it’s 3 A.M., and you’ve been debugging for 12 hours, and you encounter a virtual static friend protected volatile templated function pointer, you want to go into hibernation and awake as a werewolf and then find the people who wrote the C++ standard and bring ruin to the things that they love." --James Mickens
19:26 emma FROGGS: oh sorry. Im just learning programming. (trying to)
19:26 * timotimo throws his arms up in frustration
19:26 timotimo look what you made me do, rakudo! now i tore off my arms!
19:27 TimToady \o/ oh wait
19:27 TimToady o
19:31 cooper joined #perl6
19:33 FROGGS emma: no need to be sorry, I wanted to mention the TimToady tends to make jokes... he's rather good at programming stuff
19:33 emma oh okay :)
19:34 lue (removing the libraries helped not at all :/)
19:35 FROGGS lue: do you see that this utils.c gets compiled?
19:35 lue FROGGS: where would I see this? nqp or parrot?
19:35 FROGGS in the build output before it fails
19:35 FROGGS of parrot, since it fails to build parrot, right?
19:38 lue I see a utils.o in the parrot/src directory, does that count? :)
19:40 FROGGS yes
19:40 FROGGS timestamp?
19:41 timotimo oh gerd dermit
19:41 timotimo even without my changes, the build fails
19:41 timotimo so i've been trying to debug something that's not even there
19:42 FROGGS that is something you should check first...
19:42 FROGGS like here using camelia
19:42 timotimo i was expecting the build to not fail :/
19:42 labster joined #perl6
19:42 FROGGS wait, the build fails?
19:43 FROGGS not the test you mentioned earlier?
19:43 timotimo yeah. but how?!
19:43 xinming joined #perl6
19:43 timotimo Stage start      :   0.000
19:43 timotimo Method 'has_compile_time_value' not found for invocant of class 'NQPMu'
19:43 FROGGS hmmm
19:43 dalek rakudo/moar-support: 1f178a9 | jnthn++ | src/Perl6/Metamodel/BOOTSTRAP.nqp:
19:43 dalek rakudo/moar-support: A little more work on bind_one_param.
19:43 dalek rakudo/moar-support:
19:43 dalek rakudo/moar-support: Gets us through binding a positional parameter, at least.
19:43 dalek rakudo/moar-support: review: https://github.com/rakudo/rakudo/commit/1f178a9ed2
19:43 lue FROGGS: Nov 15 22:06 ../parrot/src/utils.o (so it's recently made)
19:44 FROGGS lue: and that utils.o get used later?
19:44 FROGGS gets*
19:44 FROGGS timotimo: that is rakudo@parrot?
19:44 lue I don't know, let me attempt the build output again.
19:45 timotimo it is!
19:45 timotimo master/nom, clean and stuff ... but how?!
19:45 * timotimo tries cleaning
19:49 lue FROGGS: it gets used in libparrot.a and libparrot.so.5.9.0
19:50 FROGGS well, that is perfect
19:50 * lue idly wonders if not using without-pcre is the cause...
19:50 timotimo well, i should probably be happy. it now fails building every try.
19:52 timotimo oh, nah, i actually failed to remove all my changes
19:56 lizmat joined #perl6
19:57 woolfy joined #perl6
19:57 Rotwang joined #perl6
19:58 * lue is very unhappy that there's no apparent "ur doin it rong" solution
20:01 timotimo TIMTOWTDIW
20:02 xinming joined #perl6
20:03 timotimo ah, whew, stashing my changes makes it build again
20:03 FROGGS phew
20:03 FROGGS bilding right now on my box...
20:03 FROGGS building*
20:04 lue FROGGS: could it be that _COMPARE is defined in utils.*c*, instead of some utils.h ?
20:05 lue interesting turn of events: there is no utils.h
20:06 timotimo oh crap
20:06 timotimo i know what i did wrong
20:06 timotimo wow.
20:06 FROGGS timotimo: seems to build fine here
20:06 lue ō.o apparently, NQP has *nothing* to do with my problem.
20:07 lue ~/gitrepos/nqp $ ack -u ASSERT_ARGS_COMPARE
20:07 lue matthew@AMD64 ~/gitrepos/nqp $
20:07 FROGGS correct, your parrot fails to build
20:07 lue FROGGS: no, my parrot fails to be part of a build :P
20:07 FROGGS hmmm
20:08 lue (knowing this is all within parrot suddenly makes this a less nonsensical issue to have suddenly occurred)
20:08 lue Oh by the way, does rakudo-m work yet? :)
20:08 timotimo we don't get terribly far
20:09 FROGGS lue: see #moarvm
20:11 lue I'm starting to believe this could all be avoided with a utils.h ...
20:11 timotimo now my computer is swapping itself to death
20:12 timotimo will it come back up?
20:13 FROGGS lue: can you got to your parrot die, checkout RELEASE_5_9_0, and reinstall?
20:13 FROGGS I guess the packfile api changes breaks it
20:14 timotimo there it is
20:14 dalek rakudo/moar-support: fd8671b | jnthn++ | src/Perl6/Metamodel/BOOTSTRAP.nqp:
20:14 dalek rakudo/moar-support: First pass a named parameter binding.
20:14 dalek rakudo/moar-support: review: https://github.com/rakudo/rakudo/commit/fd8671bf81
20:15 moritz https://visualize-your-git​.herokuapp.com/display/568
20:15 * lue currently has a parrot with a detached HEAD. There's a monty python sketch here...
20:16 lizmat TimToady, jnthn: trying to make sense of S17:437
20:16 synopsebot Link: http://perlcabal.org/syn/S17.html#line_437
20:16 timotimo now it gets through parsing the setting, but takes about 8gb of ram doing so
20:16 lizmat on line 438, it is assumed that the channel will return a true value if there is something there
20:16 FROGGS uhh, https://visualize-your-git​.herokuapp.com/display/571
20:17 FROGGS lue++ # *g*
20:17 jnthn lizmat: No, that's not how it works
20:17 lizmat and then take that channel?
20:17 jnthn lizmat: It's just sugar for what's there today...
20:18 stevan_ joined #perl6
20:18 FROGGS moritz: my graph shows that I am really confused :o)
20:18 lizmat well, I thought I understood what's there, but now am not so sure anymore
20:18 jnthn lizmat: So, it receives a value from the channel if it can and gives it to the block.
20:18 lizmat so it should return the value from the channel/supply, not the channel/supply itself, right ?
20:19 jnthn lizmat: I think the confusion is that "when" means "smartmatch" normally but here we're mangling it to mean something else.
20:19 lizmat well, yes, and I'm starting to think that is a mistake
20:19 lue .oO("Look, not 15 minutes ago, you assured me it was the newest in a long line of parrots! But when I tried to get it to play with my collection of fake pearls, it's head came clean off! This, my good fellow, is a detached. HEAD!")
20:19 lizmat so I'm suggesting this:
20:19 jnthn Note that to implement it as spec'd we need to put winner into the grammar
20:20 jnthn And parse when/default specially within it.
20:20 jnthn And then write actions that turn it into a call to some kind of WINNER primitive
20:20 lizmat indeed, but I first would like to get the functionality working without the sugar
20:20 jnthn OK, what aspect of it doesn't work today?
20:21 jnthn Today, we'd write what's in S17 there as (I think):
20:21 jnthn gather loop {
20:21 ssutch joined #perl6
20:21 jnthn winner(
20:21 lizmat in the orginal implementation, before I got my hands on it, any busy channel would hide any other channel if things were coming in too fast
20:21 lizmat so we need to randomize which channel/supply we're checking
20:21 lizmat agree ?
20:22 sqirrel joined #perl6
20:22 jnthn $c => { take $_ },
20:22 jnthn $c.closed => { last }
20:22 jnthn )
20:22 jnthn }
20:22 lue FROGGS: amazingly, RELEASE_5_9_0 still doesn't work :/
20:22 lizmat (that would be taking the channel ??)
20:22 jnthn lizmat: No
20:22 jnthn lizmat: Clearer is
20:22 jnthn $c => -> $val { take $val }
20:22 jnthn The argument to the closure is *the thing we got from the channel*
20:23 lizmat ok, and how would it know to differentiate that from when $c.closed, which is supposedly a Bool ?
20:23 lue heh :) https://visualize-your-git.her​okuapp.com/display/577/sparse
20:23 jnthn $c.closed is a Promise
20:23 lizmat looking at the method call ?
20:24 jnthn That is kept when the channel is completely read from
20:24 jnthn winner knows what to do with Channel and Promise
20:24 jnthn It doesn't really make sense to me (yet) to define it on Supply
20:25 lue to those who aren't having issues with NQP: you're using --gen-parrot, aren't you?
20:25 timotimo jnthn: i'm having big, big trouble keeping $*ACTIONS and $!ACTIONS in sync >_<
20:26 jnthn timotimo: Hm, ugh.
20:26 jnthn timotimo: OK, feel free to abort that for now, but can you push what you got so far to a branch so I can maybe take a look and try to work out why?
20:26 timotimo i surely can
20:26 timotimo i hope you can see my obvious mistake in just a few seconds :P
20:28 timotimo it's one branch for rakudo, one for nqp
20:28 dalek nqp: 337b16b | jnthn++ | src/vm/moar/QAST/QASTOperationsMAST.nqp:
20:28 dalek nqp: Map capturenamedshash op.
20:28 dalek nqp: review: https://github.com/perl6/nqp/commit/337b16bacf
20:28 timotimo %*LANG<MAIN-actions> := $*ACTIONS.HOW.mixin($*ACTIONS, ...), would i have to update $!ACTIONS after this?
20:29 jnthn Hmm
20:29 jnthn looking
20:29 timotimo it's in the Perl6/Grammar.nqp
20:29 stevan_ joined #perl6
20:29 jnthn oh, eek, nibble relies on the $*ACTIONS mechanism...
20:30 timotimo yes, i've got some small thing in place for that
20:30 jnthn hm, I'd forgot how many things did
20:30 jnthn d'oh
20:30 timotimo i have a method update_actions on NQPCursor that gets $*ACTIONS and puts it into $!ACTIONS
20:31 timotimo can you tell me what's the difference between $*ACTIONS and nqp::getlexdyn('$*ACTIONS')?
20:31 jnthn Nothing expect the second doesn't look in the current scope
20:31 timotimo ah, that's excellent
20:32 moritz so it's more like CALLER::<$*ACTIONS>
20:32 timotimo that's why it's super useful! :)
20:37 FROGGS lue: :/
20:37 FROGGS lue: ideas left: 0
20:38 * lue is trying gen-parrot fwiw
20:38 lue (if nqp-j could be directed to install to /usr/local ...)
20:40 FROGGS lue: last option would be to strip this line: nqp/src/vm/parrot/pmc/qrpa.pmc:28:    ASSERT_ARGS(COMPARE)
20:40 timotimo jnthn: i'm grepping both nqp/ and rakudo/src for ACTIONS and no mention of it is not related to some kind of "update $!ACTIONS, please" thing, and i'm trying to make sure it gets reset back when the local $*ACTIONs go out of scope
20:41 dalek nqp/actions_shared: d2f0d23 | (Timo Paulssen)++ | src/ (2 files):
20:41 dalek nqp/actions_shared: try to cache $*ACTIONS in ParseShared.
20:41 dalek nqp/actions_shared: review: https://github.com/perl6/nqp/commit/d2f0d23d52
20:41 lue FROGGS: last option would be to ditch parrot sooner than I'd thought ;)
20:42 FROGGS lue: we're working hard on it... well, the "we" is not me personally atm :/
20:42 dalek rakudo/actions_shared: 0294312 | (Timo Paulssen)++ | src/Perl6/Grammar.nqp:
20:42 dalek rakudo/actions_shared: trying to work with nqp/actions_shared
20:42 dalek rakudo/actions_shared: review: https://github.com/rakudo/rakudo/commit/0294312a7f
20:43 lue FROGGS: if I had to ditch parrot now, I would likely 1) strongarm nqp-j and r-j into /usr/local, and 2) help get r-m working :)
20:43 lue (note to self: *do not* allow rakudo-moar to be installed as r-m)
20:44 lue ... it works with gen-parrot o_o
20:48 denis_boyun_ joined #perl6
20:49 FROGGS O.o
20:49 lue yeah, somehow not gen-parroting is broken for me. Which isn't too surprising.
20:51 lue I... I just don't know anymore. I'd like to know how that happened.
20:56 denisboyun joined #perl6
20:57 lizmat gnight #perl6!
20:57 FROGGS gnight lizmat
20:59 timotimo gnight lizmat
21:02 berekuk joined #perl6
21:09 zamolxes joined #perl6
21:11 denis_boyun joined #perl6
21:32 denisboyun joined #perl6
21:33 logie joined #perl6
22:06 MikeFair_ joined #perl6
22:17 denis_boyun joined #perl6
22:20 berekuk joined #perl6
22:23 dmol joined #perl6
22:25 dalek rakudo/moar-support: 0e3c09f | jnthn++ | src/Perl6/World.nqp:
22:25 dalek rakudo/moar-support: Tweak for better line reporting.
22:25 dalek rakudo/moar-support:
22:25 dalek rakudo/moar-support: Probably helps JVM and Moar.
22:25 dalek rakudo/moar-support: review: https://github.com/rakudo/rakudo/commit/0e3c09f4de
22:28 timotimo that sounds good
22:29 denisboyun joined #perl6
22:35 dalek specs: 71d18c5 | larry++ | S17-concurrency.pod:
22:35 dalek specs: more coherent generic style for winner and combine
22:35 dalek specs: review: https://github.com/perl6/specs/commit/71d18c5297
22:37 denis_boyun joined #perl6
22:40 raiph joined #perl6
22:42 Guest76277 left #perl6
22:55 berekuk joined #perl6
23:02 sqirrel joined #perl6
23:02 xenoterracide joined #perl6
23:03 denisboyun joined #perl6
23:10 denisboyun joined #perl6
23:14 denis_boyun joined #perl6
23:18 denisboyun joined #perl6
23:23 denis_boyun joined #perl6
23:26 thundergnat joined #perl6
23:26 denisboyun joined #perl6
23:26 dalek nqp: 7a5ca8e | jnthn++ | src/vm/moar/QAST/QASTOperationsMAST.nqp:
23:26 dalek nqp: Decont before looking up method.
23:26 dalek nqp: review: https://github.com/perl6/nqp/commit/7a5ca8e99a
23:27 dalek rakudo/moar-support: 37ace08 | jnthn++ | src/vm/moar/ops/container. (2 files):
23:27 dalek rakudo/moar-support: Implement fetch part of Rakudo scalar.
23:27 dalek rakudo/moar-support: review: https://github.com/rakudo/rakudo/commit/37ace08398
23:28 thundergnat preflex: tell k-ray You may be interested in http://rosettacode.org/wiki/Draw_a_sphere#Perl_6 or http://rosettacode.org/wiki/Death_Star#Perl_6
23:28 preflex Consider it noted.
23:29 denis_boyun joined #perl6
23:31 thundergnat left #perl6
23:32 geekosaur joined #perl6
23:32 simcop2387 joined #perl6
23:46 denisboyun joined #perl6
23:47 dalek nqp: 652c784 | dwarring++ | examples/rubyish/ (3 files):
23:47 dalek nqp: rubyish code block & ref args. Implemented trial sort, map and grep
23:47 dalek nqp: review: https://github.com/perl6/nqp/commit/652c78463e
23:49 jnthn You know, when I made the Rubyish example, I really didn't expect it to go *this* far. :)
23:49 jnthn dwarring++
23:50 denis_boyun joined #perl6

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

Perl 6 | Reference Documentation | Rakudo