»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg camelia perl6: ... | irclog: irc.perl6.org | UTF-8 is our friend!
Set by sorear on 25 June 2013.
FROGGS that is the module database, right? 00:00
I just used json for now (because there is a module, and I can manipulate the database easily) 00:01
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
nqp-p --version 00:03
This is nqp version 2013.10-241-gfd308ad built on parrot 5.9.0 revision RELEASE_5_9_0
lue :/ at the end I get "cc1: some warnings being treated as errors", so perhaps therein lies the problem?
FROGGS: I'm at commit fd308ada ...
FROGGS that's the same 00:04
lue that's weird then.
FROGGS: yeah, I was confused by the initial 'g' :)
FROGGS nqp/parrot/src/utils.c:70:#define ASSERT_ARGS_COMPARE __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
lue: that does not belong the the version hash 00:05
the 'g' is always there :o)
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
FROGGS lizmat: yes
I remember :o)
lizmat problem I had with JSON is that it loses type information
FROGGS lue: is your parrot too old perhaps? can you grep for that #define? 00:06
lizmat: what do you mean? I only need strings, no?
lizmat is Any a string ?
FROGGS what should be Any? 00:07
I think that release a module involves putting information into it... and IMO auth and ver are not optional
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 :-)
lue FROGGS: but auth and ver are optional.
FROGGS lizmat: btw, json support null
lue: I don't think it can stay that way... 00:09
at least not for the version
lizmat it's just that I can foresee that :auth at least could become something else than just a string 00:10
something that stringifies, yes
FROGGS well, it could be a structure in json, no doubt
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.
lizmat but please, don't let me stop you!
FROGGS *g* 00:11
btw, I am not designing the final product... I just wanna make something that works
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
since you can pick the module loaders you want
(like a panda auto-installer)
00:13 Psyche^_ joined 00:16 Psyche^ left
lizmat indeed 00:17
or an installer from github or something akin CloudPan, that would allow execution on the fly (without installing)
ah, the possibilities 00:18
I'm gonna dream about them now
gnight, #perl6!
FROGGS gnight liz!
00:25 kurahaupo joined 00:26 kurahaupo_ joined, btyler joined 00:30 kurahaupo left 00:33 kurahaupo_ left
k-ray Perl 6 shininess: cyberuniverses.com/pray/ 00:36
tadzik amazing! 00:44
k-ray: is that your creation?
k-ray tadzik: it is
tadzik k-ray++ 00:45
k-ray thanks :) it only took about 9 or 10 hours to render on my $5/mo VPS
tadzik I look forward to seeing the code :) 00:47
experience tells me that people will find ways to make perl 6 faster by profiling it
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:48
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:50
tadzik hmm 00:51
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?
k-ray parrot...october rakudo star
on linux
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
but it's possible that it needs a couple of gigs to do the job 00:53
rakudo is quite a memory hog
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:54
tadzik any reason to not do this on your regular machine? 00:56
k-ray my best machine is pushing half a decade old...the VPS is actually somewhat faster :P 00:57
00:57 kurahaupo_ joined
k-ray where do I tune the garbage collection? 00:59
(on a side note, one of my laptops will outperform the VPS once I can make use of both CPU cores) 01:01
tadzik on jvm you can 01:02
k-ray hmmm
tadzik parrot has options like --gc-dynamic-threshold=percentage maximum memory wasted by GC
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 01:09 kurahaupo_ left 01:16 kurahaupo left
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
github.com/japhb/perl6-bench
it's on a website somewhere, I don't remember the URL though 01:20
diakopter some website with a URL, I think
k-ray lol 01:21
diakopter still giggling at "listless" 01:25
Amdahl's law 01:31
01:34 kurahaupo joined, xenoterracide left 01:44 logie joined 01:45 PacoAir left
diakopter and the momeraths outgrabe 01:49
01:49 M_o_C left 01:55 logie left 02:22 tgt left, kurahaupo left 02:25 kurahaupo_ joined 02:33 kurahaupo_ left 02:41 davecc1 joined 02:43 araujo left 03:02 davecc1 left 03:08 jnap left 03:18 kurahaupo joined 03:19 xenoterracide joined 03:23 kurahaupo left 03:27 kurahaupo joined 03:33 kurahaupo_ joined 03:34 kurahaupo left 03:35 kurahaupo joined 03:36 Grimnir_ joined 03:37 kurahaupo_ left 03:38 emma joined
emma Do any of you ever make irssi scripts? 03:38
w 3
03:38 xenoterracide left 03:45 kurahaupo_ joined 03:46 xinming left 03:47 xinming joined 03:48 xenoterracide joined 03:49 kurahaupo left 03:51 kurahaupo joined 03:54 kurahaupo__ joined 03:55 kurahaupo_ left 03:57 kurahaupo left 04:03 xenoterracide left 04:15 preflex_ joined, ChanServ sets mode: +v preflex_ 04:17 preflex left, preflex_ is now known as preflex 04:30 kurahaupo__ left 04:49 kurahaupo_ joined 05:02 BenGoldberg left 05:03 kurahaupo joined 05:06 kurahaupo_ left 05:10 kurahaupo_ joined, kurahaupo left 05:11 btyler left 05:14 kurahaupo_ left 05:30 kurahaupo joined 05:34 thou left 05:40 hummeleB1 left 05:47 bonsaikitten joined, DrEeevil left 05:48 kurahaupo left, kurahaupo joined 05:50 kurahaupo_ joined 05:52 thou joined 05:53 kurahaupo left 05:57 SamuraiJack joined 06:01 Grimnir_ left, Grimnir_ joined 06:03 kurahaupo joined 06:06 kurahaupo_ left 06:08 xinming left 06:10 xinming joined 06:16 xinming_ joined 06:19 xinming left
tadzik emma: nope; I wrote a few for weechat though, but not in Perl 6 :) 06:27
06:29 rurban1 joined 06:33 rurban1 left 06:38 xinming_ left, xinming joined 06:45 rurban1 joined 06:47 kurahaupo_ joined 06:49 kurahaupo__ joined 06:50 kurahaupo left 06:51 kurahaupo joined 06:52 kurahaupo_ left 06:53 rurban1 left 06:54 kurahaupo__ left 07:04 kurahaupo_ joined 07:08 kurahaupo left 07:15 xenoterracide joined 07:18 thou left 07:26 SamuraiJack left 07:35 kurahaupo joined 07:38 kurahaupo_ left 07:40 kurahaupo_ joined 07:42 kurahaupo left, kurahaupo__ joined 07:44 kurahaupo_ left 07:59 cibs left, wrp6 left, wrp6 joined, cibs joined, kurahaupo__ left 08:01 rurban1 joined 08:04 FROGGS[mobile] joined 08:05 araujo joined, araujo left, araujo joined 08:07 cognominal left 08:08 cognominal joined 08:13 kurahaupo joined
FROGGS k-ray++ 08:14
08:15 nnunley left
FROGGS timotimo: you might be interested in the fails of t/spec/S06-signature/unspecified.rakudo.parrot 08:16
moritz \o 08:20
08:22 kurahaupo_ joined, kurahaupo left 08:27 [Sno] left, rurban1 left, [Sno] joined
FROGGS morning moritz 08:27
you feel better? 08:28
moritz yes
(though not fully recovered yet)
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
FROGGS ahh, I thought we needed that feature 08:30
moritz wants to bake Vanillekipferl today
FROGGS moritz: we did that last sunday actually
we had Vanillekipferl, Zimtsterne, Butterplätzen and a delicious Marzipanstollen :o) 08:31
moritz and yesterday, Kokosmakronen :-)
08:32 kurahaupo__ joined, kurahaupo_ left
FROGGS my wife could do that every weekend... and she is a bit of a Christmas maniac 08:32
timotimo FROGGS: TimToady said it would be okay to do string comparison instead 08:34
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
FROGGS timotimo: how that? I think it was supposed to accepts things from nqp, non-6model things 08:35
rp: say num ~~ Any
camelia rakudo-parrot 8a0089: OUTPUT«True␤»
FROGGS rp: say str ~~ Any
camelia rakudo-parrot 8a0089: OUTPUT«True␤»
08:35 kurahaupo left 08:36 kurahaupo__ left
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:38
timotimo i think the slurpy is actually typeconstrained to Mu, but it doesn't stringify to say so 08:40
FROGGS ohh, I had thought it is Any too 08:41
rp: sub a(*@a) { 42 }; say a(Mu)
camelia rakudo-parrot 8a0089: OUTPUT«42␤»
FROGGS timotimo++ 08:42
08:43 mls left, webmind joined
webmind ah, this channel is bigger 08:43
moin
timotimo hi 08:44
FROGGS hi webmind
timotimo rp: sub a(*@a) { 42 }; say &a.signature.^methods
camelia rakudo-parrot 8a0089: OUTPUT«<anon> <anon> <anon> <anon> arity count params returns ACCEPTS perl␤»
timotimo rp: sub a(*@a) { 42 }; say &a.signature.params[0].^methods
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␤»
webmind I'm trying to install panda on ubuntu
timotimo rp: sub a(*@a) { 42 }; say &a.signature.params[0].constraints.perl
camelia rakudo-parrot 8a0089: OUTPUT«all()␤»
timotimo rp: sub a(*@a) { 42 }; say &a.signature.params[0].type.perl
camelia rakudo-parrot 8a0089: OUTPUT«Positional␤»
FROGGS webmind: the easiest thing would be to get rakudo star
timotimo hohum. 08:45
webmind FROGGS, and not panda?
timotimo panda is bundled in rakudo star
FROGGS webmind: rakudo star is the compiler plus modules, like panda
webmind ah
I kinda liked how rakudo was packaged in ubuntu
it's why I started looking at perl6 again
FROGGS webmind: might be a bit outdated still
what version is it?
webmind 2013.02.1 08:46
timotimo wow, that's *old*
FROGGS (two or three months does mean much these days for rakudo)
timotimo we do monthly releases (well, almost.)
webmind odd, the package version is 2013.03-1
FROGGS and I fear latest panda would not work on 2013.02 :/
webmind but there are no newed .deb files 08:47
*newer
FROGGS webmind: installing from source is no option?
webmind FROGGS, no
FROGGS :(
timotimo aaw
webmind that would mean I'd need to be able to do that on every system I'd want to run the code on
FROGGS well, then checkout an older version of panda?
timotimo do we know who packages rakudo for debian & ubuntu? 08:48
FROGGS we should be able to see that on debian's page
timotimo right
webmind timotimo, it's not in the package details
timotimo i recently stopped using debian, otherwise i maybe would have done something about it ...
FROGGS webmind: might that be an option? packages.debian.org/sid/rakudo 08:49
timotimo oh yes, that's the current one
webmind lemme try 08:50
FROGGS and see launchpad.net/ubuntu/+source/rakudo/2013.10-1
it is in proposed though
webmind it ofcourse dependson loads of libs I don't have yet 08:51
timotimo d'oh
08:53 berekuk joined 08:55 mls joined, grondilu joined
moritz has read research.microsoft.com/en-us/peopl...twatch.pdf and chuckled a lot 08:58
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
webmind well, 5 months :) 09:00
timotimo can we at least get 2013.12 in there? 09:02
that'll have a good chance of having the java port in finally
webmind I'd guess there should be time, I don't know when ubuntu freezes
timotimo or even better, 2014.01, because that has the new year number in it :P 09:03
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
although that's very easy nowadays
FROGGS webmind: would you use a perl.org ppa? 09:05
err, perl6.org
webmind sure
either :)
FROGGS damnit, now I'd need days that had at least 36 hours :( 09:06
timotimo try polyphasic sleep :)
FROGGS maybe I can sleep in parallel?
webmind wouldn't mind helping with running that, but no idea how to run a ppa :)
FROGGS me neither 09:07
timotimo well, you chmod +x it, and then you ./ it and presto!
FROGGS daxim++ could probably tell
09:07 kurahaupo joined 09:08 cognominal left
FROGGS but, I think S11 should happen before we can package modules... (I am working on S11 atm) 09:08
09:08 cognominal joined
timotimo you mean package individual modules as deb packets? 09:08
packages*
FROGGS timotimo: this is the only way a packager would go I think 09:09
webmind that would make sense 09:10
confusingly btw, there are some libperl6-* modules
in ubuntu (I'd guess also debian), which are perl5 modules :)
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"
yeah, hehe 09:11
>.<
09:11 sqirrel joined
webmind modules need to registered? 09:11
+be
timotimo in the future, yeah 09:12
FROGGS webmind: in contrast to P5 you can have several modules with the same package name installed
webmind why?
FROGGS and then a script or another module can use a specific version of a module, and another program just uses latest
webmind: read S11#1 :o) 09:13
webmind ah
FROGGS err
synopsebot: ?
perlcabal.org/syn/S11.html
webmind thnx 09:14
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
so, less breakage
since we can offer different module loaders, we could have a packager friendly one 09:16
I guess that would make daxim happy :o)
can somebody please test that for me? 09:17
perl6-j t/spec/S02-types/deprecations.rakudo.jvm
1..27
No such method 'package' for invocant of type 'Any'
webmind hmk
FROGGS I am not sure if my local hackage caused this to fail 09:18
09:18 kurahaupo left
eiro_ a 09:18
09:18 kurahaupo joined, wtw left 09:19 sqirrel left
timotimo deprecations is known to fail at least on the jvm 09:19
FROGGS cool
timotimo but see here for parrot: github.com/coke/perl6-roast-data/b...y.out#L250 09:20
09:20 go|dfish left, kurahaupo left, kurahaupo joined
timotimo github.com/coke/perl6-roast-data/b...y.out#L233 - that's the equivalent line for jvm 09:20
09:21 kurahaupo_ joined, go|dfish joined
dalek kudo/nom: dc3f0fb | (Tobias Leich)++ | src/Perl6/World.nqp:
use registered ModuleLoader instead of hardcoding P6::ML

