»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, std:, or /msg camelia p6: ... | irclog: irc.perl6.org or colabti.org/irclogger/irclogger_logs/perl6 | UTF-8 is our friend! Set by masak on 28 November 2015. |
|||
00:00
edehont left,
zjmarlow left,
stmuk_ left
00:01
dalek left
00:02
dalek joined,
ChanServ sets mode: +v dalek,
stmuk left
00:03
n0tjack left
00:04
Zoffix left
|
|||
dalek | c: 647ce18 | smls++ | lib/Perl6/Documentable.pm: move method below all attribute declarations and fix typo |
00:06 | |
c: ed8adef | smls++ | doc/Language/testing.pod: Re-structure the 'Testing' language doc Moved around sections and renamed subheadings, to make the page more logically structured and accessible for readers. Comparison of before/after structure: pastebin.com/raw/UZUMYTH1 |
|||
c: 3d02153 | smls++ | doc/Language/testing.pod: Consistent formatting and wording across the 'Testing' language doc |
|||
kudo/nom: 332ea4e | TimToady++ | src/ (2 files): add MINUS SIGN in case someone pastes from TeX etc |
00:07 | ||
TimToady | or is persnickety about the code they show elsewhere... | ||
dalek | kudo/nom: 3d8d56a | TimToady++ | src/ (2 files): last patch confused prefix and infix |
00:11 | |
00:12
cdg left
00:13
TheGreekOwl joined
|
|||
TheGreekOwl | perl6 | 00:13 | |
? | |||
00:14
smls_ left
|
|||
masak | TheGreekOwl: yep. | 00:14 | |
TimToady | perl6: say "Hi, TheGreekOwl" | 00:16 | |
camelia | rakudo-jvm 6c0f93, rakudo-moar ae3a44: OUTPUT«Hi, TheGreekOwl» | ||
TheGreekOwl | I see | 00:17 | |
I'm a random thats just passing by, | |||
cognominal | m: say "passing by {rand}" | 00:19 | |
camelia | rakudo-moar ae3a44: OUTPUT«passing by 0.977910675831408» | ||
TheGreekOwl | ??? | ||
00:21
firstdayonthejob left
|
|||
TimToady | m: say π; # we do greek too! | 00:21 | |
camelia | rakudo-moar ae3a44: OUTPUT«3.14159265358979» | ||
cognominal | TheGreekOwl, just a random function interpolated in a string | ||
TheGreekOwl | I have no idea what that is. | ||
I should mention I dont code. | 00:22 | ||
cognominal | if you wan't to stay that way, you may be in the wrong channel :) ur welcome anyway | 00:23 | |
* want | |||
TheGreekOwl | Thanks for the offer, but i'll be a nuisance here | 00:24 | |
Besides, there so much stuff to do on freenode | |||
TheGreekOwl dives back out. | |||
00:24
TheGreekOwl left,
zjmarlow joined
|
|||
TimToady | .oO(there's so much stuff to do here...) |
00:25 | |
00:26
travis-ci joined
|
|||
travis-ci | Rakudo build failed. TimToady 'add MINUS SIGN in case someone pastes from TeX etc' | 00:26 | |
travis-ci.org/rakudo/rakudo/builds/97574642 github.com/rakudo/rakudo/compare/0...2ea4e3b5b7 | |||
00:26
travis-ci left
00:27
BenGoldberg joined
|
|||
masak | 'night, #perl6 | 00:28 | |
00:29
stmuk joined
|
|||
flussence | .oO( nice to see a random interloper that's self-aware and courteous for a change ) |
00:29 | |
00:30
travis-ci joined
|
|||
travis-ci | Rakudo build passed. TimToady 'don't treat things like [-1] as reductions' | 00:30 | |
travis-ci.org/rakudo/rakudo/builds/97573567 github.com/rakudo/rakudo/compare/a...b52f9f8366 | |||
00:30
travis-ci left,
zjmarlow left
00:31
lucasb left
00:35
stmuk_ joined
00:36
FreezerburnV joined
|
|||
dalek | kudo/nom: b050d5e | TimToady++ | src/ (2 files): unbotch MINUS SIGN patch helps to put the right precedence level and arity... |
00:37 | |
TimToady | I get so much more karma by screwing up regularly... | ||
00:37
stmuk left
00:39
stmuk_ left
00:40
stmuk joined
|
|||
TimToady | I love it how random people come in here and start talking to the bot with smartquotes; I bet the other language communities are starting to go nuts over that... | 00:40 | |
Humbedooh | TimToady: every man must have his vices :) | 00:41 | |
or so said Walt Disney about dying from lung cancer... | |||
00:46
skids joined
00:48
stmuk_ joined,
stmuk left
|
|||
dalek | ast: 60bfa55 | TimToady++ | S03-operators/misc.t: add tests for grade school math operators |
00:49 | |
TEttinger | do we have knuth up arrow notation operators yet? :D | 00:50 | |
00:50
Wolf joined
|
|||
Wolf | Hey there everybody~ | 00:50 | |
TEttinger | "well our language has BigIntegers" "oh does it now? how big?" | ||
TimToady | I noticed a nice thing about the MINUS SIGN too... | 00:51 | |
Wolf | I have a question regarding grammars | ||
00:51
Wolf is now known as Guest7598
|
|||
TimToady | m: say pi-rand | 00:51 | |
camelia | rakudo-moar 3d8d56: OUTPUT«5===SORRY!5=== Error while compiling /tmp/UDBfwCq0zZUndeclared routine: pi-rand used at line 1. Did you mean 'srand'?» | ||
Guest7598 | Anyone able to help me? | ||
TimToady | m: say pi−rand | ||
camelia | rakudo-moar 3d8d56: OUTPUT«-0.56574741868335» | ||
TEttinger | Guest27964 / Wolf: ask away | ||
TimToady | m: say pi−rand | ||
camelia | rakudo-moar b050d5: OUTPUT«3.04276140932166» | ||
TimToady | that's better | ||
timotimo | um ... | 00:52 | |
TimToady | so if you really want to leave out the spaces around your minus signs... | ||
timotimo | what's with the implementation of readlineint_fh ?!? | ||
TimToady | I dunno, readlinenum? and realinerat? | ||
00:52
travis-ci joined
|
|||
travis-ci | Rakudo build passed. TimToady 'last patch confused prefix and infix' | 00:52 | |
travis-ci.org/rakudo/rakudo/builds/97575098 github.com/rakudo/rakudo/compare/3...8d56a76aaf | |||
00:52
travis-ci left
|
|||
timotimo | well, its implementation is a single line | 00:53 | |
which is cur_op += 6; goto NEXT; | |||
Guest7598 | I'm trying to create a grammar that can be updated on the fly (i.e. a parse action actually changes the grammar rules for the rest of the parse). To that end, is it possible to create a rule that access an external routine (or, if I have to get messy, a routine built into a regex), which would return a token value based on comparisons local to that routine? | ||
TimToady | m: say [×] 2..40 | 00:54 | |
camelia | rakudo-moar b050d5: OUTPUT«815915283247897734345611269596115894272000000000» | ||
00:54
zjmarlow joined
|
|||
Guest7598 | That way, the external routines could be modified from earlier actions within the parse. | 00:54 | |
skids | Guest7598: you may want to look at the Grammar::BNF module. | ||
Guest7598 | The problem with BNF is that it becomes difficult to update a parse-grammar _during_ the parse. | 00:55 | |
At least, so far as I've seen | |||
TimToady | it would probably screw up the longest token matcher by excluding the dynamic bits, but if that's okay with you, it should work | ||
we update the current parser all the time, but not retroactively | |||
skids | Guest7598: No I mean, look at how that module does what you are trying to do. | 00:56 | |
00:56
hoelzro|phone joined
|
|||
Guest7598 | skids: Ah, I think I see what you mean. Use that system to generate a brand new grammar that is "updated" to the new form that I would like, then reparse? | 00:57 | |
00:57
stmuk joined
|
|||
Guest7598 | (well, something based on their system, anyway) | 00:57 | |
skids | I did have some success in updating a grammar during parse during an aborted and unwise attempt at tackling ASN.1 | ||
TimToady | offhand, the word "reparse" sounds evil... | ||
Guest7598 | (agreed) | 00:58 | |
00:59
hoelzro|phone left
|
|||
Guest7598 | skids, can you suggest how I might go about doing that? I'm not exactly sure what I'm supposed to be modifying to update the in-parse grammar. Do I just edit the file that the grammar is written into? I'm confused as to how one accesses the already-compiled grammar. | 00:59 | |
skids | I'm trying to comprehend my old code so I'll tell you what I did when I figure it out myself :-) | 01:00 | |
01:00
zjmarlow left,
stmuk_ left
|
|||
Guest7598 | Ah yes, my favorite game, trying to decipher what in the heck your past self thought it was doing. | 01:00 | |
01:02
ellybelly left,
ellybelly joined
|
|||
japhb | Trying to get up to date with this month's changes-so-far ... I see a *bunch* of patches around the "Great Sink Refactor" and WANTED and such. What's the goal? | 01:04 | |
From one comment it sounded like giving better hints to codegen and better flagging "useless use ... in sink context"? | 01:05 | ||
skids | Guest7598: I think the important parts were in the snippets in gist.github.com/skids/b4caab210a473a586d51 Basically match against an array of rx and keep pushing to the array. Not sure if it still or ever actually worked. | ||
Juerd | "So let's go ahead and make it ??!!. (At least this week...)" -- TimToady in 2005. www.nntp.perl.org/group/perl.perl6....23025.html | 01:06 | |
The week has been more than a decade! | |||
Guest7598 | Ah, so, essentially, craft a parser from scratch? xD | ||
Juerd will rub this into the face of anyone who says that Perl 6 syntax isn't stable ;) | |||
01:07
yqt left
01:08
Guest7598 is now known as Faelin
|
|||
flussence | .oO( "it is what you make of it" ) |
01:08 | |
01:10
pierre-vigier joined
|
|||
Faelin | Alright, well, I'm going to keep hammering along in my current tack, which is using Marpa's hook system to return token values based on external routines. Doesn't allow me to modify the grammar once it's in use, but hopefully I can account for all the possible needs of the actual grammar rules, and make the hook-routines adjustable instead. | 01:11 | |
01:11
llfourn joined
01:13
rurban_ left
|
|||
timotimo | oh, maybe this helps: | 01:14 | |
01:14
pierre-vigier left
|
|||
timotimo | you can have an alternation (with ||) that checks an attribute (with <?{ ... }>) and that forces a specific branch of the alteration to happen | 01:15 | |
01:15
travis-ci joined
|
|||
travis-ci | Rakudo build passed. TimToady 'unbotch MINUS SIGN patch | 01:15 | |
travis-ci.org/rakudo/rakudo/builds/97578581 github.com/rakudo/rakudo/compare/3...50d5e31910 | |||
01:15
travis-ci left
|
|||
Faelin | timotimo: that doesn't really help me build a grammar that updates itself mid-parse, though. Already doing the above via Marpa. | 01:15 | |
01:16
rickbike joined
|
|||
timotimo | mh, ok | 01:16 | |
well, worst case you <$foobar> a string as a regex | 01:17 | ||
dalek | ast: eac5ed7 | TimToady++ | S02-literals/numeric.t: add some mathy tests for unicode chars |
01:18 | |
japhb | TimToady: What is the Great Sink Refactor trying to accomplish? | 01:22 | |
TimToady | knowing when something's actually going to be sunk, so we can optimize | 01:24 | |
01:24
zjmarlow joined
|
|||
TimToady | m: loop (my int $x = 0; $x < 10000000; $x++) {} # runs about 100x faster with $x++ sunk | 01:25 | |
camelia | ( no output ) | ||
TimToady | m: loop (my int $x = 0; $x < 10000000; $x++) {}; say $i; say now - INIT now | ||
camelia | rakudo-moar b050d5: OUTPUT«5===SORRY!5=== Error while compiling /tmp/pzX0xMq38KVariable '$i' is not declaredat /tmp/pzX0xMq38K:1------> 3nt $x = 0; $x < 10000000; $x++) {}; say 7⏏5$i; say now - INIT now» | ||
TimToady | m: loop (my int $x = 0; $x < 10000000; $x++) {}; say $x; say now - INIT now | ||
camelia | rakudo-moar b050d5: OUTPUT«100000000.0631024» | ||
TimToady | also to give much better feedback on precedence errors, which much of the time show up as useless use of | 01:26 | |
m: my $i = 1, 2 | |||
camelia | ( no output ) | ||
TimToady | hmm | ||
m: my $i = 1, 2; say $i | |||
camelia | rakudo-moar b050d5: OUTPUT«1» | ||
TimToady | that used to catch itself... | 01:27 | |
01:27
stmuk left
|
|||
TimToady | m: 1, 2 »+« 3, 4 | 01:28 | |
camelia | ( no output ) | ||
TimToady | double hmm | ||
m: 1,2 | |||
camelia | ( no output ) | ||
TimToady | oh dear... | ||
m: 42; 43 | |||
camelia | rakudo-moar b050d5: OUTPUT«WARNINGS for /tmp/znMBJB8hAj:Useless use of constant integer 43 in sink context (line 1)Useless use of constant integer 42 in sink context (line 1)» | ||
japhb | Lists hiding sink context? | 01:29 | |
TimToady | used to distribute | ||
dunno what busted there | |||
timotimo | japhb: i didn't actually go ahead and ask somebody to implement that feature we discussed last time :| | ||
japhb | timotimo: Well, I noticed no new commits, so I guessed as much. | 01:30 | |
01:30
zjmarlow left
|
|||
timotimo | ;( | 01:30 | |
TimToady | something has gone and marked my list elems as wanted, and it's probably something I did :/ | 01:31 | |
01:31
Zoffix joined
|
|||
TimToady | says EXPR/list did it... | 01:32 | |
Juerd | Why are the error messages for ..., ??? and !!! all different? | 01:34 | |
m: sub foo { ... }; foo; | |||
camelia | rakudo-moar b050d5: OUTPUT«Stub code executed in sub foo at /tmp/5laQSQj_f5:1 in block <unit> at /tmp/5laQSQj_f5:1Actually thrown at: in block <unit> at /tmp/5laQSQj_f5:1» | ||
Juerd | m: sub foo { ??? }; foo; | ||
camelia | rakudo-moar b050d5: OUTPUT«Stub code executed in sub foo at /tmp/l4htyQ3NCf:1» | ||
Juerd | m: sub foo { !!! }; foo; | ||
camelia | rakudo-moar b050d5: OUTPUT«Stub code executed in sub foo at /tmp/RWtcXLf9Sh:1 in block <unit> at /tmp/RWtcXLf9Sh:1» | 01:35 | |
japhb | fail, warn, and die? | ||
(Mind you, there's a decent question of whether those really need to be so different ....) | 01:36 | ||
01:36
Ben_Goldberg joined
|
|||
Juerd | Oh wow :) | 01:36 | |
They're actually different things :) | 01:37 | ||
japhb | Heh, yes | ||
01:38
BenGoldberg left
|
|||
skids | m: my @*r; grammar a { regex TOP { { @*r = rx/b/ } [ <@*r> { @*r.push(rx/c/)} ]+ } }; a.subparse("cc").say; a.subparse("bc").perl.say; # Faelin: that much at least does still work. | 01:42 | |
camelia | rakudo-moar b050d5: OUTPUT«#<failed match>Match.new(ast => Any, list => (), hash => Map.new(()), orig => "bc", to => 2, from => 0)» | ||
Faelin | Ah! I can work with that! Thanks :D | 01:43 | |
01:43
rickbike left
01:46
rurban left
|
|||
cognominal | m: use MONKEY-TYPING; augment class Cool { method hi { say 'hi' }}; Array.hi | 01:48 | |
camelia | rakudo-moar b050d5: OUTPUT«Method 'hi' not found for invocant of class 'Array' in block <unit> at /tmp/j4zJSmVlGg:1» | ||
cognominal | do I misunderstand MONKEY-TYPING/augment ? | ||
I expect the .hi method to be found | 01:49 | ||
01:49
yeahnoob joined
|
|||
TimToady | you might have to recompose a class after that | 01:49 | |
we don't have a mechanism to clear the method cache in this case | 01:50 | ||
skids | Is Cool a class or a role? | ||
cognominal | m: use MONKEY-TYPING; augment class Cool { method hi { say 'hi' }}; Cool.hi | 01:51 | |
camelia | rakudo-moar b050d5: OUTPUT«hi» | ||
japhb | m: my @foo = 1, 2; say @foo.map: { when 1 { "yay" }; default { $_ } }; | ||
camelia | rakudo-moar b050d5: OUTPUT«(yay 2)» | ||
cognominal | so, that does not yet work for derived classes | 01:52 | |
japhb | Hmmm, perhaps I need a rebuild. That gives a useless use of $_ for me. | ||
timotimo | aye. only if you call its .^compose again (or something like that?) | ||
skids | m: use MONKEY-TYPING; augment class Cool { method hi { say "hi" }}; Array.^compose; Array.hi | 01:53 | |
camelia | rakudo-moar b050d5: OUTPUT«hi» | ||
cognominal | skids++ | ||
01:54
zjmarlow joined
|
|||
skids spent way to long figuring out that "Undeclared routine: hi used at line 1" was coming from bash due to the ''s | 01:54 | ||
01:57
hartenfels joined
02:00
zjmarlow left
02:01
Faelin left
|
|||
timotimo | ah yeah :( | 02:02 | |
dalek | kudo-star-daily: 009d912 | coke++ | log/ (8 files): today (automated commit) |
||
Zoffix | m: use MONKEY-TYPING; augment class Any { method gist { say 'hi' }}; .^compose for Int, Str; my $x = 42; my $y = 'blah'; say $x, ' ' , $y | 02:03 | |
camelia | rakudo-moar b050d5: OUTPUT«42 blah» | ||
Zoffix | :( | ||
m: use MONKEY-TYPING; augment class Any { method foo { say 'hi' }}; .^compose for Int, Str; my $x = 42; my $y = 'blah'; say $x.foo, ' ' , $y.foo | |||
camelia | rakudo-moar b050d5: OUTPUT«hihiTrue True» | ||
Zoffix | hm | ||
timotimo | maybe because it's a multi method? | 02:04 | |
and you'd have to "only method gist"? | |||
perhaps "supercede method gist"? | |||
Zoffix doesn't know what either of those are :) | |||
02:09
kaare_ joined
02:13
molaf_ joined
|
|||
dalek | ast: bf3352a | TimToady++ | S03-metaops/hyper.t: correct over-specific exception type |
02:15 | |
02:16
MadcapJake left,
molaf left
|
|||
dalek | kudo/nom: d48cf75 | TimToady++ | src/Perl6/Actions.nqp: infix:<,> mustn't want its args as other ops do (because we later distribute sink to each element to catch various brainos) |
02:17 | |
TimToady should really write tests for these warnings in his copious free time, but doesn't know how offhand, since they come from the optimizer... | |||
well, gee, the optimizer just prints 'em to stderr, grr | 02:20 | ||
makes 'em a little hard to test without running subprocesses... | 02:21 | ||
02:24
zjmarlow joined
02:27
kid51 left
02:28
Sqirrel_ left
02:30
khw joined,
dalek left
02:31
zjmarlow left,
dalek joined,
ChanServ sets mode: +v dalek
|
|||
TimToady | m: 1,2 | 02:36 | |
camelia | rakudo-moar d48cf7: OUTPUT«WARNINGS for /tmp/Oj5MD9N_uH:Useless use of constant integer 1 in sink context (line 1)Useless use of constant integer 2 in sink context (line 1)» | ||
TimToady | that's more like it | ||
02:36
zjmarlow joined
|
|||
TimToady | m: my $x = 1, 2; | 02:36 | |
camelia | rakudo-moar d48cf7: OUTPUT«WARNINGS for /tmp/U9iIN2nxUg:Useless use of constant integer 2 in sink context (line 1)» | ||
TimToady | m: 1, 2 »+« 3, 4 | 02:37 | |
camelia | rakudo-moar d48cf7: OUTPUT«[DISLOCATED MESSAGE] Useless use of &infix:<+> in sink context[DISLOCATED MESSAGE] Useless use of &infix:<+> in sink contextWARNINGS for /tmp/3Gqhr6wtfa:Useless use of constant integer 1 in sink context (line 1)Useless use of constant integer 4…» | ||
TimToady | ooh, dislocated | 02:38 | |
that probably needs to report the hyper, not the + | 02:39 | ||
timotimo | so it appears | 02:40 | |
02:46
BenGoldberg joined
02:47
ilbot3 joined
02:48
Ben_Goldberg left
02:53
n0tjack joined
02:55
kaare_ left
03:02
vendethiel joined
|
|||
[Coke] | lizmat++ # she's the best! | 03:03 | |
03:05
n0tjack left
03:06
telex left
03:08
telex joined,
AlexDaniel joined
|
|||
flussence | somewhat pointless question: is there any way in perl6-space to query a synthetic's codepoint number? other than manually dissecting a string and assigning my own for each glyph where .codes != .chars... | 03:20 | |
03:25
vendethiel left
03:27
noganex joined
03:29
noganex_ left
|
|||
ShimmerFairy | flussence: no, if you saw any of those negative numbers it'd be an erroneous leak. If you're dealing with codepoint numbers, chances are you kinda want to step away from 'Str' strings, at least temporarily :) | 03:35 | |
03:38
FreezerburnV left
|
|||
ShimmerFairy | m: my $str = "Umlauts on punctuation?̈ Weird."; say $str.chars; say $str.codes; for $str.NFC { say $_.base(16) } | 03:38 | |
camelia | rakudo-moar d48cf7: OUTPUT«3031556D6C61757473206F6E2070756E6374756174696F6E3F3082057656972642E» | ||
03:39
kanishka left
|
|||
glaukommatos | 03:41 | ||
Oops, sorry about that. | |||
03:43
glaukommatos left
03:54
rurban joined,
zjmarlow_ joined
03:56
zjmarlow left
04:00
zjmarlow_ left
04:04
Sqirrel joined
04:15
xpen joined
04:16
molaf_ left
04:17
BenGoldberg left
04:19
AndyDee left
04:22
Sqirrel left,
skids left
04:24
zjmarlow_ joined
04:30
zjmarlow_ left
04:34
Sqirrel joined
|
|||
Hotkeys | can someone explain to me what's happening here and why there are two different results | 04:53 | |
m: my $x = 115; my @y = <2 -5>; ($x, ($x «+=» @y)).flat | |||
camelia | ( no output ) | ||
Hotkeys | m: my $x = 115; my @y = <2 -5>; say ($x, ($x «+=» @y)).flat | ||
camelia | rakudo-moar d48cf7: OUTPUT«(112 117 112)» | ||
Hotkeys | m: my $x = 115; my @y = <2 -5>; ($x+0, ($x «+=» @y)).flat | ||
camelia | ( no output ) | ||
Hotkeys | m: my $x = 115; my @y = <2 -5>; say ($x+0, ($x «+=» @y)).flat | ||
camelia | rakudo-moar d48cf7: OUTPUT«(115 117 112)» | ||
Hotkeys | ignore the ones without say | ||
I'm copying and pasting straight from repl | 04:54 | ||
04:54
zjmarlow_ joined
04:55
vividsnow joined
|
|||
Hotkeys | is this a bug or am I ignorant of a thing | 04:56 | |
TimToady | you are decontainerizing $x by adding 0 | ||
ShimmerFairy | Yeah, $x on its own is the variable itself, not the value within, IIUC | 04:57 | |
Hotkeys | ah | ||
TimToady | so the first one just reports the final value of $x, rather than the initial | ||
ShimmerFairy | m: my $x = 115; my @y = <2 -5>; say ($x, ($x «+=» @y))[0].VAR.WHAT | ||
camelia | rakudo-moar d48cf7: OUTPUT«(Scalar)» | ||
ShimmerFairy | m: my $x = 115; my @y = <2 -5>; say ($x+0, ($x «+=» @y))[0].VAR.WHAT | ||
camelia | rakudo-moar d48cf7: OUTPUT«(Int)» | ||
Hotkeys | but I change x afterwards don't I? | ||
am I thinking too linearly | 04:58 | ||
TimToady | m: my $x = 115; my @y = <2 -5>; say ($x<>, ($x «+=» @y)).flat | ||
camelia | rakudo-moar d48cf7: OUTPUT«(115 117 112)» | ||
TimToady | another way to decontainerize | ||
geekosaur | Hotkeys, what;s in the list is a reference, not the value | ||
then the thing containedin the reference is changed, then it's all printed | |||
Hotkeys | ah | ||
geekosaur | and when it follows that reference it sees the final value | ||
but with +0 yopu get a value there | |||
Hotkeys | my $x = 3; my $y = ($x, 0); say $y; $x++; say $y | 04:59 | |
m: my $x = 3; my $y = ($x, 0); say $y; $x++; say $y | |||
camelia | rakudo-moar d48cf7: OUTPUT«(3 0)(4 0)» | ||
Hotkeys | fancy | 05:00 | |
05:00
xpen left
|
|||
Hotkeys | my last language investment was python, so I guess I'm used to things being passed by value | 05:01 | |
05:01
zjmarlow_ left,
xpen joined
|
|||
Hotkeys | eg pastebin.com/raw/SAYa7pYT | 05:03 | |
05:03
xinming left,
rickbike joined
05:12
pierre-vigier joined
05:17
pierre-vigier left
05:19
psy_ left
05:24
zjmarlow_ joined
05:26
rurban left
05:30
zjmarlow_ left
05:31
xinming joined
05:33
raiph left
05:54
zjmarlow_ joined
05:58
Woodi joined
06:00
zjmarlow_ left
06:02
khw left
06:07
Woodi left
06:14
nadim left,
nadim joined
06:20
rickbike left
06:21
yeahnoob left
06:24
zjmarlow_ joined
06:30
zjmarlow_ left
06:32
hartenfels left
|
|||
AlexDaniel | m: say 5 × 2 | 06:40 | |
camelia | rakudo-moar d48cf7: OUTPUT«10» | ||
AlexDaniel | oh, so now it's finally there? | ||
m: say 5 ÷ 2 | |||
camelia | rakudo-moar d48cf7: OUTPUT«2.5» | ||
AlexDaniel | m: say 5 ⋅ 2 | ||
camelia | rakudo-moar d48cf7: OUTPUT«5===SORRY!5=== Error while compiling /tmp/BubQiGkCZZConfusedat /tmp/BubQiGkCZZ:1------> 3say 57⏏5 ⋅ 2 expecting any of: infix infix stopper postfix statement end statement modifie…» | ||
AlexDaniel | the last one does not have to be there, yes | 06:41 | |
“grade school math operators” huh | |||
u: − | 06:42 | ||
06:42
pierre-vigier joined
|
|||
AlexDaniel | .u − | 06:42 | |
yoleaux | U+2212 MINUS SIGN [Sm] (−) | ||
AlexDaniel | .u PLUS SIGN | ||
yoleaux | U+002B PLUS SIGN [Sm] (+) | ||
AlexDaniel | .u + | ||
yoleaux | U+002B PLUS SIGN [Sm] (+) | ||
AlexDaniel | unicode!!! | ||
or maybe “ascii!!!” | |||
okay, whatever. Now let's wait for ∞ :) | 06:44 | ||
06:46
domidumont joined
06:51
domidumont left
06:52
hs___ joined,
domidumont joined
06:53
nige1 joined
06:54
zjmarlow_ joined
|
|||
nige1 | hi - here is the draft for the advent day 20 - wordpress.com/post/perl6advent.wor...s.com/4544 | 06:54 | |
feedback, comments, suggestions welcome? | |||
AlexDaniel | well, yeah, if only I could see it :) | 06:57 | |
nige1 | ah - can only advent authors see it? | 06:58 | |
07:00
zjmarlow_ left
07:01
geraud left
|
|||
AlexDaniel | nige1: yeah, I think so | 07:01 | |
m: my \x = 5; say x × x X x × x | |||
camelia | rakudo-moar d48cf7: OUTPUT«((25 25))» | ||
dalek | kudo/nom: 0021601 | TimToady++ | src/Perl6/ (2 files): useless use of Rat, Complex, type objects, etc |
07:02 | |
ast: 05f4cd9 | TimToady++ | S32-exceptions/misc.t: test all useless use warnings |
07:03 | ||
[Tux] | This still segfaults: | 07:04 | |
m: my Str$s=Buf.new(^2048 .map({256.rand.Int})).decode("utf8-c8") | |||
camelia | ( no output ) | ||
TimToady | m: say Ⅹ × Ⅹ X Ⅹ × Ⅹ | 07:05 | |
camelia | rakudo-moar d48cf7: OUTPUT«((100 100))» | ||
TimToady | m: say Ⅹ × Ⅹ Xxx Ⅹ × Ⅹ | ||
camelia | rakudo-moar d48cf7: OUTPUT«((100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 100 10…» | ||
AlexDaniel | right | 07:06 | |
that's much better | |||
[Tux] | and Text::CSV still cannot ve compiled due to the Cannot find method 'run_alt' | ||
07:11
AlexDaniel left
07:13
n0tjack joined
07:17
n0tjack left
07:18
FROGGS joined
07:24
zjmarlow_ joined
07:28
stmuk joined
07:30
zjmarlow_ left
07:36
firstdayonthejob joined
07:40
domidumont left
07:51
hs___ left
07:54
zjmarlow_ joined
07:59
domidumont joined
08:00
zjmarlow_ left
|
|||
uruwi_ | m: my Str $s=Buf.new(^2048 .map({256.rand.Int})).decode("utf8-c8"); say $s; | 08:02 | |
camelia | rakudo-moar 002160: OUTPUT«(signal SEGV)» | ||
uruwi_ | m: say Buf.new(^2048 .map({256.rand.Int})).decode("utf8-c8") | ||
camelia | rakudo-moar 002160: OUTPUT«UxBDxA9x98:5xA0xFB:DSxF0L>x84xDF%xCD*xCFxE8xBFc*V=x9DxADxCFxE4'ܳ5)k^x88xBA~xDExD8"xB9xD8cxACxE8xBDxE6=x9Crx94xE8xD0xFD1a…» | ||
08:03
xinming left
|
|||
DrForr | Has the 19th or 25th been decided on yet? | 08:06 | |
stmuk puts away perlsecco | 08:07 | ||
08:09
pierre-vigier left
08:11
darutoko joined,
virtualsue joined
08:15
pierre-vigier joined
08:17
yeahnoob joined
08:24
zjmarlow_ joined
08:28
firstdayonthejob left
08:30
zjmarlow_ left
08:37
brrt joined
|
|||
brrt | got a bytecode validation error in t/04-nativecall/15-rw-args.t | 08:42 | |
08:44
xinming joined
08:48
g4 joined,
g4 left,
g4 joined
08:52
brrt left
08:54
zjmarlow_ joined
08:55
aarry joined
|
|||
stmuk | t/spec/S17-lowlevel/lock.t .................................... 14/23 *** Error in `/home/steve/.rakudobrew/moar-nom/install/bin/moar': double free or corruption (!prev): 0x00007fdd58038480 *** | 08:56 | |
09:00
zjmarlow_ left
|
|||
uruwi_ | m: say "test the butterfly" ~> 4; | 09:00 | |
camelia | rakudo-moar 002160: OUTPUT«infix:«~>» not yet implemented. Sorry.  in block <unit> at /tmp/7v8w2EBgbm:1» | ||
09:03
zakharyas joined
09:04
Ven joined
|
|||
Ven | o/, #perl6! | 09:04 | |
seems like my blog post didn't auto-publish at midnight, I'm gonna check what I did wrong... | 09:05 | ||
should be good :) | |||
09:07
nige1 left
|
|||
dalek | kudo/nom: 9a5a7db | (Sylvain Colinet)++ | src/core/Temporal.pm: Add support for subseconds support in ISO 8601, see #126948 |
09:08 | |
kudo/nom: e773aca | lizmat++ | src/core/Temporal.pm: Merge pull request #638 from Skarsnik/nom Add support for subseconds support in ISO 8601, see #126948 |
|||
09:09
aarry left
09:10
abraxxa joined
09:11
nige1 joined,
virtualsue left
|
|||
Ulti | saw someone on the bus this morning reading the perl6 docs and writing some code :3 | 09:11 | |
09:13
brrt joined
|
|||
lizmat | cool! | 09:14 | |
Ven | oh, nice! | ||
lizmat | there was a news item in the NL yesterday about the warm weather (this December will be the warmest ever on record, about 1 degree celsius more than the previous record) | ||
DrForr | Yeah, saw that :/ | 09:15 | |
lizmat | and one of the punchlines was: "there's a good chance for butterflies around Christmas" | ||
DrForr | Maybe my tutorial session will have more than just Larry Kibitzing :) | ||
El_Che | This Christmas: Perl6 *and* the Apocalyps. Mic drop | ||
DrForr | My band name: Perl6 and the Apocalips. | 09:16 | |
09:16
xinming left
|
|||
El_Che | "Leisure Suit Larry and the Butterflies" | 09:17 | |
TEttinger | Camelia and the Emoji Operators | ||
El_Che | :) | ||
lizmat | .oO( smooooth! ) |
09:24 | |
09:24
zjmarlow_ joined
|
|||
jnthn | morning, #perl6 | 09:27 | |
Damn...so *that's* why there's no snow. Darn warming. | |||
brrt: (bytecode val error) on HEAD Moar? | 09:29 | ||
brrt | aye, i'm working on master | ||
or actually, i'm rebuilding my work env after i nuked it with an rsync --delete | 09:30 | ||
09:30
zjmarlow_ left
|
|||
brrt | don't. do. rsync --delete. on. your. $HOME | 09:30 | |
this is not a good backup strategy | 09:31 | ||
jnthn | o.O | 09:33 | |
Yeah, on master that's not surprising | |||
09:33
RabidGravy joined
|
|||
jnthn | I tightened up the validator a notch more and am still fixing code-gen bits in NQP | 09:33 | |
brrt | ah, hence | ||
ok, will not complain further :-) | 09:34 | ||
09:34
pierre-vigier left
09:35
yeahnoob left
09:37
domidumont left
09:38
domidumont joined
|
|||
dalek | ast: e7baf23 | (Sylvain Colinet)++ | S32-temporal/DateTime.t: Add test for subsecond ISO 8601 timestamp |
09:39 | |
ast: ed43750 | RabidGravy++ | S32-temporal/DateTime.t: Merge pull request #88 from Skarsnik/master Add test for subsecond ISO 8601 timestamp |
|||
09:40
pierre-vigier joined
09:47
ellybelly left
09:49
domidumont left
09:54
zjmarlow_ joined
10:01
zjmarlow_ left
10:03
ellybelly joined
10:07
domidumont joined
10:08
hankache joined,
Woodi joined
|
|||
hankache | hello #perl6 | 10:09 | |
Juerd | Observation: Given a oneliner that keeps printing short strings to stdout, with Perl 5 the ^C is anywhere, but with Perl 6 it's almost always at the end of the intended string or at the beginning of a line. | ||
hankache | can we define a multi-dimensional array with a different type for each dimension? | 10:10 | |
my Int @array[2;2] will have Int for both dimensions | |||
lizmat | Juerd: we're concatting whole lines in say/print so that inter-threaded prints on STDOUT will not interleave halfway through a line | ||
Woodi | Juerd: perl6 do some work with signals maybe ? | ||
lizmat | hankache: pretty sure you cannot | ||
hankache | what if I need Str for dim 1 and Int for dim 2? Is it possible? | ||
jnthn | hankache: I don't really follow; a 2-d array is not an array of arrays | ||
It's a single memory blob | 10:11 | ||
10:11
ellybelly left
|
|||
Juerd | lizmat: Interesting consequence, the ^C thing :) | 10:11 | |
hankache | hi lizmat jnthn | ||
lizmat | Juerd: you're aware of: signal(SIGINT).tap: { say "\ngoodbye"; exit } | ||
Juerd | No, I'm not | ||
jnthn | Oh yes you are (now)! | ||
Juerd | But don't take my observation for anything important, it was just that: an observation | 10:12 | |
lizmat | Juerd: it exposes signals as a supply | ||
Juerd | jnthn: Hm, I guess so :) | ||
m: SIGINT.WHAT.say | |||
camelia | rakudo-moar e773ac: OUTPUT«(Signal)» | ||
lizmat | m: say +SIGINT | ||
camelia | rakudo-moar e773ac: OUTPUT«2» | ||
hankache | jnthn yes indeed but imagine a use case where we are fetching a table from a DB (2 columns, 5 rows) and column one is an ID (numeric) and column 2 is a description (text) | 10:13 | |
10:13
AndyDee joined
|
|||
Juerd | Reading posts from 10+ years old on perl6-language is interesting. A lot of ideas were kept. | 10:14 | |
hankache | we want to store it in an array, add more "lines" to it and write it back to the DB | ||
RabidGravy | hankache, then you want an array of arrays or some other representation | 10:15 | |
hankache | my logical go to would be multi-dimensional array, no? | ||
jnthn | No, it'd be a 1-D array of objects | ||
Well, if you know the types up front | |||
Note that you *can* do a 2D array just fine for this though | |||
Just leave it untyped | 10:16 | ||
hankache | RabidGravy jnthn thanks | ||
any example of an array of arrays that is typed? | |||
RabidGravy | you can even constrain it something like "subset Record of Array where { $_[0] ~~ Int && $_[1] ~~ Str }" then do "my Record @rows" | 10:17 | |
jnthn | cute :) | ||
Ven | ..if you wanna kill any kind of performance :P. | ||
hankache | my @table = [Int @column1, Str @column2] ? | ||
jnthn | hankache: No, though my @a = Array[Int].new, Array[Str].new; | ||
Ven | m: subset Record of Array where { $_[0] ~~ Int && $_[1] ~~ Str }; my @a; @a[0][0] = "yo"; | 10:18 | |
camelia | ( no output ) | ||
Ven | :) | ||
jnthn | Well, may be an example somewhere but something like what I wrote :) | ||
Ven | that's not checked, so I'd recommend against it ;-) | ||
hankache | jnthn thanks | ||
Ven | m: subset Record of Array where { $_[0] ~~ Int && $_[1] ~~ Str }; my Record @a; @a[0][0] = "yo"; # duh... | 10:19 | |
camelia | rakudo-moar e773ac: OUTPUT«Type check failed in assignment to @a; expected Record but got Array in block <unit> at /tmp/q0IHDuLXJw:1» | ||
Ven | m: subset Record of Array; my Record @a; @a[0][0] = "yo"; # ¿ | 10:20 | |
camelia | ( no output ) | ||
Ven | oh. so it does work, and I'm just stupid as usual \o/ | ||
hankache | Ven++ #advent post | ||
10:22
rurban joined
10:24
zjmarlow_ joined
10:30
zjmarlow_ left
10:33
brrt left
10:36
rurban_ joined
|
|||
hankache | m: my %capitals = (UK => 'London', Germany => 'Berlin'); %capitals.push(France => 'Paris'); say %capitals; | 10:36 | |
camelia | rakudo-moar e773ac: OUTPUT«Germany => Berlin, UK => London» | ||
10:36
nige1 left
|
|||
hankache | anything wrong with push the way i wrote it? | 10:36 | |
dalek | kudo/nom: ae8d980 | lizmat++ | src/core/ (2 files): Fix for #126955 |
||
10:37
espadrine joined,
abraxxa left
|
|||
lizmat | m: my %capitals = (UK => 'London', Germany => 'Berlin'); %capitals.push((France => 'Paris')); say %capitals; | 10:37 | |
camelia | rakudo-moar e773ac: OUTPUT«France => Paris, Germany => Berlin, UK => London» | ||
lizmat | hankache: it's the infamous "silently eat any named params" aka "interface consistency" thing again | 10:38 | |
Ulti | hmmm Linenoise breaks the REPL atm looks like precomp gist.github.com/con-mo8/a760e1424b50ac0a8589 | ||
from a completely fresh install | |||
about ten minutes ago | |||
hankache | lizmat double parentheses are needed? | ||
lizmat | my last commit is not going to change that :-) | ||
yes, otherwise the pair is interpreted as a named parameter to .push | 10:39 | ||
(and ignored) | |||
hankache | lizmat ah yes named params | ||
thank you dear | |||
lizmat | you're welcome :-) | ||
jnthn | %capitals<France> = 'Paris'; # is a bit more typical, fwiw | ||
hankache | ah ok | 10:40 | |
jnthn++ | 10:41 | ||
lizmat | m: my %h; %h.push( (a => 42) ); %h.push( (a => 666) ); dd %h # special semantics of Hash.push | 10:42 | |
camelia | rakudo-moar e773ac: OUTPUT«Hash $var = ${:a($[42, 666])}» | ||
lizmat | hankache: ^^^ | ||
jnthn | Yeah, there's also that | ||
jnthn can't remember using .push on a pash :) | |||
uh, hash | |||
lizmat | .oO( or hush on a pash :-) |
10:43 | |
hankache | wait!! | ||
10:43
AlexDaniel joined
|
|||
lizmat waits | 10:43 | ||
hankache | so i can assign many values to a single key?! | ||
lizmat | yes, with .push, it will automagically make it an array | ||
hankache | lizmat i love you | ||
:D | |||
AlexDaniel | hankache: late reply: in your DB example it seems like you need a hash, not an array | ||
lizmat | *blush* :-) | ||
AlexDaniel | hankache: this way you get Strs for keys and Int for values, if you wish | 10:44 | |
hankache | AlexDaniel indeed, this is why i got excited #one key => many values | 10:45 | |
Ven | hankache: yes, she often does magic :P | ||
AlexDaniel | lizmagic? | 10:46 | |
10:51
xinming joined
|
|||
AlexDaniel | “Natively-typed shaped arrays in Perl 6 are specced to take contiguous memory, meaning we get a very good memory layout, and use little memory” – I don't get it | 10:54 | |
10:54
zjmarlow_ joined
|
|||
AlexDaniel | so it is saying that if I have a size 100 array of int8 then I'm going to use 800 bytes or so? | 10:54 | |
TEttinger | AlexDaniel: some languages, cough java cough, use rather a lot of overhead for multi-dimensional arrays | ||
using contiguous memory helps avoid that | 10:55 | ||
AlexDaniel | oops what did I say | ||
jnthn | AlexDaniel: 100 bytes | ||
AlexDaniel | I meant bits | ||
jnthn | Plus GC header | ||
10:55
rindolf joined
|
|||
TEttinger | what about the shaped part, though? | 10:55 | |
AlexDaniel | jnthn: what about performance? It does not sound like a good idea in terms of performance | ||
TEttinger | it's how fortran does it | 10:56 | |
jnthn | What doesn't? | 10:57 | |
AlexDaniel | squishing your data together | ||
TEttinger | (in fortran AFAICT, arrays use a contiguous chunk of memory and have a tiny header that says "it ends here, our rows/columns/z-layers end at these positions, it's not jagged") | ||
AlexDaniel | or, in this case, I should be using just “int”? | ||
TEttinger | squishing your data together is an excellent way to get performance, what are you talking about? | 10:58 | |
AlexDaniel | which will get me the fastest native int possible? | ||
jnthn | Why wouldn't more compact storage help performance? | ||
Being good to the CPU cache is much more important than instruction count these days. | |||
TEttinger | SIMD squishes 4 32-bit values into one 128-bit "thing" for example | ||
10:59
TimToady left
|
|||
AlexDaniel | there is an easy way to test it though | 10:59 | |
just try “int8” and just “int”, I guess | |||
TEttinger | AlexDaniel, the coy answer to "fastest native int" is "native machine code" | ||
nine | [Tux]: was it actually possible to precompile Text::CSV at a previous point in time? If yes, then we may have a chance at bisecting the issue and get valuable information that way. | 11:00 | |
Ven | AlexDaniel: squishing data together => everything fits into L1 => faster cached access! | ||
nine | The 'run_alt' is not still present because nobody cares but because despite hours and hours of debugging nobody has the slightest idea what exactly goes wrong. | 11:01 | |
TEttinger | Ven, especially true of the small scripts that perl is commonly used for | ||
11:01
TimToady joined
11:02
pierre-v_ joined
|
|||
|Tux| | nine, this is not about pre-compiling (and yes that was possible some time ago) | 11:03 | |
nine | |Tux|: not about pre-compiling? | 11:04 | |
|Tux| | I cannot even run a single simple script with the unchanged .pm | ||
lizmat | [Tux]: it most likely is, because pre-compiling now happens under the hood automagically | ||
Ven | TEttinger: especially untrue, because the runtime does too much to be able to do that :P | ||
|Tux| | ahh | ||
TEttinger | noooo | ||
11:04
pierre-vigier left
|
|||
nine | |Tux|: because we always precompile when you load a module. If you want to be sure, add "no precompilation;" to the module. If it works then, we know it's precompilation | 11:04 | |
RabidGravy | yeah, H::UA is only fixed because I put "no precompilation" in | ||
lizmat | FWIW, there's method run_alt in nqp's QRegex.nqp | ||
nine | |Tux|: can you say for how long the run_alt issue has been there? | 11:05 | |
lizmat | and it seems to be called an an nfa | ||
so somehow the nfa is not initialized ? | |||
|Tux| | «no precompilation;» → PASS! | ||
11:06
abraxxa joined
|
|||
nine | lizmat: the error appears in src/QRegex/Cursor.nqp line 410 when $nfa obtained by self.HOW.cache_get(self, $name) is no NFA at all but some random NQPArray. I've seen it filled with 2 Parameters, 8 NQPArrays and in other cases some 60 elements. | 11:06 | |
lizmat | yuck, major corruption :-( | 11:07 | |
|Tux| | My first run_alt encounter was Nov 30 | ||
nine | lizmat: so it is most probably the cache getting corrupted somehow when loading from a precompiled file | ||
|Tux| | last pass for speed-test was Dec 14 | ||
where only part of the full test suite caused the run_alt issue | 11:08 | ||
Ven | nine: O_o | ||
11:08
RabidGravy left
|
|||
nine | First mention on #perl6 was [Tux] on Nov 30th | 11:09 | |
|Tux| | that's what I said | ||
11:10
virtualsue joined
|
|||
|Tux| | and with no precompilation, the test suite now fails :( | 11:10 | |
nine | |Tux|: yep. What I said is that nobody ran into the issue earlier than you | ||
|Tux| | as always :} | ||
FROGGS | nine: do you know what $name is in the call to self.HOW.cache_get(self, $name)? | ||
nine | |Tux|: what? | ||
FROGGS: yes, it's some generated, supposedly unique name containing nfa, some timestamp and a counter | 11:11 | ||
FROGGS | ahh | ||
|Tux| | tests regarding EOF fail | ||
jnthn | EOF or EOL? | ||
|Tux| | EOF, but it seems EOL related | 11:12 | |
# expected: "id,name\r\n1,\"Alligator Descartes\"\r\n3,\"Jochen Wiedmann\"\r\n2,\"Tim Bunce\"\r\n\" 4\",\"Andreas König\"\r\n5\r\n" | |||
# got: "id,name\n1,\"Alligator Descartes\"\n3,\"Jochen Wiedmann\"\n2,\"Tim Bunce\"\n\" 4\",\"Andreas König\"\n5\n" | |||
AlexDaniel | m: my int @a[10000] = ^10000; my int $x = 0; say @a.pick for ^10 # why is it so slow | ||
camelia | rakudo-moar ae8d98: OUTPUT«6283866519054392305276997136246216813580» | 11:13 | |
|Tux| is rather short on time. $work is pressing | |||
AlexDaniel | m: my int @a[10000] = ^10000; say @a.pick for ^10 # why is it so slow | ||
11:13
Skarsnik joined
|
|||
dalek | ast: d9dae9f | lizmat++ | S32-temporal/DateTime-Instant-Duration.t: We have subsecond granularity now, fix test for it |
11:13 | |
camelia | rakudo-moar ae8d98: OUTPUT«2205464983034699189922845043272441179049» | ||
dalek | p: 39fd4da | jnthn++ | src/vm/moar/QAST/QASTOperationsMAST.nqp: Correct a bitmask. |
||
kudo/nom: d8f7e8b | lizmat++ | src/core/Pair.pm: Make smartmatching with a Pair a bit faster |
11:14 | ||
FROGGS | nine: I fear that we introduce issues by precompiling stuff in a running perl6 process | ||
lizmat | nine: is precomping happening in the process itself, or are we shelling out ? | ||
if not, have you tried that ? | 11:15 | ||
FROGGS | nine: in the past we procompiled by shelling out, and only precomping one source file and then shutting down | ||
AlexDaniel | oh | ||
jnthn | Didn't the patch to do that get reverted? | 11:16 | |
AlexDaniel | m: my @a = ^10000; say @a[*-1]; my int $x = 0; say @a.pick for ^100 # this is instant | ||
camelia | rakudo-moar ae8d98: OUTPUT«9999448225948921503929036012606778338759253242887732923714208973596476966510119892561383051917647282027006385648795858853438298348348820457102419…» | ||
AlexDaniel | m: my @a[10000] = ^10000; say @a[*-1]; my int $x = 0; say @a.pick for ^100 # this is slow | ||
camelia | rakudo-moar ae8d98: OUTPUT«(timeout)9999341124495251793799694423302740156525933980136601820354087196621872329371632013583935476571968219694742548369422909135772621194140565788585…» | 11:17 | |
FROGGS | nine / lizmat: nvm, seems like we *are* shelling out | ||
AlexDaniel | whoops, unneeded “my int $x = 0” again | ||
FROGGS | rakudo/src/core/CompUnit/PrecompilationRepository.pm:81: my $proc = run($*EXECUTABLE, $lle, "--target={$*VM.precomp-target}", "--output=$io", $path, :out); | ||
AlexDaniel | but anyway, it seems like specified type makes it slower? | 11:18 | |
size* | |||
not type | 11:19 | ||
nine | FROGGS: yes, there was an attempt to change that, but it was reverted | ||
11:19
nanis joined,
uruwi_ left
|
|||
jnthn | AlexDaniel: Yes, adding size certainly makes things slower at present | 11:20 | |
11:20
xpen left
|
|||
jnthn | AlexDaniel: For no reason other than the code handling those things is completely unoptimized. | 11:20 | |
AlexDaniel | jnthn: awww | 11:21 | |
nanis | jnthn: Thank you for resolving RT #126881. I haven't had a chance to test yet, but it looks good. | ||
11:21
Ven left
|
|||
jnthn | AlexDaniel: Well, I could work on optimizing it and we can hit xmas with a bunch of extra semantic issues instead :P | 11:21 | |
lizmat | brunch& | 11:22 | |
AlexDaniel | jnthn: I know | ||
jnthn | I designed it to be decidedly optimizable though :) | ||
So, next year... ) | |||
*:) | |||
Once we get the JIT onto those things it should look decent. | |||
nanis | Quick question: How is src/jit/emit_win32_x64.c generated? I am getting "unrecognized escape" for \j and \e right before moar.dll is linked. | ||
jnthn | nanis: haha...I wasted ages trying to deal with that :P | 11:23 | |
nanis | :-) | ||
AlexDaniel | jnthn: great. Though if you have a list of things to optimize then perhaps you want this one to be a bit higher | ||
nanis | It doesn't seem to affect anything ... | ||
jnthn | nanis: It used to generate a thousand of those warnings. I managed to wedge in a pragma to turn them off, but you couldn't get it in early enough to stop the first ones | ||
AlexDaniel | jnthn: I have never seen anything being that slow, even on 32-bit… | ||
jnthn | nanis: No, it doesn't affect anything. It's really silly. dynasm emits #line directives in the code it generates | 11:24 | |
nanis: And it points to the source file, which on Windows contains \s in the paths | |||
El_Che | m: my $proc = run, 'false', :out; say $proc.exitcode | ||
camelia | rakudo-moar ae8d98: OUTPUT«[DISLOCATED MESSAGE] Useless use of Pair symbol in sink context[DISLOCATED MESSAGE] Useless use of Pair symbol in sink contextWARNINGS for /tmp/Eb1reewagS:Useless use of constant string "false" in sink context (lines 1, 1)run is disallowed in r…» | ||
El_Che | m: my $proc = run 'false', :out; say $proc.exitcode | 11:25 | |
camelia | rakudo-moar ae8d98: OUTPUT«run is disallowed in restricted setting in sub restricted at src/RESTRICTED.setting:1 in sub run at src/RESTRICTED.setting:14 in block <unit> at /tmp/qUCFxH5DGR:1» | ||
jnthn | nanis: And then the preprocessor directive thinks they're escape sequences. | ||
AlexDaniel | dislocated message? :) | ||
El_Che | ok, anyway: the output is 0 | ||
AlexDaniel | El_Che: there's a bug report for that | ||
El_Che | proc.exitcode seems always be zero even when errors occurs | ||
jnthn | nanis: We could probably hack up dynasm to substitute the \ for / or so :) | ||
nanis | +jnthn thank you for the explanation | ||
El_Che | ah ok | ||
AlexDaniel: thx | |||
AlexDaniel | El_Che: you have to read the stdout fully to make it work | ||
and perhaps close it? Let's try to find the report… | 11:26 | ||
El_Che | AlexDaniel: I do a $proc.out.slurp-rest before doing the check on the exitcode. Still 0 | 11:27 | |
AlexDaniel | El_Che: rt.perl.org/Public/Bug/Display.html?id=126561 | ||
jnthn | AlexDaniel: Everything used to be so slow, you just joined the party too late ;-) | ||
AlexDaniel | rt.perl.org/Public/Bug/Display.html?id=125757 | ||
jnthn: nah, I've tried perl6 several times before I “joined” | |||
basically it was all about “uh, this sounds pretty cool but I can't wait for so long to see any output” | 11:28 | ||
jnthn | :) | ||
El_Che | just it always-exit-zero before out is closed be just a bug or just I patch the doc in the meantime? | 11:29 | |
AlexDaniel | but startup time is very good for quite some time now :) | ||
jnthn | Yeah, optimization is...non-trivial :) | ||
AlexDaniel | jnthn: well, er, actually startup time was the only problem for me | ||
El_Che | \o/ for startup time | 11:30 | |
startup up time is the reason I love Moo in perl5 | |||
Ulti | .tell hoelzro I think there is still a little issue around Linenoise and finding its helper lib github.com/hoelzro/p6-linenoise/issues/10 | ||
yoleaux | Ulti: I'll pass your message to hoelzro. | ||
AlexDaniel | El_Che: it's a bug | 11:31 | |
abraxxa | jnthn: how is the bug squashing going? | ||
11:31
koo8 joined
|
|||
AlexDaniel | El_Che: “Shall we attempt to make the exitcode (Int) until we got one?” – perhaps that's a good way to do it | 11:31 | |
jnthn | abraxxa: A little slowly at the moment...fixing up unsinged handling, and somehow getting values vanishing... | 11:32 | |
AlexDaniel | other one is to wait until it is finished, heh. | ||
abraxxa | jnthn: awesome! i need this for DBDish::Oracle | ||
jnthn | It'll be something silly... | ||
abraxxa | moritz: did you already look at my fork or are you waiting on my PR? | ||
jnthn | One of the relatively few days I have to read bytecode disassembly to figure stuff out... :) | 11:33 | |
El_Che | AlexDaniel: ow. It's an ugly bug. Closing the proc throuw an exception | 11:34 | |
AlexDaniel | can some body connect 125757 and 126561? That's the same issue | ||
El_Che: what do you mean? | 11:36 | ||
aahh | |||
perl6 -e 'my $p = shell("false", :out); $p.out.close; say $p.exitcode' # that thing? | |||
El_Che | the close results in a die | 11:37 | |
11:37
kid51 joined
|
|||
AlexDaniel | El_Che: this… does not look nice | 11:38 | |
but maybe that's ok? | |||
El_Che: “The spawned process exited unsuccessfully (exit code: 1)”, well, maybe it is supposed to be this way? | 11:39 | ||
El_Che | AlexDaniel: gist.github.com/nxadm/23c154132984dbb422fb | ||
nine | AlexDaniel: I merged the tickets | 11:40 | |
El_Che | closing an out stream dies if the process has a non 0 exit status? no. That is a bug | ||
I'll attach the example to the ticket | |||
AlexDaniel | nine: thanks | 11:41 | |
jnthn | afaik, it's by design | ||
El_Che | really? | 11:42 | |
11:42
rindolf left
|
|||
AlexDaniel | El_Che: it sounds a bit weird, but it kinda makes sense when I think about it | 11:42 | |
jnthn | (The exception bit) | ||
AlexDaniel | what I don't understand though is why is it not closed when you do .slurp-rest? | 11:43 | |
El_Che | on a slightly unrelated note, when would one close $proc.out (except as a workaround for this bug) | ||
? | |||
jnthn | When you've finished reading from it? | 11:44 | |
AlexDaniel | jnthn: what about slurp-rest? | 11:45 | |
11:45
kaare_ joined
|
|||
El_Che | when you put in a channel or something | 11:45 | |
AlexDaniel | jnthn: should it mean that I finished reading from it or not? | ||
jnthn | AlexDaniel: Doesn't close in general | ||
El_Che | going to lunch, I'll check back if we need to add the exception to the doc. I don't find it that obvious (maybe other people do) | 11:46 | |
AlexDaniel | El_Che: yes, it's not obvious | ||
jnthn | AlexDaniel: With files it's possible to reach EOF, but the file is further appended to, for example. | ||
AlexDaniel | El_Che: please add it | 11:47 | |
jnthn: right | |||
jnthn | So if slurp-rest closed the file, you'd not be able to use it repeatedly in that case. | 11:48 | |
AlexDaniel | what if it goes out of scope? Should it be closed automatically? | 11:49 | |
jnthn | No | ||
We don't do implicit resource management at scope exit in Perl 6; that's ref-count think. | |||
vytas | hmm.. where can i read more about garbage collection in perl6 ? | 11:50 | |
11:50
adhoc left
11:51
ellybelly joined
|
|||
stmuk | would an env variable to turn off precomp be easier for debugging etc I wonder? | 11:52 | |
11:52
adhoc joined
|
|||
FROGGS | stmuk: sounds helpful in any case | 11:54 | |
11:59
ellybelly left
|
|||
nine | stmuk: I'd be happy to steward a patch | 11:59 | |
11:59
ellybelly joined
12:01
virtualsue left
12:02
rindolf joined,
Ven joined
|
|||
jnthn | vytas: Plenty of resources out there for how the JVM one works; for Moar, I did a talk on GCs that alludes to much of how the MoarVM one works: www.infoq.com/presentations/termino...-collector | 12:03 | |
Ven | do we have an advent post about OO already? In a very general sense. | 12:05 | |
12:06
ellybelly left,
ellybelly joined,
AlexDaniel left
12:13
ellybelly left,
ellybelly joined
|
|||
Ven looks for .^ in the synopsis to link it | 12:15 | ||
12:19
uruwi joined
12:20
nanis left,
ellybelly left
12:21
ellybelly joined
|
|||
Ven | hm, no S99 entry for HOW? didn't we have an acronym for that? | 12:23 | |
lizmat | Helping Out With ? | 12:24 | |
stmuk | nine: ok I'll look | 12:25 | |
jnthn | Higher Order Workings iirc :) | ||
Ven | lizmat: no, I meant as in .HOW | ||
thanks jnthn | |||
.oO( .^ is really a half-smiley, in the end ) |
12:26 | ||
12:26
ellybelly left
|
|||
daxim | I asked last time whether there are other pm groups doing a release/install party, anyone wants to join in? | 12:27 | |
jnthn | .oO( Do not look into MOP with remaining eye ) |
||
Ven | well, I know realize my article is partly rehashing what moritz++ said in 2010... I'm gonna need to pivot a bit... | 12:30 | |
moritz | Ven: I think that's fine | ||
masak | g'day, #perl6 | 12:33 | |
12:33
uruwi left
|
|||
lizmat | masak o/ | 12:33 | |
jnthn | lunch & | ||
lizmat | I'm about to make a Pair a value type if it can | ||
(which it usually is, anyway) | |||
Ven | \o masak | 12:34 | |
lizmat | this should allow bagging it, well, with Bag.new at least | ||
12:34
administ1ator joined
|
|||
nine | daxim: it's kinda hard to sequeze in yet another party around christmas :/ | 12:35 | |
12:35
zakharyas left
|
|||
Ven | m: say Attribute.^attributes | 12:36 | |
camelia | rakudo-moar d8f7e8: OUTPUT«Method 'gist' not found for invocant of class 'BOOTSTRAPATTR' in block <unit> at /tmp/jZqsWYSpLo:1» | ||
Ven | ^ is that "expected"? | ||
dalek | kudo/nom: 5f08642 | lizmat++ | src/core/Pair.pm: Make Pair a value type when it can In most cases, Pair's are value types. The key of a Pair is constant. The value usually is as well. You need to do special stuff like: a => my $ = 42 to make it changeable. Only in that case, will Pair.WHICH now revert to the old .WHICH behaviour. In any other case, it will return a value typed .WHICH, making all Pairs with a given key and value give the same .WHICH value. Making them useable in Sets, Bags and Mixes, and have them usable as a key in a typed hash. |
12:38 | |
12:38
nige1 joined
|
|||
lizmat | $ 6 '(a => 42).WHICH.say' | 12:38 | |
Pair|Str|a|Int|42 | |||
$ 6 '(a => my $ = 42).WHICH.say' | |||
Pair|140403211857744 | |||
this came up a few weeks ago... | 12:39 | ||
Ven | lizmat++ # looks really good :) | 12:40 | |
m: say (a => 1) eqv (a => 1), (a => 1) === (a => 1), (a => 1) =:= (a => 1) | 12:41 | ||
camelia | rakudo-moar d8f7e8: OUTPUT«TrueFalseFalse» | ||
nine | Definitely :) | ||
Ven | lizmat: ^ will some more of these become true, or does only `eqv` uses WHICH? | ||
in that case... | 12:42 | ||
m: say (a => 1) eqv (a => my $ = 1); # will that become False? | |||
camelia | rakudo-moar d8f7e8: OUTPUT«True» | ||
lizmat | no, eqv doesn't used that | 12:43 | |
=== uses .WHICH | |||
$ 6 'say (a => 1) eqv (a => 1), (a => 1) === (a => 1), (a => 1) =:= (a => 1)' | |||
TrueTrueFalse | |||
Ven | lizmat: so, (a => 1) === 9 | ||
lizmat | ?? | ||
Ven | lizmat: so, (a => 1) === (a => my $ = 1); will become False? | ||
12:44
ellybelly joined
|
|||
Ven | sorry, my keyboard is not playing nice. | 12:44 | |
lizmat | Ven: it will *remain* False | ||
Ven | okay :). thanks | ||
lizmat | m: say (a => 1) === (a => 1) # will become True | 12:45 | |
camelia | rakudo-moar d8f7e8: OUTPUT«False» | ||
Ven | amazing! | 12:46 | |
masak | astounding! | ||
lizmat | of course, if either the key or the value is not a value type, it doesn't work :-) | 12:47 | |
$ 6 'say (a => []).WHICH' | |||
Pair|Str|a|Array|140721177249856 | |||
12:48
zjmarlow_ left,
virtualsue joined
|
|||
lizmat | $ 6 'say (a => []) === (a => [])' | 12:48 | |
False | |||
12:48
kid51 left
12:49
molaf joined
12:51
virtualsue_ joined,
virtualsue left
12:52
virtualsue_ is now known as virtualsue
12:54
zjmarlow_ joined
|
|||
lizmat is now looking at #126951 | 12:55 | ||
gfldex | that's quite some bug stomping going on right now :) | 12:56 | |
lizmat | just picking the ones I feel I can get an easy handle on with my flu-ridden brane | 12:58 | |
.oO( feverishly bug stomping ) |
|||
12:58
lucasb joined
|
|||
gfldex | in that case i wish both you and rakudo to get better quickly | 12:58 | |
masak | nige1++ # wordpress.com/post/perl6advent.wor...s.com/4544 | ||
13:00
zjmarlow_ left
|
|||
lizmat | gfldex: thank you, on behalf of us both :-) | 13:01 | |
13:02
zakharyas joined
|
|||
Ven | My article is getting kinda long, mmh. | 13:03 | |
gfldex | Ven: please keep going, it's getting dark early anyways | ||
nine | Ven: worse things could happen than a good book an a Perl 6 related topic... | 13:05 | |
lizmat | on the subject of Perl 6 books | 13:06 | |
I got quite inspired by Dave Cross' talk at LPW about self-publishing based on pod | |||
perhaps we don't need just one very large Perl 6 book, but many, many small e-books | 13:07 | ||
that could be published on Lulu or some other PrinitingOnDemand service | |||
nine | I like that idea :) | 13:08 | |
Ven | I think I'm done with the article: perl6advent.wordpress.com/?p=4508&...frame=true I'd appreciate to get some feedback. moritz maybe? | ||
gfldex | Ven: s/, and ././ | 13:11 | |
lizmat | Ven: perhaps "Type objects really are… Objects" "Type objects really are… instantiated Objects of a meta-class" ? | 13:12 | |
Ven | lizmat: hm, but then, maybe I need to move the part about the MOP higher | ||
lizmat | perhaps... | ||
not sure... | |||
but in a talk about objects, saying that something is an object, doesn't say much. At that point, at least | |||
Ven | okay, I changed that part. | 13:13 | |
lizmat | Ven: changed my mind: maybe say something like "... Objects, like any other Object" | 13:14 | |
keep it more open at that point | |||
Ven changes | |||
gfldex | Ven: it would be nice if you could turn <i>Nil</i> to a link to doc.perl6.org/type/Nil | 13:18 | |
Ven | done :) | 13:19 | |
dalek | ecs: e40b63c | lizmat++ | S99-glossary.pod: Add HOW lemma |
13:20 | |
hankache | is MadcapJake around? | 13:24 | |
13:24
robertle joined,
zjmarlow_ joined
|
|||
masak | qs | 13:24 | |
(Noa says hi) :) | 13:25 | ||
lizmat | Noa o/ | ||
masak | tfg vc | 13:26 | |
mmmmmmmmb,m bmb,bbbbyd fb h nnhgnbbbnbbb | |||
dalek | kudo/nom: 2a2e9a8 | lizmat++ | src/core/Exception.pm: Fix warning during optimization of core settings |
||
13:26
smls joined
|
|||
lizmat | Noa: kjasho8y;oi/2khlapmasl ndopiopaLM SMLKH LLKJLKSMN mlkjldn aiohsp90-9n dkjwlhklasihd !!! | 13:26 | |
masak | :) | 13:27 | |
smls | lizmat++ # Make Pair a value type when it can | ||
hankache | hi Noa :) | ||
smls | It's nice to be able to cache compound value types like that in a Set | ||
masak | <noa> *happy gurgle* | ||
lizmat | smls: yup, that's the idea :-) | 13:28 | |
13:28
pmurias joined
|
|||
smls | lizmat: Any reason why List doesn't do that too? | 13:28 | |
Like pre-GLR Parcel did | |||
I guess the infinite/lazy stuff would make it difficult? | |||
jnthn | smls: I think there was one, but I forgot it :) | ||
I know it came up before | |||
Quite possibly that, yes | 13:29 | ||
The key thing about type objects is they have the same type as their instances | |||
lizmat | well, for one, it would need to reify until something is found that is a container, or not a value type | ||
jnthn | Which could mean reifying something infinite | 13:30 | |
lizmat | and we cannot really easily determine if something is a value type | ||
13:30
zjmarlow_ left
|
|||
lizmat | from the .WHICH value, that is | 13:30 | |
jnthn | Also then Array would have to override it to do...what Any does | ||
Which is liskovly very dubious | |||
lizmat | well, one could argue that List should be a subclass of Array instead of the other way around :-) | 13:31 | |
smls | But you can't use List anywhere you can use Array. | 13:32 | |
e.g. in &push | |||
jnthn | Inheritance kinda sucks ;) | 13:33 | |
lizmat | sometimes I wonder whether we need inheritance at all, it's so 1970's :-) | ||
jnthn | Need? No, but being too counter-cultural doesn't always work out so well for adoption. | 13:34 | |
13:35
rurban left
|
|||
jnthn | We did at least avoid having an equivalent of Java/C#'s protected scoping though :) | 13:36 | |
lizmat | :-) | ||
jnthn | Or generally having anything else that privileges being a subclass. | ||
rindolf | masak: who is Noa? | 13:38 | |
Ven | the son, I'd say | ||
lizmat | masak's first fork ? | ||
:-) | |||
hankache | anyone tried this madcapjake.github.io/2015/perl6-file-icons/ ? | ||
13:40
Actualeyes left
|
|||
jnthn | t\04-nativecall\15-rw-args.t (Wstat: 0 Tests: 12 Failed: 0) TODO passed: 7 | 13:41 | |
ooh :) | |||
masak | rindolf: the clue is that most of the things I say on this channel are more coherent than "qs" and "tfg vc" ;) | 13:44 | |
(not all things, but most things) | |||
rindolf | masak: pardon? | 13:45 | |
masak: what if your son types /exec rm -fr ~ ? ;-) | 13:46 | ||
13:46
zakharyas left
|
|||
huf | apparently he's at the age where he's indistinguishable from a cat... :D | 13:47 | |
13:48
zakharyas joined
|
|||
rindolf | Is Noa the local equivalent of "Noah"? | 13:48 | |
dalek | kudo/nom: ee63388 | lizmat++ | src/core/Exception.pm: Initialize P6EX HLL symbol directly Seems to shave off 1 msec from bare startup |
||
rindolf | There's also en.wikipedia.org/wiki/Noa_%28name%29 | 13:49 | |
13:49
virtualsue left
|
|||
dalek | kudo/nom: c825e5b | lizmat++ | src/core/Temporal.pm: Fix another warning during optimization of settings |
13:51 | |
13:52
abraxxa left
|
|||
lizmat | and with that, the energy gives out again :-( | 13:52 | |
nap& | |||
13:54
zjmarlow_ joined
13:57
pierre-v_ left,
Actualeyes joined
13:58
uruwi joined
|
|||
lucasb | most objects have a sensible default value for .new; only Complex.new and Date.new don't have. seems arbitrary... Can this be changed? | 13:58 | |
Juerd | m: Date.new.say | ||
camelia | rakudo-moar 2a2e9a: OUTPUT«Cannot make a Date object using .new in block <unit> at /tmp/og534IucK4:1Actually thrown at: in block <unit> at /tmp/og534IucK4:1» | ||
Juerd | That's better than it was before, i.e. christmas. | 13:59 | |
lucasb: What sensible default would you suggest for Complex? | |||
lucasb | Juerd: yes, I agree this error is better than a christmas date | ||
Complex.new => 0+0i | |||
Date.new => Date.today | |||
13:59
rurban joined
|
|||
Juerd | m: Int.new.say | 13:59 | |
camelia | rakudo-moar 2a2e9a: OUTPUT«0» | ||
Juerd | I guess it would make sense. | 14:00 | |
14:00
zjmarlow_ left
|
|||
masak | rindolf: while theoretically possible that Noa will carry out an arbitrary code execution at this point... I'm not holding my breath :) | 14:00 | |
Juerd | I'm not sure about Date.today, though. I've always thought it was a bit weird that a .new is time (well, date) dependent in Javascript | ||
dalek | href="https://modules.perl6.org:">modules.perl6.org: dd09994 | (Zoffix Znet)++ | README.md: Mention commit triggered full rebuild Since we cache some data, some commits would require refreshing those caches. This can be accomplished by including [REBUILD] in the title of the commit |
||
Juerd | Date.today is extremely clear, everybody can guess what it means. | ||
But Date.new isn't so obvious | |||
rindolf | masak: heh, heh. | ||
Juerd | m: DateTime.new.say | 14:01 | |
camelia | rakudo-moar 2a2e9a: OUTPUT«Required named parameter 'year' is missing for DateTime.new() in block <unit> at /tmp/jRHrlhiufn:1Actually thrown at: in block <unit> at /tmp/jRHrlhiufn:1» | ||
masak | rindolf: we considered having an "h" in the name, but I went with the simpler spelling. the origin is still the Hebrew "Noach" | ||
Juerd | m: Instant.new.say | ||
camelia | rakudo-moar 2a2e9a: OUTPUT«Cannot make a Instant object using .new in block <unit> at /tmp/FF9DexwWWB:1» | ||
rindolf | masak: OK. | ||
Juerd | At least it's consistent. | ||
I agree about Complex.new though! | |||
lucasb | Juerd: ok, thanks for commenting | 14:02 | |
14:02
zjmarlow_ joined
|
|||
smls | Date.today is much more clear than than Date.new, and just 2 more letters to type. | 14:04 | |
So Date.new being disallowed makes sense to me. | |||
Juerd | I guess "new Date" returning some kind of today-ish value stems from the fact that many languages only have the 'new' constructor. | 14:05 | |
smls | btw. I think the date and time classes in Perl 6 are really nice, in general. | 14:07 | |
Juerd | Agreed | ||
smls | kept simple (non timezone-related over-engineering), but useful | ||
s/non/no/ | |||
Juerd | I was wondering, though. Instant + Instant being disallowed makes it harder to create an average of Instants. But that may be a completely contrived use case because I can't think of when you'd actually need *that* instead of an average of durations. | 14:08 | |
nine | run_alt problem is already in commit 82f1062825a3343c9d9bc074d602f42a4911a6f3 | 14:09 | |
Juerd | m: say [+] now | ||
camelia | rakudo-moar 2a2e9a: OUTPUT«Instant:1450447804.583077» | ||
Juerd | m: say [+] now, now | ||
camelia | rakudo-moar 2a2e9a: OUTPUT«Ambiguous call to 'infix:<+>'; these signatures all match::(Instant:D $a, Real:D $b):(Real:D $a, Instant:D $b) in block <unit> at /tmp/zmLgSuQeyj:1» | ||
Juerd | The error message should perhaps be more specific | ||
dalek | href="https://modules.perl6.org:">modules.perl6.org: 5ea5d5d | (Zoffix Znet)++ | lib/ModulesPerl6/DbBuilder (3 files): [REBUILD] Honor FULL_REBUILD env var for commit-triggered cache invalidation |
14:10 | |
Juerd | But that'd mean having a candidate just for the error message. Perhaps not a great idea. | ||
14:11
andreoss joined
|
|||
smls | m: my ($a, $b) = now, now + 1000; my $c = $a + ($b - $a)/2; say .DateTime for $a, $c, $b | 14:11 | |
camelia | rakudo-moar c825e5: OUTPUT«2015-12-18T14:11:42.274715Z2015-12-18T14:20:02.275837Z2015-12-18T14:28:22.276958Z» | ||
Juerd | Heh | 14:12 | |
14:13
eyck left
|
|||
dalek | href="https://modules.perl6.org:">modules.perl6.org: 6f46411 | (Zoffix Znet)++ | lib/ModulesPerl6/DbBuilder/Dist/PostProcessor/TravisCI.pm: unless is the root of all evil |
14:14 | |
jnthn tends to dislike candidates just for error reporting, since they break using introspection find out "can I do this" | |||
14:15
eyck joined,
adhoc left
|
|||
Juerd | jnthn: We clearly need secret candidates ;) | 14:16 | |
Let's build a language full of easter eggs | |||
smls | "is error" routine trait? | ||
Hm, but can traits be applied to a single candidate? | |||
14:17
eyck left,
adhoc joined,
eyck joined
|
|||
Ven | if "is error" trait becomes a thing, we could probably deprecate hidden-from-USAGE I made moritz++ add for my advent last year :-) | 14:17 | |
fwiw, "is error" trait reminds me of c++-style "= delete;". could be useful to disallow some special cases, i.e. multi foo(Str() $a){}; multi foo(Int) is error {}; # anything that converts to Str *EXCEPT* Int | 14:19 | ||
jnthn | smls: traits always apply to the single candidate unless they try to do otherwise | ||
smls | ok | 14:20 | |
On the topic of routine traits, I implemented an "is arrayfunction" trait for fun: www.reddit.com/r/dailyprogrammer/c...ny/cxrw79e | 14:22 | ||
in case anyone is inetrested | |||
robertle | how do i get the "xmas rt list"? is there a special tag/status/title string? | 14:23 | |
smls | lets you use Perl 6 more like an array language (APL / J / MatLab ...) | ||
Ven | smls++ # embracing our APL and J overlords :D | ||
smls: FWIW, can you force the dimension, like " in J and [] in APL? | 14:24 | ||
14:25
pierre-vigier joined
|
|||
smls | Ven: I don't actually speak J or APL. I just followed the task description to implement that specific thing (automatically generalizing functions for higher-dimension array arguments)... ;) | 14:25 | |
so, probably not | |||
Ven | smls: ah, okay :). Well, maybe give it a (small) go someday, it's a lot of fun | 14:26 | |
Skarsnik | hm is that normal? t/01-sanity/55-use-trace.t ........... Dubious, test returned 1 (wstat 256, 0x100) | ||
lucasb | robertle: is this the you are looking for? rt.perl.org/Public/Bug/Display.html?id=123766 | ||
14:27
TEttinger left
|
|||
robertle | absolutely! I thought there would be a tag on the individual bugs rather than a meta, but couldn't find it... thanks | 14:28 | |
grondilu once thought a J slang would be cool | 14:31 | ||
14:32
nige1 left,
nige1 joined
14:33
sammers left
|
|||
smls | Ven: Yeah, before doing that challenge I had always put off J as "a silly language for winning golf competitions", but the whole model behind it seems pretty powerful, and useful for certain kinds of tasks. | 14:35 | |
14:35
ellybelly left
|
|||
pmurias | Juerd: re Date.new, I think JavaScript is the biggest reason why people expect Date.new to return today | 14:36 | |
Ven | pmurias: ruby too | ||
Skarsnik | what. why 'use NativeCall :test;' trigger a Useless use of ":test" in sink context (line 3) | ||
Ven | smls: I believe we have a J-er here... I'm not sure who that was :). Anyway, allows you to write cool programs, like ([`({.,([:":#-2:),{:)@.(#>3:)) 'smls' | ||
Juerd | pmurias: Possibly | 14:38 | |
stmuk | I think the GSR is still giving false positives I saw one earlier but couldn't easily reproduce | ||
Skarsnik | Date.new could be epoc or something silly like this | ||
andreoss | masak: 'else if' should be done in a way that 'else' might be followed by either block or another Q::Statement::If. But the whole Q::Statement::If might contain several 'else if' itself (much like 'elsif'). Wouldn't the later be better for performance? | 14:39 | |
Juerd | Skarsnik: There are too many epochs to choose from | 14:40 | |
Skarsnik | Yes but today for me is really weird | ||
it's not really a 'zero' date | |||
why not the date the process was started? x) | |||
Juerd | It is if yesterday is -1 | ||
14:41
Actualeyes left,
Actualeyes joined
|
|||
Juerd | Skarsnik: Because we already have a perfectly composed way to say that: INIT now | 14:41 | |
dalek | href="https://modules.perl6.org:">modules.perl6.org: 41570c7 | (Zoffix Znet)++ | / (2 files): Fixes #44 Race Condition with Travis Build Info We"ll simply continue fetching travis info for 24hrs after the last commit to the repo. The 24hr period gives enough time for both Travis status to update for dists whose travis runs forever and for our builder to run the build cycle (which will take forever when we"ll get more dists). |
||
14:41
raiph joined
|
|||
Juerd notices 'koalatee' on modules and lols | 14:42 | ||
dalek | c: dc670e3 | (Zoffix Znet)++ | doc/Language/classtut.pod: Fixes #249 incorrect variable name |
14:43 | |
14:45
sammers joined
|
|||
Skarsnik | why 007 get 80% and everything else 100% x) | 14:46 | |
14:46
cdg joined
|
|||
nine | It very much appears like the run_alt problem has not been in commit 87288285f6f398ec7cba0900312ced4b580d79ed (Sat Nov 14) | 14:46 | |
Juerd | Skarsnik: Yeah, my MQTT::Client has 80% too and I'd like to talk to the person responsible for this!!11 | 14:47 | |
Oh, never mind. I forgot I don't really care about kwalitee, so I probably shouldn't care about koalatee either. :) | |||
14:47
ZoffixW joined
|
|||
nine | Do we know of modules besides Text::CSV and HTTP::UserAgent that expose the run_alt problem? | 14:48 | |
Juerd | Ah, speaki of the devil! | ||
s/speaki/speak/ | |||
14:48
skids joined
|
|||
Juerd | Hi ZoffixW | 14:48 | |
14:49
administ1ator left,
administrator joined
14:50
administrator is now known as Guest35673
|
|||
ZoffixW | Juerd, yo | 14:50 | |
Juerd | ZoffixW: juerd.nl/i/85f6f9110ca5130504def2ac1d75c8fe.png :) | 14:51 | |
stmuk | nine: also rt.perl.org/Ticket/Display.html?id=126832 | ||
ZoffixW | Skarsnik, the dump tells me it's missing a readme file, which might be a bug somewhere, 'cause the file is there | 14:53 | |
I plan to add detailed Koalatee failures page on the weekend | |||
Juerd, same reason as above, I presume | 14:55 | ||
14:55
patrickz joined
|
|||
Juerd | ZoffixW: I haz README.md | 14:55 | |
ZoffixW | Yeah. It's a bug | 14:56 | |
Juerd | ZoffixW: It's okay though, I'll just watch the failures page when it's there :) | ||
ZoffixW | I'm surprise tests didn't catch it :( | ||
oh, god, this is hilarious | |||
Instead of "blob" I typed "blog" in the line that looks for readmees :) | 14:57 | ||
nine | commit 4c07a1c0809f654db12d9835fb43a8b45e35d50e (Nov 18) seems to be fine still | ||
dalek | p/js-cps: c762f2a | (Pawel Murias)++ | src/vm/js/QAST/Compiler.nqp: [js] for op works in CPS mode |
15:01 | |
p/js-cps: 14b8a63 | (Pawel Murias)++ | src/vm/js/nqp-runtime/core.js: [js] Hack to make nqp::istype([], NQPArray) work. |
|||
p/js-cps: e6f3bc6 | (Pawel Murias)++ | src/vm/js/QAST/Compiler.nqp: [js] Fix CPS bug. |
|||
pmurias | the gather/take example from t/moar/01-continuations.t test works :) | ||
jnthn | pmurias: nice :) | 15:02 | |
15:03
regreg joined
15:05
rjbs joined
|
|||
Ven | pmurias++ | 15:05 | |
nine | With commit e19f2eba0ead3 from Nov 21 Text::CSV still passes its tests while one test in HTTP::UserAgent shows the run_alt problem | ||
15:08
zjmarlow_ left
|
|||
dalek | p: 7818504 | jnthn++ | tools/build/MOAR_REVISION: Bump MOAR_REVISION for unsigned bits. |
15:09 | |
p: a31a3d0 | jnthn++ | src/vm/moar/QAST/QAST (2 files): Scatter unsigned int handling about. This probably doesn't cover everything, but it's a significant step forward from before, where we essentially ignored it entirely for locals and lexicals. |
|||
kudo/nom: c040a07 | jnthn++ | / (3 files): Improve unsigned int support. We pay attention to unsignedness in lexicals now, or at least make a far better job of it than we used to. |
15:12 | ||
kudo/nom: 48f4c14 | jnthn++ | t/04-nativecall/15-rw-args.t: Untodo an unsigned int test. |
|||
timotimo | o/ | ||
15:14
uruwi left
15:15
hankache left
|
|||
Ven | o/ timotimo | 15:15 | |
jnthn: that'll have to be taught to other backends as well, right? | 15:18 | ||
15:18
rurban_ left
|
|||
grondilu | does that mean that arithmetics in uint32 will be modulo 2**32? That could be useful for the Digest library. | 15:18 | |
jnthn | Yeah | ||
grondilu | nice | 15:19 | |
jnthn | Well] | ||
We compute at full width | |||
It's only the storage that is sized | |||
15:19
sammers left
|
|||
timotimo | Ven: why does it say "int8" in your advent post where you really mean int64? | 15:20 | |
Ven | timotimo: I probably started with int8 :) | ||
dalek | ast: 08952f6 | jnthn++ | S02-types/native.t: Tests for RT #124294. |
||
Ven | timotimo++ # checking | ||
timotimo: If you don't want such silly mistakes in tomorrow's articles, please proof-read me: perl6advent.wordpress.com/?p=4508&...frame=true | 15:21 | ||
timotimo: (updated) | |||
ZoffixW | m: my int8 $x = 42; say $x | ||
camelia | rakudo-moar c825e5: OUTPUT«42» | ||
ZoffixW | m: my int3 $x = 42; say $x | ||
camelia | rakudo-moar c825e5: OUTPUT«5===SORRY!5===Type 'int3' is not declared. Did you mean any of these? int32 int Int int8at /tmp/fK8IWEa1V6:1------> 3my int37⏏5 $x = 42; say $xMalformed myat /tmp/fK8IWEa1V6:1------> 3my7⏏5 int3 $…» | ||
ZoffixW | m: my int4 $x = 42; say $x | ||
camelia | rakudo-moar c825e5: OUTPUT«5===SORRY!5===Type 'int4' is not declared. Did you mean any of these? int Int int8 int64at /tmp/8KjyQc05Gq:1------> 3my int47⏏5 $x = 42; say $xMalformed myat /tmp/8KjyQc05Gq:1------> 3my7⏏5 int4 $…» | ||
jnthn | ZoffixW: Those would be sub-byte :) | 15:22 | |
ZoffixW: Some day we'll do 'em, but not for now. | |||
15:22
administrator joined
|
|||
jnthn | (They have consequences in a whole load of places) | 15:22 | |
15:22
Guest35673 left
|
|||
ZoffixW | Ah, right, these are bits | 15:22 | |
m: my int256 $x = 42; say $x | 15:23 | ||
camelia | rakudo-moar c825e5: OUTPUT«5===SORRY!5===Type 'int256' is not declared. Did you mean 'int16'?at /tmp/Q52hvXa8xu:1------> 3my int2567⏏5 $x = 42; say $xMalformed myat /tmp/Q52hvXa8xu:1------> 3my7⏏5 int256 $x = 42; say $x» | ||
15:23
administrator is now known as Guest19063
|
|||
jnthn | heh, you have int64, int32, int16, and int8 :) | 15:23 | |
and uint32, uint16, etc. | |||
ZoffixW | *insert "I don't know what I'm doing" meme* | ||
jnthn | i0.kym-cdn.com/photos/images/newsfe...65/b7e.jpg | 15:24 | |
ZoffixW | Thanks :D | ||
15:24
zjmarlow_ joined
|
|||
Ven | well, you can use `int1 @a[4]` :P | 15:24 | |
jnthn | Ven: Not yet you can't :) | ||
But yeah, bit arrays will be cute once we have 'em :) | 15:25 | ||
dalek | href="https://modules.perl6.org:">modules.perl6.org: 34a8002 | (Zoffix Znet)++ | / (3 files): [REBUILD] Fix incorrect detection of has_readme metric Skarsnik++ for noticing the issue |
||
15:26
rindolf left
15:27
pmurias_ joined
|
|||
dalek | href="https://modules.perl6.org:">modules.perl6.org: cd10dd6 | (Zoffix Znet)++ | t/02-db-builder/02-github-source-and-source-base-class.t: Remove spurious pod markers |
15:28 | |
15:30
pmurias left,
zjmarlow_ left
15:31
thundergnat joined
|
|||
Ven | aw jnthn :( | 15:32 | |
15:32
pmurias_ is now known as pmurias
|
|||
Ven | well, there's a lot of time anyway. and today's post is published already :P | 15:32 | |
15:32
sammers joined
15:33
khw joined
|
|||
andreoss | masak: shouldn't we use Q::Literal::None instead of Val::None? | 15:35 | |
thundergnat | Is there some sekret setting to make the travis status update on the modules page? | ||
nine | According to git bisect the run_alt problem appeared with commit ae08091a8903442e126f4baa4ae426ec13a77545 which is totally bogus. This confirms my suspision that it has been with us for quite a long while but only surfaced recently. | ||
thundergnat | I (thought) I set up travis for Sort-Naturally 2 weeks ago but it still shows up as "unknown" in the listing. | 15:36 | |
IF I click on the unknown block, it shows that travis compiled ok... | |||
15:36
aindilis left
|
|||
ZoffixW | thundergnat, I believe that's exactly what I fixed an hour ago :) github.com/perl6/modules.perl6.org...8cc2d4e1e3 | 15:37 | |
thundergnat, it should become updated the next time DB rebuilds in ~0–2 hours | |||
thundergnat | Whoa! that was fast! :) | ||
Bug fixes before I request them | 15:38 | ||
ZoffixW | :) | ||
15:38
nige1 left
|
|||
thundergnat | ZoffixW++ :-) (and everyone else working on Perl6)++ | 15:39 | |
15:40
neuhaus joined
|
|||
neuhaus | Is there a wiki software written in perl6 that is ready to use? | 15:40 | |
ZoffixW | neuhaus, I see one result on the modules.perl6.org , but I don't know how "ready to use" it is: modules.perl6.org/#q=wiki | 15:41 | |
neuhaus | yeah I saw that one | ||
but I figured it's just a wiki engine (?) | |||
ZoffixW | neuhaus, then I doubt there's an actual "wiki software," seeing as we're having our first stable release a week in the future :) | 15:42 | |
Hasn't been built yet :) | |||
pmurias | there use to be a Perl 6 wiki called November ages ago | 15:45 | |
ZoffixW | Yeah, that's the 1 search result showing up | ||
15:47
ZoffixW left,
sno left
|
|||
jdv79 | whatsup with hack? | 15:48 | |
15:48
rindolf joined
15:54
zjmarlow_ joined
15:56
Ven left
16:00
zjmarlow_ left
16:04
neuhaus left,
nige1 joined,
xfix joined
|
|||
TimToady | lizmat: btw, you can also fix that by saying "Nil while ..." | 16:06 | |
in fact, I had it fixed that way last night but forgot to check it in, so we collided :) | 16:07 | ||
16:07
_nadim joined
|
|||
TimToady | and on the other one I just deleted the 0 | 16:07 | |
but your fixes are fine too | |||
16:08
DrParis left,
n0tjack joined
16:09
DrParis joined,
nadim left,
DrParis is now known as Guest89009,
FROGGS left
|
|||
jnthn | o/ TimToady | 16:10 | |
TimToady | m: f(); sub f() { say callframe().line;sub foo { 42 } } | 16:11 | |
camelia | rakudo-moar 48f4c1: OUTPUT«5» | ||
TimToady | m: f(); sub f() { say callframe().line;sub foo { 42 } } | ||
camelia | rakudo-moar 48f4c1: OUTPUT«3» | ||
16:11
Ven joined
|
|||
grondilu | m: say my uint32 $ = 2**32 + 1; | 16:12 | |
camelia | rakudo-moar 48f4c1: OUTPUT«1» | ||
TimToady | here's a kind of minimal test case for the lines thing | ||
the presence of a block later in the the list clobbers the earlier callframe and points it at the later block | |||
16:12
domidumont left
|
|||
TimToady | so your line number there depends on how many newlines are between the callframe call and the block | 16:13 | |
m: f(); sub f() { say callframe().line;{ 42 } } | |||
camelia | rakudo-moar 48f4c1: OUTPUT«5» | ||
TimToady | and it's pretty much any block | ||
m: f(); sub f() { say callframe().line;{ 42 } } | |||
camelia | rakudo-moar 48f4c1: OUTPUT«49» | ||
16:13
RabidGravy joined
|
|||
dalek | kudo/nom: c31190e | jnthn++ | src/Perl6/ (2 files): Make sure compose-time errors get line/file. |
16:14 | |
TimToady | so I daresay it's quite likely something I did :) | ||
16:17
robertle left
|
|||
TimToady | maybe I should learn how to bisect one of these years... | 16:18 | |
Ven | .oO( You're never old enough for Git ) |
16:19 | |
16:19
virtualsue joined,
dwarring left
|
|||
TimToady | star-m: f(); sub f() { say callframe().line;{ 42 } } | 16:21 | |
camelia | star-m 2015.09: OUTPUT«1» | ||
TimToady | well, there's a data point :) | ||
16:22
rurban left
|
|||
dalek | ast: 5a0c386 | jnthn++ | S14-roles/composition.t: Some tests on roles + handles. Covers RT #64766, which was filed long ago and had somewhat bogus expectations. We should at least test how things are meant to work, though. |
16:23 | |
16:23
_nadim left,
_nadim joined
16:24
zjmarlow_ joined
16:27
ZoffixW joined,
pat_js joined
16:30
zjmarlow_ left
|
|||
ZoffixW | This is weird... int64 array takes less space than int32 array? gist.github.com/zoffixznet/22a3979981c1765d9657 | 16:33 | |
It's a Linux b-webdev-dt 3.2.0-4-686-pae #1 SMP Debian 3.2.51-1 i686 GNU/Linux | |||
jdv79 | is updatelist.pl used to gen projects.json? | ||
ZoffixW | And it actually uses 3705032704 for plain' "int" too | 16:35 | |
16:36
virtualsue left,
virtualsue_ joined,
virtualsue_ is now known as virtualsue
|
|||
jnthn | ZoffixW: Weird. If I give it an amount it *can* allocate, and look at the memory use, then it's much less for the int32 | 16:37 | |
16:37
nige1 left
|
|||
vytas | shouldn't .^methods include WHAT and WHICH ? | 16:37 | |
ZoffixW | m: 3705032704 / 8 | ||
camelia | rakudo-moar c31190: OUTPUT«WARNINGS for /tmp/Mfr5HW7OPu:Useless use of "/" in expression "3705032704 / 8" in sink context (line 1)» | ||
ZoffixW | m: say 3705032704 / 8 | ||
camelia | rakudo-moar c31190: OUTPUT«463129088» | ||
jnthn | vytas: No, they're not methods | ||
Well, WHICH actually is I guess | |||
WHAT isn't | |||
Also, by default we don't show methods in Cool/Any/Mu | |||
16:37
Ven left
|
|||
vytas | sorry which is there | 16:37 | |
jnthn | use :all to see those | ||
16:38
MadcapJake joined
|
|||
jnthn | I think .WHAT and .WHERE and .HOW aren't methods though | 16:38 | |
ZoffixW | jnthn, doesn't happen on camelia's box: | ||
m: my int64 @foo[10000;100000] | |||
camelia | rakudo-moar c31190: OUTPUT«Memory allocation failed; could not allocate 8000000000 bytes» | ||
ZoffixW | m: my int32 @foo[10000;100000] | ||
camelia | rakudo-moar c31190: OUTPUT«Memory allocation failed; could not allocate 4000000000 bytes» | ||
jnthn | I suspect the error reporting is off | 16:40 | |
Or something like that | |||
16:40
zakharyas left
16:41
zakharyas joined
|
|||
b2gills | m: subset Record of Positional where :(Int,Str); for ((5,'s'),[5,'s'],<5 5>,<5 5 5>) { say $_ ~~ Record }; my Record @a; @a.push([5,'s']) | 16:41 | |
camelia | rakudo-moar c31190: OUTPUT«TrueTrueTrueFalse» | ||
dj_goku | on osx I don't get those failures that ZoffixW is getting. :D | ||
ZoffixW | dj_goku, you just have more RAM. Use larger indeces | ||
jdv79 | RabidGravy: your meta tester thing could use some more detailed field validating | 16:42 | |
like flagging a name value of Foo-Bar instead of Foo::Bar | |||
and v1.2 instead of 1.2 for version | 16:43 | ||
16:43
CQ joined
|
|||
ZoffixW | .tell Ven Ven++ good Advent post... After years of hearing the term I now know that REPL is not PERL spelt weirdly to name the weird code eval thing :P | 16:43 | |
yoleaux | ZoffixW: I'll pass your message to Ven. | ||
dj_goku | lol | ||
(nessus_two)johnny:corona-deploy jonathanotsuka$ perl6 -e 'my int32 @foo[100000000000]' | |||
Killed: 9 | |||
ZoffixW | heh | ||
RabidGravy | M | ||
dj_goku | I have 16GB of memory | 16:44 | |
ZoffixW | dj_goku, right, your OS kills the script before it has a chance to complain that it didn't get enough RAM | ||
JimmyZ | m: my multi bar ($) { }; my sub foo () { my $q := bar($q); }; foo(); | ||
camelia | rakudo-moar c31190: OUTPUT«5===SORRY!5=== Error while compiling /tmp/ZlqZfnBLAGCannot use variable $q in declaration to initialize itselfat /tmp/ZlqZfnBLAG:1------> 3 ($) { }; my sub foo () { my $q := bar($7⏏5q); }; foo(); expecting any of: argumen…» | ||
dj_goku | haha yeah, it started eating swap like crazy too. | 16:45 | |
RabidGravy | jdv79, I'm not sure about the version, but I'd accept a patch that had a ':strict' | ||
16:45
hankache joined
|
|||
JimmyZ | m: my int32 @foo[100000000000] | 16:45 | |
camelia | rakudo-moar c31190: OUTPUT«Memory allocation failed; could not allocate 400000000000 bytes» | ||
dj_goku | is there a way to calculated the maximum bytes that could be allocated? | 16:46 | |
ZoffixW | m: say "{400000000000/1024/1024/1024} jiggabytes" | ||
hankache | MadcapJake are you here? | ||
camelia | rakudo-moar c31190: OUTPUT«372.5290298 jiggabytes» | ||
dj_goku | ZoffixW: jiggabytes lol | ||
MadcapJake | yep! | ||
hankache | hello :) | ||
MadcapJake | hi! | 16:47 | |
jdv79 | so you want the test to only do a cursory test as it does now and dig in on a strictly'ed call? | ||
hankache | i have been trying to install the camelia icon for atom as per your blog post | ||
and couldn't make it | |||
jdv79 | also, what is unsure about version? | 16:48 | |
afaik version are always prefixed with a v | |||
is this not true? | |||
MadcapJake | hmm, what issue are you having? is the icon showing as a box? | ||
hankache | can you help me? | ||
16:49
pat_js left
|
|||
MadcapJake | yeah sure | 16:49 | |
16:49
dwarring joined
16:50
AndyDee left
|
|||
hankache | when i try to add the code to styles.less and save i get the following error: variable @pane-tab-selector is undefined | 16:50 | |
ZoffixW | m: use Number::Denominate; say denominate 400000000000, :set<info-1024> | ||
camelia | rakudo-moar c31190: OUTPUT«===SORRY!===Could not find Number::Denominate in: /home/camelia/.perl6/2015.11-653-gc31190e /home/camelia/rakudo-m-inst-1/share/perl6/site /home/camelia/rakudo-m-inst-1/share/perl6/vendor /home/camelia/rakudo-m-inst-1/share/perl6…» | ||
hankache | it says error compiling stylesheet | ||
ZoffixW | :( locally I get "372 gibibytes, 541 mebibytes, and 744 kibibytes" | ||
MadcapJake | did you `apm install file-icons`? | 16:51 | |
RabidGravy | jdv79, It currently does "can be parsed as a version" , I'm not sure what does what with the value anyway | ||
hankache | MadcapJake yes | ||
MadcapJake and default icons are showing (perl 5 python ruby etc.) | |||
dj_goku | does camelia install modules by default? | ||
hankache | MadcapJake i followed the steps listed here: madcapjake.github.io/2015/perl6-file-icons/ | 16:52 | |
MadcapJake | what version of atom are you using? | ||
ZoffixW | dj_goku, no, there's a m-star: I think that has Rakudo* installed | ||
But it should! | |||
hankache | MadcapJake 1.3.0 | 16:53 | |
ZoffixW | It should auto-install a bunch of Community Approved(tm) modules so that when people ask of help for some tasks, we could show the example in here instead of telling them "Use module XYZ" | ||
dj_goku | that would be cool. | ||
MadcapJake | i think i forgot something important in that post x( | 16:54 | |
dalek | ecs: 1903a50 | jnthn++ | S06-routines.pod: Bring parameter semantics in line with reality. Besides being what is implemented, these also allow for more/better optimization (we already have optimizations that depend on them; if we took the previous semantics, things like spesh would be unable to rely supposedly readonly parameters never changing under them due to their being aliases). |
||
16:54
zjmarlow_ joined
|
|||
hankache | oh | 16:54 | |
MadcapJake | hankache: add these three lines: @import "packages/file-icons/styles/colors"; @import "packages/file-icons/styles/items"; @import "packages/file-icons/styles/icons"; | 16:55 | |
prior to the selector | 16:56 | ||
16:56
patrickz left
|
|||
hankache | MadcapJake now it says: .octicon-package is undefined | 16:57 | |
jdv79 | i'm fairly certain a version literal has only one format | 16:58 | |
who can help with this in META6.json is a version value of 1.2 valid? or must it be v1.2? | |||
m: my $ver = v1.2; say $ver.perl | 16:59 | ||
camelia | rakudo-moar c31190: OUTPUT«Version.new('1.2')» | ||
jdv79 | m: my $ver = 1.2; say $ver.perl | ||
camelia | rakudo-moar c31190: OUTPUT«1.2» | ||
Skarsnik | pretty sure nothing use the version in the file? x) | ||
jdv79 | m: my $ver = 1.2.3; say $ver.perl | ||
camelia | rakudo-moar c31190: OUTPUT«5===SORRY!5=== Error while compiling /tmp/OPs2GxyKFAMalformed postfix callat /tmp/OPs2GxyKFA:1------> 3my $ver = 1.2.7⏏053; say $ver.perl» | ||
jdv79 | Skarsnik: does that mean it should be wrong? :) | 17:00 | |
17:00
zjmarlow_ left
|
|||
jnthn | TimToady: How much do you want rt.perl.org/Ticket/Display.html?id=78676 dealing with pre-xmas? | 17:00 | |
Skarsnik | when you find out, add it to Test::META ?x) | ||
MadcapJake | hankache: .octicon-package { content: "\f0c4" } | ||
17:00
andreoss left
|
|||
MadcapJake | that's what I get for naming things like they are named in the package :P thought that was included OOB | 17:01 | |
i'm updating my post now, sorry hankache! | |||
17:01
mspo joined
|
|||
hankache | MadcapJake ok I was able to save, but icons are showing as a empty square | 17:02 | |
MadcapJake | hmm | ||
17:03
Begi joined
|
|||
MadcapJake | hankache: all of them? | 17:03 | |
nine | dj_goku: patches welcome ;) | ||
hankache | MadcapJake no worries dear, i like your what you did: perl6-fe and now icons for atom | 17:04 | |
MadcapJake original ones are working, just perl6 files are not | |||
ugexe | Version still needs work. zef has a subroutine for cleaning the version string and normalizing it so version can properly be compared, and its not pretty | ||
lucasb | m: /o/ | 17:05 | |
camelia | rakudo-moar c31190: OUTPUT«getlexrelcaller needs a context in block <unit> at /tmp/vYTo2XTzXk:1» | ||
17:05
Begi2 joined,
Guest19063 left
|
|||
jdv79 | ugexe: what specifically do you mean? The Version class needs fixing or the values in the wild are not valid? | 17:06 | |
lucasb | lizmat: ^^ Do you think this is related to this commit? github.com/rakudo/rakudo/commit/3c...258e4fa186 | ||
hoelzro | Ulti: thanks for letting me know | ||
yoleaux | 11:30Z <Ulti> hoelzro: I think there is still a little issue around Linenoise and finding its helper lib github.com/hoelzro/p6-linenoise/issues/10 | ||
hoelzro | has anyone had problems with Linenoise, particularly on OS X? | ||
17:06
administrator joined,
administrator is now known as Guest9799
|
|||
timotimo | yo hoelzro; can you report in #moarvm about the "get stats from malloc" thing you did in the past? i'm interested in putting something like that into the profiler and i forgot what the function was called :) | 17:07 | |
17:07
Begi left
|
|||
mspo | m: say 1 … 5 | 17:07 | |
camelia | rakudo-moar c31190: OUTPUT«(1 2 3 4 5)» | ||
ugexe | jdv79: Version class needs fixing. for example: `Version.new("v1.0")` gives you `vv1.0`. nor is there a good way to compare 2 version strings (otherwise you are just getting the longer string) | ||
timotimo | ugexe: why isn't version vv1.0 valid? | 17:08 | |
what if my versioning scheme begings with letters? | |||
ugexe | im not saying its not valid | ||
timotimo | va1.0, vb1.0, vc1.0, ... vv1.0 :) | ||
hoelzro | timotimo: sure thing! | ||
timotimo | thanks :) | ||
AFK for a bit :) | |||
vytas | in perl6 does it always exist with 1 on error? I am trying to distinguish errors | ||
ugexe | but its not exactly intuitive | 17:09 | |
vytas | exits* | ||
nine | hoelzro: I changed panda to no longer compile into blib yesterday | ||
probably related | |||
jnthn | vytas: Yes, 1...unless something seriously goes wrong, like SIGSEGV :) | ||
hoelzro | hmm | ||
I just built on Arch, that works fine | 17:10 | ||
and I have to re-test on Windows tomorrow or Sunday | |||
ugexe | if you end up with a "v1.0" you dont know if the string was generated by Version.new or if its the literal string in many cases | ||
dalek | p/js-cps: 6a621fa | (Pawel Murias)++ | src/vm/js/QAST/Compiler.nqp: [js] Avoid generating a CPS/direct version for immediate blocks when it's not needed. |
||
ilmari | vytas: or unless you call exit with an epxlicit value, of course | ||
17:11
regreg left
|
|||
jdv79 | timotimo has a good point. so that's why versions must begin with v. | 17:11 | |
vytas | thanks jnthn++ ilmari++ :) by the way, great talk on GC jnthn. | ||
hoelzro | would someone mind trying out Linenoise on OS X, see if it works? | ||
jdv79 | timotimo: thanks | 17:12 | |
17:12
vividsnow left
|
|||
MadcapJake | hankache: try this: `sed -i "s|/home/jrusso|$HOME|" ~/.atom/stylesheets/camelia/style.css` | 17:12 | |
17:12
vividsnow joined
|
|||
RabidGravy | ugexe, jdv79, I've actually mad a small hack in the META parsing thingy to remove any leading "v" from the parts of the resulting version obect, so "v0.1" abd "0.1" end up the ssame | 17:13 | |
MadcapJake hopes he won't get beatup for posting a sed command ;) | |||
ugexe | RabidGravy: thats what i did as well | 17:14 | |
hankache | MadcapJake: Working now!! | ||
MadcapJake thanks a lot | |||
ugexe | having no leading 'v' is the most sane option for a literal string | ||
MadcapJake | hankache: awesome! I'll update my blog post accordingly. | ||
hankache | MadcapJake++ | ||
MadcapJake | hankache: no problem! glad it worked! | ||
RabidGravy | ugexe++ # great minds and all | ||
hankache | MadcapJake yes, i have a fresh installed atom so the steps i did should be the same for anyone new | 17:15 | |
jdv79 | what? | ||
MadcapJake | hankache: cool, I've been fudging with my stylesheet for at least a year so I'm glad it wasn't something too difficult to replicate | 17:16 | |
jdv79 | its not a string. its a version. | ||
ugexe | but somtimes you have to pass the version as a string | ||
jdv79 | and how is it better to use the v-less form? i guess i'm just not getting it. | 17:17 | |
ugexe | in those cases you no longer know if the 'v' was added by Version or is part of the literal string | ||
17:18
koo8 left
|
|||
jdv79 | but if there was only one valid form then you do know. always string the v off. | 17:18 | |
17:18
mprelude joined
|
|||
jdv79 | s/string/strip/ | 17:18 | |
RabidGravy | jdv79, JSON doesn't know anything about Perl versions | 17:19 | |
hankache | MadcapJake would you consider submitting a PR for inclusion in the original project? | ||
jdv79 | i realize that but why have 2 forms? | ||
so a user has to know in META6.json, for instance, its 1.2.3 but in a use statement its v1.2.3. | 17:20 | ||
TimToady | jnthn: well, it's not like they'll mistake the absence of it for a feature, otoh allowing targeted attributes might reduce the carping about interface consistency; otgh most of the carping on that is outside of constructors anyway, so it's kind of a wash | ||
MadcapJake | hankache: original project? | 17:21 | |
RabidGravy | jdv79, does putting "1.2.3" in the META file stop the module getting installed now? | ||
17:21
pat_js joined
|
|||
TimToady | jnthn: obviously we've survived without it up till now | 17:21 | |
hankache | MadcapJake file-icons | ||
TimToady | I suspect we have more important fish to fry before xmas | ||
17:22
pierre-vigier left
|
|||
jdv79 | no. is that the only criteria we should use? | 17:22 | |
MadcapJake | hankache: oh, all of their file-icons are from font packs. I think the first step is get a real small-form camelia icon included in font-awesome or devicons | ||
hankache | MadcapJake indeed you're right | 17:23 | |
17:24
zjmarlow_ joined
|
|||
hankache | MadcapJake i am using perl6-fe (great job btw), how do i enable fira-code ligatures? | 17:24 | |
ugexe | i would point to timotimos example again. what if the version has to be passed as a string more than once? you now dont know if `vvv1.0` is literal string `vvv1.0` or if it needs another `v` prefixed | 17:25 | |
MadcapJake | hankache: add this to your stylesheet: atom-text-editor { text-rendering: optimizeLegibility; } | 17:26 | |
hankache | MadcapJake i disabled the original perl syntax highlighter, and perl 6-fe syntax highlighting is working fine but not the fira-code ligatures | ||
jdv79 | couldn't Version.new require and eat a leading v? | ||
MadcapJake | hankache: also to disable ligatures inside strings: atom-text-editor::shadow .string.quoted { -webkit-font-feature-settings: "liga" off, "calt" off; } | 17:27 | |
jdv79 | otherwise how do i know if v1 is version 1 or version v1? | ||
RabidGravy | or the version is written in roman | 17:28 | |
ugexe | without a leading v `1` is version 1 and `v1` is version v1 | ||
hankache | MadcapJake atom-text-editor { text-rendering: optimizeLegibility; } did not solve it | ||
ugexe | there is no ambiguity then | ||
jdv79 | but literals still start with v | ||
MadcapJake | hankache: are you sure you're using fira code? check the `@` char, it's very distinctive | 17:29 | |
jdv79 | so why not settle on one form. | ||
MadcapJake | hankache: my font family is "Fira Code" make sure there is a space | ||
RabidGravy | if that's unambiguously what "The version literal for this distribution." means, then that's fine but there doesn't appear to be consensus | 17:30 | |
masak | .tell andreoss re irclog.perlgeek.de/perl6/2015-12-18#i_11740200 -- you'd think so, but a Q::Literal::None represents the literal `None` in the source text. we're using Val::None here to say "there's no `else` here at all" | ||
yoleaux | masak: I'll pass your message to andreoss. | ||
hankache | MadcapJake i am not using it, what should i do? | ||
MadcapJake sorry for the multiple questions | 17:31 | ||
:( | |||
MadcapJake | use it! :D what OS are you using? | ||
17:31
zjmarlow_ left
|
|||
hankache | MadcapJake LinuxMint | 17:31 | |
MadcapJake how? | 17:32 | ||
MadcapJake | if you're asking how do you set atom to use a font, go to settings, and under the core settings tab, scroll down to font family | ||
set it to "Fira Code" | |||
linuxmint, install is just double click the file then click install (i'm pretty sure they use the same font viewer as Gnome) | 17:33 | ||
if you're updating to latest Fira Code you'll need to remove the old ones first, `rm /usr/local/share/fonts/FiraCode*` | |||
jdv79 | anyone not ok with requiring Version values to always begin with a v and Version will requiring and stripping it? | 17:34 | |
17:34
yqt joined
|
|||
jdv79 | s/will// | 17:34 | |
hoelzro | should '/my/file' ~~ :s return the size, or just whether the size is non-zero? | 17:36 | |
hankache | MadcapJake thanks dear | ||
MadcapJake | hankache: no prob! it's all working then? | 17:37 | |
hankache | MadcapJake not yet | ||
17:37
pmurias left
|
|||
hankache | MadcapJake can't find the font | 17:38 | |
hoelzro | also, there's no way of having optional resources in the META file, is there? like a .dylib on OS X, an .so on *nix, etc? | ||
hankache | MadcapJake /usr/local/share/fonts is empty | ||
MadcapJake | hankache: atom can't? | ||
dalek | kudo/nom: 71dadb8 | TimToady++ | src/Perl6/Actions.nqp: fix line bug This bug resulted from transforming a 'for' into a 'while' without noticing a secondary use of $_ to set the node. |
||
MadcapJake | hankache: try /usr/share/fonts or ~/.local/share/fonts | 17:39 | |
dalek | href="https://modules.perl6.org:">modules.perl6.org: 362c65b | (Zoffix Znet)++ | README.md: [REBUILD] Null commit to trigger db rebuild |
17:40 | |
ZoffixW | My bash-script-foo only looked at the most recent commit *during build launch* :( | 17:41 | |
hankache | MadcapJake none of them has FiraCode | ||
ZoffixW | hankache, just get it from github.com/tonsky/FiraCode ? | ||
MadcapJake | hankache: dl it from there, then just double click the file and gnome-font-viewer should popup with a big "Install" button | 17:45 | |
i'm pretty sure those are the only three font locations (maybe ~/.fonts too?) so if it isn't in there, it hasn't been installed yet | |||
jdv79 | ugexe: so your proposal is that "v1" and v1 mean different things as a version and if someone writes "v1" and but meant v1 that's too bad? :) | 17:46 | |
17:48
zakharyas left
|
|||
hoelzro | alright, Linenoise issue fixed | 17:49 | |
\o/ | |||
jdv79 | can someone point out how my line of reasoning on this is wrong? | 17:50 | |
17:50
vytas left
|
|||
TimToady | m: f(); sub f() { say callframe().line;{ 42 } } | 17:51 | |
camelia | rakudo-moar 71dadb: OUTPUT«1» | ||
TimToady | spectests much cleaner now :) | ||
just 4 failing files, the usual suspects | |||
17:52
pierre-vigier joined
|
|||
ZoffixW | TimToady++ | 17:52 | |
TimToady | 3 of the 4 are flappers, or a least don't fail when tested individually | 17:53 | |
hankache | MadcapJake ZoffixW i think the problem is that my desktop is cinammon and not gnome | ||
TimToady | "Sorry 'bout the mess." —Han Solo | 17:54 | |
17:54
zjmarlow_ joined
|
|||
jdv79 | something is fouling source-url values in projects.json. | 17:54 | |
ZoffixW | jdv79, fouling up how? | 17:55 | |
hankache, "the problem" being what? Just copy the font files to ~/.fonts | |||
lucasb | m: /a/ for <a> | ||
camelia | rakudo-moar 71dadb: OUTPUT«Method '!cursor_start' not found for invocant of class 'Str' in block <unit> at /tmp/V2OoaFuDV2:1» | ||
jdv79 | the end up with a trailing slash instead of a .git | 17:56 | |
ZoffixW | jdv79, they're normalized to single format | ||
jdv79 | do you know how that is gend? | ||
ZoffixW | jdv79, what's the original URL? | ||
hankache | gotta run | 17:57 | |
be back later | |||
17:57
hankache left
|
|||
ZoffixW | jdv79, and it's done here: github.com/perl6/ecosystem/blob/ma...ist.pl#L73 | 17:57 | |
jdv79 | for instance, "source-url" : "github.com/andydude/p6-c-parser.git" in META.info -> "source-url": "https:\/\/github.com\/andydude\/p6-c-parser\/" in projects.json | 17:58 | |
ZoffixW | Right, that's as expected | ||
We did it because people were using all sorts of URLs in their META, so we normalize them to single format. This way we can be sure they're handled by panda | |||
jdv79 | there are others that are not of that form though | ||
17:59
kyclark joined
|
|||
jdv79 | "source-url": "git:\/\/github.com\/raydiak\/pray.git", for instance | 17:59 | |
huh | |||
ZoffixW | jdv79, Ah, right. We don't use exact same form, but we coerce some urls.. So if the above was missing .git it would be added. | ||
If you know Perl 6, the sub I linked to above shows what's being done. | 18:00 | ||
That's done the same on modules.perl6.org parser as well | |||
jdv79 | yeah, i didn't look yet | ||
ZoffixW | s/Perl 6/Perl 5/; | ||
lucasb | I don't like that there is no distinction between regex objects and the match operator. All regexes get "activated" in boolean contexts. Is that really intended? | ||
kyclark | Two questions (at least) on this: lpaste.net/147354 Is this the best way to do this? Why that last (True True True) line? | ||
lucasb | m: for <a b c d> { say so rx/a|c/ } | ||
camelia | rakudo-moar 71dadb: OUTPUT«TrueFalseTrueFalse» | ||
mspo | are there some good canonical/idiomatic modules I can study to see how they're organized? | ||
the few I found on github were all totally different | |||
18:01
zjmarlow_ left
|
|||
xfix | lucasb: Yes, if you cast a regex to a boolean, it does a match on $_. A neat shortcut for oneliners. | 18:01 | |
jdv79 | what's the reasoning behind stripping .git off a https url? | ||
xfix | Because it looks prettier? It works with or without .git anyway. | 18:02 | |
ZoffixW | jdv79, if you visit a .git URL it gets redirected to a .gitless version | ||
lucasb | xfix: I would have expected that 'so rx/.../' would always return True, because regex objects are always .defined | 18:03 | |
ZoffixW | jdv79, and part of the "reasoning" for some of the things in that normalization routine is historical too: the options were not being handled by the back-then modules.perl6.org parser, so we normalize to the versions that it did handle | ||
jdv79 | yeah, but that is the repo url | ||
lucasb | this is a little confusing when you want to use regex objects as values and when you want to really match something | ||
flussence | lucasb: Bool::False is also .defined though | ||
xfix | lucasb: Boolean casting and definedness are two diferrent things. | ||
ZoffixW | jdv79, they both work. What's the matter what the extension is? | 18:04 | |
xfix | Empty string and False are defined too. | ||
jdv79 | its not a big deal - just seems like a pure complication | ||
xfix | If you want to check if a regex is defined, perhaps actually use `.defined`? | ||
jdv79 | now i have to invert that move when i want to git fetch that url | ||
ZoffixW | jdv79, as I've said, part of the reasons for the decisions made by that routine is to preserve the old behaviour where things that didn't match the format, were simply not indexed. | 18:05 | |
flussence | mspo: all I'll say is none of mine are good examples :) | ||
mspo | github.com/xfix/Acme-DSON has a lot of stuff in it | 18:06 | |
jdv79 | yeah, i don't know those details and don't have time to dig. | ||
ZoffixW | jdv79, since we didn't know what was using the projects.json we normalize to the format we know works, while allowing a wider range of URLs. In the past, the ....git URL would simply be not indexed | ||
xfix | Generally speaking, Perl 5 programmer would expect a regular expression a condition to match on $_, and it doesn't appear that this shortcut is dangerous. | ||
Fun fact: Ruby claims that only nil and false are false values, but you can write `ruby -ne 'puts $_ if /abc/'` | 18:07 | ||
lucasb | xfix, flussence: ok, I don't fully agree. But I'll try to always use $rx.defined when I don't want to match anything | ||
xfix | Also, this shortcut makes oneliners shorter. | ||
jdv79 | ZoffixW: what indexing process are you referring to? | ||
ZoffixW | jdv79, modules.perl6.org | ||
jdv79, but if you have issues with the way things done, we can certainly change them | |||
jdv79 | huh. ok. i don't recall that. | ||
lucasb | xfix: In P5, when I use qr/.../, I don't expect it to match | ||
xfix | That's because in Perl 5, you have to use qr/.../ explicitly. | 18:08 | |
TimToady | in grep /foo/... you are relying on this behavior | ||
lucasb | ins't rx/.../ explicit? | 18:09 | |
18:09
Actualeyes left
|
|||
TimToady | it's just the same as //, only you can put adverbs | 18:09 | |
both // and rx// are lazy until boolean context | 18:10 | ||
this is unlikely to change any time soon | 18:11 | ||
jdv79 | ZoffixW: its ok. thanks. | ||
ZoffixW | jdv79, git fetch github.com/zoffixznet/perl6-Color works for me without .git :/ | ||
xfix | In Perl 5, more complex programs using regular expressions in more complex ways had lots of "qr", because "m" is a default (for a good reason, because regular expression objects are truthy, and requirement of explicit matching would be annoying). In Perl 6, default is "qr" (well, "rx"), but in boolean context, it behaves like "m". | ||
jdv79 | oh... neat. | ||
xfix | Sorry, that explanation was too long. | ||
lucasb | xfix, flussence, TimToady: ok, I'll get used to it. thanks for the comments :) | 18:12 | |
18:12
cdg left
|
|||
kyclark | Sorry, but can someone comment on this bit? lpaste.net/147354 | 18:12 | |
Just curious what that last (True True True) is | |||
ZoffixW | kyclark, MY EYES!!! | ||
:D | |||
Just kidding | |||
xfix | There is rarely a reason to check for regex existence, but I believe you can use :exists (for hashes) or .defined (generally). | ||
ZoffixW | kyclark, you're mapping the return value of say, which is True | 18:13 | |
kyclark | Oh, of course | ||
ZoffixW | \o/ | ||
kyclark | I was very surprised that the join in the map worked with both $_ and @$_. Why is that? | 18:14 | |
ZoffixW | m: my $x = ('foo'),; say $x, @$x | ||
camelia | rakudo-moar 71dadb: OUTPUT«foo(foo)» | ||
ZoffixW | m: (zip [1..*], <Alice Bob Charlie>).map: { say join ": ", ($_, ('foo', ('bar'))) } | 18:15 | |
camelia | rakudo-moar 71dadb: OUTPUT«1: Alice: foo: bar2: Bob: foo: bar3: Charlie: foo: bar» | ||
ZoffixW | kyclark, join seems to flatten the things to join. That's why | ||
kyclark | m: (zip [1..*], <Alice Bob Charlie>).map: { printf "%5d: %s\n", $_ } | 18:16 | |
camelia | rakudo-moar 71dadb: OUTPUT« 1: Alice 2: Bob 3: Charlie» | ||
kyclark | So does printf? | ||
mspo | also good examples of using submethod BUILD | 18:17 | |
xfix | kyclark: Because Perl 6 is not Perl 5. @ is not what you think it is. | ||
18:17
cognominal left
|
|||
xfix | Rather, it's an operator that changes an argument into a list. | 18:17 | |
kyclark | xfix: do tell. I'm eager to know. | ||
ZoffixW | m: (zip [1..*], <Alice Bob Charlie>).map: { printf "%5d: %s %s %s\n", ($_, ('foo', ('bar'))) } | 18:18 | |
camelia | rakudo-moar 71dadb: OUTPUT« 1: Alice foo bar 2: Bob foo bar 3: Charlie foo bar» | ||
ZoffixW | Sure. It makes no sense for it to flatten | ||
*NOT to flatten | |||
xfix | $, @, %, & are coercion operators. | ||
They coerce their argument into a type (similar to +, ~, ?). | 18:19 | ||
+$a coerces $a into a numeric type. | |||
18:19
davercc` joined
|
|||
ZoffixW | m: my $x = 42; say $x.WHAT; say @$x.WHAT | 18:20 | |
camelia | rakudo-moar 71dadb: OUTPUT«(Int)(List)» | ||
xfix | m: my $set = set "a", "b"; say $set.WHAT, %$set.WHAT; | 18:21 | |
camelia | rakudo-moar 71dadb: OUTPUT«(Set)(Hash)» | ||
xfix | m: my $set = set "a", "b"; say $set, %$set; | ||
camelia | rakudo-moar 71dadb: OUTPUT«set(a, b)a => True, b => True» | ||
18:21
richi235 joined
|
|||
ZoffixW | m: my $set = set "a", "b"; say $set.WHAT, %$set.WHAT, @$set.WHAT, (+$set).WHAT, (~$set).WHAT, (?$set).WHAT | 18:22 | |
camelia | rakudo-moar 71dadb: OUTPUT«(Set)(Hash)(List)(Int)(Str)(Bool)» | ||
18:22
davercc left
18:23
FROGGS joined
|
|||
dj_goku | nine: patches for camelia ? | 18:23 | |
ZoffixW | m: my $set = set "a", "b"; say ?(~(+@%$set)).WHAT | ||
camelia | rakudo-moar 71dadb: OUTPUT«False» | ||
ZoffixW | :( | ||
m: my $set = set "a", "b"; say (?(~(+@%$set))).WHAT | |||
kyclark | Inside my "map" the join worked on $_ as a list, but this doesn't | ||
camelia | rakudo-moar 71dadb: OUTPUT«(Bool)» | ||
kyclark | m: my $x = (<Alice Bob>); say join ': ', $x | ||
camelia | rakudo-moar 71dadb: OUTPUT«Alice Bob» | ||
rindolf | Hi all! Happy holidays. | ||
kyclark | m: my $x = (<Alice Bob>); say join ': ', @$x | 18:24 | |
camelia | rakudo-moar 71dadb: OUTPUT«Alice: Bob» | ||
18:24
virtualsue left,
zjmarlow_ joined
|
|||
ZoffixW | kyclark, you were zipping | 18:24 | |
m: my $x = zip [1..*], (<Alice Bob>); say join ': ', $x | |||
camelia | rakudo-moar 71dadb: OUTPUT«1 Alice 2 Bob» | ||
18:24
ollej joined
|
|||
ZoffixW | m: my $x = zip [1..*], (<Alice Bob>); say join ': ', @$x | 18:25 | |
camelia | rakudo-moar 71dadb: OUTPUT«1: Alice: 2: Bob» | ||
ZoffixW | hm | ||
Well, right, it's not each element but the whole thing | |||
richi235 | Hi, I'm maybe the 100th person asking, but I couldn't find anything on the net. When perl6 will be released this christman :). Will it be american christmas (25.12. morning) or european (24.12. evening) or will it be 25.12. evening? | ||
18:25
yqt left
|
|||
xfix | richi235: It was released. | 18:25 | |
ZoffixW | what | ||
xfix, huh? | |||
richi235 | you mean the november 28th release? | 18:26 | |
ZoffixW | richi235, I don't think it will be anything so specific as to match some set hour | ||
richi235, especially since people doing said release will likely be enjoying the holiday..... | 18:27 | ||
lucasb | I wish it arrives *before* the 25th... at most in the 24th | ||
dj_goku | m: say Date.new('Christmas') | ||
camelia | rakudo-moar 71dadb: OUTPUT«Invalid Date string 'Christmas'; use yyyy-mm-dd instead in block <unit> at /tmp/nNUxuCNt4H:1» | ||
dj_goku | m: say Date.new() | ||
camelia | rakudo-moar 71dadb: OUTPUT«Cannot make a Date object using .new in block <unit> at /tmp/Ao_1q7cBlS:1Actually thrown at: in block <unit> at /tmp/Ao_1q7cBlS:1» | ||
ZoffixW | I wish it arrives after Jan 7 | ||
So we'd have more time to bolt things down | 18:28 | ||
dj_goku | I am excited to play more over vacation starting tomorrow! | ||
ZoffixW | xfix, what did you mean by saying it was released? | 18:29 | |
richi235 | I wanted to test and play around in the evening after celebrating with my familiy^^ | ||
ZoffixW | richi235, you can do so even now :) | ||
richi235 | ZoffixW: so the difference between the november release and the christmas release won't be that big? | 18:30 | |
okay :) | |||
dj_goku | richi235: are you using rakudobrew? | ||
ZoffixW | richi235, oh, between november release... there lots of things that changed already. But you can use rakudobrew to brew the greatest and latest freshly squeezed from the sauce | 18:31 | |
dj_goku | richi235: I usually re-install moar every morning. :D | ||
ZoffixW | heh | ||
18:31
zjmarlow_ left
|
|||
dj_goku | I should probably just setup a cron. | 18:31 | |
richi235 | dj_goku: nope, until now I just read a lot about perl6 and followed the advent calendar, but i haven't yet installed or tried anything | ||
I'm on debian testing, is there a package for rakudobrew ? | 18:32 | ||
dj_goku | richi235: rakudobrew++ | ||
richi235: no idea. | |||
github.com/tadzik/rakudobrew | |||
richi235: ^^ | |||
ZoffixW | richi235, here: rakudo.org/how-to-get-rakudo/ | 18:33 | |
dj_goku | rakudobrew build moar && rakudobrew build-panda | ||
ZoffixW | richi235, search for "To install rakudobrew on Linux:" | ||
18:33
andreoss joined
|
|||
dj_goku | richi235: learnxinyminutes.com/docs/perl6/ and perl6intro.com are a few nices references | 18:34 | |
ZoffixW | m: sub term:<⊂(◉‿◉)つ> {say "join us!"}; ⊂(◉‿◉)つ; ⊂(◉‿◉)つ; ⊂(◉‿◉)つ; ⊂(◉‿◉)つ; ⊂(◉‿◉)つ; ⊂(◉‿◉)つ; ⊂(◉‿◉)つ; ⊂(◉‿◉)つ; ⊂(◉‿◉)つ; | ||
camelia | rakudo-moar 71dadb: OUTPUT«join us!join us!join us!join us!join us!join us!join us!join us!join us!» | ||
andreoss | what does Q in QAST stand for? | 18:35 | |
yoleaux | 17:30Z <masak> andreoss: re irclog.perlgeek.de/perl6/2015-12-18#i_11740200 -- you'd think so, but a Q::Literal::None represents the literal `None` in the source text. we're using Val::None here to say "there's no `else` here at all" | ||
TimToady | it's just 1 more than P | ||
Begi2 | m: my $x = 5; my $y = $x * $x; say $y; #Is there an easieasy way to do X^2 ? | ||
camelia | rakudo-moar 71dadb: OUTPUT«25» | ||
dj_goku | hehe | ||
18:35
virtualsue joined
|
|||
TimToady | m: say 5² | 18:36 | |
camelia | rakudo-moar 71dadb: OUTPUT«25» | ||
dj_goku | I vaguelly remember what a AST is. | ||
TimToady | m: say 5 ** 2 | ||
camelia | rakudo-moar 71dadb: OUTPUT«25» | ||
andreoss | masak: ok. Intuitively it feels the opposite | ||
ZoffixW | m: sub postfix:<⊂(◉‿◉)つ>($x) {say $x;$x}; "join us!"⊂(◉‿◉)つ⊂(◉‿◉)つ⊂(◉‿◉)つ⊂(◉‿◉)つ⊂(◉‿◉)つ⊂(◉‿◉)つ⊂(◉‿◉)つ⊂(◉‿◉)つ⊂(◉‿◉)つ⊂(◉‿◉)つ⊂(◉‿◉)つ⊂(◉‿◉)つ | ||
camelia | rakudo-moar 71dadb: OUTPUT«join us!join us!join us!join us!join us!join us!join us!join us!join us!join us!join us!join us!» | ||
ZoffixW | :D | 18:37 | |
tony-o | lol | 18:38 | |
ZoffixW | I see in the future of Perl 6 a module that lets you write programs using nothing but various weird emoticons :D | ||
call it... lollang | 18:39 | ||
TimToady | :D is a weird emoticon already, so we're partway there | ||
andreoss | masak: is it ok for 'if-else-if' being a binary tree of Q::Statement::If. or should 'else if' case be handled within one Q::Statement::If? | ||
richi235 | dj_goku: when using, rakudobrew will I get the latest development version or a in-some-way stable release? | ||
I'm one of this stable prefering guys^^ | 18:40 | ||
ZoffixW | richi235, there's no stable release in existence yet :) | ||
RabidGravy | better answer | ||
ZoffixW | richi235, but you should have a working perl with rakudobrew | ||
TimToady | there is supposed to be one in a week | ||
18:40
smls_ joined,
smls left
|
|||
richi235 | ZoffixW: Ah well, I could have known this | 18:41 | |
TimToady | but we wouldn't be thinking about releasing in a week if what we have now isn't pretty darn stable most of the time | ||
ZoffixW is still a bit confused about lang release vs. rakudo release and what exactly are the deliverables this Christmas | |||
18:42
Slim_ joined
|
|||
richi235 | hehe :) | 18:42 | |
TimToady | 51k tests kind of help with that | ||
timotimo | well, currently we have some wobblyness with pre-compilation in some of our ecosystem modules | ||
dj_goku | richi235: stable is relative. | ||
timotimo | on the other hand, building a rakudo from the last release will give you incompatibility with multiple ecosystem modules that expect the new code already | ||
nine | I need an idea. Currently require "/full/path/to/Module.pm"; will only work if a FileSystem repository is in the repo-chain, i.e. when started with -Ilib or use lib "lib" or something like that. I'd like to fix that, but there doesn't seem to be a good solution. | 18:43 | |
richi235 | dj_goku: that's true, the rust people labeld their release as stable a few months ago and it really isn't :p | ||
nine | Adding the functionality to Repository::Installation would work, but gives it a second, quite different job. | ||
Adding a new repository type just for dealing with absolute paths seems excessive. | 18:44 | ||
ZoffixW | Given these two options, I'd go with a new repository type :/ | ||
dj_goku | richi235: I only have experience with perl5, python, perl6 in that order. | 18:45 | |
jdv79 | i got a maybe on getting the names cpan6 and pause6. anyone have objections to trying to get and use those names? | ||
namely, cpan6, pause6, and metacpan6? | |||
dj_goku | .orgs I presume? | ||
jnthn | TimToady: Yeah, plus I can think of a couple of ways of implementing it, and I'm not quite happy with either, and then there's their auto-viv'ing behavior. I think we just properly reserve the syntax and leave it for later. | 18:46 | |
jdv79 | domains too but just the names | ||
jnthn | TimToady: Will take care of it after nomming the rajma I've been distracting meself making :) | ||
ZoffixW | Well, as a programmer in both P5 and P6, I can right away see that using metacpan6.org and metacpan.org would annoy the hell out of me, simply because I type the first starting characters in the URL to get to the site :/ | ||
TimToady | jnthn: found the line# bug | ||
m: f(); sub f() { say callframe().line;{ 42 } } | 18:47 | ||
camelia | rakudo-moar 71dadb: OUTPUT«1» | ||
jdv79 | ZoffixW: what about perl6.org? :) | ||
TimToady | and fixed it :) | ||
ZoffixW | jdv79, that'd annoy me too, if only I ever visited perl.org :P | ||
dj_goku | (pause, cpan, metacpan).perl6.org? | ||
jdv79 | dj_goku: just in general - domains, namespaces, etc... | ||
ZoffixW | jdv79, my other concern is web searches. Telling people "find it on CPAN" and they get to P5's CPAN and get confused | 18:48 | |
jdv79 | which is why saying cpan6 fixes that | ||
similar to perl vs perl6 | |||
ZoffixW | jdv79, I'm fine with the names, but I feel they're ridiculously unimaginative :D | ||
18:48
spider-mario joined
|
|||
nine | Why differentiate between cpan.perl6.org and metacpan.perl6.org? | 18:48 | |
ZoffixW | ^^ good point | 18:49 | |
The only reason metacpan exists is because we couldn't neatly hack on search.cpan.org | |||
jnthn | TimToady: Yeah, I saw that just now when trying to catch up with the backlog :) | ||
dj_goku | or sorry, I was just saying cname/sub-domains would be find too. | ||
jnthn | TimToady++ | ||
jdv79 | i'm not only talking about domains. what about p5 modules that are p6 cpan specific. be nice to be able to use CPAN6:: | ||
18:50
lucasb left
|
|||
jdv79 | nine: what? cpan and metacpan are 2 differen things? in what respect(s) are you referring to? | 18:50 | |
ZoffixW | jdv79, what's the difference? | ||
nine | jdv79: isn't metacpan6 just a good webinterface to a subdirectory of the storage facility called cpan.org? | 18:51 | |
jdv79 | cpan proper is an archive of dists. metacpan is a search portal on that archive. | ||
18:51
g4 left,
kyleha joined
|
|||
mspo | cheese.perl6.org | 18:51 | |
richi235 | rakudobrew build moar is running | 18:52 | |
18:52
sno joined
|
|||
kyleha | Hi folks. I've been absent for about four years. What have I missed? | 18:52 | |
richi235 | but I think I won't find time the next days to play around :( | ||
ZoffixW | kyleha, they shot Elvis! | ||
richi235 | so thanks for your help guys :) | 18:53 | |
dj_goku | kyleha: 2 pac is alive and well in area 51 | ||
ZoffixW | kyleha, we're finally making a stable release in a week | ||
nine | kyleha: a couple of patches here and there ;) | ||
ZoffixW | heh | ||
jdv79 | my original thinking is since we're trying to piggyback off p5's infra we could use the same names and just append a 6 like perl6 so we can differentiate them and later seperate them | ||
dj_goku | m: say 2 ~ 'pac is alive' | 18:54 | |
camelia | rakudo-moar 71dadb: OUTPUT«2pac is alive» | ||
dalek | kudo/nom: 6ed069f | (Sylvain Colinet)++ | lib/NativeCall.pm6: Add support for specifing the api/abi version to native (NC) routine |
||
flussence | kyleha: we got real threads! and a VM that doesn't take half an hour to build rakudo on! | ||
kudo/nom: 623cee4 | FROGGS++ | lib/NativeCall.pm6: Merge pull request #639 from Skarsnik/nom Add support for specifing the api/abi version to native (NC) routine |
|||
jdv79 | so right now cpan6 is basically cpan with some minor changes but maybe someday cpan6 will be totally divorced from cpan | ||
idk | |||
kyleha | I'm pleased to see some of my code is still in roast. | ||
18:54
zjmarlow_ joined
|
|||
mspo | jdv79: what kind of infra do you want? | 18:54 | |
jdv79 | what p5 enjoys | 18:55 | |
kyleha | ZoffixW, I thought they were all stable releases. | ||
18:55
yqt joined
|
|||
ZoffixW | psch, pause/cpan/metacpan. The capability to upload versioned dists with sanity and provide a nice search interface to them | 18:55 | |
kyleha, they lied to you! :) | |||
jdv79 | different names are fine if that's what people are into... | ||
18:55
cdg joined
|
|||
nine | ZoffixW: even worse, what would I call this repository that deals only with absolute paths? | 18:56 | |
mspo | decentralization is the modern way | ||
ZoffixW | I'd vote on different names if I had a choice. I've been hearding pause/cpan/metacpan for years. They feel like moldy bread | ||
kyleha | nine: repository of the sith | ||
jdv79 | does perl6 feel the same? | ||
seems an odd observation | |||
probably just me | |||
ZoffixW | jdv79, it does. I wish it was named something hip and cool and shiny instead | 18:57 | |
grondilu | so, I try perl6-debug-m, I get "**SORRY** could not find Debugger::UI::CommandLine". Fine, I install it with panda. And then: ===SORRY!=== | ||
Circular module loading detected involving module 'Debugger::UI::CommandLine' | |||
dalek | kudo/nom: 41f4adc | ugexe++ | src/core/control.pm: Fix CLONE-HASH-DECONTAINERIZED(%(:a(Any)) Removes warning messages for `my %x = :a(Any); CLONE-HASH-DECONTAINERIZED(%x)` which is called anytime `run`, `shell`, or `QX` is used `CLONE-HASH-DECONTAINERIZED` is currently only used on `%*ENV` to be passed to `nqp::spawn`, so stringifying `Any` to `Str.new` should be safe |
||
kudo/nom: eca62e6 | lizmat++ | src/core/control.pm: Merge pull request #640 from ugexe/patch-8 Fix CLONE-HASH-DECONTAINERIZED(%(:a(Any)) |
|||
18:57
isacloud left
|
|||
nine | grondilu: maybe RAKUDO_MODULE_DEBUG=1 gives some hint at what's going on there. I remember having a quick look but not what the result was | 18:58 | |
jdv79 | well, i'll move forward with the *6 names until sommething better comes along then | ||
ZoffixW | ^ ugexe does that fix panda's %*ENV warnings? | ||
lizmat | ZoffixW: according to the comments, it does | ||
richi235 | I think I will stay here and read backlog from time to time :) | ||
ZoffixW | Sweet. ugexe++ | ||
nine | ugexe++ indeed! | ||
19:00
cdg left
|
|||
ZoffixW | jdv79, sounds like a plan. Names are quite a bikeshed material :) We need tools. The names they're named are less important :) | 19:00 | |
19:00
zjmarlow_ left
|
|||
timotimo | pupa. | 19:01 | |
19:01
ranguard joined
|
|||
MadcapJake | m: my $a = 1; $a ^= 2; say $a | 19:01 | |
jdv79 | i was only asking because i was going to start naming things in code. but things can be renamed. | ||
camelia | rakudo-moar 71dadb: OUTPUT«Memory allocation failed; could not allocate 2210832 bytes» | ||
MadcapJake | i think i found a bug :P | ||
ranguard | evening :) | ||
MadcapJake | that just hangs on my computer, indefinitely | 19:02 | |
lizmat | MadcapJake: please rakuodbug it | ||
MadcapJake | how do i do that? | ||
ZoffixW | MadcapJake, nah, that's just the memory allocation operator. It's meant to work that way! images-cdn.9gag.com/photo/11948_700b.jpg | ||
lizmat confirms all line number related spectest failures are gone! | |||
MadcapJake | lol ZoffixW | ||
ZoffixW | MadcapJake, go to rt.perl.org/ and choose "New ticket in [perl6]" on top right | 19:03 | |
lizmat | only 3 test-fies failing now | ||
*files | |||
ZoffixW | MadcapJake, ah, here: github.com/rakudo/rakudo/#reporting-bugs | ||
jdv79 | did hack just disappear? | ||
kyleha | lizmat: Does the spectest mostly use plans with counts, or 'done' at the end? Is one considered better? | ||
19:03
vividsnow left
|
|||
lizmat | kyleha: in my book, plan => N is superior | 19:04 | |
as it will also spot not running the right number of tests | |||
ZoffixW | it's also more annoying :) | ||
jdv79 | can anyone start a new ssh session to hack? | ||
TimToady | .oO(tormenting the testers on behalf of the implementors) |
||
kyleha | Any time it's ever told me the number of tests is wrong, I assume the plan is wrong instead. | 19:05 | |
ZoffixW | But it avoids accidental stuff like I've done today: comment out the entire test file and think my tests are passing: github.com/perl6/modules.perl6.org...179bc6e465 | ||
ranguard | hi, is there a more uptodate consensus on what META6.json should look like other than design.perl6.org/S22.html#META6.json ? | ||
masak | I'm quite happy to use `done-testing;` at the end, as the test framework notifies me anyway when a test file doesn't run to completion. | ||
using `done-testin;` means there's one less unnecessary number to update all the time | |||
testing* | |||
19:06
abraxxa joined,
abraxxa left
|
|||
ZoffixW | ranguard, looks fairly up to date to me. We also have a Test::Meta module you can use to see that your META looks sane: modules.perl6.org/#q=Test%3A%3AMe | 19:06 | |
MadcapJake | lizmat, ZoffixW: ok bug submitted via email! | ||
FROGGS | ranguard: looks quite up to date | 19:07 | |
ZoffixW | MadcapJake, cool. I see it: rt.perl.org/Ticket/Display.html?id=126961 | ||
ranguard | ZoffixW: so I've been told that the source (e.g. github) url should be in 'support.source' - but that's not mentioned in the spec | 19:08 | |
sorry synopsis | |||
dalek | kudo/nom: 3b5684f | TimToady++ | src/Perl6/ (2 files): give hint that Nil is okay for empty loop body |
||
ranguard goes to look at Test::META | |||
jdv79 | design.perl6.org/S22.html#support - its right there, no? | 19:09 | |
FROGGS | ranguard: it *is* mentioned: source | ||
The URL of the source of this distribution, if any. | |||
ranguard | So github.com/jonathanstowe/Test-META.../META.info is confusing as it has source-url and support.source | ||
Ahh, sorry! ok :) | |||
FROGGS | :o) | ||
jdv79 | that's because Test::Meta covers the spec format (META6.json) and other one (META.info) | 19:10 | |
ranguard | cool | ||
19:10
Slim_ left
|
|||
flussence | source-url is there because some things that parse META files were slow to update when the spec changed | 19:10 | |
ZoffixW | ranguard, FROGGS well, wait... It says "support" is optional. Does it mean panda will still be able to install without any source-url in it? | ||
dalek | kudo/nom: 01947c8 | lizmat++ | src/core/Temporal.pm: Dogfooding Nil as an empty loop body |
19:11 | |
FROGGS | Zoffix: yes, since panda knows the url before it fetches the dist | ||
ranguard | so, to help get a metacpan6 going (which jdv79 is working on) - so I'm generating the META6.json | ||
so, to help get a metacpan6 going (which jdv79 is working on) - I'm going to upload modules.perl6.org list to CPAN - so I'm generating the META6.json | 19:12 | ||
ZoffixW | FROGGS, that's a bit shortsighted | ||
FROGGS, with a mandatory source-url you could host META files anywhere you want to, but now they must be in the root of the dist. | |||
flussence | ZoffixW: panda isn't the only thing that can use META6.json; the core module loader has no need for 'support', for instance | ||
jdv79 | ZoffixW: note tha that for the cpan model that's not an issue since thta url is not used for fetching. | 19:13 | |
ZoffixW | I spose | 19:14 | |
FROGGS | Zoffix: I dont see the connection of the source url in a file and the location of that file within its dist | ||
ZoffixW | FROGGS, what do you mean panda has the URL already then? | 19:15 | |
FROGGS | Zoffix: panda knows the url because of the ecosystem repoistory | 19:16 | |
nine | flussence: the core module loader doesn't care about the META6.json format anyway. | ||
ZoffixW | FROGGS, but that URL is to a META file. | ||
flussence | nine: it reads the "depends" section of any META6 found in an -I path | 19:17 | |
lizmat | Copying lib/foo.pir to /Users/liz/Github/panda/.panda-work/1450466017_1/removeme/lib/foo.pir ?? | ||
FROGGS | Zoffix: ahh, now I know what you mean | ||
lizmat | got that when doing a bootstrap? | ||
flussence | s/depends/provides | ||
FROGGS | lizmat: aye | ||
lizmat | panda still thinking parrot is supported ? | ||
FROGGS | lizmat: that's just a test, no? | ||
lizmat | ah, yes | 19:18 | |
*phew* | |||
FROGGS | lizmat: I guess the file extension does not mean anything there | ||
lizmat | :-) | ||
FROGGS | :o) | ||
nine | flussence: the provides section :) | ||
19:18
ollej left
|
|||
FROGGS | Zoffix: okay, then lets say the support.source is mandatory for online repositories | 19:19 | |
Zoffix: it is not needed if you install the dists from a tarball or so | |||
lizmat | gist.github.com/lizmat/8b7e9d103a6f38696b8a # nine, warning generated on OS X when installing Inline::Perl5 | ||
ZoffixW | or cpan model, as jdv79++ pointed out | ||
FROGGS | so it is only kinda mandatory | ||
19:22
Guest9799 left,
administrator joined
19:23
administrator is now known as Guest71566,
ZoffixW left
|
|||
nine | When exactly did generating backtraces on settings compilation failures start to recurse endlessly? | 19:24 | |
19:24
zjmarlow_ joined
|
|||
masak | nine: I have no idea, but it sounds like a question to which `git bisect` is the answer. | 19:27 | |
lizmat | hmmm... looks like sink warnings are now breaking Inline::Perl5's tests and thus blocking installation :-( | 19:29 | |
nine: is this in the optimizing or parse stage ? | 19:30 | ||
19:30
zjmarlow_ left
|
|||
andreoss | masak: why do we pass block as Q::Block rather than Q::Statement::Block? | 19:31 | |
19:31
nige1 joined
|
|||
andreoss | regarding 007 | 19:31 | |
masak | andreoss: you mean in the `else` part specifically? | 19:32 | |
[Coke]: so... there was no Rakudo compiler release yesterday...? :/ | |||
andreoss | masak: else, as i see it also can be applied to ::While | ||
nine | lizmat: parse | 19:33 | |
lizmat | ah, I had some infiniloops in oprimizing stage earlier today :-( | ||
andreoss | *`else` | ||
lizmat | masak: no, did you really expect one ? | ||
masak | andreoss: in the end, it's a matter of modeling/design. the vast majority of Q::Statement::* types don't contain other statements. | 19:34 | |
lizmat: I... I think I did, given what it says in docs/release_guide.pod | |||
lizmat | well, [Coke] made it very clear that we will release when it's ready :) | ||
masak | andreoss: the only exception is (the one I'd like us to add) in the `else` part | ||
lizmat | clearly we're not at that stage just yet | ||
masak | lizmat: ok. I missed that bit. thanks. | ||
masak only backlogs sporadically these days | 19:35 | ||
lizmat | masak: would you have expected another one for the official 6.c then ? | ||
andreoss | masak: other Q::Statement::* run $.block almost identically with exception of error handling part | ||
jdv79 | its getting really hard to backlog | ||
jnthn | TimToady: Did a spectest run while I dinnered; the line number failures have cleared up nicely here too :) | ||
masak | lizmat: waitwait, Rakudo and the Perl 6 spec are on different release cadences in any case, no? | ||
lizmat | indeed | 19:36 | |
masak | lizmat: so yes, I think I expected a separate release for 6.c, too. | ||
lizmat | although I would say the language release dates would be a subset of compiler releases | ||
19:36
lucasb joined
|
|||
masak | yeah, I can sort of see that. | 19:36 | |
lizmat | not a possibly empty intersection | 19:37 | |
TimToady | we probably shouldn't have a language release without an implementation that passes all the tests | ||
masak | I'm dismayed only to the extent that our nice monthly release schedule is being put aside for a "when we are ready" release schedule, which in my experience works less well. | ||
flussence predicts that someone, somewhere will get angry that there's no direct Buf->Uni decoding path | |||
jnthn | Practically, since you need an implementation to know the spectests are sensible, we'll probably end up with joint lang/matching impl release dates for the first impl that supports a given lang release. | 19:38 | |
masak | *nod* | ||
jnthn | masak: We've already given ourselves a hard time limit (Christmas) on the impl release :) | ||
masak | right :) | ||
jnthn | We've even said it's *this* Christmas! | ||
masak | let's have this discussion again in a week, then ;) | ||
19:38
vike left
|
|||
jnthn | From Jan we'll be back to our regularly scheduled impl releases :) | 19:38 | |
TimToady | so...any time before Epiphany, right? :) | 19:39 | |
masak | or better yet, let's not (because we've released already) | ||
jnthn | And it'll mostly probably be > 6 months before another lang release messes things up for us again. :P | ||
TimToady | we may reserve the right to generalize a few exception tests in a point release | 19:40 | |
jnthn | *nod*, though I went and ripped out all the X::AdHoc in the test suite already and hope we got no fresh ones in :) | ||
TimToady | we can afford a "bug fix" release of roast as long as there's only one implementation; when we get more, we'll have to negotiate | 19:41 | |
so we could have a v6.c.1, v6.c.2 if we deem it necessary and insufficiently disruptive | |||
jnthn | True. We'll see if we gotta :) | 19:42 | |
TimToady predicts we'll gotta :) | |||
or at least wanna :) | |||
andreoss | masak: making it an expeption, i've also asked above, about using a single Q::Statement::If instead of nesting them. we could have $.elsif, which would be an array of xblock. | ||
masak | andreoss: I thought about that. | 19:43 | |
andreoss: decided not to, for reasons of downstream tools having an easier time with a two-way branching structure than with an N-way branching structure. | |||
("downstream tools" being macros, linters, formatters, etc) | 19:44 | ||
MadcapJake | could I get some feedback on this issue: github.com/MadcapJake/language-perl6fe/issues/6 | ||
19:44
darutoko left
|
|||
andreoss | masak: on the other hand, we could go futher with that and nest other Statements too | 19:45 | |
nine | m: BEGIN my $foo = 1; role Foo[$foo] {}; class Bar does Foo[$foo] {}; | ||
camelia | rakudo-moar 01947c: OUTPUT«WARNINGS for /tmp/8F759IrFDL:Useless use of $foo in sink context (line 1)» | ||
nine | TimToady: ^^^ | ||
masak | andreoss: yes, if there's sufficient cause for it. | ||
andreoss: in the case of Q::Statement::While, I guess the way I have it in my head is that the while loop structurally contains (an expression plus) a block, not a block *statement* | 19:46 | ||
jnthn | MadcapJake: Are quoted strings over multiple lines handled? Are they an easier problem? | ||
dalek | kudo/nom: 193bc61 | TimToady++ | src/Perl6/ (2 files): generalize Nil suggestion to other possibles For instance, someone could use: Mu for @list Cool for @list my $sink; $sink for @list |
19:47 | |
19:47
Guest89009 is now known as parisba
|
|||
jnthn | MadcapJake: As in, is this tricky because < is an operator also? | 19:47 | |
TimToady | nine: thanks | ||
MadcapJake | jnthn: yes that is it, any time that operator shows up (if i allow multiline quoteword constructs), it will immediately catch as a quoteword instead of a less-than | ||
andreoss | for xs -> x for ys -> y { ... } | ||
I will try that | 19:48 | ||
masak | heh :) | ||
MadcapJake | jnthn: because there doesn't seem to be any rule as to what quotewords can contain, just that they are seperated by spaces | ||
jnthn | MadcapJake: Looking at the suggested resolution, could "it's preceded by a known infix" work instead of "it's followed by alphanumeric"? | ||
masak | andreoss: I'm willing to discuss it further, but my initial reaction is that it's too far-reaching with not enough to motivate it... | ||
MadcapJake | jnthn: the rule for operators currently has lower precedence to quoteword constructs, but I even if I switched that around, I'm not sure how I would syntactically make aware that it is an infix rather than a delimiter | 19:50 | |
andreoss | masak: then we could have a macro to turn for xs -> x, y -> ys into two nested `for`s | ||
masak | andreoss: oh yes -- all is fair if you macro. :) | 19:51 | |
MadcapJake | jnthn: I don't get the luxury of P6 grammars unfortunately, someday there needs to be a P6 text editor that lets you write syntax highlighters in P6 grammars :) | 19:52 | |
lizmat | hmmm... t/spec/S17-procasync/many-processes-no-close-stdin.t was just hanging, eating 300% of CPU | ||
sjn | \o | 19:53 | |
lizmat | shouldn't that test be done for stresstests only ? | ||
sjn | hello #perl6 people \o/ | ||
andreoss | masak: consider my PR | ||
lizmat | sjn o/ | 19:54 | |
sjn is diving into the wonderful world of asynchrony | |||
19:54
zjmarlow_ joined
|
|||
sjn | and parallellism and stuff :) | 19:54 | |
are there any examples/patterns out there on how to parallellize some computation on the contents of a lazy list? | 19:55 | ||
nine | sjn: it takes a special kind of madness to find that stuff wonderful ;) | 19:56 | |
jnthn | MadcapJake: Yeah. I mean, at the most simplistic the Perl 6 parser flips between looking for an infix and looking for a term, so it always knows which one it's after | ||
MadcapJake | jnthn: github.com/MadcapJake/language-per...#L656-L660 | ||
jnthn: all I currently check for is to make sure that the < isn't prefaced by a +, followed by a =, and that (on the same line) a corresponding > is used. And that has, so far, been robust enough to work. | |||
lizmat | sjn: @lazy-list>>.stuff ? | 19:57 | |
not sure if that already works, does it jnthn ? | |||
sjn | @lazy-list».stuff.hyper | 19:58 | |
? | |||
lizmat | sjn: honestly, not sure atm | ||
jnthn | @lazy-list.race.map(...) | 19:59 | |
MadcapJake | jnthn: though it would trip up if someone had a less-than infix followed by a greater-than infix on the same line :P | ||
jnthn | The .race or .hyper needs to come before the operations to parallelize | ||
20:00
andreoss left
|
|||
jnthn | MadcapJake: Hm, yes. :) | 20:00 | |
20:01
zjmarlow_ left
|
|||
sjn | jnthn: ah, your example (slide 36 of 2015-yapcasia-concurrency.pdf) shows it afterwards | 20:01 | |
well, that one was with .race | |||
sjn assumed it was similar with .hyper | 20:02 | ||
jnthn | .hyper also becomes before | ||
You basically switch processing mode | |||
MadcapJake | jnthn: if I really wanted to make it robust, I would separate it out into a begin/end style rule, but then the begin rule would need to rigorously check for *something* :P | ||
20:02
zjmarlow_ joined
|
|||
MadcapJake | jnthn: what if I checked for all the cases that you would create a quoteword construct? Like check for an = sign or somesuch? Would that maybe be more plausible? | 20:03 | |
jnthn | They can show up pretty much anywhere, is the thing... | 20:04 | |
foo <bar baz>; | |||
20:04
nanis joined
|
|||
dalek | rl6-roast-data: 154fa13 | coke++ | / (7 files): today (automated commit) |
20:04 | |
MadcapJake | yeah that's true, there's really not an easy answer i think. Maybe what I could do is create a *different* rule for multiline quotewords, like check for a single string on a line? would that cut the mustard? | 20:06 | |
nanis | Just tried to build from a git clone on Windows 10 with MSVS2013, but got this src\6model\reprs\P6int.c(2) : fatal error C1017: invalid integer constant expression. That's under MoarVM. | ||
MadcapJake | s/single string/single non-quoted word/ | ||
nanis | And line 2 is `#if MVM_BOOL` | ||
jnthn | huh, it builds on an ealier MSVC just fine | 20:07 | |
nanis | Yeah, I am confused. | 20:08 | |
I am assuming MVM_BOOL is supposed to be in moar.h, but don't see it. | 20:09 | ||
jnthn | Yeah, it's defined at all for me either | ||
FROGGS: Any idea about ^^? | |||
Earlier MSVC must just treat "does not exist" as zero or something | |||
RabidGravy | I've been confused for more than half a century, it doesn't require software | ||
nanis | So, try #ifndef? | 20:10 | |
RabidGravy | well #ifedf | ||
nanis | I meant #ifdef? | 20:11 | |
RabidGravy | well #ifdef | ||
FROGGS | it is defined in the makefile | ||
#ifdef wont wort | |||
work* | |||
jnthn | FROGGS: It doesn't seem to end up in any headers though? | ||
nanis | RabidGravy: At some point, we were bound to hit on the correct spelling. | ||
RabidGravy | :) | 20:12 | |
nanis | FROGGS: OK, it is actually in the Makefile: /DMVM_BOOL=_Bool | ||
FROGGS | hmmm | ||
jnthn | Ah | ||
We tend to put those things into config.h or so | |||
FROGGS | nanis: so your msvc does not like '#if _Bool' | ||
nanis | FROGGS: Exactly, I just realized. | 20:13 | |
FROGGS | jnthn: I just cloned the CGOTO flag | ||
[Coke] | Everybody who keeps asking about the actual release date: it's probably going to be christmas actual. | ||
RabidGravy | I always assumed it was :) | 20:14 | |
lizmat | fine by me :-) | ||
would be an excellent birthday present :-) | |||
RabidGravy | I decided yesterday was a stretch about a week ago ;-) | ||
nanis | That's because VC\include\xkeycheck.h has this -> #define _Bool EMIT WARNING C4005 | 20:15 | |
FROGGS | nanis: are you moving it to config.h(.in)? | ||
nanis: or shall I? | 20:16 | ||
[Coke] | anyone who sees a failing test in stresstest, please make sure there's an open ticket. We can decide if we need to fix or fudge before christmas. | ||
RabidGravy | if I do a rakudobrew right now will it result in a working perl6? | 20:17 | |
[Coke] | I have no idea. :) | ||
I'm doing a fresh build on OS X myself. | 20:18 | ||
20:18
_nadim left
|
|||
[Coke] | I think I have finally extracted myself from $DAYJOB until post-christmas. | 20:18 | |
20:18
_nadim joined
|
|||
RabidGravy | DAMN THE TORPEDOES | 20:18 | |
jdv79 | [Coke]: nice | 20:20 | |
nanis | FROGGS: I am not going to be able to get to this before tomorrow, so please go ahead. | 20:22 | |
FROGGS | nanis: k | ||
nanis | Thank you. Bye. | 20:23 | |
20:23
nanis left
|
|||
dalek | kudo/nom: f3e5bee | (Stefan Seifert)++ | / (5 files): Move code handling absolute paths to module into Repository::AbsolutePath Until now, require "/full/path/to/Module.pm" only worked when some CompUnit::Repository::FileSystem was in the $*REPO chain, even though it didn't matter at all which one. Now there's a CompUnit::Repository::AbsolutePath in the default chain for handling full path loading. Removed the corresponding code from FileSystem. |
20:24 | |
20:25
shlomif joined
20:26
Begi2 is now known as Begi
20:28
rindolf left
|
|||
jnthn | nine: Sounds like a neat solution...how does it interact with the head-of-the-chain precomp rule? | 20:28 | |
nine | jnthn: it's pretty far at the end of the chain (before NQP and Perl5) and doesn't use a precomp repository. So I'd say, it doesn't interact at all ;) | 20:29 | |
jnthn | cool | 20:30 | |
nine++ | |||
nine | This is now the 5th Repository implementation. They proliferate fast :) | 20:31 | |
jnthn | ;) | 20:32 | |
Well, suggests we found a uniform way to solve a bunch of problems. | |||
20:33
n0tjack left
|
|||
masak | this calls for... Object-Oriented Design! \o/ | 20:33 | |
nine | Seems like :) The more we use them, the better everything is | ||
jdv79 | weird. i got a "Unhandled exception: Malformed UTF-8" and --ll-exception did give me a bt | ||
*didn't | 20:34 | ||
masak | nine: speaking of which... | ||
nine: any news on rt.perl.org/Public/Bug/Display.html?id=126827 ? | |||
FROGGS | jdv79: something non-utf8 in your env perhaps? | ||
jnthn | Shouldn't be it, we use utf8-c8 for the env. | ||
jdv79 | its probably coming from an async socket | 20:35 | |
dalek | kudo/nom: 616e549 | jnthn++ | src/Perl6/World.nqp: Don't use typed exceptions in setting compilation. If we need them at unfortunate points, we can get into loops of various kinds. Instead, just reliably dump the info that would have gone into the exception object. |
||
jdv79 | how do i throw that into "binary mode" again? | ||
jnthn | .Supply(:bin) instead of just .Supply to read | ||
nine | masak: nothing new on that front :( My debugging mojo seems to be asleep lately | 20:36 | |
FROGGS | jnthn: what is utf8-c8? | ||
[Coke] | Also, further on the scheduling: "some time on the 25th". I'm not committing to a particular time. | ||
jdv79 | ah | ||
20:37
kyclark left
|
|||
jnthn | FROGGS: github.com/MoarVM/MoarVM/blob/mast...f8_c8.c#L3 | 20:37 | |
[Coke] | masak: no, the compiler release is happening on Christmas. | ||
lucasb | [Coke]: when I was a kid, I opened my presents on 24th evening, but ok, I can wait a few more hours :) | 20:38 | |
[Coke] | with all of the last minute changes and spec test failures, I certainly wasn't going to push it sooner. | ||
moritz | speaking of last minute changes | 20:39 | |
what do you think of starting a feature freeze now, and doing only fixes up to the release? | |||
dalek | ast: 44e1bba | jnthn++ | S12-construction/new.t: todo => skip for syntax we're NYI-ing. |
20:41 | |
nine | I would still like to remove CompUnit::RepositoryRegistry::load_module as removing it later would be backwards incompatible and it really doesn't belong there. | ||
FROGGS | jnthn: that's awesome | ||
[Coke] | moritz: that's pretty much what I've been saying, yes. | ||
jnthn | FROGGS: Has a bug somewhere too... | ||
FROGGS | :S | ||
jnthn | FROGGS: But yeah, it's a useful idea. | ||
[Coke] | everyone should keep an eye on what's going into nom. we shouldn't be pushing anything really new at this point. | ||
FROGGS | [Coke]: aye | 20:42 | |
[Coke] | bugfixes, speedups, docs, things already ID'd by jnthn++ as for xmas, those are all easily on the table. Anything else, we should think about. | ||
jnthn only has one thing he's contemplating sneaking in, that will be isolated enough | |||
20:42
n0tjack joined
|
|||
[Coke] | jnthn++ pretty much has a free pass at this point. :P | 20:42 | |
FROGGS | *g* | 20:43 | |
jnthn | In short: when I was writing the advent post, I realized there's one important missing thing in the supply block stuff | ||
20:43
grondilu left
|
|||
jnthn | Which is basically that there's no way to do something appropraite when the tap is closed. | 20:43 | |
I've been pondering how to deal with that, and the clean way is a phaser. | |||
FROGGS .oO( What about going home? ) | |||
20:44
AlexDaniel joined
|
|||
jnthn | New phasers will be ambiguous with listops | 20:44 | |
[Coke] | gist.github.com/coke/1f5ff064a85f13e13261 had a few failures, but same as TimToady - they either don't fail the second time, or they are long time flappers. :| | ||
jnthn | Thus why I'd rather get a solution for it in now | ||
AlexDaniel | m: my @test = «uno due tre»; say flat %(flat <one two three four> Z @test); # this seems to work | ||
camelia | rakudo-moar f3e5be: OUTPUT«(two => due three => tre one => uno)» | ||
AlexDaniel | m: my $test = «uno due tre»; say flat %(flat <one two three four> Z $test); # this doesn't | ||
camelia | rakudo-moar f3e5be: OUTPUT«(one => (uno due tre))» | ||
AlexDaniel | m: my $test = «uno due tre»; say flat %(flat <one two three four> Z | $test); # this one is even weirder | 20:45 | |
camelia | rakudo-moar f3e5be: OUTPUT«(one => uno due => tre)» | ||
dalek | kudo-star-daily: 24f1fa3 | coke++ | log/ (8 files): today (automated commit) |
||
AlexDaniel | and that's a regression, this code was working one week ago | ||
jnthn | AlexDaniel: It's not a regression | ||
It's a deliberate change | |||
AlexDaniel | oops, there's redundant flat in front | ||
jnthn | Z and X and their meta-forms failed to respect items | ||
AlexDaniel | jnthn: oh! | ||
jnthn | (roundrobin also) | 20:46 | |
20:46
firstdayonthejob joined
|
|||
jnthn | rt.perl.org/Ticket/Display.html?id=126522 | 20:46 | |
20:46
grondilu joined
|
|||
jnthn | I was about to say didn't you submit that one, but no :) | 20:46 | |
20:47
prammer left
|
|||
AlexDaniel | :D | 20:47 | |
well, okay! But what's the right way to do it now? | |||
dalek | kudo/nom: bd23b4a | jnthn++ | src/Perl6/Grammar.nqp: Mark autovivifying type objects as NYI. This reserves the syntax, which was previously parsing as a hash access on a type object, so we can later implement this feature. |
||
AlexDaniel | m: my $test = «uno due tre»; say %(flat <one two three> Z | $test); # oh | ||
camelia | rakudo-moar f3e5be: OUTPUT«due => tre, one => uno» | ||
jnthn | AlexDaniel: If you want to keep a $ on the var? @$test | ||
AlexDaniel | m: my $test = «uno due tre»; say %(flat <one two three> Z @$test); # oh | 20:48 | |
camelia | rakudo-moar f3e5be: OUTPUT«one => uno, three => tre, two => due» | ||
jnthn | Same as for @$foo { } | ||
AlexDaniel | riiiiight | ||
okay then, thanks! | |||
jdv79 | i can't repro it well yet but that's pretty disturbing that a failure to decode blows up that hard. | ||
AlexDaniel | m: my $test = «uno due tre»; say %(flat <one two three> Z |$test); # still I wonder what is happening here | ||
camelia | rakudo-moar f3e5be: OUTPUT«due => tre, one => uno» | ||
20:48
nige1 left
|
|||
jnthn | jdv79: Well, it should push the decode failure down the supply chain, but I'm not sure that's happening correctly yet | 20:48 | |
AlexDaniel | but whatever, I'll just add @ everywhere :) | 20:49 | |
masak .oO( to the round batcave, roundrobin! ) | |||
jdv79 | i'm not sure how to handle it best. i'm in a react whenever sock.Supply.lines | ||
Hotkeys | how out of date is 2015.11 at the moment? not in terms of time but like | ||
feature-wise/etc. | |||
20:49
virtualsue left
|
|||
AlexDaniel | Hotkeys: um, well, I think that the difference is huge | 20:50 | |
[Coke] | it's pretty big; if you need something fresh, I recommend git for now | 20:51 | |
Hotkeys | I'm on the current version but my friend runs an evalbot on another server and is using 2015.11 for his rakudo | ||
sjn | m: my @lazy = (1 .. Inf); say @lazy.hyper | ||
camelia | rakudo-moar bd23b4: OUTPUT«HyperSeq.new» | ||
sjn | docs say hyper returns an Iterable class | 20:52 | |
outdated docs? | |||
jnthn | Iterable isn't a class, it's a role | ||
m: HyperSeq ~~ Iterable | |||
camelia | ( no output ) | ||
jnthn | m: say HyperSeq ~~ Iterable | ||
dalek | kudo/nom: 627838d | (Stefan Seifert)++ | src/core/CompUnit/RepositoryRegistry.pm: Remove defunct CompUnit::RepositoryRegistry::candidates This was a fossil of CompUnitRepo. It needs proper replacement, but until that arrives, no one is served by a failing method with a wrong interface. |
||
camelia | rakudo-moar bd23b4: OUTPUT«True» | ||
sjn | ah | ||
jnthn | If the docs say class then yeah, they're wrong :) | ||
moritz | outdated :-) | 20:53 | |
pre-glr, Iterable was a class in Rakudo | |||
jnthn | True :) | ||
sjn | they say "role Iterable" | ||
jnthn | Ah, OK :) | ||
We're down to 4 (four) RTs on the xmas list | 20:54 | ||
masak | jnthn: wow. | 20:55 | |
jnthn++ # massive work | |||
bartolin_ | \o/ jnthn++ | ||
sjn | nice! | ||
timotimo | \o/ | 20:56 | |
nine | Back to less than one a day! jnthn++ | ||
jnthn | And rt.perl.org/Ticket/Display.html?id=123272 is reported as "OK on MoarVM" | ||
By hoelzro++ as of a few days ago | 20:57 | ||
If somebody fancies writing us a test for it, then we can comfortably get down to 3 :) | |||
lucasb | so, about this t/spec/S32-array/adverbs.t, when it's run with plain perl6 it passes, but when it's run with 'perl t/harness' it fails. can someone explain why? | 20:59 | |
jnthn | lucasb: No; I suspect being able to explain it would imply we could easily fix it :) | ||
nine | lucasb: what about PERL6LIB=lib perl6? | ||
jnthn | That's wroth a try | ||
Also | |||
Running it under valgrind is worth a try | 21:00 | ||
dalek | ast: 38f394d | usev6++ | S0 (2 files): Skip some new Unicode related tests on JVM |
||
jnthn | TimToady: Is RT #125769 still something you're looking into, or should I sink a few tuits on it tomorrow? | ||
nine | Yes, -Ilib makes it fail | ||
lucasb | yes, I second, PERL6LIB=lib makes it fail :) | 21:01 | |
21:01
vike joined
|
|||
nine | perl6 -Ilibs is ok however, so it probably has something to do with the modules shipped with rakudo | 21:02 | |
masak | vike: greetings, earthling. | ||
nine | The only module it loads from there is Test | ||
bartolin_ | lucasb: I submitted RT #126823 for that | 21:03 | |
dalek | kudo/nom: 4069889 | TimToady++ | src/Perl6/ (2 files): also notice () in sink context |
21:04 | |
lucasb | bartolin_: ah, I didn't see that | ||
jnthn, nine, bartolin_: thanks for the notes... | |||
21:04
espadrine left
|
|||
TimToady | jnthn: if it's still open tomorrow, you can work on it :) | 21:05 | |
jnthn | TimToady: OK. Did you decide any more on the UNDO in loops one than "possible nasal deamons"? :) | 21:06 | |
TimToady | nothing more | ||
21:06
kyleha left
|
|||
jnthn | TimToady: Also, while we're on phasers: any objections to a CLOSE phaser in supply blocks, which fires when the tap is closed? | 21:06 | |
TimToady: I realized while doing my advent post there was no nice way to attach the cleanup and have the correctly scoped state around. | |||
(For example, if you establish a connection to something like a message queue, and want to close that on tap close) | 21:07 | ||
TimToady | I wonder if CLOSE is too apt to be confused with file closes | ||
jnthn | Maybe. I'm open to other suggestions. I've hunted around for non-phaser options but didn't really find one. | ||
TimToady | fine with the phaser part of the idea | 21:08 | |
SHUTDOWN might be more socketesque, though that can also be misconstrued | |||
AlexDaniel | 4 RTs left? Holy sh… | ||
jnthn | Mostly want to get it in 'cus (a) folks will notice they have no way to do resource management when they start writing production apps with this stuff, and (b) adding new phasers later will need a use v6.X; 'cus they'll be ambiguous with listops.. | ||
TimToady | SHUTOFF | 21:09 | |
jnthn | TimToady: Yeah, I went with CLOSE 'cus it matches $tap.close | ||
masak | CLOSE++ | ||
er, I mean +1 to CLOSE :) | |||
TimToady | I am only mildly suspicious of CLOSE | 21:10 | |
jnthn | Yeah, I worried a bit over "too generally named" too | ||
TimToady | CLOSING? | ||
jnthn | Though, we so far have a rather relaxed phaser policy | ||
Where we let you put any phaser on any block, so they're open to alternative processing by modules :) | 21:11 | ||
CLOSING works too | |||
sjn | SHORT | ||
:) | |||
TimToady | doesn't work with 'will close' though | ||
will shutdown would work better | 21:12 | ||
nine | TAPCLOSE or CLOSETAP? | ||
jnthn | Yeah, it just lacks the obvious link with .close | ||
TimToady | I mean, 'will closing' doesn't work | ||
jnthn | Right | ||
will close doesn't read too bad, otoh | 21:13 | ||
TimToady | will shutoff | ||
jnthn | Except the overgeneralization issue | ||
TimToady | maybe .close is misnamed? | ||
jnthn | oh no! :P | ||
I kinda like that it puns on .close with files, fwiw | |||
TimToady | I'm okay with CLOSE | ||
jnthn | Because if some day we have a construct that is a version of given that calls .close for you, like Python with or C# using for Java...I dunno what Java call it but it's probably verbose. | 21:14 | |
s/for/or/ | |||
Oh wow, it's just try :) | 21:15 | ||
Java surprises me with brevity :) | |||
I'll add it as CLOSE tomorrow :) | 21:16 | ||
TimToady | () | ||
m: () | |||
camelia | rakudo-moar 406988: OUTPUT«WARNINGS for /tmp/zzEVgRtEbN:Useless use of () in sink context (line 1)» | ||
jnthn | All being well it'll be a 30 min patch | ||
masak | jnthn: note -- only Java 7 and above | 21:17 | |
jnthn | masak: Ah, it's that recent. | ||
That means it came after C# had using :P | |||
21:17
squain joined
|
|||
masak | it did. | 21:18 | |
and C# got using after Python already had `with` :) | |||
dalek | kudo/nom: 7c925a7 | TimToady++ | src/Perl6/Actions.nqp: also notice () in loop context |
21:19 | |
21:20
lichtkind joined
|
|||
dalek | ast: 6f71a80 | TimToady++ | S32-exceptions/misc.t: tests for Nil suggestion in loop context |
21:20 | |
21:20
Guest71566 left
|
|||
moritz | uhm | 21:25 | |
I just got | |||
src/mast/compiler.c:1600:1: internal compiler error: Segmentation fault | |||
21:25
pmurias joined
|
|||
[Coke] | urk | 21:25 | |
jnthn | Congrats...what were you compiling? | 21:26 | |
moritz tries again after a a git clean -xdf | |||
jnthn: just moarvm from git, with a straight perl Configure.pl --gen-moar in an unpatched rakudo :-) | |||
Skarsnik | Not ICE me, senpai | ||
21:28
shlomif is now known as rindolf
21:30
cdg joined
|
|||
sjn tries to parallelize stuff | 21:32 | ||
m: .say (1 .. Inf).grep(&is-prime)[100] | |||
camelia | rakudo-moar 7c925a: OUTPUT«5===SORRY!5=== Error while compiling /tmp/U6T_gN48e0Two terms in a rowat /tmp/U6T_gN48e0:1------> 3.say7⏏5 (1 .. Inf).grep(&is-prime)[100] expecting any of: infix infix stopper statement end …» | ||
RabidGravy | fun time | ||
sjn tries to parallelize stuff | 21:33 | ||
argh. lag | |||
m: .say for (1 .. Inf).grep(&is-prime)[100]; | |||
camelia | rakudo-moar 7c925a: OUTPUT«547» | ||
sjn | m: .say for (1 .. Inf).hyper.grep(&is-prime)[100]; # hangs | ||
jnthn | moritz: Very odd. If you manage to make it happen again, please valgrind it. | ||
camelia | rakudo-moar 7c925a: OUTPUT«(signal XCPU)» | ||
skids | .o(parallelized from the neck down) | 21:35 | |
sjn is completely new to this (hence making what I'm sure is stupid mistakes) | 21:36 | ||
lucasb | bartolin_++ I learned from your RT ticket... | 21:39 | |
bartolin_: interesting that an wrong adverd on hashes dies the first time but not the others | |||
and with arrays, it never dies | |||
lizmat | gist.github.com/lizmat/c9aabb07ef76f472d0c2 # latest build on JVM cannot find Test | 21:40 | |
moritz | jnthn: built fine the second time | ||
lucasb | and S32-hash/adverbs.t didn't failed for me... but S32-array/adverbs.t does | 21:41 | |
moritz | jnthn: but what would you do with a gcc valgrind? :-) | ||
lizmat | sjn: looks like the hyper is reifying the infinite list | ||
bartolin_ | lucasb: I just added to the ticket. looks like it fails randomly :-/ | 21:42 | |
jnthn | hyper/race are forms of eager | ||
sjn | hm | ||
lizmat | jnthn: so you're saying you could *never* hyper an infinite list ? | ||
bartolin_ | lucasb: I think S32-hash/adverbs.t and S32-array.adverbs.t have the same problem there. | ||
sjn | that's no good :-\ | 21:43 | |
jnthn | lizmat: I won't say "never", but the design docs do, iirc, describe them as forms of eager, which implies not. | 21:44 | |
lizmat | maybe we should die on .hyper/race ing a lazy list for now ? | 21:45 | |
m: .say for (1 .. 10).hyper.grep( { say "$_ in $*THREAD.id()"; is-prime($_) })[1] # something clearly amiss | 21:46 | ||
camelia | rakudo-moar 7c925a: OUTPUT«Nil» | ||
lizmat | so, it looks like it's not even getting into the grep ? | 21:47 | |
jnthn | I think timotimo noticed something was up there | ||
I didn't manage to look at it yet | |||
sjn apologizes for bugging people with stuff like this | 21:48 | ||
jnthn | Mebbe tomorrow :) | ||
lizmat | sjn: no worries | 21:49 | |
jnthn | sjn: The story on .hyper and .race is that I did a prototype implementation of them to prove the API design while doing the GLR | ||
TimToady | nine: have a fix for your "useless use" | ||
just testing now | |||
jnthn | sjn: And that's basically what's there now still. | ||
sjn is annoyed too. it almost seems that I attract bugs :-\ | |||
bartolin_ | lizmat: I commented on your gist (c9aabb07ef). I compiled rakudo.jvm a few hours ago and can 'use Test' with -Ilib | ||
jnthn | sjn: Aside timotimo++ did a few bits on it | ||
lizmat | bartolin_: but that shouldn't be necessary. no ? | ||
bartolin_ | lizmat: well, I did not run 'make install' -- maybe that's, what broken on JVM? | 21:50 | |
lizmat | if it would be, then any 'make test' file that has a 'use Test' should have a 'use lib' as well ? | ||
21:51
zjmarlow_ left
|
|||
dalek | kudo/nom: 8401e01 | TimToady++ | src/Perl6/Actions.nqp: vars used in roles/role args need wanting |
21:52 | |
bartolin_ | lizmat: at least t/harness (which is used for 'make spectest') has the following: $ENV{'PERL6LIB'} = join ',', qw/ lib . /; | 21:53 | |
masak | hyper being a type of eager makes excellent sense. | ||
lucasb | bartolin_: just as another data point, I tried your 2 cmdlines (for run in {1..10}) in your last RT comment, and I consistently get 10 zeros everytime on both. My rakudo-moar is from a few commits ago today. | ||
masak | mostly because `hyper` and `lazy` are mutually exclusive concepts (not just because they sound like they are!) | ||
lizmat | so I guess you would need something like Supply.throttle after all then | 21:54 | |
masak | `hyper` is saying "I don't mind if you kick things off faster than usual" | ||
21:54
zjmarlow_ joined
|
|||
nine | TimToady: \o/ | 21:54 | |
masak | `lazy` is saying "I don't mind if you kick things off as late as possible" | ||
lizmat | I guess I have more a Supply.tap view on this | 21:55 | |
bartolin_ | lucasb: oh, zeros? that's strange. what happens, if you leave the pipe to grep out? | ||
nine | QAST::WVal.new( :value($foo) ); # do I need to add $foo to $*W manually? | ||
Never mind...rakduo just answered the question :) | 21:56 | ||
bartolin_ | lucasb: (or if you just run the command within the parens a few times?) | 21:57 | |
jnthn | nine: Yes ;) | ||
lucasb | bartolin_: lol, sorry, forget what I just said. I made a mistake. I have reproduced just like your comment, you are right | ||
bartolin_ | lucasb: yw :-) | 21:58 | |
nine | SC not yet resolved; lookup failed | ||
jnthn | That's...an unusual error to manage | 22:00 | |
22:00
zjmarlow_ left
|
|||
dalek | ast: aa25738 | usev6++ | S02-types/native.t: Fudge some tests for native ints for JMV |
22:01 | |
nine | jnthn: caused by this patch: gist.github.com/niner/caa8f988d9c52b169400 | ||
jnthn | That may be too early | 22:02 | |
nine: Yeah, load_dependency_tasks run *before* we deserialize the SC of the current compilation unit. | 22:04 | ||
So you can't access a WVal in the current compilation unit at that point. | 22:05 | ||
22:06
skids left
|
|||
nine | jnthn: but why did it work for the %opts hash? self.add_object($_.value); | 22:06 | |
jnthn | my $opt_hash := QAST::Op.new( :op('hash') ); | 22:07 | |
It was constructing a QAST tree | |||
That build up a hash | |||
nine | IOW I have to write the QAST Tree for creating the dependency specification manually | 22:08 | |
jnthn | Yeah but...why is this happening? | 22:09 | |
I thought we resolved dependencies at the point of precompilation? | |||
And then they were fixed? | |||
So we didn't have to go searching again every module load. | |||
timotimo | sjn: yeah, .grep on a HyperSeq causes all the incoming values to disappear :( | 22:11 | |
22:12
rindolf left
|
|||
nine | jnthn: oh...that's a possibility that didn't occur to me. | 22:12 | |
dalek | osystem: ae39cbb | (Zoffix Znet)++ | META.list: Move defunct Tree::Simple to eco SHELTER Per github.com/Takadonet/Tree--Simple/...-165655432 |
22:13 | |
: 84eb01f | (Zoffix Znet)++ | misc/SHELTER/Tree--Simple/META.info: Move defunct Tree::Simple to eco SHELTER Per github.com/Takadonet/Tree--Simple/...-165655432 |
|||
nine | jnthn: so instead of this dependency_task thing, I'd just have the PrecompilationRepository load all dependencies before the requested precomp file | ||
jnthn | nine: I thought it was in my original gist, but maybe I'm remembering wrong... | ||
nine: Yes...which should improve load time somewhat too | |||
nine | jnthn: AFAIK the pieces where there but it was nowhere spelled out that we could use the information that way :) | 22:14 | |
jnthn | Ah :) | ||
22:14
xfix left
|
|||
jnthn | "Since resolving dependency specifications to dependencies is a part of the compilation process, a cached precompilation directly identifies the cached precompilations it depends on. That is to say, the compiled effect of a use or need statement is not to resolve a dependency specification, but instead to identify a precise dependency to load." | 22:15 | |
nine | And I need to read in the dependencies and even stat the files already to check if they are up to date. So it won't even be much new code | 22:16 | |
dalek | : b0f90ba | (Zoffix Znet)++ | misc/SHELTER/README.md: Reword the SHELTER"s purpose to soften the authors" stances toward these modules |
||
jnthn | That was the bit I intended to point in this direction :) | ||
Zoffix | Are we still interested in panda failures with "Cannot unbox a type object" when installing deps? It's aborted my R* install -_- | 22:18 | |
nine | jnthn: ok, ok :) From where I stand now it clearly makes sense. I think I was about 2/3 through with the implementation when I finally understood the last pieces. So the full meaning was just not visible to me the 3 or 4 times I've read that. | ||
dalek | ast: bfe9372 | usev6++ | integration/advent2013-day15.t: Fudge test returning 1 instead of True for JVM |
||
Zoffix | And also, am I getting rakudo's HEAD when I rakudobrew build moar or do I need to do something else? | ||
jnthn | Yeah, can understand that. It's a dense document that was written in a relative hurry, too... | 22:19 | |
Zoffix | ==> Installing Debugger::UI::CommandLine [DISLOCATED MESSAGE] Useless use of enter_result__1 symbol in sink context | ||
RabidGravy | Zoffix, you always get rakudo's head but not that of nqp or moar | 22:20 | |
diakopter | heh, a useless use of a result symbol | ||
Zoffix | k | ||
TimToady | rakudobrew triple is supposed to give you more control, but last I knew it couldn't find 'make' | 22:21 | |
nine | jnthn: I really thought that I would just get some boring code moving tasks done, so you could later jump into the interesting bits without wasting time. I've never intended to do it all by myself :) | ||
Zoffix tries triple | |||
jnthn | nine: I'm very happy, and grateful, that you did. :-) | ||
TimToady | I keep having to go in and edit rakudobrew to just use 'make'... | ||
diakopter | TimToady: submit a PR; I can merge it | 22:22 | |
TimToady | well, I don't know how portable my fix is | ||
RabidGravy | boo | ||
nine | jnthn: I guess it was a better way for me to contribute than just going through the xmas RTs again. Because I already went through all of them once and fixed the few where I had an idea on what would be required :) | 22:23 | |
diakopter | aaaaand every Juniper router is backdoored | ||
Zoffix | Yup | ||
Since 2012 or something | |||
22:24
rurban joined
|
|||
bartolin_ | . o O ( or since today (after applying the patch)? ) | 22:24 | |
Zoffix | TimToady, well, if the current state is it being definitely broken for some systems and a possible state of it being *maybe* broken for some systems, I think your PR would definitely be an improvement :P | ||
diakopter | bartolin_: true enough | ||
nine | Ok, I'll leave it be for tonight and have a go at this tomorrow. Good night! | ||
22:24
zjmarlow_ joined
|
|||
Zoffix | night | 22:24 | |
jnthn | nine: 'night o/ | ||
RabidGravy | I thought Juniper was bought out about ten years ago | ||
masak | 'night, nine | ||
Zoffix | I thought Juniper was berries you brewed potions with in Skyrim. | 22:25 | |
jdv79 | is it corrct that say "\xfffff" segfaults? | ||
22:25
ollej joined
|
|||
RabidGravy | gin, you use it in gin | 22:25 | |
22:25
ollej left
|
|||
Zoffix | Doesn't in P5 | 22:25 | |
diakopter | m: say "\xfffff" | ||
camelia | rakudo-moar 8401e0: OUTPUT«(signal SEGV)» | ||
diakopter | m: say "\x0fffff" | 22:26 | |
camelia | rakudo-moar 8401e0: OUTPUT«(signal SEGV)» | ||
diakopter | m: say " \x0fffff" | ||
camelia | rakudo-moar 8401e0: OUTPUT«(signal SEGV)» | ||
jnthn | No | ||
TimToady | jdv79: I dunno, I'll have to think about it... | ||
jdv79 | ok | ||
jnthn | m: say "\x10ffff" | ||
camelia | rakudo-moar 8401e0: OUTPUT«\x{10FFFF}» | ||
TimToady | m: say "\x110000" | ||
camelia | rakudo-moar 8401e0: OUTPUT«Error encoding UTF-8 string: could not encode codepoint 1114112 in block <unit> at /tmp/IJkmk8vHHv:1» | ||
AlexDaniel | diakopter: nice! | ||
jnthn | m: say "\x110000" | 22:27 | |
camelia | rakudo-moar 8401e0: OUTPUT«Error encoding UTF-8 string: could not encode codepoint 1114112 in block <unit> at /tmp/mNI0ppTbV3:1» | ||
Zoffix | TimToady, I need your triple fix. I've no idea how to fix it on my own | ||
(which file? what do I change?) | |||
jnthn | Curious...wonder why the out of range check busts | ||
Wonder if we should accept should a \x value in the first place, also | |||
*such | |||
22:28
geraud joined,
kyclark joined
|
|||
AlexDaniel | jnthn: some kind of an overflow perhaps? | 22:28 | |
diakopter | m: say "\xffffffffffffff" | ||
camelia | rakudo-moar 8401e0: OUTPUT«␀» | ||
diakopter | giggle | ||
AlexDaniel | m: say "\xfffffffffffffff" | ||
camelia | rakudo-moar 8401e0: OUTPUT«␀» | ||
AlexDaniel | m: say "\xffffffffffffffff" | ||
camelia | rakudo-moar 8401e0: OUTPUT«===SORRY!===chr codepoint cannot be negative» | ||
AlexDaniel | m: say "\xfffffffffffffffff" | ||
camelia | rakudo-moar 8401e0: OUTPUT«===SORRY!===chr codepoint cannot be negative» | ||
Zoffix | heh | ||
diakopter | lolz | ||
AlexDaniel | m: say "\xffffffffffffffffffffffffff" | ||
camelia | rakudo-moar 8401e0: OUTPUT«===SORRY!===chr codepoint cannot be negative» | ||
kyclark | m: my %foo = A => 2, B => 4; say %foo<A B C> »//» 0; | ||
camelia | rakudo-moar 8401e0: OUTPUT«(2 4 0)» | ||
AlexDaniel | m: say "\xfffffffffffffffffffffffffffffffffffffffffffffffffffffffff" | ||
camelia | rakudo-moar 8401e0: OUTPUT«===SORRY!===chr codepoint cannot be negative» | ||
kyclark | m: my %foo = A ⇒ 2, B ⇒ 4; say %foo<A B C> »//» 0; | ||
camelia | rakudo-moar 8401e0: OUTPUT«5===SORRY!5=== Error while compiling /tmp/wTF2OZxw1UBogus termat /tmp/wTF2OZxw1U:1------> 3my %foo = A 7⏏5⇒ 2, B ⇒ 4; say %foo<A B C> »//» 0; expecting any of: argument list infix infix stopper…» | ||
kyclark | Just curious if I could use a Unicode => in hash assignment, but I guess not? | 22:29 | |
Zoffix | wtf... you can use ⇒ ? | ||
oh | |||
Zoffix now sees the error message :) | |||
22:29
pierre-vigier left
|
|||
kyclark | Seems like if the guillmets (sp?) work then the => might could ought to? | 22:30 | |
22:30
n0tjack left
|
|||
masak | I'm not so fond of that idea. | 22:30 | |
TimToady | Zoffix: I just use gist.github.com/TimToady/0b68b598b74df83e1eee | ||
masak | kyclark: though if you want that in your own program, it's only a user-defined operator away | 22:31 | |
Zoffix | m: sub infix:<⇒> ($k, $v) { Pair.new($k, $v); }; my %foo = A ⇒ 2, B ⇒ 4; say %foo<A B C> »//» 0; | ||
camelia | rakudo-moar 8401e0: OUTPUT«5===SORRY!5=== Error while compiling /tmp/ezgazX83okPreceding context expects a term, but found infix ⇒ insteadat /tmp/ezgazX83ok:1------> 3$v) { Pair.new($k, $v); }; my %foo = A ⇒7⏏5 2, B ⇒ 4; say %foo<A B C> »//» 0;» | ||
jnthn | .u ⇒ | ||
yoleaux | U+21D2 RIGHTWARDS DOUBLE ARROW [Sm] (⇒) | ||
Zoffix | I'm guessing that needs 'is-tighter' somewhere but I don't know how to do that part | ||
TimToady | but it should probably probe for gmake on systems where make is ungmake | ||
masak | Zoffix: oh, right. can't depend on key auto-quoting anymore. | ||
Zoffix | TimToady, thanks | ||
ooooh :( | |||
masak | that would be a reason to make it core. though a weak one, IMO. | 22:32 | |
diakopter | TimToady: or nmake on windows.. but why wouldn't it try to use the same one ....oh | ||
jnthn | masak: Could I do it with a macro? :D | ||
Zoffix | masak, I agree. I don't think real-life code will use that a lot and adding to core adds a bit of overhead IIUC | 22:33 | |
22:33
n0tjack joined
|
|||
masak | jnthn: benefiting from the code path that's already there for `=>` which auto-quotes identifiers in hash/pair key position? good question. | 22:34 | |
jnthn: a more young and naive me would answer "sure! macros can do *everything*!" -- but this stuff is hard. | 22:35 | ||
diakopter | let's find that younger and naiver masak | ||
masak | jnthn: especially intercepting things early enough in the parse and then release control flow back into an existing code path in the compiler. | 22:36 | |
releasing* | |||
jnthn | masak: yeah... | ||
This one is easier slung I guess | |||
masak | aye | ||
masak .oO( they slung of brave heroes of yore ) | 22:37 | ||
22:37
n0tjack left
|
|||
Skarsnik | damn my NC patch get merged. It's weird nobody complain about warning in some modules now x) | 22:37 | |
22:38
_nadim left,
_nadim joined
22:39
cpage_ left
22:40
spider-mario left,
lucasb left
|
|||
diakopter wonders how it would even be slung | 22:40 | ||
22:40
Begi left
22:41
nadim joined,
_nadim left
|
|||
masak | diakopter: overriding `token fatarrow` | 22:42 | |
diakopter | arrowshaming | 22:43 | |
22:44
Skarsnik left
|
|||
diakopter | hmm, gotta love these animated emoji in subject lines in Gmail | 22:44 | |
22:44
_nadim joined
|
|||
Zoffix is suddenly glad to not be using gmail | 22:44 | ||
22:44
nadim left
|
|||
Zoffix reads `man patch` to figure out how to apply TimToady's patch | 22:45 | ||
masak | 'night, #perl6 | ||
Zoffix | "Copyright (C) ... Larry Wall" :) | ||
You're just everywhere, aren't you? :) | |||
masak, night | |||
jnthn | Zoffix: If you have a git checkout of rakudobrew then you can just `git apply foo.patch` | ||
22:46
jack_rabbit joined
|
|||
jnthn | rest well, masak | 22:46 | |
diakopter | 2015 TAX RELIEF NOW AVAILABLE | ||
Zoffix | jnthn++ oh, awesome thanks :) | ||
diakopter | ^ raw email subject | ||
Zoffix | .u | ||
yoleaux | No characters found | ||
diakopter | o_O | ||
Zoffix | That displays as nothing for me | ||
diakopter | m: say " " | ||
camelia | rakudo-moar 8401e0: OUTPUT« » | ||
Zoffix | well, as boxes with character codes in them | ||
jnthn | m: say uniname('�') | ||
camelia | rakudo-moar 8401e0: OUTPUT«REPLACEMENT CHARACTER» | ||
Zoffix | m: say uniname('') | 22:47 | |
camelia | rakudo-moar 8401e0: OUTPUT«<Plane 15 Private Use>» | ||
jnthn | Dance, you funky replacement character | ||
diakopter | weird | ||
jnthn | Well, private use is the right place if it's specific to gmail | ||
diakopter | the one on the riht is a dollar bill | ||
the left one is an envelope flying into a red mailbox | 22:48 | ||
four frames or so | |||
TimToady | Private means something else to google than it does to us... | ||
timotimo | perhaps it's only used between the html and the font rendering? | 22:51 | |
lizmat is going to give her flu-ridden brane a rest | |||
good night, #perl6! | |||
timotimo | get well soon, lizmat! | ||
jnthn | lizmat: 'night, hope the flu goes soon! | 22:52 | |
flussence | App::uni says those are U+FE52E and U+FE4E3, which is kind of a silly thing to put in an email subject line | 22:53 | |
Zoffix | App::uni? | ||
22:54
espadrine joined
|
|||
Zoffix sees that neither on P6 nor P5 ecosystems | 22:54 | ||
flussence | s/u/U/ | ||
Zoffix sees that on P5 ecosystem | |||
Hm, a whole ton of modules with .travis.yml but dist not enabled on travis | 22:58 | ||
Which also makes me realize caching travis results is futile even with the 24hr delay I put in | 22:59 | ||
23:00
kyclark left
|
|||
dalek | href="https://modules.perl6.org:">modules.perl6.org: 97359e0 | (Zoffix Znet)++ | lib/ModulesPerl6/DbBuilder/Dist/PostProcessor/TravisCI.pm: Do not accept "unknown" Travis status as a valid cached result |
23:02 | |
23:02
cpage_ joined
23:04
_nadim left,
kyclark joined
23:05
_nadim joined
23:06
kid51 joined,
rurban left
23:08
kyclark left
|
|||
dalek | href="https://modules.perl6.org:">modules.perl6.org: 6f828ed | (Zoffix Znet)++ | t/02-db-builder/06-postprocessor-travis.t: Test that "unkown" Travis statuses are not cached |
23:10 | |
23:11
pmurias left,
kyclark joined
|
|||
smls_ | Did we ever get syntactic sugar for attribute default values that are evaluated on first access rather than class build time? | 23:13 | |
jnthn | No, and that probably won't actually be done as attributes anyway | 23:15 | |
But rather as a method marked with "is cached", and that trait will imply state per instance. | |||
Since in that use case the attribute is something of an implementation detail | |||
smls_ | ok | ||
jnthn | "is cached" was pushed off to a future language version, though | 23:16 | |
Maybe for Divali :) | 23:17 | ||
Zoffix | m: class Foo { has $.x = sub { say 42; $!x = 50; $!x }; }; my $x = Foo.new; say "uhum"; say $x.x; say $x.x | ||
camelia | rakudo-moar 8401e0: OUTPUT«uhumsub () { #`(Sub|63207208) ... }sub () { #`(Sub|63207208) ... }» | ||
Zoffix | :( | ||
RabidGravy | but it's open for an ecosystem implementation or stubbed as NYI? | 23:18 | |
jnthn | RabidGravy: Open for ecosystem impl | ||
RabidGravy: Quite deliberately. | |||
RabidGravy | cool | ||
jnthn | RabidGravy: Also due to lexical scoping, anyone using an ecosystem impl will have their import be more narrowly scoped than the built-in one | ||
RabidGravy | I have no feelings about it personally :) | 23:19 | |
jnthn | (When the built-in one comes back) | ||
Zoffix | "is lazy" as an attribute is just itching to be there :/ | ||
jnthn | So people who do use ecosystem ones won't find they get their code broken if the built-in one behaves difference :) | ||
smls_ | For now I do something like: | ||
has $!x; method x { ($!x //= ...) } | |||
jnthn | Zoffix: I don't think it's really the right hook | ||
Zoffix | At least to my mind, coming of P5 land, where I've used it tons | ||
RabidGravy | this is why I love perl 6 | 23:20 | |
jnthn | Zoffix: Though it's module-able for anyone who wants it :) | ||
Zoffix | OTOH, I used it lots 'cause you can't set attributes using other attributes at construction time (at least with Moo/Mew) | ||
jnthn | Ah...which you can in Perl 6 | ||
Attribute defaults run in order | |||
Zoffix | yeah | ||
TimToady | which might be the wrong order for C structs, but then, you're not gonna get much laziness out of C types... | 23:21 | |
RabidGravy | Zoffix, then it's make it with the semantics you want, simple for people to ignore it if they don't agree | ||
Zoffix | RabidGravy, parse error: "then it's make it" | 23:22 | |
What do you mean? | |||
RabidGravy | "write code rather than expect others to do it" | 23:23 | |
Zoffix | I don't know how :( | ||
grondilu | adding an instance variable for caching seems a bit ugly. I'd do: method x { (state %){self} //= ... } | 23:24 | |
23:24
kyclark left
|
|||
RabidGravy | right, I'm off. Have fun. | 23:24 | |
TimToady | (%) should be sufficient | ||
jnthn | I can haz memory leak? :) | 23:25 | |
(Which is why "is cached" should do it by sneaking in an instance attribute) | |||
Zoffix | m: use experimental :cached; class Foo { has $!x; method x is cached { say 42; $!x = 50; $!x }; }; my $x = Foo.new; say "uhum"; say $x.x; say $x.x | 23:26 | |
camelia | rakudo-moar 8401e0: OUTPUT«5===SORRY!5=== Error while compiling /tmp/6l4Er8E79s'is cached' on methods not yet implemented. Sorry. at /tmp/6l4Er8E79s:1» | ||
Zoffix | awww | ||
23:27
hankache joined
|
|||
grondilu | m: class A { method x { (%){self} //= rand }; my $a = A.new; say $a.x xx 3 | 23:27 | |
camelia | rakudo-moar 8401e0: OUTPUT«5===SORRY!5=== Error while compiling /tmp/KL1jAlGxPRMissing blockat /tmp/KL1jAlGxPR:1------> 3//= rand }; my $a = A.new; say $a.x xx 37⏏5<EOL> expecting any of: postfix statement end statement modifier…» | ||
grondilu | m: class A { method x { (%){self} //= rand } }; my $a = A.new; say $a.x xx 3 | 23:28 | |
camelia | rakudo-moar 8401e0: OUTPUT«(0.279635064170307 0.279635064170307 0.279635064170307)» | ||
grondilu | m: class A { method x { (%){self} //= rand } }; my $a = A.new; say $a.x xx 3; say B.new.x | ||
camelia | rakudo-moar 8401e0: OUTPUT«5===SORRY!5=== Error while compiling /tmp/ewkLE_3TXiUndeclared name: B used at line 1» | ||
grondilu | m: class A { method x { (%){self} //= rand } }; my $a = A.new; say $a.x xx 3; say A.new.x | ||
camelia | rakudo-moar 8401e0: OUTPUT«(0.180993913554 0.180993913554 0.180993913554)0.11693324519052» | ||
TimToady | has %!mycache handles 'CACHE-THIS' | ||
as jnthn points out, that's only useful if your objects are permanent | 23:29 | ||
grondilu wonders if %{self} is syntactically ok | |||
m: class A { method x { %{self} //= rand } }; my $a = A.new; say $a.x xx 3; say A.new.x | |||
camelia | rakudo-moar 8401e0: OUTPUT«Odd number of elements found where hash initializer expected in method x at /tmp/sWVyb4bKLA:1 in block <unit> at /tmp/sWVyb4bKLA:1» | ||
grondilu | nope | ||
23:29
RabidGravy left,
pierre-vigier joined
|
|||
grondilu | m: say %{1, 2}.WHAT | 23:30 | |
camelia | rakudo-moar 8401e0: OUTPUT«Odd number of elements found where hash initializer expected in block <unit> at /tmp/DHDQgMw2_9:1» | ||
23:30
cognominal joined
|
|||
grondilu | I don't know what %{something} is supposed to be | 23:31 | |
23:31
TEttinger joined
|
|||
Zoffix | hash initialized with {1, 2} ? | 23:31 | |
grondilu | I thought that should be %(1, 2) | ||
m: say %(1, 2).WHAT | |||
camelia | rakudo-moar 8401e0: OUTPUT«(Hash)» | ||
Zoffix | m: say {1, 2}.WHAT; say %(1, 2).WHAT; | 23:32 | |
camelia | rakudo-moar 8401e0: OUTPUT«(Block)(Hash)» | ||
Zoffix | Well, it takes that block as "an element" | ||
m: say %({1, 2}, 2).WHAT; | |||
camelia | rakudo-moar 8401e0: OUTPUT«Block object coerced to string (please use .gist or .perl to do that) in block <unit> at /tmp/EdcMsbg3sP:1(Hash)» | ||
Zoffix | Never mind | ||
Well... maybe | |||
grondilu | well it should really interepret it as (state %){somthing}, imho | ||
nah I don't know. seems complicated. | 23:33 | ||
23:33
pierre-vigier left
|
|||
jdv79 | so in the future will there be ways to soft fail a decoding? | 23:34 | |
grondilu | I think that's a case where the parser should be allowed to die with a "confused" message. | ||
jdv79 | i encounted a iso08859-1 char today (194) and it just fails out hard | ||
Zoffix | m: say %({1, 2}).WHAT; | 23:35 | |
camelia | rakudo-moar 8401e0: OUTPUT«Odd number of elements found where hash initializer expected in block <unit> at /tmp/IJ1WX6QOoI:1» | ||
jnthn | jdv79: Yes; was on my wish list for 6.c, but didn't make it :( | ||
jdv79 | is there a workaround? | 23:36 | |
23:36
skids joined
|
|||
jdv79 | i guess i would wedge something in there... | 23:36 | |
jnthn: ok, thanks. | 23:37 | ||
jnthn | Well, workaround is to receive binary and then explicitly use .decode calls on the Bufs | ||
23:38
kyclark joined
|
|||
jdv79 | right | 23:38 | |
23:39
kyclark left
|
|||
jnthn | That may be the longer term answer anyway, except there will be a streaming decoder API so you can take advantage of the VM's existing handling of multi-byte sequences and so on. | 23:39 | |
But if you're doing iso08859-1 that's a non-issue. | |||
Zoffix | hm, seems the useless use stuff completely broke Template::Mojo | ||
23:40
grondilu left
|
|||
Zoffix | (at least based on looking at its test results) | 23:40 | |
jdv79 | well, this particular stream should be utf-8. its just that someone jambed a random iso8859-1 char in there. | ||
jnthn | .oO( :enc<heck-knows-just-do-something> |
23:42 | |
) | |||
jdv79 | basically | ||
jnthn | Time for some rest...'night o/ | 23:43 | |
Zoffix | night | ||
jdv79 | goodnight | ||
23:43
BenGoldberg joined
23:46
flussence left
23:50
jack_rabbit left,
flussence joined
|
|||
Zoffix | nine, TimToady Inline::Perl5 still fails with the freshly-squeezed rakudobrew triple: gist.github.com/zoffixznet/7b1f4d6680517bd2ecc6 | 23:52 | |
23:54
grondilu joined,
cdg left
23:56
Psyche^_ joined
|
|||
skids | Hrm I just installed it on 8401e01-*-* just fine. | 23:58 | |
Ergh still with the run_alt though :/ | 23:59 |