»ö« 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/7ExegC0JiaVariable '$self' is not declaredat /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_S1D6oVariable '$self' is not declaredat /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«42True» | ||
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
|