When parsing we invoked P6::ML before, and at runtime the registered one. Now it is consistant and lets us register a custom ML.
09:22
webmind deprecations can be a good reason not to use the latest version of X :) 09:23
but then again, I guess rakudo doesn't have a stable release yet :)
FROGGS webmind: well, we are on a good path atm :o) 09:24
09:24 rurban1 joined
webmind FROGGS, yeah, it looks promising 09:24
FROGGS timotimo: thanks!
09:24 kurahaupo left, kurahaupo__ joined 09:27 kurahaupo_ left 09:38 rurban2 joined, rurban1 left 09:40 berekuk left 09:43 rurban2 left 09:49 berekuk joined
nwc10 good #perl6, UGT 09:54
09:55 kurahaupo__ left
FROGGS hi nwc10 10:00
10:02 kurahaupo joined 10:04 kurahaupo_ joined, kurahaupo left, kurahaupo joined 10:06 amkrankruleuen joined, kurahaupo_ left, kurahaupo_ joined
timotimo good good, good 10:08
10:09 kurahaupo left
timotimo does anyone feel like porting the richards benchmark to perl5 when i've finished making it work? 10:13
lizmat good *, #perl6!
what is the richards benchmark ?
timotimo it models a scheduler for IO and computation tasks 10:14
lizmat I'll give it a try after brunch& 10:15
timotimo but my code is currently not giving the right results :( 10:16
github.com/japhb/perl6-bench/blob/...p/richards - this is the nqp version, i would have to look again to find the values it's supposed to output 10:18
oh, the numbers are in there! 10:19
great
wait what, the code is actually correct? 10:20
i don't remember having fixed it :D
lizmat: if you were on questhub, i'd invite you to my quest ;)
questhub.io/realm/perl/quest/5286ba...5f3c0000d6 - this is the quest 10:21
10:23 sctt joined 10:28 iSlug left 10:42 rurban1 joined 10:46 dmol joined 10:48 SamuraiJack joined 10:57 kurahaupo_ left, kurahaupo joined 10:59 rurban1 left 11:07 sctt left 11:08 ssutch left, ssutch_ joined 11:24 kurahaupo_ joined, kurahaupo left 11:29 Rotwang joined
timotimo Stage pir : 3.141 11:29
we should put more precision into these outputs so i can see if it approximates pi well
11:33 rindolf joined 11:36 kurahaupo_ left, ssutch_ left, kurahaupo joined, woolfy left, woolfy1 joined, lizmat_ joined 11:38 lizmat left 11:40 lizmat_ is now known as lizmat
itz y 11:40
oops
11:42 berekuk left 11:46 rindolf left, rindolf joined 11:48 SamuraiJack left, SamuraiJack joined 11:49 kurahaupo left, kurahaupo_ joined
timotimo i was hoping my lexreg_opt branch would perhaps reduce memory usage, but it increases it instead 11:51
FROGGS lizmat: update: github.com/FROGGS/p6-S11Versioning.../README.md 11:58
lunch &
12:04 rindolf left, rindolf joined 12:06 tgt joined
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:09
12:11 lue left 12:12 gabriel left 12:13 pecastro joined, pecastro_ left 12:15 kurahaupo_ left 12:16 kurahaupo joined
FROGGS[mobile] Up to head 12:21
timotimo i'd still like to get the stage0-minifier to work :|
and then get eqat available in nqp's source code
12:24 lue joined 12:28 rindolf left 12:29 rindolf joined
FROGGS timotimo: can't you just filter the resulting diff? 12:43
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:45
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
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
timotimo: truee
-e
or....
you could just collect the lines you want to revert, and revert the source code files directly 12:49
I guess that was your plan?
12:49 rindolf left
timotimo my current plan scans the diff for -... +... pairs and builds a "database" 12:49
then it goes through all the stage0 files and replaces things it knows by the previous thing 12:50
it takes a lot of time, even with the jvm version and parallelism
i might re-do it in python and it'd run in a fraction of the time >_< 12:51
especially if i run it with pypy
there's simply no contest there.
which makes me sad. but oh well. that's why i'm here :)
where does the QAST Compiler actually spit out an invocation of the nfa?
FROGGS well, it make sense to use something else than nqp/perl6, because you are fiddling with these
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?
timotimo and since i use jvm's parallelism stuff anyway, i just need a perl6-j
12:53 PacoAir joined
timotimo oh, it calls the actual method of a QRegex::NFA instance 12:53
12:54 kurahaupo left, kurahaupo joined 12:57 kurahaupo_ joined, kurahaupo left
timotimo i see no mention of "run_alt" or even "run" in the QAST/Compiler.nqp :\ 12:57
ah, there it is! 12:58
13:02 rindolf joined, cognominal left
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:03
13:05 kurahaupo joined, kurahaupo_ left
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:06 kurahaupo left 13:07 kurahaupo joined
timotimo (a lexical after an alt will be skipped completely instead of matched) 13:07
(a literal*)
jnthn Glad you corrected that :P 13:09
Afternoon, #perl6
FROGGS hi jnthn
timotimo oh, interesting, literal in qregex is still using substr + eq even in the case sensitive case
i could optimize that with an eqat, even on master
timotimo runs the tests 13:10
t/nqp/19-file-ops.t ................... Failed 8/40 subtests - is that my fault? 13:11
nope, because i'm running nqp-j which i didn't change 13:12
jnthn timotimo: You mean !LITERAL?
o/ FROGGS
timotimo "method literal" in the QAST Compiler
jnthn ah
timotimo generates a substr + 'eq'/'ne' op
!LITERAL was patched that way a week ago or so
All tests successful. - crazy! :) 13:13
there's not terribly many literals in rakudo's grammar, but it may still make a difference.
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
timotimo Stage parse : 104.930 13:17
jnthn What was it before?
timotimo 106-ish 13:19
so no visible change
i'll get some debug output to tell me if the optimisation even happened at all
well, visible change, but nothing impressive 13:20
13:20 lizmat_ joined
timotimo yeah, it does the optimization 13:20
13:21 woolfy joined
timotimo it mostly skips 1 or 2 characters long literals it seems 13:21
13:21 woolfy1 left
FROGGS so, I am thinking about how the compiler should remember the shiny module loaders / ComUnitRepos... 13:22
13:22 lizmat left
FROGGS I think that we would need some config file with a fixed name that the compiler knows about, alá: 13:22
ModuleLoader::Classic : [ "/home/froggs/dev/nqp/install/"[...] ] 13:23
ModuleLoader::Shiny : [ "/usr/lib/perl6/modules.sqlite" ] 13:24
something like that
timotimo widens the optimisation significantly 13:25
FROGGS this file would be managed by panda, or a tool that is shipped by the compiler
jnthn
.oO( Who loads the loaders... )
FROGGS the loader \o/
timotimo there's some 1-char-literals that could get ordat instead of eqat. 13:26
jnthn Is that actually faster? 13:27
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
but i'm pushing pirops here. i think it would be faster.
13:28 kurahaupo left, kurahaupo joined
timotimo it may not actually make a big difference, though, you may be right there. 13:29
FROGGS we might stop when stage optimise takes longer than stage parse :P 13:30
timotimo :D
this optimisation happens directly in the qast compiler, not in the optimiser
FROGGS aha! you even hide it! 13:31
timotimo :D
jnthn Hm, so the Rakudo on Moar failure mode changed... 13:32
13:32 rindolf left
FROGGS O.o 13:33
jnthn Cannot find method 'arity'
timotimo oh no, that must be my fault
FROGGS ahh
timotimo did you get a fresh nqp?
jnthn Yeah
timotimo oh crap.
jnthn but mebbe I need to merge latest nom in?
timotimo oh. yes, there's a commit you need there
13:33 woolfy1 joined
timotimo it checks istype against QAST::Block before trying to .arity a qast node 13:33
13:34 woolfy left
jnthn yeah, it was way behind 13:34
merged locally, retryng
FROGGS right
"retryng" sounds a bit Scottish though 13:36
jnthn yeah, that gets things bck to where we were a week or so ago
timotimo phew 13:37
dalek Heuristic branch merge: pushed 33 commits to rakudo/moar-support by jnthn
FROGGS jnthn: do you have time to attack it?
jnthn Yeah, this weekend is pretty free. Slept lots, but my brain still feels like a big heap of mush... 13:38
FROGGS :/
I have beer here though :o)
problem is: when I drink that early, I'll instantly fall asleep
jnthn Oh, when I get to that time of day my fridge has some great stuff. :)
timotimo one thing that may be good to try is reducing the amount of checks against pos and eos
jnthn timotimo: Given that's just comparing two integers... 13:39
FROGGS so, I expect to have nice Czech beer at midnight or later
jnthn Czech is good :)
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, sctt left
jnthn has a 15% ale from NL to try at some point... :) 13:40
FROGGS hehe
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 :\
jnthn timotimo: Sounds micro-opt-y
timotimo i must run a primitive benchmark that directly hits literals i think
jnthn (The skipping pos < eos checks)
FROGGS timotimo: that is the point somehow... there are no big issues I fear
timotimo yes, i'll keep that until we're at 10 seconds for stage parse and still need a bit more speed :P
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
at least it'll keep me busy :P
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...
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
FROGGS I guess the huge as_post mmd (multi mass dispatch) is slow, but is that really so?
we need some better profiler tools I think
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
jnthn Yes, those two do.
FROGGS I hope that we an port these hot paths to C on moar some day 13:45
this would at least eliminate^Wreduce function call overhead, if nothing else
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)
(for compiling rakudo for example=
)
jnthn Well, the REPR specialization is the first step
timotimo i got about 0.5% out of the whole thing \o/ 13:49
:P
jnthn: i'll try that. dynamic vars are a bit slow?
jnthn timotimo: Well, it's a hash lookup at every frame, the parse goes quite deep...
timotimo: You'll need some care in e.g. LANG
13:51 tobyink joined
tobyink Hello, can anyone offer a Rakudo-to-English translation of an error message for me? 13:52
"SORRY! Cannot type check against type variable $?CLASS"
13:52 dmol left
tobyink Helpfully, no pesky line numbers clutter up the message. 13:52
13:53 dmol joined
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"
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.
jnthn: indeed. I'll paste it somewhere and post a link.
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 paste.scsys.co.uk/paste
Grrr...
FROGGS *g*
tobyink paste.scsys.co.uk/278650
FROGGS $self?
strip the $
rp: role R { method foo { say $self } }; class C does R { }; say C.foo 13:57
camelia rakudo-parrot dc3f0f: OUTPUT«===SORRY!=== Error while compiling /tmp/7ExegC0Jia␤Variable '$self' is not declared␤at /tmp/7ExegC0Jia:1␤------> role R { method foo { say $self⏏ } }; class C does R { }; say C.foo␤ expecting any of:␤ …»
jnthn tobyink: Can you nopaste me the very long backtrace?
timotimo without $ 13:58
tobyink FROGGS - thanks; that stops the error, but I don't get any output at all now.
FROGGS rp: role R { method foo { say $self.noise }; method noise { ... } }; class C does R { }; say C.foo
camelia rakudo-parrot dc3f0f: OUTPUT«===SORRY!=== Error while compiling /tmp/6Nsg_S1D6o␤Variable '$self' is not declared␤at /tmp/6Nsg_S1D6o:1␤------> role R { method foo { say $self.noise⏏ }; method noise { ... } }; class C does␤ expecting a…»
FROGGS rp: role R { method foo { say self.noise }; method noise { ... } }; class C does R { }; say C.foo
camelia rakudo-parrot dc3f0f: OUTPUT«===SORRY!===␤Method 'noise' must be implemented by C because it is required by a role␤»
FROGGS rp: role R { method foo { say self.noise }; method noise { 42 } }; class C does R { }; say C.foo
camelia rakudo-parrot dc3f0f: OUTPUT«42␤True␤»
jnthn tobyink: Types are not strings in Perl 6.
tobyink: Not ever.
FROGGS tobyink: looks like stubbed methods don't land in the class 13:59
tobyink jnthn: OK, so that's the .does(...), right?
jnthn $tractor.does('Hitchable'); # is $tractor.does(Str) which is always false as Str is not even a role :)
Right.
tobyink Yay! It runs!
jnthn: here's that stack trace - paste.scsys.co.uk/278651 14:00
jnthn Gallops, no? :P
tobyink: Yeah, it's an error reporting error
timotimo: I think you did suggest_lexical? Can you look into making it robuster? :)
timotimo is it my fault? oops 14:01
jnthn timotimo: Well, "fault".
timotimo i'm sorry, tobyink
jnthn timotimo: It's just that the code isn't aware that type variables might sneak in I gues 14:02
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.
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 dmol left
camelia rakudo-parrot dc3f0f, rakudo-jvm dc3f0f: OUTPUT«Perl6::Metamodel::GenericHOW.new()␤» 14:03
jnthn Yeah.
14:03 dmol joined
jnthn tobyink: Cool! Will be interested to read that. 14:04
timotimo jnthn, you made method is_type ;)
jnthn :P
hm :)
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. :-)
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.
o/ eiro_ 14:06
14:06 eiro_ is now known as eiro
FROGGS hi eiro 14:06
and a semicolon after ... does not make very much sense :o)
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)
FROGGS but that is just cosmetic
timotimo jnthn: i don't understand why it explodes; the code in is_type is wrapped in a try. 14:09
jnthn timotimo: is_type isn't anywhere on the backtrace? 14:10
It fails in walk_block?
timotimo it's the one on line 2054
and 2053
wait
i must have a different version
jnthn hmm 14:11
timotimo sorry, i don't understand where the type check actually happens 14:12
i mean
it does nqp::istype($val, QAST::Block)
but neither is there a type variable involved, nor should it throw, because it has a try right before it
jnthn: yeah, i have *no* idea how to properly track changes to LANG :| 14:13
jnthn um
my $val := $symp.value<value>;
if (try nqp::istype($val, QAST::Block)) {
timotimo i don't even know if there's a central spot where that would happen
jnthn Is that *ever* true?
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.
i don't really know why i did that :)
jnthn I don't understand what it's doing :)
I mean, it' already walking all the scopes with the for @!BLOCKS... 14:15
There's not really other places to look.
timotimo good, i'll just kill that branch then
jnthn Should probably add a test to cover it too...
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
jnthn Yeah, but not one where it suggests a variable inside a role, I guess... :)
timotimo oof ;) 14:17
is there a special method/sub that is a good spot to hook into for checking if $*ACTIONS has changed?
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?
timotimo: I don't think we need to support people just doing :my $*ACTIONS = ...; 14:19
timotimo: iiuc, the API is that the current actions are available through $*ACTIONS...
timotimo ah. i must look into LANG
jnthn Not that you set the actions by declaring one. 14:20
timotimo good 14:21
is LANGs return value used? 14:24
jnthn Yeah 14:25
I mean, that's what was parsed in the other language 14:26
timotimo OK 14:27
timotimo compiles a version with the ACTIONS cache 14:29
Method 'has_compile_time_value' not found for invocant of class 'NQPMu' - oops :) 14:31
in colonpair_nibble_to_str ... :\
timotimo has an idea 14:33
moritz too 14:34
but my 'git pull' hangs :( 14:35
timotimo nope. 14:37
i'll go for a walk in the park instead
see you in ~an hour :)
14:38 FROGGS[mobile] left
FROGGS o/ have fun 14:38
moritz r: say chars 'CORE.setting' 14:43
camelia rakudo-parrot dc3f0f, rakudo-jvm dc3f0f: OUTPUT«12␤»
14:46 xinming left 14:50 xinming joined 14:53 FOSScookie joined 14:56 kurahaupo left, kurahaupo joined 15:00 kurahaupo_ joined, kurahaupo left 15:10 berekuk joined
dalek kudo/nom: 5d2cbe4 | moritz++ | src/core/Backtrace.pm:
Fix classification of errors as coming from the setting

