»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: irc.perl6.org/ | UTF-8 is our friend! Set by sorear on 4 February 2011. |
|||
00:02
kurahaupo joined
|
|||
grondilu | rn: say <1/3>.Rat; | 00:03 | |
p6eval | niecza v22-36-g19fa03a: OUTPUT«0.33333333333333331» | ||
..rakudo bf472b: OUTPUT«0.333333» | |||
grondilu | rn: say <1/3>.WHAT; | ||
p6eval | niecza v22-36-g19fa03a: OUTPUT«Rat()» | ||
..rakudo bf472b: OUTPUT«Str()» | |||
00:04
Chillance left
|
|||
lue | colomon: have you checked what nqp -v says? | 00:04 | |
colomon | lue: no | 00:05 | |
I just blew away my rakudo directory and started over from scratch. | |||
lue: rebuild from scratch appears to have worked | 00:09 | ||
lue | Good. | ||
japhb | TimToady, it occurred to me while I was out that a simple increase in whitespace might help. Does this look better to you? gist.github.com/4132800 | 00:12 | |
japhb backlogs to see if someone knew how to colorize a gist | 00:13 | ||
lue | I'm convinced now that the only sane way to do an emacs major mode for P6 is for the major mode to interface with a P6 script that does the real work (getting an emacs regexp to handle multiline comments is near-insane) | 00:19 | |
colomon | is there still a script out there to do syntax highlighting for p6? I remember using one years ago... | 00:20 | |
lue | there probably is (my guess the perl6/mu repo), but no clue how outdated it is. | 00:21 | |
.oO(The only downside to Perl 6 regexes is having to deal with the non-P6 kinds) |
00:22 | ||
grondilu | What's 'Bridge' in Real.pm? | 00:26 | |
oh ok it's documented in .perl6/specs/S32-setting-library/Numeric.pod | 00:30 | ||
grondilu always forget to use -r option to grep when searching in the doc | |||
00:32
cognominal joined
00:38
wamba left
00:42
sivoais joined
00:44
bowtie left
00:49
lorn joined
00:56
rurban_ left
01:01
ifim left
01:17
hypolin joined,
benabik joined
|
|||
dalek | rl6-bench: 07f2717 | (Geoffrey Broadwell)++ | analyze: Add blank lines between tests in text summary output with style off |
01:28 | |
01:31
cognominal left
01:42
fgomez left
01:44
gv left
01:45
benabik left
01:49
cspencer joined
02:02
fgomez joined
02:05
xinming left
02:06
gootle joined
02:10
Entonian joined,
Entonian left
02:13
benabik joined
02:38
FROGGS_ joined
|
|||
lue | .oO(Where *did* the old highlighter go?) |
02:42 | |
02:42
FROGGS left
02:47
cognominal joined
02:49
benabik left
|
|||
colomon | lue: it seems to me it was connected to std, maybe it went with it? | 02:53 | |
lue | ah, yes. There seems to be a std_hilite folder. | 02:54 | |
02:54
aindilis left
|
|||
lue | .oO(STD isn't very useful for parsing the individual files in the rakudo codebase) |
02:57 | |
03:04
aindilis joined
03:06
benabik joined
03:07
kurahaupo left
03:09
xinming joined
03:46
rurban_ joined,
orafu left,
orafu joined
03:54
am0c joined
03:59
rurban_ left
04:05
xinming left
04:07
thou joined
04:30
sirrobert joined
|
|||
sirrobert | r: module A { our %foo = (a => 1, b => 2) }; say %A::foo.perl; | 04:32 | |
p6eval | rakudo bf472b: OUTPUT«PARROT VM: Could not load bytecodeunimplemented key type 1» | ||
sirrobert | How do I create a package-level variable? | ||
(and access it from outside) | |||
sorear | n: module A { our %foo = (a => 1, b => 2) }; say %A::foo.perl; | 04:33 | |
p6eval | niecza v22-36-g19fa03a: OUTPUT«{"a" => 1, "b" => 2}.hash» | ||
sirrobert | hrm | ||
lue | r: say "class Foo \{ ... \}" ~~ /\{<.ws>*"..."<.ws>*\}/ | ||
p6eval | rakudo bf472b: OUTPUT«PARROT VM: Could not load bytecodeunimplemented key type 1» | ||
lue | O.o | ||
sirrobert | sorear: I take from that that it just isn't implemented in Rakudo yet? | ||
lue wonders if telling p6eval to recompile rakudo will help | 04:34 | ||
r: say "Rakudo is alive!"; | |||
p6eval | rakudo bf472b: OUTPUT«PARROT VM: Could not load bytecodeunimplemented key type 1» | ||
sirrobert | ohhh | ||
well, the error I get in rakudo is: No such method 'STORE' for invocant of type 'Any' | 04:35 | ||
I guess I can work around with classes for now | |||
lue | sirrobert: got the same error running it in my rakudo as well. | 04:36 | |
sirrobert | lue: thanks | ||
lue | (the No such method 'STORE' one, of course) | ||
sirrobert | I'll do a less-than-correct implementation now that works and fix it later =) | ||
lue: nod | 04:37 | ||
lue | nom: say "nom test"; | 04:41 | |
p6eval | rakudo bf472b: OUTPUT«PARROT VM: Could not load bytecodeunimplemented key type 1» | ||
lue | star: say "star test"; | ||
p6eval | star 2012.10: OUTPUT«star test» | ||
sirrobert | star: module A { our %foo = (a => 1, b => 2) }; say %A::foo.perl; | 04:42 | |
p6eval | star 2012.10: OUTPUT«No such method 'STORE' for invocant of type 'Any' in block at /tmp/YmGWRP3Hr9:1» | ||
04:54
colomon_ joined,
colomon left,
colomon_ is now known as colomon
04:59
SamuraiJack joined
05:08
rurban_ joined
05:17
sftp left
|
|||
grondilu | rn: "foo bar" ~~ m:g/ <.alpha>+ /; say $/ | 05:20 | |
p6eval | niecza v22-36-g19fa03a: OUTPUT«===SORRY!===Regex modifier g not yet implemented at /tmp/4cB1HrSggW line 1:------> "foo bar" ~~ m:g⏏/ <.alpha>+ /; say $/Unhandled exception: Check failed at /home/p6eval/niecza/boot/lib/CORE.setting line 1437 (… | ||
..rakudo bf472b: OUTPUT«PARROT VM: Could not load bytecodeunimplemented key type 1» | |||
grondilu | star: "foo bar" ~~ m:g/ <.alpha>+ /; say $/ | ||
p6eval | star 2012.10: OUTPUT«Any()» | ||
grondilu | star: say "foo bar" ~~ m:g/ <.alpha>+ /; | 05:21 | |
p6eval | star 2012.10: OUTPUT«False» | ||
grondilu | star: say "foo bar" ~~ m/ <.alpha>+ /; | ||
p6eval | star 2012.10: OUTPUT«「foo」» | ||
diakopter | sum1 broke r? | 05:22 | |
05:22
telex left
|
|||
lue | It was working a few hours ago, I'm guessing it broke on its own. | 05:23 | |
lue doesn't know the command to force p6eval to recompile rakudo | 05:25 | ||
05:28
rurban_ left
|
|||
geekosaur | I think in theory it should just be 'evalbot rebuild rakudo' but I don't know if there's separate steps needed for parrot/nqp at this point or not | 05:32 | |
05:36
telex joined
05:43
SamuraiJack left
05:44
telex left
05:46
SamuraiJack joined
|
|||
lue has just thought of a possible idea for the interpretation of / %hash / | 05:48 | ||
05:53
telex joined,
birdwindupbird joined,
aaaa joined
05:54
aaaa left
05:55
Kharec joined
06:03
cognominal left
|
|||
bonsaikitten | file parrot-4.10.0.tar.bz2 | 06:07 | |
parrot-4.10.0.tar.bz2: gzip compressed data | |||
hey, who oopsied that one?! :( | |||
sorear | bonsaikitten: #parrot | 06:11 | |
lue | will ls -l perchance tell you the last owner (besides you)? | ||
sorear | according to the blog, 4.10.0 was rurban | 06:12 | |
bonsaikitten | sorear: since the .tar.gz works I don't care too much | ||
would file a bug if there were a sane bugtracker nearby :\ | |||
sorear | are the .tar.gz and the .tar.bz2 different? | 06:13 | |
what bugtrackers do you consider sane? | |||
bonsaikitten | oh, parrot still uses trac, that's tolerable | 06:14 | |
it's just github that always keeps me demotivated | |||
lue | I think they're using github issues. (looks like it, at least) | ||
bonsaikitten | oh, so that is the schizo bugtracker? so my memory was right | 06:15 | |
lue | What's wrong with issues? I'm just curious is all. | 06:17 | |
bonsaikitten | lue: well, github is just a generally annoying UI | 06:19 | |
06:20
wamba joined
|
|||
lue on the other hand didn't like gitorious the one time he had to use it for whatever reason. | 06:23 | ||
bonsaikitten | lue: I didn't say it was any better ;) | 06:27 | |
lue | I know :) . I just thought I'd mention my bad-looking git hosting service. | 06:28 | |
06:29
cspencer left
06:35
hypolin left
|
|||
sorear | say, bonsaikitten | 06:36 | |
I'm redoing the niecza build system | |||
now would be a great time to make feature requests | |||
moritz wants "make install" | 06:42 | ||
06:43
cognominal joined
|
|||
bonsaikitten | sorear: if you want to make me really happy ... make it possible to install by package manager (iow, root) and usable without lots of magic by normal users | 06:45 | |
sorear: and make the bootstrapping autofetching optional so that an installed older version can be used for that | 06:46 | ||
apart from that I don't really have any complaints | |||
06:50
hypolin joined
06:57
grondilu left
|
|||
sorear | bonsaikitten: do you want to have to deal with very narrow version compatibility ranges? | 07:00 | |
bonsaikitten | sorear: I don't care much about that | 07:01 | |
as long as it's easy enough to figure out why it doesn't want to build | |||
07:10
GlitchMr joined
|
|||
tadzik | good yawning | 07:16 | |
sorear | o/ tadzik | 07:20 | |
cognominal | github.com/perl6/nqp/blob/master/VERSION # 2011.12 ! that must be wrong! | 07:27 | |
07:31
Kharec left,
Kharec joined
07:51
wamba left
07:54
domidumont joined
|
|||
masak | www.flickr.com/photos/bingosnet/788...1293303096 -- "Live together in perfect harmony | 07:56 | |
" | |||
aww :) | |||
08:06
hypolin left
|
|||
sorear | masak: hey, a much better set of pictures of yapc::eu | 08:06 | |
sorear finds several of himself, including one in the venue proper | 08:07 | ||
08:10
nyuszika7h joined
08:11
sirrobert left
08:19
hypolin joined
08:20
brrt joined,
domidumont left
08:21
domidumont joined,
FROGGS_ left
|
|||
Su-Shee | ever since we're all sparkly code princesses, it'll be ok anyways.. ;) | 08:25 | |
good morning everyone. | |||
08:26
cognominal left,
cognominal_ joined
|
|||
tadzik | hello | 08:34 | |
brrt | hi tadzik | ||
08:36
telex left
|
|||
Su-Shee | da dazik is in da house ;) | 08:37 | |
08:37
telex joined
|
|||
Su-Shee | +d ;) | 08:37 | |
tadzik | good I'm not tad sick | 08:39 | |
08:39
kaleem joined
08:43
fhelmberger_ joined
08:54
cognominal joined
|
|||
sorear | good morning Su-Shee & tadzik | 08:55 | |
08:56
cognominal_ left
08:58
FROGGS joined
|
|||
Su-Shee | tadzik: you're not a tad sick? ;) | 08:59 | |
tadzik | fortunately, no :) | 09:02 | |
jnthn | morning o/ | 09:03 | |
Su-Shee | hello jnthn :) | ||
jnthn | r: say "broken?" | 09:05 | |
p6eval | rakudo bf472b: OUTPUT«PARROT VM: Could not load bytecodeunimplemented key type 1» | ||
jnthn | hm, wtf. | ||
FROGGS | what the | 09:08 | |
just say that I dont was it | |||
tadzik hands FROGGS a coffee | 09:09 | ||
jnthn | um | 09:10 | |
NQP has been built and installed. | |||
===SORRY!=== | |||
NQP revision 2012.11 required (currently 2011.12). | |||
FROGGS | thanks, need one, thats true | ||
I dont get that... | 09:11 | ||
github.com/perl6/nqp/blob/master/VERSION there is 2012.11 | 09:12 | ||
but reading the backlog someone said there is 2011.12 | |||
the tag is right too | 09:14 | ||
09:16
cognominal left
|
|||
FROGGS | the VERSION file in nqp tarball is ok too | 09:18 | |
moritz tries | |||
09:19
integral joined,
integral left,
integral joined
|
|||
FROGGS | <colomon> lue: rebuild from scratch appears to have worked | 09:20 | |
so there is a problem if you just pull the changes | |||
maybe there already was a tag called 2012.11 last december (by accident) ? | 09:21 | ||
... in nqp branch | |||
09:21
cognominal joined
|
|||
moritz | yes, there was something like that | 09:22 | |
and I've deleted that tag | |||
but you need to git fetch --prune to get that | 09:23 | ||
FROGGS | k, that explains it | ||
brrt | p6: my $i = 0; $i += $i++; | ||
p6eval | rakudo bf472b: OUTPUT«PARROT VM: Could not load bytecodeunimplemented key type 1» | ||
..niecza v22-36-g19fa03a: ( no output ) | |||
FROGGS | and I didnt noticed because I'm used to make clean pulls before testing and bundling | ||
brrt | n: my $i = 0; $i += $i++; say $i; | ||
p6eval | niecza v22-36-g19fa03a: OUTPUT«1» | ||
FROGGS | clean clones I mean | ||
p6: my $i | 09:24 | ||
p6eval | niecza v22-36-g19fa03a: OUTPUT«Potential difficulties: $i is declared but not used at /tmp/u3op5lHJyb line 1:------> my ⏏$i» | ||
..rakudo bf472b: OUTPUT«PARROT VM: Could not load bytecodeunimplemented key type 1» | |||
moritz | FROGGS: I don't think there's much you could have done | ||
FROGGS | ya, tags are a bit fishy | 09:25 | |
moritz | dammit, segfault while building src/stage1/QASTNode.pbc | 09:26 | |
jnthn | Here, it really did check out a very old version of NQP | 09:27 | |
09:27
sisar left
|
|||
moritz | jnthn: try git fetch --pruge in nqp | 09:28 | |
jnthn | purge or prune? :) | ||
moritz | yes :-) | ||
prune | |||
09:29
odoacre joined
|
|||
jnthn | hm, something still not quite right...anyway, need to go to $dayjob now that I've got stuff packed for LPW... | 09:32 | |
moritz | gist.github.com/4134743 | ||
jnthn | moritz: You sure it's not just a case of the wrong checkout? | 09:34 | |
I actually had to git tag -d 2012.11 and pull to get the correct 2012.11 tag... | 09:36 | ||
09:37
odoacre left
|
|||
jnthn | bbl & | 09:38 | |
09:38
cognominal left
09:40
odoacre joined
09:45
cognominal joined
|
|||
dalek | rlito: faef513 | (Flavio S. Glock)++ | / (2 files): Perlito5 - command line compiler - catch internal errors |
09:50 | |
09:53
GlitchMr left
09:54
thou left
09:55
cognominal left,
integral left
09:56
integral joined,
integral left,
integral joined
10:04
cognominal joined
10:05
sisar joined
10:12
sqirrel joined
10:16
cognominal left
10:17
hypolin left
|
|||
dalek | rlito: 574d226 | (Flavio S. Glock)++ | / (6 files): Perlito5 - js - fix context in chained method calls |
10:18 | |
10:18
brrt left
10:22
cognominal joined,
wamba joined
10:33
integral left
10:40
integral joined,
integral left,
integral joined
10:50
gv joined
10:54
wamba left
10:58
tokuhiro_ left,
tokuhiro_ joined
11:05
Su-Shee_ joined
11:09
Su-Shee left
11:19
cognominal left
|
|||
FROGGS | moritz: who cares about the smolder machine? | 11:43 | |
we need to repair the nqp tags there too | |||
moritz | FROGGS: no idea | 11:46 | |
FROGGS: everybody can submit reports to smolder | 11:48 | ||
make spectest_smolder | |||
jnthn | r: say "works yet?" | 11:51 | |
p6eval | rakudo bf472b: OUTPUT«PARROT VM: Could not load bytecodeunimplemented key type 1» | ||
moritz | oh, I should take care of that I suppose | 11:52 | |
jnthn hopes it's just deleting the old tag and pulling | 12:00 | ||
12:03
cognominal joined
12:08
Su-Shee_ is now known as Su-Shee
|
|||
moritz | deleting the nqp repo helped :-) | 12:10 | |
(not finished compiling yet though) | |||
r: say 42 | 12:12 | ||
p6eval | rakudo 50be5d: OUTPUT«42» | 12:13 | |
jnthn | \o/ | ||
moritz++ | |||
cognominal | jnthn++ # for the git tag delete incantation | 12:20 | |
12:21
wamba joined
|
|||
FROGGS | k, if nobody fixes smolder, I'll send daily reports ;o) smolder.parrot.org/app/projects/smoke_reports/5 | 12:24 | |
12:26
mtk joined
12:29
imarcusthis joined
12:31
bowtie joined
12:32
tokuhiro_ left,
tokuhiro_ joined
|
|||
FROGGS | cool, whole spectest within 9 minutes | 12:35 | |
12:36
Psyche^ joined
12:39
Patterner left,
Psyche^ is now known as Patterner
|
|||
moritz | FROGGS: how many cores? | 12:39 | |
FROGGS | 4 | ||
I'd like to run that on one of our machines here, 16 cores, its not the newest one but it would be some sort of benchmark | 12:40 | ||
'here' is $work | 12:41 | ||
12:44
Patterner left,
whiteknight joined,
odoacre left,
odoacre joined
|
|||
FROGGS | moritz: do we add tests for the text of error messages? (wanna close some LTA reports) | 12:49 | |
moritz | FROGGS: no, we add error classes, and check for them | ||
see t/spec/S32-exceptions/misc.t for some examples :-) | |||
bbkr likes this solution | 12:51 | ||
moritz | testability is the most important reason for doing the typed exception stuff at all | 12:52 | |
12:53
GlitchMr joined
13:02
Psyche^ joined,
SamuraiJack left,
Psyche^ is now known as Patterner
13:04
sftp joined
13:10
PacoAir joined
|
|||
FROGGS | moritz: ahh, understand | 13:19 | |
13:20
odoacre left
13:21
odoacre joined
|
|||
moritz | it's on my TODO to produce typed exceptions from the multi dispatcher and binder | 13:25 | |
not sure if/when I'll get to it though | 13:26 | ||
13:30
gv left,
gv joined
13:32
gv left
13:41
yves_ joined
|
|||
cognominal | FROGGS, how do you set or reset tag needed in RT? | 13:41 | |
FROGGS | you mean "test needed" ? | 13:44 | |
cognominal | yes | ||
FROGGS | well, I clist on custom fields, and (de-)select this tag | ||
and add links to the testfile | |||
if I remove the tag | 13:45 | ||
err s/clist/click/ | 13:46 | ||
cognominal | I don't see testneeded on the "custom field" page :( | 13:48 | |
FROGGS | there is a multiline select field on the right | 13:49 | |
rt.perl.org/rt3/Ticket/Modify.html?id=77386 | |||
jnthn | cognominal: I normally find it on the jumbo tab | 13:53 | |
in tags | |||
FROGGS | got a german locale, dunno what it is called where I am | 13:54 | |
cognominal | do I need special capabilities? | ||
I don't have a locale, so I should see "tags" but I don't | 13:56 | ||
in neither page | |||
14:04
wamba left
|
|||
FROGGS | maybe you are not a rt admin for the perl6 queue | 14:06 | |
moritz should be able to help you there | 14:07 | ||
14:07
wamba joined
14:09
fhelmberger_ left
|
|||
dalek | ecs: 6fca0a0 | (Arne Skjærholt)++ | S21-calling-foreign-code.pod: Rewrite S21 so that Zavolaj/NativeCall is spec foreign function interface. This is a complete rewrite of this synopsis. The document that was here was extremely short, and didn't really spec anything. There some mention of importing Perl 5 code, however. If this is missed, it should probably be incorporated into S11. |
14:11 | |
arnsholt | There. 'Tis done | 14:12 | |
14:13
sisar left,
wamba left
|
|||
tadzik | cool | 14:13 | |
sorry, typo | |||
cooool | |||
arnsholt | =D | ||
14:15
Kharec left
14:17
Kharec joined
|
|||
jnthn | ooh | 14:19 | |
arnsholt++ | |||
FROGGS | cool! | 14:20 | |
arnsholt | Writing an email to perl6-language now to try and engage those who aren't active here as well | ||
felher | arnsholt++ | 14:23 | |
14:25
wamba joined
14:38
sisar joined
14:47
cognominal left,
LordVorp joined
14:53
PerlJam joined
14:55
cognominal joined
14:57
cspencer joined
14:58
cspencer left
15:03
hoelzro joined
15:09
kaare_ joined
15:11
cognominal left
15:29
wamba left
|
|||
FROGGS | moritz: is it the case that I cant throw typed exceptions from things happening in nqp grammar for example? | 15:32 | |
moritz: the best I can do is stuff like that, right? github.com/perl6/roast/blob/master...nown.t#L38 | 15:33 | ||
(which is exactly the error message I wanted to test btw ) | 15:34 | ||
dalek | ast: d18cdd7 | (Tobias Leich)++ | S05-metasyntax/unknown.t: Linked now closed RT ticket about unrecogn. metachar rt.perl.org/rt3/Ticket/Display.html?id=77386 |
15:37 | |
15:39
FROGGS left
15:48
domidumont left
|
|||
jnthn | london & | 15:53 | |
16:08
fgomez left
16:16
fgomez joined
16:23
Kharec left
16:28
pmurias joined
|
|||
pmurias | arnsholt: one thought after reading the new S21 is that some implementation might wish to interop with other runtimes using the :from syntax | 16:29 | |
16:34
kaleem left
|
|||
arnsholt | pmurias: Yeah, that's what the old S21 had, but TBH I'm not sure how useful coopting the use syntax is for C interop | 16:34 | |
16:37
hoelzro is now known as hoelzro|away
|
|||
arnsholt | The old S21 talked a tiny bit about other kinds of interop, but I've intentionally limited the current one to only consider C interop | 16:38 | |
pmurias | the use :from syntax could be usefull if parsing headers | 16:40 | |
arnsholt | Possibly, but I think header fixing is a separate program, really | ||
I've got to go now, but I'd love to continue this | 16:41 | ||
arnsholt & | |||
16:45
fgomez left
16:46
pix_ joined
16:47
pix_ left
16:52
kaleem joined
16:55
cognominal joined
16:57
kaleem left
17:04
sqirrel left,
birdwindupbird left
17:05
fgomez joined
17:17
SamuraiJack joined
17:28
MayDaniel joined
17:33
pmurias left
17:35
rurban_ joined
17:48
odoacre left
17:49
odoacre joined
17:57
domidumont joined
18:05
FROGGS_ joined
18:10
FROGGS joined,
Pleiades` left
18:15
Pleiades` joined,
FROGGS_ left
|
|||
FROGGS | phenny: tell arnsholt that there is a pod error in S21 in description right after "Hypotheticals" | 18:21 | |
phenny | FROGGS: I'll pass that on when arnsholt is around. | ||
18:25
umagaivotavoavav joined
|
|||
umagaivotavoavav | hello | 18:25 | |
18:26
umagaivotavoavav left
18:27
wamba joined
|
|||
moritz | hi | 18:28 | |
FROGGS | hi umagaivotavoavav, moritz | ||
moritz | FROGGS: re roast commit d18cdd78598b6ba6439fcb96665844e99ff8da40, that's ok for now; though in the long run we have to find a solution for throwing typed exceptions from nqp too | 18:30 | |
18:31
Chillance joined
|
|||
FROGGS | well, there are basically just two options, putting these types in nqp, or throw the exceptions from "perl" | 18:32 | |
18:40
SamuraiJack left
18:47
rurban__ joined,
wamba left
18:48
rurban_ left
18:53
bapa joined
|
|||
sorear | good * #perl6 | 18:55 | |
TimToady | o/ | 18:57 | |
any ETA on a buildable niecza? | |||
sorear | should be stable by the weekend | 18:58 | |
TimToady | cool, I just get a C# exception when I run it currently... | 18:59 | |
perigrin | so your'e saying that right now niecza is Exceptional? | ||
sorear: sounds like a quote for the home page that ... "TimToady finds us Exceptional!" | 19:00 | ||
TimToady | I would probably take exception to that | ||
anyway, hope everyone involved had a good Turkey Day, except for the turkey | 19:01 | ||
and I hope everyone not involved also had a good day | |||
FROGGS | ;o) | ||
hi there | |||
TimToady | o/ | ||
perigrin had Fettucini so even a Turkey was saved ... in theory. | |||
TimToady | maybe your turkey wasn't involved | 19:02 | |
perigrin | well the rest of the family had Turkey so I'm not sure how the savings work in practice. | ||
19:03
umagaivotavoavav joined,
umagaivotavoavav left
|
|||
perigrin | Turkeys don't deal well with lazy evaluation of dinners. | 19:03 | |
TimToady | turkeys generally deal with lazy evaluation by becoming turkey sandwiches :) | 19:04 | |
19:04
umagaivotavoavav joined,
umagaivotavoavav left
|
|||
perigrin | map { bread($_) } @leftovers ? | 19:05 | |
TimToady | this is a perl 6 channel | ||
perigrin | @leftovers.map(bread($_)) ? | ||
19:06
thou joined
|
|||
perigrin needs to catch back up on perl6 syntax | 19:06 | ||
TimToady | std: map { bread($_) } @leftovers | ||
p6eval | std d38bbd0: OUTPUT«===SORRY!===Strange text after block (missing comma, semicolon, comment marker?) at /tmp/lNrAwfregd line 1:------> map { bread($_) }⏏ @leftovers expecting any of: horizontal whitespace infix or meta-infix infixed function… | ||
TimToady | just needs a comma | 19:07 | |
maybe map and grep need to suggest that more explicitly | |||
perigrin | right, google informed me | ||
here more perl6ish ... bread(@leftovers.pick(*)) | 19:08 | ||
perigrin is adventerous in his leftover sandwiches. | 19:09 | ||
TimToady imagines his sandwich with cranberry sauce | |||
19:09
thou left
|
|||
perigrin | it's actually quite good, it sets off the stuffing nicely. | 19:09 | |
there are a couple places here that do turkey, stuffing, cranberry, and gravey sandwiches. | 19:10 | ||
19:10
daxim left
|
|||
FROGGS | damnit | 19:13 | |
FROGGS is getting hungry | |||
19:17
rurban__ left
|
|||
japhb | This talk is making me hungry again and I *just* ate. :-) | 19:34 | |
FROGGS | ya, me too, and there is nothing appropriate in the kitchen | 19:36 | |
19:50
rurban_ joined
20:09
kurahaupo joined
|
|||
FROGGS | moritz: got the typed exception: github.com/FROGGS/rakudo/commit/b3...2d95d626b4 | 20:18 | |
20:23
mtk left
20:24
Chillance left
20:25
Chillance joined
20:40
ryutin joined
|
|||
moritz | FROGGS: I'd prefer a different approach (more) | 20:41 | |
FROGGS: patch NQP to call a method die_unrecognized_metachar($char) which throws the normal exception | 20:42 | ||
FROGGS: and then in rakudo's Grammar.pm, overwrite that method | |||
reparsing the exception seems rather fragile | 20:43 | ||
(sorry for not speaking up earlier; only while baking kanelbullar today did I get the idea to do it that way) | 20:44 | ||
20:44
grondilu joined
|
|||
grondilu | Is there a "tringular" version of reduce? I mean, something that would be to reduce what [\op] is to [op]? | 20:45 | |
*triangular | |||
20:46
domidumont left
|
|||
FROGGS | moritz: k, will do it | 20:47 | |
dalek | ecs: f6636e2 | lue++ | S21-calling-foreign-code.pod: [S21] Fixed some POD formatting errors. The errors were mainly problems with item lists and missing whitespace around directives. |
20:48 | |
lue | r: my $t = time; "a b" ~~ /a \s* b/; say time - $t; | 20:51 | |
p6eval | rakudo 50be5d: OUTPUT«0» | ||
lue | r: my $t = time; "a b" ~~ /a <.ws>* b/; say time - $t; | ||
p6eval | rakudo 50be5d: OUTPUT«(timeout)» | ||
lue | I think <ws> is broken. | ||
moritz | lue: quantifying a zero-width match with anything but ? causes infinite loops | 20:52 | |
lue: well known, and not easy to fix | |||
and quite logical, once you start to think about it | |||
lue | I thought <.ws> meant match but don't capture. | ||
(and zero-width was <!ws>) | 20:53 | ||
moritz | yes, but <ws> is defined in a way to allow zero-width matches nonetheless | 20:54 | |
the first repetition matches the space | |||
and the second matches the empty string between the space and the b | |||
and all further matches do the same | |||
TimToady | grondilu: there's nothing specced yet | 20:56 | |
lue goes to double-check S05. The <ws> matches nothing (aka <?>, IIRC) thing is new to him. | |||
20:57
bruges_ joined
20:59
ryutin left
21:03
GlitchMr left
|
|||
lue | Well, in S05 I found something alluding to the null string matching after $ on line 372, and a definition which appears to say null string is matched on line 2057. However, line 1808 suggests the null string shouldn't be matched. | 21:05 | |
moritz | / <.ws> / # match "whitespace": | 21:06 | |
# \s+ if it's between two \w characters, | |||
# \s* otherwise | |||
\s* can match the null string | 21:07 | ||
lue | r: say ?("a" ~~ /\s*/); | ||
p6eval | rakudo 50be5d: OUTPUT«True» | ||
21:07
cognominal left
|
|||
lue | r: say ?(" " ~~ /\w*/); | 21:08 | |
p6eval | rakudo 50be5d: OUTPUT«True» | ||
flussence | r: say 'a' ~~ /[\s*]*/ | ||
eval: say 'a' ~~ /(?:\s*)*/ | |||
p6eval | rakudo 50be5d: OUTPUT«(timeout)» | ||
buubot_backup | flussence: ERROR: syntax error at (eval 20) line 1, near "say 'a'" | ||
flussence | bah | ||
eval: use 5.12; say 'a' ~~ /(?:\s*)*/ | |||
buubot_backup | flussence: ERROR: Perl v5.120.0 required (did you mean v5.12.0?)--this is only v5.16.0, stopped at (eval 20) line 1. BEGIN failed--compilation aborted at (eval 20) line 1. | ||
flussence | doh | ||
eval: use 5.012; say 'a' ~~ /(?:\s*)*/ | 21:09 | ||
buubot_backup | flussence: 1 1 | ||
lue | r: say ?(" " ~~ /[\w*]*/); | ||
p6eval | rakudo 50be5d: OUTPUT«(timeout)» | ||
flussence | rn: say 'foo' ~~ /['']*/ | ||
p6eval | rakudo 50be5d, niecza v22-36-g19fa03a: OUTPUT«(timeout)» | 21:10 | |
lue | Now I see the actual bug, and \s* matching null does make sense. I think it was just "<.ws>* breaks because it matches an infinite number of null strings" is what broke my brain for a minute. | ||
(what didn't help is me seeing <.ws> as basically "\s that doesn't break cperl-mode's highlighting") | 21:11 | ||
flussence | what's p5 doing there? I'd guess it sees ($nothing)* and interprets it as ($nothing)? instead. | ||
sorear | one sec | ||
L<perlre/"Repeated Patterns Matching a Zero-length Substring"> | 21:12 | ||
21:14
cognominal joined
|
|||
TimToady | P6, otoh, currectly classifies it as a DIHWIDT | 21:15 | |
lue | .oO(Do It HoWever I Deem Terrific?) |
21:16 | |
21:16
fgomez left
|
|||
TimToady | it's a dwimmery that is known to be difficult/impossible to do perfectly, so it's way down on the priority lists currently | 21:17 | |
21:17
fgomez joined
|
|||
grondilu | TimToady: (about reduce) maybe it could just be triangular in list context | 21:17 | |
TimToady | grondilu: no, that would be P5-Think :) | 21:18 | |
huf | Dwimmery Is Hard, Wherefore I Deallocate Tuits? | 21:19 | |
lue | So, would a simple /<.ws>/ pull off what I mean when I try /<.ws>(*|+|?)/ (with the erroneous thinking that <.ws> =:= \s) ? | ||
flussence | I like that p5 is smart enough to handle this regex thing, but I'm not a fan of all the extra hidden state involved... | 21:20 | |
TimToady | lue: I have no idea what you mean by that, so I can't say | ||
the purpose of <.ws> is to locate the cursor at the start of the next token | 21:21 | ||
lue | I've been using <.ws> as if it were a (non-cperl-breaking) exact synonym for \s, and have therefore been typing things like <.ws>* and <.ws>+. My question is, do I need those modifiers? (would just <.ws> work fine?) | ||
TimToady | <.ws> should never be quantified | ||
lue | OK. | 21:22 | |
TimToady | in general, you only want a <.ws> after you've matched something else that is not whitespace | ||
which is how :sigspace is currently specced | |||
(and implemented by STD, though I don't think either niecza or rakudo do so yet) | 21:23 | ||
TimToady could be wrong | |||
lue does s:g/\sS?/<.ws>/ | |||
TimToady | moritz++ already summarized the semantics of <.ws> above | 21:24 | |
oh, nm | 21:25 | ||
lue | moritz++ indeed. I've been having quite a number of slip-ups in regex-land the past few days. | ||
moritz | everybody goes through that phase :-) | 21:26 | |
21:26
kaare_ left
|
|||
dalek | rl6-bench: f37c11a | (Geoffrey Broadwell)++ | bench: Make sure to fetch all new remote tags in fetch command |
21:28 | |
rl6-bench: 4e657e7 | (Geoffrey Broadwell)++ | / (2 files): commit |
|||
japhb | Now with 2011.09 and 2012.11 and a few more tests: gist.github.com/4132800 | 21:31 | |
for is so much slower in 2011.09 than all later releases that it swamps every other issue I've tested so far. | |||
lue | if my %h = "a"=>1,"b"=2; , Should / %h / be equal to / [ $<a>=1 | $<b>=2 ] / ? (Just a thought I had last night) | ||
flussence | I wonder if it'd be enough to have the compiler silently change any /<zero-width>*/ to /<zero-width>?/ (but only for a literal * quantifier) | 21:33 | |
lue | I'd agree with that, if only because I can't imagine ever needing to match an infinite number of <?> . | 21:35 | |
moritz | flussence: that will surprise lots of people too | 21:40 | |
for example people write regexes like [(\d*)(\D*)]+ | 21:41 | ||
which is pretty much nonsense | |||
ah well, I guess GIGO | |||
21:44
cibs left
21:46
nyuszika7h left
21:48
cibs joined,
rurban_ left
21:56
rurban_ joined
|
|||
lue | moritz: in the case of [(\d)*(\D*)]+, wouldn't an OK transformation be [(\d)+(\D)+]+ ? | 21:59 | |
22:00
nyuszika7h joined
|
|||
lue | oh, nvm. I'm seeing that as a bad thing now. | 22:02 | |
22:02
benabik left
|
|||
japhb | What's the current status of the sink context work for Rakudo? | 22:05 | |
moritz | japhb: I have a branch that does some sink context, and spectests cleanly | ||
qast-sink-1 | |||
but it still misses a lot of cases where sink context should be applied, and isn't | 22:06 | ||
japhb | Are you going to keep it separate until it's handling all cases, or merge it after this month's star? | 22:07 | |
moritz | merge it, I think | 22:08 | |
that way it'll get more testers | |||
one thing the branch doesn't do but should is to make 'for' an alias for .map | |||
(and remove the implict &eager that is currently added, and let sink handle the same thing) | 22:09 | ||
also, currently it sinks the return value from subroutine or method calls | |||
I have no idea if that's how it should be | 22:10 | ||
japhb | What is the current difference between for and map, implementation-wise? I thought they were pretty close to equivalent .... | 22:12 | |
22:12
SmokeMachine left
|
|||
japhb | (more testers)++ | 22:12 | |
moritz | for is always eager | ||
(and it shouldn't be, but people are too surprised if loops don't execute :-) | 22:13 | ||
japhb | It does tend to break suspension of disbelief. ;-) | ||
moritz | that's why sink context makes it eager | 22:14 | |
japhb | nodnod | ||
moritz | but in its current, qast-sink-1 busts most spectests when I disable that eagerness | ||
22:15
Entonian joined
|
|||
moritz | first it failed completely, because traits aren't executed in sink context yet, and 'is export' had a for-loop as the last statement :-) | 22:16 | |
japhb | sorear, how long has Niecza had essentially the same build-and-run sequence? Which is to say, as a first pass of getting multi-release niecza benchmark runs, how far back can I go without having to worry about differences in the build and run commands? | 22:18 | |
moritz, ouch. :-) | |||
TimToady | we should certainly sink the last statement of anything that has a --> Sink return, so we don't always have to rely on the caller for that info | 22:19 | |
japhb had forgotten you could specify that | 22:21 | ||
TimToady | which is why I mentioned it :) | ||
moritz | TimToady: --> Sink is not mentioned in the specs | 22:22 | |
TimToady | hmm | ||
22:23
kurahaupo left
|
|||
sorear | japhb: a long time | 22:23 | |
moritz | the only Sink with capital S is the KitchenSink in the spec | 22:24 | |
oh by the way, should we name the method SINK? | |||
like most other stuff that's called automatically | |||
TimToady | std: sub foo(-->) { ... } | ||
p6eval | std d38bbd0: OUTPUT«===SORRY!===No type found after --> at /tmp/Y2Aw3LKw73 line 1:------> sub foo(-->⏏) { ... } expecting any of: name new name to be defined param_sep routine_def signature type_constraintParse failedFAILED 00:00 | ||
..42m»… | |||
moritz | std: sub foo() returns () { ... } | 22:25 | |
p6eval | std d38bbd0: OUTPUT«===SORRY!===Invalid type name at /tmp/Z7mT0RVY0c line 1:------> sub foo() returns ⏏() { ... } expecting typenameParse failedFAILED 00:00 42m» | ||
TimToady | std: sub foo( --> () ) { ... } | ||
p6eval | std d38bbd0: OUTPUT«===SORRY!===No type found after --> at /tmp/Vs08l1vHTm line 1:------> sub foo( --> ⏏() ) { ... } expecting any of: name type_constraintParse failedFAILED 00:00 42m» | ||
moritz | std: sub foo() returns { ... } | ||
p6eval | std d38bbd0: OUTPUT«===SORRY!===Invalid type name at /tmp/bi3ZLlYkxL line 1:------> sub foo() returns ⏏{ ... } expecting typenameParse failedFAILED 00:00 42m» | ||
sorear | what are the semantics of KitchenSink? | ||
moritz | none are specced | ||
TimToady | it's a placeholder for something that has an API for the pointy end of ==> | ||
moritz goes to bed, and replaces himself with a placeholder that can stay on IRC | 22:26 | ||
TimToady | std: sub foo( --> Nil ) {...} | ||
p6eval | std d38bbd0: OUTPUT«ok 00:00 43m» | ||
TimToady | maybe that's what it mutate into | ||
I can see routines that always return True, or always return () though | 22:27 | ||
std: sub foo( --> True ) {...} | 22:28 | ||
p6eval | std d38bbd0: OUTPUT«ok 00:00 43m» | ||
TimToady | anyway, --> Nil seems like pretty good documentation of a procedure done only for its side-effects | 22:29 | |
can't really go with a 'proc' keyword, since methods also can do that | 22:30 | ||
I suppose a method might want to specify --> self | |||
(for the style where you apply mutator methods) | |||
one could go as far as --> $result to support that style even | 22:31 | ||
that is, declare a variable whose contents are automatically returned | 22:33 | ||
we've sort of intentionally left room in the grammar for these variants, if we decide we want them someday | |||
but putting any value or variable on the right of --> would automatically put the final statement into sink context; Nil or () would just be a subcase of that | 22:35 | ||
arnsholt | lue++ # fixin' my POD | 22:37 | |
phenny | arnsholt: 18:21Z <FROGGS> tell arnsholt that there is a pod error in S21 in description right after "Hypotheticals" | ||
22:39
wamba joined
|
|||
lue | arnsholt: It looks like you were trying some Pod6 :) [can't say I blame you --- After reading up on perldoc how to fix those errors, I like Pod6 better] | 22:41 | |
arnsholt | Yeah, I was going for Pod6 | 22:42 | |
Are the specs actually Pod5? | |||
22:45
cognominal left
|
|||
felher | TimToady: just to be sure: in the case of '--> $result', you could then also write '--> Str $result', since the right of '-->' is a normal variable declaration, and therefore specify a return type that way? | 22:45 | |
lue | arnsholt: All but S26, which is about Pod6. | 22:46 | |
(I imagine once there's a complete Pod6->HTML generator, there'll be a big effort to convert all the specs appropriately) | 22:48 | ||
22:48
Entonian left
|
|||
arnsholt | Right, right. That makes sense =) | 22:49 | |
sorear | Pod6 is quite close to PseudoPod | ||
TimToady | felher: presumably | 22:51 | |
22:51
cognominal joined
|
|||
TimToady | you could even say --> Str $result = "foobar" | 22:51 | |
felher | TimToady: hm, nice | 22:52 | |
dalek | d: a8bc48f | larry++ | STD.pm6: make --> more like a normal parameter |
22:58 | |
lue | I'm getting an invalid BUILDALLPLAN trying to use Grammar::Debugger | 23:01 | |
flussence | I've had that every time I've tried using it, going back 3-4 months :/ | 23:02 | |
lue | (I remember being able to use it a while ago though...) | 23:04 | |
diakopter | how would we denote :blocking on a pop or unshift? (wait for an element) | ||
lue | perl6-debug works well enough with regexes though. | ||
diakopter | er, pop or shift. | 23:05 | |
23:05
rurban_ left
|
|||
TimToady | that depends on whether there's a list to ask for another element, not on how you mark things | 23:05 | |
23:05
rurban_ joined
|
|||
diakopter | why wouldn't there be a list | 23:06 | |
TimToady | there's no list if nothing was planned | ||
23:06
sizz joined
|
|||
TimToady | just the array | 23:06 | |
23:07
rurban_ left
|
|||
TimToady | [1,2,3] has exactly three elements, not three-plus | 23:07 | |
diakopter | ok.. but I'm asking how would code tell pop or shift to keep polling for an element until one appeared? | ||
(by another thread) | 23:08 | ||
TimToady | if someone else is supplying the elements, the default is to wait for them | ||
it's up to the other end to decide whether to block or fail | |||
diakopter | r: my @a = (); say pop @a | 23:09 | |
p6eval | rakudo 50be5d: OUTPUT«Element popped from empty list in method gist at src/gen/CORE.setting:10149 in sub say at src/gen/CORE.setting:7460 in block at /tmp/2Sx4_eiXSl:1» | ||
diakopter | it failed.. (what I expected) but I thought you said the default was to block | 23:10 | |
23:11
sizz left
|
|||
sorear | I don't think :blocking on list operations makes sense | 23:12 | |
TimToady | r: my @a.plan: gather for (^10).roll(*) { last unless $_; take $_ }; say @a | ||
p6eval | rakudo 50be5d: OUTPUT«===SORRY!===Confusedat /tmp/vCeOf5TMrm:1» | ||
sorear | we shouldn't force | ||
TimToady | diakopter: "if someone else is supplying the elements" | ||
sorear | lists should not be concurrent data structures: don't force everyone to pay for the cost of a condvar/mutex | ||
diakopter | there are ways to have itboth ways. | ||
TimToady | r: my @a; @a.plan: gather { for (^10).roll(*) { last unless $_; take $_ } }; say @a | 23:13 | |
p6eval | rakudo 50be5d: OUTPUT«No such method 'plan' for invocant of type 'Array' in block at /tmp/cqhYBUy1tL:1» | ||
diakopter | r: my Array @a = []; say pop @a | ||
p6eval | rakudo 50be5d: OUTPUT«» | ||
TimToady | star: my @a; @a.plan: gather { for (^10).roll(*) { last unless $_; take $_ } }; say @a | 23:14 | |
p6eval | star 2012.10: OUTPUT«No such method 'plan' for invocant of type 'Array' in block at /tmp/yLEHGR1lyH:1» | ||
TimToady though rakudo implemented .plan at one point | |||
*ght | |||
diakopter | sorear: non-blocking data structures don't need a mutex | ||
TimToady blocks on a nap & | 23:15 | ||
diakopter | sorear: also, a list can operate in fast single-threaded mode until a non-owner thread requests it to be upgraded (downgraded?) to concurrent mode | 23:17 | |
sorear | *headdesk* | 23:20 | |
diakopter | it just needs a thread id marker, and one check | 23:21 | |
(and the interrupt request system, of course) | |||
23:21
sizz joined
|
|||
diakopter | why headdesk? if you think I'm that stupid, please explain how. | 23:22 | |
diakopter waits for sorear to lift his head off his desk | 23:27 | ||
flussence | I'd rather have something like inotify for variables and build threaded stuff around that. | 23:30 | |
23:30
MayDaniel left
|
|||
sorear | diakopter: you cannot asynchronously notify a thread that is not expecting asynchronous notification. | 23:30 | |
lists can be passed between threads, even implicitly, so it is not possible to know their owner. | 23:31 | ||
diakopter | creator, I meant | ||
like I said, there would have to be the interrupt system | 23:32 | ||
sorear | I heard Moose is slow, is this true? | ||
[...] some Moose features do cost more than others. It is also the policy of Moose to only charge you for the features you use, and to do our absolute best to not place any extra burdens on the execution of your code for features you are not using. | |||
diakopter | flussence: how would you build threaded stuff around a change notify thing | 23:33 | |
sorear | I beleive I am the only person who applies this policy to perl 6 | ||
diakopter | <eye roll> | ||
sorear | I am likely to fork the language over this issue. | ||
because I see #perl6ers flaunting it DAILY | |||
23:35
am0c left
|
|||
diakopter | there are tradeoffs for features. just because it's Moose's so-called policy doesn't mean it come close to fully succeeding at it. | 23:35 | |
sorear | diakopter: "creator"? congratulations, you've just screwed over everyone who builds a 1 million element list in one thread, then pass it through an object pipe to another | 23:36 | |
niecza's lists will never be implicitly concurrent. this is final. | |||
diakopter | but how exactly are they screwed over? why wouldn't they expect a performance hit at low concurrency? (in exchange for scalability at high concurrency) | 23:37 | |
I'm not arguing for niecza to support anything | |||
sorear: in a multi-threaded program, how will you know when to use locks on every operation on a data structure? | 23:38 | ||
(otherwise mutating structures can interleave with ill effect) | 23:39 | ||
(also, as of course you know, locks don't scale) | |||
sorear: you're effectively saying that niecza will never support passing built-in data structures between threads | 23:40 | ||
(unless you use locks, which don't scale) | |||
for instance, if two threads try to pop, both can get the same value. | 23:41 | ||
sorear | diakopter: what I am saying now, what I have always said, is that the builtin structures must not be used concurrently from more than one thread | ||
you can pass an array from one thread to another, as long as the passer then ceases to use it. | |||
quite simply, I think List<> and ConcurrentQueue<> should be separate types. | 23:42 | ||
if you want the latter, import it from Threads and use it. | |||
you say that ConcurrentQueue<> can be made as fast and efficient as List<> | |||
I do not beleive you | |||
diakopter | where did I say that | ||
sorear | 15:17 < diakopter> sorear: also, a list can operate in fast single-threaded mode until a non-owner thread requests it to be upgraded (downgraded?) to concurrent mode | 23:43 | |
if upgradable lists were as easy as you think, .net would have them already | |||
I'm willing to be proven wrong, but only by code | 23:44 | ||
diakopter | I didn't say it was easy | ||
I've been working on a concurrent deque with random access for months | |||
.net doesn't have such things because nobody's ever made a concurrent deque with random access. | 23:46 | ||
er, non-blocking. | |||
s/made/published/ | 23:47 | ||
jnthn | o/ from London | 23:53 | |
(momentarily...about to sleep) | |||
flussence | inotify is just another way to block until something happens... so for the pop example, it'd look like "loop { take @a.pop if @a; wait @a }". Not saying it's perfect, but it's simple and makes sense. | 23:56 | |
s/if/while/ maybe | 23:57 | ||
diakopter | there is still periodic polling, of a message queue if not an attempt at the whole operation | 23:58 | |
23:58
rurban_ joined
|