the build system refactor changed the file name of the generated CORE.setting file
15:13
moritz runs ulimit -v $(./perl6-p -e 'say 2**21') before spectesting 15:14
if anybody wants to see the logs of the moar-support branch, I recommend git log --first-parent origin/moar-support 15:22
the --first-parent means that the commits pulled in by merging nom into moar-support aren't shown
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 :(
FROGGS ó.ò
somewhere along S06?
15:28 kurahaupo_ left, tobyink left
moritz dunno 15:28
jnthn Adding --no-merges probably declutters it further
moritz the fact that stuff freezes makes it kinda hard to switch to the right terminal and see where it hangs 15:29
dalek kudo/moar-support: 339c340 | jnthn++ | src/ (2 files):
Stub p6isbindable, getting us a bit further.
nwc10 moritz: solution - ssh to a different laptop to run the tests? (or ssh from a different laptop)
moritz nwc10: ENOTENOUGHLAPTOPS 15:32
though I put a rasperberry pi on my christmas wish list :-)
FROGGS 's Christmast present was the trip to Frankfurt 15:33
Christmas* 15:34
moritz good one :-)
15:35 kurahaupo joined
FROGGS yes, it was awesome :o) 15:35
moritz now trying a single-job spectest with a more sever memory limit 15:36
15:36 tobyink joined 15:37 denis_boyun joined, kurahaupo left, kurahaupo joined, kurahaupo left 15:39 raiph joined
emma Do any of you ever make irssi scripts? 15:40
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
FROGGS emma: no, never till now
emma FROGGS: i see.
jnthn just uses it as it is 15:43
15:43 kurahaupo joined
emma irssi is scripted in perl so many of you could probably do it easily. 15:43
moritz also 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 ;)
moritz emma: modulo documention of the plugin system
emma for me its lack of ability :(
moritz no worry, you can learn 15:45
though I'd recommend a Perl 5 channel plus a book for that :-) 15:46
emma There's a lot of Germans here. I just noticed. (nothing wrong with that, just stood out to me) 15:47
Is Perl6 very popular in Germany?
huf there's a lot of germans period :)
FROGGS hmmm, don't think it is more popular here than anywhere else... 15:48
just coincidence :o)
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...
moritz also Germany is usually the first or second country of YAPC::EU participants (after the host country)
huf i think some nationalities keep to their own channels and others frequently join american/uk english-speaking ones 15:49
germans do, so they're a visible nationality on irc :)
timotimo has returned
FROGGS jnthn: might be... last time 130 peeps, the workshops before had about 80 I think
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
uh
Hannover
...wat :)
moritz jnthn: Freud is typing today? :-)
jnthn Thankfully not :)
At least I didn't type Hamburg :) 15:52
huf or "mother"
jnthn seems to confuse those two a bunch...
I mean, they're both north-ish :)
moritz and both match /^Ha/ :-)
nwc10 I do too
moritz but only one them is a Hansestadt, and very proud of it 15:53
timotimo lots of planets have a north!
FROGGS I will be there too
nwc10 I will be surprised if I'm not there
moritz won't :(
nwc10 awww. 15:54
moritz bad timing (rather close to ETA of me.children[1])
FROGGS uhh, children++
huf that's not a terrible reason to be kept away
moritz huf: agreed :-) 15:55
huf very exhausting i imagine :)
timotimo when is GPW in hannover?
moritz on of the best, actually
15:55 kurahaupo_ joined
moritz timotimo: end of March 15:55
timotimo mhm, mhm
maybe exam timings will allow me to attend, too. a perl6er will probably be welcome there, right? :)
nwc10 act.yapc.eu/gpw2014/ -- sign up now!
moritz timotimo: they usually are :-) 15:56
timotimo "See want you as an speaker" wat
15:56 mtk left
FROGGS maybe "See" is a nick? 15:56
O.o
huf has to be a plural 15:57
moritz probably s/See/We/
huf maybe they mean the holy see?
moritz or maybe the lake wants you as a speaker :-)
timotimo the what now
huf the usual madness.
moritz: damp women distributing speaking slots is no basis for a conference! 15:58
moritz timotimo: just joking around, cause see = lake
15:58 kurahaupo left
timotimo yeah 15:58
moritz informed one of the organizers about the typo 15:59
timotimo can the result of nqp::can be invoked? or is it required to findmethod after can-ing? 16:03
jnthn timotimo: nqp::can is just 0/1 16:04
timotimo OK
is "findmethod if can" already optimal?
moritz is there a variant of findmethod that doesn't die when nothing is found?
timotimo i suppose it probably hits the C cache 16:05
16:08 beastd joined 16:11 kurahaupo joined 16:14 kurahaupo_ left, kurahaupo_ joined, kurahaupo left 16:15 kivutar joined 16:16 kurahaupo joined 16:19 kurahaupo_ left 16:22 mtk joined
timotimo ah, nibble is expecting my $*ACTIONS to work just like that 16:25
16:25 tobyink left 16:26 denis_boyun left
timotimo that's why nothing i tried to do worked :P 16:26
16:27 denisboyun joined
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.
dalek kudo/moar-support: 4a2b7bb | jnthn++ | src/Perl6/Metamodel/BOOTSTRAP.nqp:
Start filling out more of the binder logic.
16:30
jnthn timotimo: REally it needs to make a .bat or shell script.
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... ;)
timotimo: Though, writing one in NQP could be a good idea.
timotimo mhm 16:32
16:35 dmol left, dmol1 joined, woolfy1 left 16:36 lizmat joined, woolfy joined 16:39 lizmat_ left
timotimo meeeeeh, this isn't working and the error messages are unhelpful 16:40
16:53 FOSScookie left 16:57 labster left
timotimo there must be some way to find out where my actions and the cached actions are going out of sync 17:00
and i think i kind of know how to do it
17:02 Guest76277 joined 17:04 btyler joined 17:10 berekuk left 17:11 berekuk joined
dalek ast: f1d90ff | moritz++ | S06-signature/unspecified.t:
avoid using typed slurpy for unrelated things
17:18
timotimo lizmat is having quite the brunch :) 17:32
lizmat sorry, was away some more
timotimo no problem ;) 17:33
lizmat shopping, re-positioning our wifi now that we have glass and 100Mbit supposedly
getting the power cable of the wifi lengthened
stuff you know
now it's time for dinner :-)
back later& 17:34
timotimo oooh, how much upstream do you have?
lizmat supposedly 100Mbit as well 17:35
timotimo holy want!
FROGGS O.o 17:52
dalek kudo/moar-support: 4ac4643 | jnthn++ | src/vm/moar/ops/perl6_ops.c:
Chase API change.
17:58
18:17 stevan__ joined 18:18 mtk left 18:19 stevan_ left 18:21 mtk joined
lue has no-one else gotten problems with qrpa.c while compiling nqp-p? 18:42
TimToady is still feebly backlogging 18:43
18:43 thou joined
[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:44
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?
lue FROGGS: gist.github.com/lue/55fe66c4328ce963a004 18:48
(and no, it doesn't matter if I use gcc or clang)
[Coke] timotimo: that's the point of using something like cachegrind, you're comparing work done, not time spent. IIRC.
FROGGS lue: do you have more than one parrot installed? 18:49
timotimo oh
well, we have a GC ;)
lue FROGGS: no...?
FROGGS hmmm
nqp/parrot/src/utils.c:70:#define ASSERT_ARGS_COMPARE __attribute__unused__ int _ASSERT_ARGS_CHECK = (\ 18:50
and there is not even an #ifdef before that line
lue Unless it's suddenly a bad thing to have libraries as far back as 4.10.0 18:51
18:51 denisboyun left
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
moritz lue: that's not the only parrot component
lue Also 1 parrot-nqp, parrot-prove, parrot_config, and parrot_nci_thunk_gen 18:53
(and I don't see anything but 5.9.0 in the configure and make output for nqp) 18:54
FROGGS no idea :/ 18:58
moritz qrpa.c:54:5: error: use of undeclared identifier 'ASSERT_ARGS_COMPARE'
ASSERT_ARGS(COMPARE) 18:59
moritz doesn't understand the jump from ASSERT_ARGS(COMPARE) to ASSERT_ARGS_COMPARE
geekosaur presumably it's a macro? #define ASSERT_ARGS(x) ASSERT_ARGS_ ## x 19:00
lue moritz: /usr/local/include/parrot/5.9.0-devel/parrot/exceptions.h:293:28: note: expanded from macro 'ASSERT_ARGS'
# define ASSERT_ARGS(a) ASSERT_ARGS_ ## a ;
moritz eeks. 19:01
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:03
19:03 cooper left 19:06 sqirrel joined
emma TimToady: maybe you could use a hash? 19:09
FROGGS emma: I think that was a joke :o) 19:10
timotimo luckily there's test cases in nqp/t/ that trigger my bug 19:12
so i know i don't have to look at rakudo yet
TimToady welcomes emma to the madness :) 19:13
nwc10 even Perl 5 isn't *that* crazy on that one 19:14
geekosaur someone already passed emma the hash... :p
nwc10 and Parrot stole that from Perl 5
moritz pmurias++ # lots of nqp tests
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
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
but yes, in the general case, stuff is old
and dates from before I knew C. Or dealing with compilers that were around from then.
TimToady
.oO(ow)
lue moritz: what should I do to deal with qrpa? Delete the non-relevant directories under /usr/local/lib/parrot/ ? Something else? 19:21
moritz lue: that would be one approach 19:22
the other would be to figure out whether the missing macro was defined anywhere
timotimo ooooh desert bus for hope. swee.
19:23 frdmn joined
lue moritz: FROGGS seems to have found it (see the last 50m mark in the log) 19:24
FROGGS utils.c or so
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:25
emma FROGGS: oh sorry. Im just learning programming. (trying to) 19:26
timotimo throws his arms up in frustration
look what you made me do, rakudo! now i tore off my arms!
TimToady \o/ oh wait 19:27
o
19:31 cooper joined
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 :)
lue (removing the libraries helped not at all :/) 19:34
FROGGS lue: do you see that this utils.c gets compiled? 19:35
lue FROGGS: where would I see this? nqp or parrot?
FROGGS in the build output before it fails
of parrot, since it fails to build parrot, right?
lue I see a utils.o in the parrot/src directory, does that count? :) 19:38
FROGGS yes 19:40
timestamp?
19:40 Rotwang left
timotimo oh gerd dermit 19:41
19:41 xinming left
timotimo even without my changes, the build fails 19:41
so i've been trying to debug something that's not even there
FROGGS that is something you should check first... 19:42
like here using camelia
timotimo i was expecting the build to not fail :/
19:42 labster joined
FROGGS wait, the build fails? 19:42
not the test you mentioned earlier? 19:43
timotimo yeah. but how?!
19:43 xinming joined
timotimo Stage start : 0.000 19:43
Method 'has_compile_time_value' not found for invocant of class 'NQPMu'
FROGGS hmmm
dalek kudo/moar-support: 1f178a9 | jnthn++ | src/Perl6/Metamodel/BOOTSTRAP.nqp:
A little more work on bind_one_param.

Gets us through binding a positional parameter, at least.
lue FROGGS: Nov 15 22:06 ../parrot/src/utils.o (so it's recently made)
FROGGS lue: and that utils.o get used later? 19:44
gets*
timotimo: that is rakudo@parrot?
lue I don't know, let me attempt the build output again.
timotimo it is! 19:45
master/nom, clean and stuff ... but how?!
timotimo tries cleaning
19:49 lizmat left
lue FROGGS: it gets used in libparrot.a and libparrot.so.5.9.0 19:49
FROGGS well, that is perfect 19:50
lue idly wonders if not using without-pcre is the cause...
timotimo well, i should probably be happy. it now fails building every try.
19:51 SamuraiJack left 19:52 woolfy left
timotimo oh, nah, i actually failed to remove all my changes 19:52
19:56 lizmat joined 19:57 woolfy joined, Rotwang joined
lue is very unhappy that there's no apparent "ur doin it rong" solution 19:58
20:01 xinming left
timotimo TIMTOWTDIW 20:01
20:01 sqirrel left 20:02 xinming joined
timotimo ah, whew, stashing my changes makes it build again 20:03
FROGGS phew
bilding right now on my box...
building*
lue FROGGS: could it be that _COMPARE is defined in utils.*c*, instead of some utils.h ? 20:04
interesting turn of events: there is no utils.h 20:05
timotimo oh crap 20:06
i know what i did wrong
wow.
FROGGS timotimo: seems to build fine here
lue ō.o apparently, NQP has *nothing* to do with my problem.
~/gitrepos/nqp $ ack -u ASSERT_ARGS_COMPARE 20:07
matthew@AMD64 ~/gitrepos/nqp $
FROGGS correct, your parrot fails to build
lue FROGGS: no, my parrot fails to be part of a build :P
FROGGS hmmm
lue (knowing this is all within parrot suddenly makes this a less nonsensical issue to have suddenly occurred) 20:08
Oh by the way, does rakudo-m work yet? :)
timotimo we don't get terribly far 20:09
FROGGS lue: see #moarvm
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
will it come back up? 20:12
FROGGS lue: can you got to your parrot die, checkout RELEASE_5_9_0, and reinstall? 20:13
I guess the packfile api changes breaks it
timotimo there it is 20:14
dalek kudo/moar-support: fd8671b | jnthn++ | src/Perl6/Metamodel/BOOTSTRAP.nqp:
First pass a named parameter binding.
moritz 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...
lizmat TimToady, jnthn: trying to make sense of S17:437 20:16
synopsebot Link: perlcabal.org/syn/S17.html#line_437
timotimo now it gets through parsing the setting, but takes about 8gb of ram doing so
lizmat on line 438, it is assumed that the channel will return a true value if there is something there
FROGGS uhh, visualize-your-git.herokuapp.com/display/571
lue++ # *g* 20:17
20:17 stevan__ left
jnthn lizmat: No, that's not how it works 20:17
lizmat and then take that channel?
jnthn lizmat: It's just sugar for what's there today... 20:18
20:18 stevan_ joined
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
jnthn lizmat: So, it receives a value from the channel if it can and gives it to the block.
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.
lizmat well, yes, and I'm starting to think that is a mistake
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!")
lizmat so I'm suggesting this:
jnthn Note that to implement it as spec'd we need to put winner into the grammar
And parse when/default specially within it. 20:20
And then write actions that turn it into a call to some kind of WINNER primitive
lizmat indeed, but I first would like to get the functionality working without the sugar
jnthn OK, what aspect of it doesn't work today?
20:20 stevan_ left
jnthn Today, we'd write what's in S17 there as (I think): 20:21
gather loop {
20:21 ssutch joined
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
so we need to randomize which channel/supply we're checking
agree ?
20:22 sqirrel joined
jnthn $c => { take $_ }, 20:22
$c.closed => { last }
)
}
lue FROGGS: amazingly, RELEASE_5_9_0 still doesn't work :/
lizmat (that would be taking the channel ??)
jnthn lizmat: No
lizmat: Clearer is
$c => -> $val { take $val }
The argument to the closure is *the thing we got from the channel*
lizmat ok, and how would it know to differentiate that from when $c.closed, which is supposedly a Bool ? 20:23
lue heh :) visualize-your-git.herokuapp.com/d...577/sparse
jnthn $c.closed is a Promise
lizmat looking at the method call ?
jnthn That is kept when the channel is completely read from 20:24
winner knows what to do with Channel and Promise
It doesn't really make sense to me (yet) to define it on Supply
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 >_<
jnthn timotimo: Hm, ugh. 20:26
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?
timotimo i surely can
i hope you can see my obvious mistake in just a few seconds :P 20:27
it's one branch for rakudo, one for nqp 20:28
dalek p: 337b16b | jnthn++ | src/vm/moar/QAST/QASTOperationsMAST.nqp:
Map capturenamedshash op.
timotimo %*LANG<MAIN-actions> := $*ACTIONS.HOW.mixin($*ACTIONS, ...), would i have to update $!ACTIONS after this?
jnthn Hmm 20:29
looking
timotimo it's in the Perl6/Grammar.nqp
20:29 stevan_ joined
jnthn oh, eek, nibble relies on the $*ACTIONS mechanism... 20:29
timotimo yes, i've got some small thing in place for that 20:30
jnthn hm, I'd forgot how many things did
d'oh
timotimo i have a method update_actions on NQPCursor that gets $*ACTIONS and puts it into $!ACTIONS
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
timotimo ah, that's excellent
moritz so it's more like CALLER::<$*ACTIONS> 20:32
timotimo that's why it's super useful! :)
FROGGS lue: :/ 20:37
lue: ideas left: 0
lue is trying gen-parrot fwiw 20:38
(if nqp-j could be directed to install to /usr/local ...)
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
dalek p/actions_shared: d2f0d23 | (Timo Paulssen)++ | src/ (2 files):
try to cache $*ACTIONS in ParseShared.
20:41
lue FROGGS: last option would be to ditch parrot sooner than I'd thought ;)
FROGGS lue: we're working hard on it... well, the "we" is not me personally atm :/ 20:42
dalek kudo/actions_shared: 0294312 | (Timo Paulssen)++ | src/Perl6/Grammar.nqp:
trying to work with nqp/actions_shared
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
(note to self: *do not* allow rakudo-moar to be installed as r-m)
... it works with gen-parrot o_o 20:44
20:47 ssutch left 20:48 denis_boyun_ joined
FROGGS O.o 20:49
lue yeah, somehow not gen-parroting is broken for me. Which isn't too surprising.
I... I just don't know anymore. I'd like to know how that happened. 20:51
20:53 denis_boyun_ left 20:55 raiph left 20:56 denisboyun joined
lizmat gnight #perl6! 20:57
FROGGS gnight lizmat
timotimo gnight lizmat 20:59
21:00 berekuk left 21:03 berekuk joined 21:09 zamolxes joined 21:11 denis_boyun joined, denisboyun left 21:16 denis_boyun left 21:32 denisboyun joined 21:33 logie joined 21:43 sqirrel left 21:51 beastd left 22:06 MikeFair_ joined 22:17 denis_boyun joined 22:18 berekuk left 22:19 denisboyun left 22:20 berekuk joined 22:23 dmol1 left, dmol joined
dalek kudo/moar-support: 0e3c09f | jnthn++ | src/Perl6/World.nqp:
Tweak for better line reporting.

Probably helps JVM and Moar.
22:25
timotimo that sounds good 22:28
22:29 denisboyun joined 22:30 denis_boyun left
dalek ecs: 71d18c5 | larry++ | S17-concurrency.pod:
more coherent generic style for winner and combine
22:35
22:37 denis_boyun joined, berekuk left 22:39 denisboyun left 22:40 raiph joined 22:42 Guest76277 left 22:43 xenoterracide left 22:46 kivutar left 22:55 berekuk joined 23:01 logie left 23:02 sqirrel joined, xenoterracide joined 23:03 denisboyun joined 23:04 denis_boyun left 23:09 denisboyun left 23:10 denisboyun joined 23:14 denis_boyun joined, raiph left 23:16 denisboyun left 23:18 denisboyun joined 23:19 sqirrel left 23:20 denis_boyun left 23:23 denis_boyun joined 23:24 denisboyun left 23:25 geekosaur left 23:26 thundergnat joined, denisboyun joined
dalek p: 7a5ca8e | jnthn++ | src/vm/moar/QAST/QASTOperationsMAST.nqp:
Decont before looking up method.
23:26
kudo/moar-support: 37ace08 | jnthn++ | src/vm/moar/ops/container. (2 files):
Implement fetch part of Rakudo scalar.
23:27
thundergnat preflex: tell k-ray You may be interested in rosettacode.org/wiki/Draw_a_sphere#Perl_6 or rosettacode.org/wiki/Death_Star#Perl_6 23:28
preflex Consider it noted.
23:28 denis_boyun left 23:29 denis_boyun joined 23:31 denisboyun left, thundergnat left 23:32 geekosaur joined, simcop2387 joined 23:46 denisboyun joined
dalek p: 652c784 | dwarring++ | examples/rubyish/ (3 files):
rubyish code block & ref args. Implemented trial sort, map and grep
23:47
23:48 denis_boyun left
jnthn You know, when I made the Rubyish example, I really didn't expect it to go *this* far. :) 23:49
dwarring++
23:50 denis_boyun joined, denis_boyun left 23:51 denisboyun left