»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg camelia perl6: ... | irclog: irc.perl6.org/ | UTF-8 is our friend! Set by moritz on 3 May 2013. |
|||
00:04
btyler joined
00:09
btyler left
00:21
btyler joined
00:36
Chillance joined
00:38
btyler left
00:55
anuby joined
01:03
cognominal left
01:06
FROGGS_ joined
01:10
FROGGS left
01:11
BenGoldberg joined
01:13
ssutch joined
|
|||
ssutch | is there any way to make the panda bootstrap script more explicit, it is failing on one of the subtests (testing panda) and i'd like to debug | 01:14 | |
01:15
hypolin joined
|
|||
timotimo_ | you can try installing ufo, then running ufo in the panda dir to get a makefile, then building panda with ufo and running the tests manually with "perl6 -Ilib t/foo.t | 01:16 | |
ssutch | oh dear | 01:17 | |
colomon | I don't think you actually need to use ufo to build panda if you run the tests with perl6 -Ilib | ||
timotimo_ | oh, that works? good point then. | 01:19 | |
ssutch | ah ok | ||
timotimo_ | i'm going to bed now. good luck! | 01:20 | |
ssutch | ok, so i ran perl6 -Ilib t/tester.t (which is the file that was failing) | 01:21 | |
timotimo_ | hehe, the tester fails to test :) | ||
ssutch | and it appears to pass, and then die on t/fail.t | 01:22 | |
which is not addressed in the command line | |||
timotimo_ | oh | 01:23 | |
a question | |||
does it end in "ok 2 - what should fail, fails"? | |||
ssutch | gist.github.com/samuraisam/5770551 | ||
^ output above, it ends with "not ok 2 - what should fail, fails" | |||
timotimo_ | hah, wat? it fails, but fails to notice that it failed, so it assumed it succeeded and thus the test to fail failed | ||
ssutch | haha | 01:24 | |
timotimo_ | oh, that may come from the new exception types perhaps, let me check | ||
[Coke] | with latest rakudo-java, if I comment out "use v6" in t/01-sanity/*.t, we actually pass 8 files. | ||
ssutch | if it was just committed to rakudo, then possibly. i am not running a star release | ||
colomon | [Coke]: \o/ | 01:25 | |
ssutch | nice! | ||
colomon | ssutch: the change is actually to panda. | ||
timotimo_ | hmm, if the prove returns nonzero, it will "fail 'Tests failed'" | ||
why doesn't it fail according to dies_ok? | 01:26 | ||
colomon | ssutch: I don't see any sign of a fail.t existing now? | ||
ssutch | environ: ubuntu 13.04, perl 5.14.2, TAP::harness 3.23 | ||
timotimo_ | r: sub foo() { fail "tests failed" }; use Test; dies_ok { foo }, "hopefully OK"; | ||
camelia | rakudo b2072f: OUTPUT«ok 1 - hopefully OK» | ||
ssutch | rakudo: latest, panda: latest | ||
camelia | rakudo b2072f: OUTPUT«===SORRY!===Two terms in a rowat /tmp/MXExaCWR91:1------> latest, panda⏏: latest expecting any of: argument list postfix infix stopper infix or meta-infix statement end stat… | ||
timotimo_ | fwiw, i cannot reproduce your problem :( | 01:27 | |
colomon | ssutch: github.com/tadzik/panda/tree/master/t | ||
ssutch | colomon: strangely, panda installed on another machine fine, not hours ago | 01:28 | |
colomon | oh, is this in testmodules/testme2/t/? | ||
timotimo_ | yes | ||
ssutch | yeah | ||
01:29
rindolf joined
|
|||
timotimo_ | i was going to bed, so that's what i'll do now. good luck! | 01:29 | |
colomon | github.com/tadzik/panda/blob/maste...2/t/fail.t | ||
is it that file? That's only got one test... | |||
timotimo_ | t/fail.t (Wstat: 0 Tests: 1 Failed: 1) Failed test: 1 | ||
that's the expected result | |||
the *unexpected* result is that fail not leading to the exception | 01:30 | ||
colomon | ah | ||
timotimo_ | and *that* causes not ok 2 - what should fail, fails | ||
# Looks like you failed 1 tests of 2 | |||
testception | |||
and bedtime | |||
ssutch | hah | ||
colomon: gist.github.com/samuraisam/5770551 | |||
(you may've already seen that link) | |||
colomon | hold on, I'm going to try it myself. | 01:31 | |
01:32
s1n left
|
|||
ssutch | perl6 --version; This is perl6 version 2012.10 built on parrot 4.6.0 revision 0 | 01:33 | |
colomon | hmmm... that's a bit old now. | ||
aha! duplicated your failure. | 01:34 | ||
ssutch | installed from the repo, not sure why it says that | ||
maybe when building from a repo it doesn't embed the correct version | |||
colomon | wrong branch, maybe? | ||
perl6 --version | |||
This is perl6 version 2013.05-210-g1d43629 built on parrot 5.2.0 revision RELEASE_5_2_0 | |||
that's built from a repo | |||
ssutch | yep, you're right, i am pointing at the wrong perl6 binary, strangely | 01:36 | |
01:36
lustlife joined
|
|||
ssutch | This is perl6 version 2013.05-236-gc947f78 built on parrot 5.2.0 revision RELEASE_5_2_0 | 01:36 | |
colomon: how did you repro? | 01:38 | ||
colomon | I got a fresh panda, used the bootstrap code to git the submodules, then did perl6 -Ilib -Iext/File__Tools/lib t/tester.t | 01:39 | |
01:39
mrallen1 joined
|
|||
ssutch | colomon: strangely, when using the correct version of rakudo, it installed just fine, so perhaps an error is being masked somewhere? | 01:40 | |
colomon | I don't know. This is somewhat confusing code. :\ | ||
my rakudo is not perfectly fresh, so there's a possibility that's the issue. | 01:41 | ||
ssutch | probably not, i can repro the issue (despite installation working properly) by running the same command as you | 01:42 | |
colomon | interesting. if I change Tester.pm to die instead of fail, I catch the error. | ||
01:46
GlitchMr left
|
|||
ssutch | what does that imply? | 01:46 | |
colomon | I wonder if you're seeing nested failures? That is, tester.t fails because Panda::Tester::test has changed errors from die to fail; and then the installer installs it anyway, because Panda does n't notice the fail as a test failure. | 01:47 | |
labster | try doesn't catch errors thing I ran into yesterday? | ||
colomon | labster: I didn't notice that when you posted it (or I've forgotten), can you give us more context? | 01:48 | |
01:48
s1n joined
|
|||
labster | sub foo { fail "bar" }; try foo(); #this dies | 01:48 | |
colomon is running a huge cad test in the background, as well as systematically downloading video of the 1981 Newfoundland Folk Festival. My input control on my box comes and goes as a result... | 01:49 | ||
labster | because try catches thrown errors, but not failures, and then the failure goes into sink context and gets thrown | ||
01:50
cognominal joined
|
|||
ssutch | hmm | 01:50 | |
colomon | labster: yes, I'm think this might be a similar issue | ||
colomon is now desperately turning off programs because his Mac is running out of memory. | 01:51 | ||
01:52
rindolf left
|
|||
colomon ah, the cad program was using 4.5 gigs of memory. :\ | 01:53 | ||
01:54
jeff_s1 left,
GlitchMr joined
01:55
atroxaper joined
|
|||
ssutch | colomon, labster: is that a bug which needs reported? | 01:56 | |
labster | Yeah, a specsbug (IMO, anyway) | ||
colomon | the immediate problem is a panda bug | ||
(I mean, not labster's thing) | |||
ssutch | im not sure what a specsbug is, or how to go about helping, unfortunately | 01:57 | |
colomon | ssutch: he means it's actually a problem with the perl 6 specification. | ||
labster | Don't worry about it, I'll think about it some more :) | ||
What are we trying to fix in panda? | 01:58 | ||
colomon | the panda thing is a more immediate issue though, I'm pretty sure it still won't work even if that bit of the spec and rakudo were fixed the way labster++ wants. | ||
ssutch | i see | 01:59 | |
colomon | let me ponder the best way to report it. | ||
02:01
atroxaper left
|
|||
ssutch | meaning how to describe it in a bug on the GH project? | 02:01 | |
colomon | ssutch: was pondering fixing it locally and doing a pull request, but probably just submitting the bug is better. | 02:02 | |
02:02
benabik joined
|
|||
ssutch | eh, good to get something started | 02:02 | |
if you file a bug i can tinker with a fix | 02:03 | ||
02:03
census2 joined
|
|||
ssutch | i won't be able to describe the problem well enough, or with enough depth | 02:03 | |
colomon | I'm still trying to figure out if I understand the problem or not. | 02:05 | |
stevan__ | www.infoq.com/presentations/Thinkin...rogramming << good talk about concurrency and perhaps Perl 6 related | 02:07 | |
lizmat: ^ you in particular might be interested in this | 02:08 | ||
colomon | ssutch: huh. looking over everything again, I'm not convinced there is a bug after all. what you were seeing may have been because you were using an obsolete p6 | 02:12 | |
ssutch | true | ||
why might it fail when you run the case individually, then? | |||
colomon | I think I might have been misreading the test output then. | ||
gist.github.com/colomon/5770760 looks like the first one I got working | 02:13 | ||
sorear | o/ | ||
colomon | there's that FAIL, but it's the FAIL for the inner test, not the outer test. | ||
\o, sorear | |||
ssutch | haha, you're right: | 02:14 | |
ok 2 - what should fail, fails | |||
colomon | ssutch: I searched over the code, and it looks to me like it should be trapping fails and converting them to exceptions. | ||
I'm not convinced it's a sane error handling system, but it does look like it should work. | |||
unless $_ = $.tester.test($dir) { | 02:15 | ||
die X::Panda.new($bone.name, 'test', $_) | |||
} | |||
seems like it's adding a couple of lines of code and a conditional simply to avoid passing the name of the project into the testing code. | 02:17 | ||
labster | anyone convinced of panda's sanity is probably insane himself. | 02:19 | |
ssutch | hah | 02:20 | |
colomon | afk # sleep | 02:40 | |
Teratogen | does perl 6 still use & for functions/subroutines? | 02:42 | |
02:43
atroxaper joined
|
|||
lue | r: &say("yes :)") | 02:44 | |
camelia | rakudo b2072f: OUTPUT«yes :)» | ||
Teratogen | that's slicker than cum on a gold tooth! | 02:45 | |
ssutch | r: my $s = &say; $s("plop"); | 02:46 | |
camelia | rakudo b2072f: OUTPUT«plop» | ||
Teratogen | I can see Perl 6 is going to be a whole new learning curve for me | 02:47 | |
02:48
SamuraiJack joined
|
|||
lue | r: my ¢capture = \(1,2,3); # sadly, we do not still have this sigil :( (S08 says we do, but IIRC that's a bunch of lies) | 02:49 | |
camelia | rakudo b2072f: OUTPUT«===SORRY!===Malformed myat /tmp/U0j_rYGsVR:1------> my ⏏¢capture = \(1,2,3); # sadly, we do not  expecting any of: scoped declarator» | ||
benabik | r: my \cap = \(1,2,3) | ||
camelia | rakudo b2072f: ( no output ) | ||
benabik | r: my \cap = \(1,2,3); say cap | ||
camelia | rakudo b2072f: OUTPUT«1 2 3» | ||
03:00
imIKARi joined
03:03
btyler joined
|
|||
labster | r: my \cap = \(1,2,3); say cap.perl | 03:05 | |
camelia | rakudo b2072f: OUTPUT«Capture.new( list => (1, 2, 3).list, hash => EnumMap.new())» | ||
benabik | To be fair, I think you can store them in normal $vars. | 03:06 | |
r: my $cap = \(1,2,3); say $cap.perl | |||
camelia | rakudo b2072f: OUTPUT«Capture.new( list => (1, 2, 3).list, hash => EnumMap.new())» | ||
lue | Of course you can. But normal variables don't have a sigil that requires fancier methods to type :) | 03:07 | |
(On a US keyboard, anyway) | 03:08 | ||
atroxaper | Good morning, #perl6 ! | 03:19 | |
03:22
btyler left
|
|||
sorear | o/ | 03:24 | |
03:29
cognominal left,
cognominal joined,
jercos left,
jercos joined
03:38
FOAD left
03:40
btyler joined
|
|||
pmichaud | sorear: sorry I didn't get the CLA printed while in Austin... ended up getting back to room too late each day. | 03:43 | |
Teratogen | is there a CPAN for Perl 6 yet? | 03:44 | |
benabik | panda? | ||
sorear | it's called panda. look it up. | ||
pmichaud | if you email or /msg me a mailing address for you, I'll send you a blank CLA and a return-postage envelope. | ||
Teratogen: modules.perl6.org may be what you're looking for. | |||
03:55
ldthien0 joined
03:59
ldthien0 left,
preflex_ joined,
ChanServ sets mode: +v preflex_
04:00
preflex left,
preflex_ is now known as preflex
04:02
ldthien0 joined
04:04
ldthien0 left
|
|||
dalek | kudo/nom: 90f3bee | pmichaud++ | src/core/Hash.pm: Enable Hash[TVal,TKey].new to work (for lizmat++). This patch updates Hash.new so that it correctly understands how to create typed hashes from a parameterized Hash type object. In particular, `Hash[Str,Int].new` will create a hash constrained to Int keys and Str values. This patch at least partially addresses github.com/perl6/specs/issues/43 . Note that this doesn't resolve the output of `.perl` on typed hashes; that's a different problem (having to do with the definition of `Hash.perl` and/or `TypedHash.perl`). And `.perl` is due for some redesign as well, see github.com/perl6/specs/issues/6 . |
04:06 | |
04:07
aindilis joined
|
|||
sorear | pmichaud: \o/ | 04:07 | |
pmichaud | gist.github.com/pmichaud/5771173 # example run | 04:08 | |
it's often nice when the patch description is longer than the patch itself :) | 04:09 | ||
04:11
BenGoldberg left
|
|||
pmichaud | .tell lizmat creating typed hashes via Hash[TVal,TKey].new now works. | 04:11 | |
yoleaux | pmichaud: I'll pass your message to lizmat. | ||
pmichaud | okay, time to take care of other stuff... be back tomorrow, hopefully | ||
04:16
btyler left
04:22
x2 is now known as vaelxon
04:27
Psyche^ joined
04:30
Patterner left,
Psyche^ is now known as Patterner
04:32
FOAD joined,
FOAD left,
FOAD joined
04:36
mrallen1 left
04:52
birdwindupbird joined
|
|||
lue | Is TVal first because someone who types just Hash[Obj] is more likely to be wanting to constrict value type? | 04:53 | |
sorear | yes | 04:59 | |
all required parameters must come before all optional parameters | |||
04:59
zby_home joined
|
|||
sorear | also this allows Hash[foo] and Array[foo] to both be containers of foo | 04:59 | |
05:44
dmol joined,
genehack_ is now known as genehack
06:02
Chillance left
06:05
dylanwh left
06:06
dylanwh joined
06:16
PacoAir left,
tomyan joined
06:20
zby_home left,
dmol left
06:32
FROGGS_ left
06:39
vaelxon left
06:41
zby_home joined
06:43
vaelxon joined
06:46
kaleem joined
06:47
yves joined
06:49
FROGGS_ joined,
FROGGS_ is now known as FROGGS
|
|||
FROGGS | o/ | 06:49 | |
labster | \o FROGGS | 06:54 | |
moritz | \o * | ||
RedditAnalytics | could someone show me a COBOL one-liner to decode a JSON string? | 06:57 | |
whoops wrong channel | |||
FROGGS | hehe | 06:59 | |
not so wrong, I guess here are peeps who'd love to help you there | 07:00 | ||
Patterner | don't say the C-word. | ||
Teratogen | back in the late 1990s I saw examples of Cobol CGI and Fortran CGI on the web | 07:02 | |
they both looked very painful | 07:03 | ||
Patterner | I saw a "HUNT THE WUMPUS" in COBOL recently | ||
bonsaikitten | Teratogen: you say that as if these things were retired now | ||
Patterner | I do COBOL nearly every day... it's alive^Wundead. | ||
Teratogen | Object Oriented Cobol! | ||
moritz | cOObol? | 07:04 | |
Patterner | OOPSCOBOL | ||
sorear | is that anything like CLC OBJECT DISORIENTED INTERCAL | 07:05 | |
bonsaikitten: but is cobol still being used *for CGI*? | 07:06 | ||
07:06
domidumont joined
|
|||
bonsaikitten | sorear: never run a touchy system, or something ;) I mean ... I have some sh-CGI here, and I see no reason to replace it | 07:07 | |
Patterner | banks and insurance companies normally don't use CGI. | 07:11 | |
moritz | what do they use? mod_php? | 07:12 | |
07:12
zby_home left
|
|||
Patterner | 3270 :) | 07:12 | |
sorear does, in fact, have to interface with COBOL for $dayjob | 07:14 | ||
sorear uses... unsecured ftp dropboxes. | |||
Patterner | our customers have to use sftp for delivery :) | 07:15 | |
sorear | actually that's not quite true. the system uses USER/PASS authentication. | ||
but business data over cleartext tcp gives me the heebie jeebies | 07:16 | ||
07:16
sqirrel joined
|
|||
sorear | Patterner: that's awesome. $PARTNER doesn't even offer sftp. | 07:16 | |
and no X12.58 either | 07:17 | ||
Patterner | "we don't do that" "exclude our liability in writing" "we can do that" | 07:19 | |
sorear | hmm? | 07:20 | |
Patterner | when some doesn't want to use sftp | 07:21 | |
*someone | |||
sorear | ah, when other people want to use plain ftp, you make them sign waivers? | 07:22 | |
what kind of business are you running? | |||
Patterner | so far everybody complied :) | 07:23 | |
converting z/OS Assembly to COBOL | |||
(not running, just a small cog in the big wheel) | |||
07:25
domidumont left
07:26
domidumont joined
07:31
lustlife` joined
07:35
lustlife is now known as Guest33911
07:38
lustlife` left
07:40
lustlife` joined
|
|||
lizmat | pmichaud++ | 07:43 | |
yoleaux | 04:11Z <pmichaud> lizmat: creating typed hashes via Hash[TVal,TKey].new now works. | ||
07:45
Guest33911 left,
lustlife` left
07:50
Tsuki-san joined
07:53
Tsuki-san left
|
|||
lizmat | Stevan__++ | 07:53 | |
07:54
lustlife` joined
07:58
imIKARi left
08:00
tomyan left
08:01
Tsuki-san joined
08:02
Tsuki-san left
08:04
lustlife` is now known as lustlife
08:13
fhelmberger joined
08:18
tomyan joined
08:23
tomyan left
08:26
tgt joined
08:29
ssutch_ joined
|
|||
ssutch_ | damn, i like hyper operators or whatever, the >> | 08:30 | |
08:32
SmokeMac_ joined,
SmokeMachine left
08:34
dakkar joined
|
|||
moritz | yes, they are neat | 08:37 | |
masak | good antenoon, #perl6 | 08:40 | |
08:42
kaleem left
08:43
SmokeMac_ left
|
|||
moritz | \o masak | 08:45 | |
sorear | o/ | 08:46 | |
08:46
hypolin left
|
|||
dalek | ast: 11905a8 | (Elizabeth Mattijsen)++ | S02-types/ (2 files): Fudge some now passing keyset|set tests |
08:46 | |
08:46
hypolin joined
|
|||
sorear | moritz: I just realized I haven't seen Ronja in almost a year. Did you successfully train her to avoid keyboards? :) | 08:46 | |
ssutch_ | what's a good way to get an array of random numbers | 08:47 | |
sorear | r: say rand xx 5 | ||
camelia | rakudo b2072f: OUTPUT«0.47205200940104 0.873995257114199 0.0482415071191511 0.820666323078587 0.344253672970794» | 08:48 | |
08:48
SmokeMachine joined
|
|||
moritz | sorear: for one my laptop is broken, and the desktop keyboard harder to read | 08:48 | |
sorear: and I try harder to move the cursor out of the irssi window, thus taking the focus away | 08:49 | ||
sorear: and finally, growing up, she spends less time on my lap :-) | |||
ssutch_ | what if i want integers 1 to 30? | ||
jnthn | r: say (1..30).roll(5) | ||
camelia | rakudo b2072f: OUTPUT«24 21 10 3 17» | ||
moritz | sorear: oh, and I work more, so less time at home in front of IRC | 08:50 | |
ssutch_ | roll? | ||
moritz | like rolling dice | ||
ssutch_ | yeah, how does (1..30).roll work? | ||
sorear | r: say (1..10).pick(7) # or if you want a lottery, that can be done too | ||
camelia | rakudo b2072f: OUTPUT«5 4 8 7 9 3 1» | ||
sorear | ssutch_: 1..30 returns a Range object, pick and roll are methods on that | 08:51 | |
ssutch_ | ahh | ||
08:51
jlaire joined
|
|||
sorear | moritz: so how much longer until she deliberately seeks out IRC windows? :D | 08:51 | |
ssutch_ | neato | 08:52 | |
08:56
census2 left
|
|||
moritz | sorear: dunno, currently youtube is all the rage, mostly this one here: en.wikipedia.org/wiki/Mole_%28Zden...aracter%29 | 08:56 | |
and anything related to fire fighters | |||
ssutch_ | is it better to turn a float rand into an int or to use Range::roll? | 08:58 | |
moritz | sorear: Range.roll is more idiomatic | 08:59 | |
sorry, meant ssutch_ | |||
ssutch_ | hokay | 09:00 | |
thanks! | |||
is there a way to apply the >> operator to an infix operator such as * | |||
sorear | r: say (1..10) <<*>> (1..10) | 09:01 | |
camelia | rakudo b2072f: OUTPUT«1 4 9 16 25 36 49 64 81 100» | ||
sorear | r: say (1..10) >>*<< (1..10) | ||
camelia | rakudo b2072f: OUTPUT«1 4 9 16 25 36 49 64 81 100» | ||
sorear | r: say (1..10) >>*>> 5 | ||
camelia | rakudo b2072f: OUTPUT«5 10 15 20 25 30 35 40 45 50» | ||
sorear | r: say (1..10) >>*<< 5 | ||
camelia | rakudo b2072f: OUTPUT«Lists on both side of non-dwimmy hyperop of infix:<*> are not of the same lengthleft: 10 elements, right: 1 elements in sub hyper at src/gen/CORE.setting:14157 in sub hyper at src/gen/CORE.setting:14145 in block at src/gen/CORE.setting:14136 in block at … | ||
ssutch_ | heh you guys rock | 09:03 | |
09:04
kaleem joined,
yoleaux left
|
|||
ssutch_ | r: say ((rand xx 10)>>*>>10)>>.floor.join(", ") | 09:07 | |
camelia | rakudo b2072f: OUTPUT«7, 9, 2, 0, 5, 6, 1, 3, 1, 3» | ||
ssutch_ | lolz | ||
that's fun | |||
09:08
dpk left
|
|||
jnthn | pmichaud++ # Hash.new fix, and it's almost certainly faster too :) | 09:16 | |
Timbus | r: (0..9).roll(10).join(", ").say | ||
camelia | rakudo b2072f: OUTPUT«8, 8, 2, 6, 2, 8, 6, 0, 9, 9» | ||
ssutch_ | what if i wanted to turn those each into a list of string "x" | 09:17 | |
eg ["xxxxx", "xxxx", "x", "xxxxxxx", ...] | 09:18 | ||
Timbus | map * x "x" | ||
ssutch_ | so x multiplied by the integer in the array | ||
Timbus | r: say "x" x 5 | ||
jnthn | r: (0..9).roll(10).map("x" x *).join(", ").say | ||
camelia | rakudo b2072f: OUTPUT«xxxxx» | ||
rakudo b2072f: OUTPUT«x, xxxxxxxx, xxxx, x, xxxxxxxx, xxxxx, xx, xxxxxx, xxxxx, » | |||
Timbus | yeah | ||
ssutch_ | nice | ||
what is the * | |||
Timbus | "whatever" | 09:19 | |
ssutch_ | like $_ | ||
Timbus | basically | ||
ssutch_ | cool | ||
Timbus | makes a block though | ||
jnthn | "x" x * creates a closure like { "x" x $_ } | ||
ssutch_ | ahhh, ok | 09:20 | |
Timbus | r: my $addfive = * + 5; say $addfive(37) | ||
camelia | rakudo b2072f: OUTPUT«42» | ||
jnthn | Well, I guess it doesn't clone over much of anything in this case, though. :) | ||
ssutch_ | is there something like .select(* > 1) to filter an array | ||
jnthn | .grep(* > 1) | ||
Timbus | grep(* > 1) | ||
what is this a race D; | |||
jnthn | :) | 09:21 | |
ssutch_ | fun | ||
lizmat | jnthn: wrt pmichaud's changes: I guess all of the [TVal,TKey] work is done in the nqp::create(self) ? | 09:22 | |
ssutch_ | p: say ((rand xx 10)>>*>>10)>>.floor.grep(* > 1).map("x" x *).join(", ") | ||
camelia | pugs: OUTPUT«***  Unexpected "*>>" expecting term postfix at /tmp/7AisggCMaP line 1, column 20» | ||
ssutch_ | r: say ((rand xx 10)>>*>>10)>>.floor.grep(* > 1).map("x" x *).join(", ") | ||
camelia | rakudo b2072f: OUTPUT«xx, xxxxxxx, xxxxxxx, xxx, xxxx, xxxxxxx, xxxxx, xxxx» | ||
lizmat | jnthn: or in the %h.STORE(@args) ? | ||
jnthn | lizmat: nqp::create(self) creates something of exactly the same type as self | 09:23 | |
lizmat: And the [TKey, TValue] are part of the type | |||
lizmat | ok, I didn't realize it was that simple | ||
ssutch_ | fun times | ||
masak | r: say join ", ", map "x" x *, (2..10).roll | 09:24 | |
camelia | rakudo b2072f: OUTPUT«xxxxx» | ||
masak | r: say join ", ", map "x" x *, (2..10).roll xx 10 | ||
camelia | rakudo b2072f: OUTPUT«xxxxx, xxxxxxx, xx, xxxxxx, xxxxxxxx, xxxxxxxxxx, xx, xxxxxxx, xxxxxx, xxxxxxxxxx» | ||
ssutch_ | nice | ||
masak | utilizing listops and not just chaining. | 09:25 | |
r: say join ", ", "x" x (2..10).roll xx 10 | |||
camelia | rakudo b2072f: OUTPUT«xxxxxx, xxx, xxxxxxxxx, xx, xxxxxxx, xxxxxxxxx, xxxx, xxxxxxxxx, xxxxxxxx, xxxxx» | ||
masak | even better ;) | ||
ssutch_ | interesting, listops | ||
masak | in the above, 'join' and 'map' were listops. | 09:26 | |
effectively it means that they have an invisible '(' and the ')' is also invisible and ends up at the end of the statement. | |||
ssutch_ | chaining is clearer, coming from python/java/etc, however listops is prettier | 09:27 | |
masak | yeah, listops reduce clutter. | ||
jnthn | There's also feeds | ||
lizmat | r: say ("x" x 10).substr(0,(2..10).roll) for ^10 | ||
camelia | rakudo b2072f: OUTPUT«xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx» | ||
jnthn | r: (2..10).roll(10) ==> map "x" x * ==> join ", " ==> say | ||
camelia | rakudo b2072f: OUTPUT«xxxxx, xxxxxxx, xx, xxxxxxxx, xxxx, xx, xxxxxxxx, xxxxxxx, xxxxxxx, xxxxxxxxx» | ||
masak | so many paradigms! :D | ||
Timbus | r: say join ", ", do for ^10 {"x" x (2..9).pick} | 09:28 | |
camelia | rakudo b2072f: OUTPUT«xxxxxxxx, xxx, xxxxxx, xxxxxxx, xxxxxxxx, xxx, xxxxxx, xxx, xxx, xx» | ||
jnthn | Which mean you can write things in the order they take place. | ||
ssutch_ | masak: if you were to put parens around that, what would it look like? | ||
sorear | jnthn: I'm thinking that all frames in a caller-chain should have the same thread context | ||
masak | r: say(join(", ", map("x" x *, (2..10).roll xx 10))) | ||
camelia | rakudo b2072f: OUTPUT«xx, xxxxx, xxx, xxxxx, xxxxxxxx, xxxxx, xxxxxxx, xxxxx, xxxxxxxxxx, xxxxxxxx» | ||
jnthn | sorear: Not sure that can be true? I mean, what's the caller of an async? | 09:29 | |
09:29
tgt left
|
|||
jnthn | sorear: Or in @stuff>>.() where the invocations get threaded? | 09:29 | |
I'd expect $*FOOs to still be visible. | |||
Or are we talking about the dynamic caller chain? | 09:30 | ||
sorear | Right now I'm working on a one-caller model | ||
async sort of wants two-caller | |||
because we absolutely don't want exceptions propagating out | 09:31 | ||
jnthn | True...I'd kinda been thinking that the boundary frame would be "special" in some way | ||
sorear | anyway as long as we have a continuation boundary at the async all is good :) | ||
ssutch_ | xxxes: gist.github.com/samuraisam/5772440 | 09:32 | |
jnthn | That sounds reasonable. Not having one hurts my not-enough-coffee-yet head :) | ||
sorear | async and gather both want to propagate contextuals but not exceptions | ||
masak | ssutch_: nice :) | 09:35 | |
09:40
ggoebel left
09:42
tgt joined
09:47
cooper left
09:48
ggoebel joined
09:50
yves left
|
|||
sorear | awesome. just got a NRE in org.objectweb.asm.Frame.a | 09:54 | |
nwc10 | NRE? E is presumably Exception | 09:55 | |
sorear | null ref | ||
09:56
Timbus left
|
|||
nwc10 | forgive my ignorance, but is that a bug in it, or in user code? | 09:56 | |
ie, is it "Should not be possible"? | |||
sorear | that's a very good question. | ||
jnthn | sorear: Grab a debug version of it, rather than the minified one | ||
09:58
Timbus joined
|
|||
jnthn | sorear: I think what sometimes happens is that there's an unbalanced stack, and it then reports it very badly (e.g. like this) :/ | 10:00 | |
10:01
zakalwe_ is now known as zakalwe,
kaleem left
10:02
kaleem joined
|
|||
sorear | hmm, seems my labels are getting eaten to | 10:02 | |
too | |||
d'oh | 10:03 | ||
was passing the wrong thing to trycatch | |||
let's see if this fixes it | |||
10:04
daxim joined
10:05
yves joined,
ssutch_ left
|
|||
sorear | jnthn: can I assume "has int $!foo" will be initialized to zero? | 10:07 | |
jnthn | sorear: yes | ||
10:07
anuby left
|
|||
sorear | jnthn: It seems that modifying the compiler to define all the labels I'm jumping to helped a bit | 10:09 | |
jnthn | sorear: "you don't say" :) | 10:10 | |
sorear: Got a more useful error now? | |||
sorear | Not really | ||
Which version of the asm.jar am I supposed to get again? | 10:11 | ||
jnthn | aww | ||
I think we're on 4.1 | |||
sorear | java.lang.RuntimeException: java.lang.ArrayIndexOutOfBoundsException: 1 | ||
jnthn | eek | ||
sorear | I'm staring at forge.ow2.org/project/showfiles.php?group_id=23 and I can't see which jars are minified | ||
10:12
ssutch left
|
|||
jnthn | sorear: The .zip files tend to contain a minified and non-minified version. | 10:12 | |
sorear: It can also be sometimes helpful to put a e.printStackTrace() in around line 67 or so of JASTToJVMBytecode.java | 10:13 | ||
sorear | found it | 10:15 | |
java.lang.ClassFormatError: Illegal class name "Lorg/perl6/nqp/runtime/ThreadContext;" in class file D9375F1865034634DA52C58DF992620B58E5A6CB | |||
wut | |||
10:16
daxim_ joined
|
|||
jnthn | wat | 10:16 | |
10:17
daxim left
|
|||
tadzik | Lorg is the new Borg | 10:17 | |
masak | :) | 10:18 | |
the 'L' stands for 'cLass', IIRC. | |||
or at least a reference type, which isn't an array. | |||
10:19
jferrero joined,
jferrero left,
jferrero joined
|
|||
sorear | oops, I was *also* leaving the stack rather unbalanced | 10:22 | |
10:23
jferrero left
10:24
jferrero joined
10:27
rindolf joined
|
|||
sorear | ok, now it's blowing up in a completely different way. | 10:28 | |
sqirrel | o/ sorear | ||
sorear | o/ aq | 10:32 | |
o/ sqirrel | |||
10:32
cognominal left
10:34
SamuraiJack left
10:35
daxim__ joined
10:36
daxim_ left
10:37
SamuraiJack joined
|
|||
sorear | ok, the crash depends on COMPUTE_FRAMEWS | 10:43 | |
colomon | ugh, when I try to install Time::Duration with panda I get 24 test failures. when I run it by hand, I get 0 test failures -- even when I use the pre-compiled module. :( | 10:44 | |
jnthn | sorear: That tends to mean the stack is unbalanced somewhere. But if you remove it, you get bytecode out and can inspect it at least. | 10:46 | |
sorear | qb_NNN numbers aren't consequtive and vary from compile to compile? | 10:49 | |
jnthn | I don't think they vary from compile to compile | 10:51 | |
They're consecutive in some sense but probably not ordered in the generated output. | |||
Probably ordered by "when did we first encounter the QAST::Block in question" | 10:52 | ||
sorear | yay! i made it...ONE FILE FURTHER! | 10:55 | |
tadzik | colomon: wow, that's weird | 10:57 | |
colomon | tadzik: indeed | ||
tadzik: also, it worked yesterday. | 10:58 | ||
tadzik | :o | ||
jnthn | sorear: yay! | ||
lizmat | colomon: it's the 13th today? although not a Friday :-) | 11:00 | |
colomon | tadzik: so it seems like it must have been caused by a Rakudo change yesterday | ||
tadzik | that'd make me feel better | 11:01 | |
lizmat | I think the only one is pmichaud's Hash.new change ? | ||
colomon | lizmat: jnthn had two patches yesterday as well | ||
jnthn | uh-oh. :) | 11:02 | |
lizmat | Ah, ok, must have slipped out of my Textual, visible backlog then | ||
colomon backs up his rakudo to 978aeeee24d3d88131695f74568873c29a8de921 and tries again... | |||
jnthn | Though, my patches were on JVM stuff, I think. | 11:03 | |
lizmat | fwiw, I spectestested pmichaud's change without any errors | 11:04 | |
so if that *is* the problem, we don't have a test for it | |||
colomon | lizmat: that would describe almost every issue with have in the overall module ecosystem. ;) | 11:05 | |
11:05
amkrankruleuen joined,
amkrankruleuen left
11:06
amkrankruleuen joined
11:07
atroxaper left
11:09
JimmyZ joined
|
|||
colomon | at 978aeeee24d3d88131695f74568873c29a8de921 it works fine | 11:09 | |
11:09
amkrankruleuen left
|
|||
moritz | colomon: of course; the errors we have tests for never even make it to the ecosystem | 11:10 | |
11:11
dalek left,
dalek joined,
ChanServ sets mode: +v dalek
11:12
tgt left
|
|||
sorear | cool, it falls apart if I have a function call which needs to be treated as a resume point inside a parameter default value | 11:14 | |
lizmat | is there an easy way to convert a string such as 'Str' to the type Str without having to resort to eval ? | 11:15 | |
sorear | ::('Str') | 11:16 | |
lizmat | sorear++ | 11:18 | |
11:18
cooper joined,
amkrankruleuen joined
11:19
amkrankruleuen left,
amkrankruleuen joined,
amkrankruleuen left,
amkrankruleuen joined,
amkrankruleuen left
|
|||
masak | rn: multi foo(:$d!, *@f) {}; multi foo(*@f) { say "works" }; foo() | 11:22 | |
camelia | rakudo b2072f: OUTPUT«works» | ||
..niecza v24-75-g480a062: OUTPUT«Potential difficulties: $d is declared but not used at /tmp/fldzGYorEm line 1:------> multi foo(:⏏$d!, *@f) {}; multi foo(*@f) { say "work @f is declared but not used at /tmp/fldzGYorEm line 1:------> multi foo(:$d!, *⏏[… | |||
masak | rn: multi foo(*@f, :$d!) {}; multi foo(*@f) { say "works" }; foo() | ||
camelia | rakudo b2072f: OUTPUT«Ambiguous call to 'foo'; these signatures all match::(*@f, :d(:$d)!):(*@f) in sub foo at /tmp/ENmRfCy7XE:1 in block at /tmp/ENmRfCy7XE:1» | ||
..niecza v24-75-g480a062: OUTPUT«Potential difficulties: @f is declared but not used at /tmp/1FKU62R8td line 1:------> multi foo(*⏏@f, :$d!) {}; multi foo(*@f) { say "work $d is declared but not used at /tmp/1FKU62R8td line 1:------> multi foo(*@f, :⏏[3… | |||
masak | *sigh* | ||
can we please removed those useless 'is declared but not used' warnings? | 11:23 | ||
remove* | |||
they're obscuring the result of the program. | |||
lizmat | at least in camelia :-) | ||
r: say 'Str'.WHAT; say Str.WHAT # how do I differentiate between 'Str' and Str ? | |||
camelia | rakudo b2072f: OUTPUT«(Str)(Str)» | ||
masak | really, we should start thinking of warnings as having (at least) two levels: refactor-time and commit-time. | 11:24 | |
sorear wonders if masak is interested in #OK | |||
masak | sorear: yes, in the short term. thanks. | ||
jnthn | lizmat: .DEFINITE | ||
masak | rn: multi foo(*@f, :$d!) {}; multi foo(*@f) { say "works" }; foo() # OK | ||
camelia | niecza v24-75-g480a062: OUTPUT«Potential difficulties: @f is declared but not used at /tmp/wCHfjb5uOe line 1:------> multi foo(*⏏@f, :$d!) {}; multi foo(*@f) { say "work $d is declared but not used at /tmp/wCHfjb5uOe line 1:------> multi foo(*@f, :⏏[3… | ||
..rakudo b2072f: OUTPUT«Ambiguous call to 'foo'; these signatures all match::(*@f, :d(:$d)!):(*@f) in sub foo at /tmp/qaOCMY8Ca9:1 in block at /tmp/qaOCMY8Ca9:1» | |||
masak | rn: multi foo(*@f, :$d!) {}; multi foo(*@f) { say "works" }; foo() #OK | ||
camelia | niecza v24-75-g480a062: OUTPUT«works» | ||
..rakudo b2072f: OUTPUT«Ambiguous call to 'foo'; these signatures all match::(*@f, :d(:$d)!):(*@f) in sub foo at /tmp/x62Ze8yNAL:1 in block at /tmp/x62Ze8yNAL:1» | |||
masak | rn: multi foo(:$d!, *@f) {}; multi foo(*@f) { say "works" }; foo() #OK | ||
camelia | rakudo b2072f, niecza v24-75-g480a062: OUTPUT«works» | ||
masak submits rakudobug | |||
lizmat | jnthn++ | ||
sorear | jnthn: Is it deliberate that function parameter default values are compiled outside the scope of $*BLOCK ? | 11:25 | |
11:25
cognominal joined
|
|||
jnthn | sorear: No, that sounds accidental. | 11:25 | |
11:26
amkrankruleuen joined,
amkrankruleuen left,
amkrankruleuen joined
|
|||
jnthn | sorear: Oddly though, "sub foo($x, $y = $x) { say($y) }; foo(1);" works...which I'd kinda not expect to if the wrong $*BLOCK was in scope... | 11:27 | |
11:27
rindolf left
|
|||
sorear | nqp-jvm: sub foo($x, $y = $x) { say($y) }; foo(1); | 11:34 | |
camelia | nqp-jvm: OUTPUT«1» | ||
sorear | nqp-jvm: my $z := 2; my $x := 3; sub foo($x, $y = $x) { say($y) }; foo(1); | 11:35 | |
camelia | nqp-jvm: OUTPUT«java.lang.ArrayIndexOutOfBoundsException: 5 at org.perl6.nqp.runtime.Ops.getlex_o(Ops.java:473) at A69CBE3FC5DEDECB510AAD35FFAA48063FF8862B.qb_11(<generated>) at org.perl6.nqp.runtime.Ops.invokeInternal(Ops.java:1240) at org.perl6.nqp.runtime.Ops.invoke(Ops.java:1200… | ||
jnthn | eek | ||
sorear | jnthn: I blame fallback to dynamic lookup | ||
jnthn | Yeah, forgot about that. | ||
sorear | sorear$ ./nqp -e 'my $z := 2; my $x := 3; sub foo($x, $y = $x) { say($y) }; foo(1);' | 11:36 | |
1 | |||
colomon | okay, it looks like it's the Hash.new changes causing the problem with Time::Duration / Panda. If I rollback just that commit, everything works okay. | ||
afk # walk | |||
dalek | p: 4891d23 | sorear++ | src/vm/jvm/ (3 files): Code generation support for thawing saved frames. Also fixes block scope error on default arguments. |
11:37 | |
11:43
rhr left
|
|||
lizmat | colomon: any example of code actually breaking? | 11:43 | |
sorear | nqp::qlist. Heh. | ||
jnthn: what is "inlinability" in QAST::CompilerJAST? | 11:45 | ||
jnthn | sorear: "can an optimizer inline some block using this op in a plce that calls it" | 11:47 | |
*place | |||
I did it as an opt-in thing on Parrot, but most things are inlineable, so pondering switching it to opt-out for Moar. Don't think anything is marked either way just yet. | 11:48 | ||
11:51
kaleem left
|
|||
masak .oO( "outlinability"?! ) | 11:54 | ||
sorear | sleep& | 11:55 | |
jnthn | 'night, sorear | 11:56 | |
11:59
gudahtt joined
|
|||
moritz | inlininability | 11:59 | |
12:04
yoleaux joined
12:05
ChanServ sets mode: +v yoleaux
12:06
dpk joined
12:07
skids left
12:08
btyler joined
|
|||
dalek | kudo/nom: 948b2b5 | (Elizabeth Mattijsen)++ | src/core/Any.pm: Get rid of evil eval hack in Any.hash, change type to keytype The latter was suggested on #perl6 by TimToady, as I recall. Possible thanks to the work of pmichaud on Hash.new. |
12:11 | |
lizmat | off to the French Perl Workshop& | 12:12 | |
12:12
lizmat left
12:13
woolfy left
12:14
crab2313 joined,
cognominal left
12:15
crab2313 left
|
|||
jnthn | airport, stuff...be back sometime & | 12:18 | |
12:18
konundra joined
12:19
btyler left
|
|||
masak | ditto & | 12:19 | |
dalek | rl6-roast-data: 722bf4f | coke++ | / (4 files): today (automated commit) |
12:27 | |
[Coke] | niecza has 16 failing tests at the moment. (so close) | 12:28 | |
dalek | kudo-star-daily: fba81ec | coke++ | log/ (5 files): today (automated commit) |
12:35 | |
12:47
atroxaper joined
12:49
spider-mario joined,
JimmyZ left
12:53
JimmyZ joined
13:00
Woodi joined
|
|||
colomon | First six tests which fail all are calls to later_exact | 13:00 | |
13:03
census joined
|
|||
timotimo_ | hm, what does that do? | 13:06 | |
13:07
kaleem joined,
PacoAir joined
13:08
JimmyZ left,
ajr joined
13:09
ajr is now known as Guest42634,
Guest42634 is now known as ajr_
13:10
kaleem left
13:13
JimmyZ joined,
Snowclone is now known as broquaint,
broquaint left
13:14
broquaint joined
13:17
atroxaper left
13:21
pecastro left
13:22
rindolf joined,
JimmyZ left
13:26
JimmyZ joined
13:30
pecastro joined
13:32
JimmyZ left
13:33
JimmyZ joined,
JimmyZ left,
konundra left
13:39
btyler joined
13:41
skids joined,
btyler_ joined
13:43
cibs_ joined
13:45
konundra joined
13:46
cibs left,
bluescreen10 joined
13:52
census left
|
|||
colomon has finally gotten Panda to run prove --verbose so he can see what the error is: | 13:53 | ||
# got: '365 days, 22 hours, 59 minutes, and 32 seconds later' | |||
# expected: '1 year, 22 hours, 59 minutes, and 32 seconds later' | |||
13:53
gudahtt left
|
|||
spider-mario | leap year? | 13:57 | |
PerlJam | saying "365 days" rather than "1 year" | 13:58 | |
13:59
xenoterracide joined
|
|||
colomon | ugh, this bug is going to be a nightmare to track down | 13:59 | |
xenoterracide | is there a comparison interface? like obj.equals( obj ) ? ( and on a more perly note is said interface automagically used under the hood by things like smartmatch | 14:03 | |
colomon | xenoterracide: there are quite a few comparison operators | ||
and yes, in some cases smartmatch uses them. | |||
xenoterracide | let me clarify, by interface, I mean is there specifically a role which defines the interface for equality. | 14:06 | |
colomon | xenoterracide: nope | ||
ACCEPTS is the standard method to implement smartmatch under the hood, but it's not a role | |||
xenoterracide | ok | 14:07 | |
on a different note, anyone get rakudo working on windows? | 14:08 | ||
colomon | getting 365 days instead of 1 year requires $this = floor($remainder / (365 * 24 * 60 * 60)); to not work correctly. :\ | ||
xenoterracide: has it recently stopped working on windows? | |||
xenoterracide | no idea, I've not tried to build it | ||
wasn't sure if it was a supported arch | 14:09 | ||
colomon | xenoterracide: one of our main developers uses it | 14:10 | |
as his development platform, I mean. | |||
xenoterracide | maybe I should ask him what he uses as a terminal emulator | 14:11 | |
PerlJam | xenoterracide: See rakudo.org/ btw | ||
14:12
gudahtt joined
14:13
xenoterracide left
|
|||
colomon | r: 3600 * 24 * 366 - 360 -28 | 14:17 | |
camelia | rakudo b2072f: ( no output ) | ||
colomon | r: say 3600 * 24 * 366 - 360 -28 | 14:18 | |
camelia | rakudo b2072f: OUTPUT«31622012» | ||
colomon | rn: say floor(31622012 / (365 * 24 * 60 * 60)) | ||
camelia | rakudo b2072f, niecza v24-75-g480a062: OUTPUT«1» | ||
colomon | rn: say 31622012 - (365 * 24 * 60 * 60) | 14:19 | |
camelia | rakudo b2072f, niecza v24-75-g480a062: OUTPUT«86012» | ||
colomon | rn: say 86012 / 3600 | 14:20 | |
camelia | rakudo b2072f, niecza v24-75-g480a062: OUTPUT«23.892222» | ||
colomon | rn: say 86012 % 3600 | ||
camelia | rakudo b2072f, niecza v24-75-g480a062: OUTPUT«3212» | ||
colomon | rn: say 3212 / 60 | ||
camelia | rakudo b2072f, niecza v24-75-g480a062: OUTPUT«53.533333» | ||
colomon appears to have made a math error somewhere | 14:21 | ||
14:21
census joined
|
|||
colomon | rn: my $MINUTE = 60; my $HOUR = 60 * $MINUTE; my $DAY = 24 * $HOUR; my $YEAR = 365 * $DAY; say $DAY + - $HOUR + -28 + $YEAR | 14:22 | |
camelia | rakudo b2072f, niecza v24-75-g480a062: OUTPUT«31618772» | ||
colomon | rn: say floor(31618772 / (365 * 24 * 60 * 60)) | ||
camelia | rakudo b2072f, niecza v24-75-g480a062: OUTPUT«1» | ||
colomon | how does one execute a p6 script which has been translated to pir? | 14:27 | |
14:27
xenoterracide joined
|
|||
colomon | afk # promised son I'd play the next level of Lego Star Wars | 14:28 | |
moritz | colomon: I don't think that's possible right now | 14:35 | |
gfldex | xenoterracide: rakudo on parrot runs (most of the time) on cygwin | 14:36 | |
14:37
xenoterracide left,
xenoterracide joined,
JimmyZ joined
|
|||
xenoterracide | cygwin is of course not quite native windows | 14:42 | |
moritz | fwiw jnthn uses the msvcc toolchain to build rakudo | 14:44 | |
gfldex | what is a good idea | ||
Makefile:772: recipe for target `NQPP5QRegex.pbc' failed | |||
make: *** [NQPP5QRegex.pbc] Segmentation fault (core dumped) | |||
moritz | gfldex: find installed copies of nqp, and delete them | 14:45 | |
JimmyZ use msvcc to build MoarVM because apr doesn't support strawberry perl | 14:46 | ||
14:56
census left
|
|||
BinGOs | JimmyZ: do you mean apr doesn't support mingw, rather than Strawberry? | 14:57 | |
14:57
jnap joined
|
|||
JimmyZ | BinGOs: the former | 14:57 | |
jnap | wow, there's a lot of people here | 14:58 | |
BinGOs | it didn't appear to like Cygwin very much either. But I'll leave that to rurban | ||
PerlJam | jnap: just a few :) | ||
gfldex | the world waits for perl 6 :) | 14:59 | |
jnap | is github.com/supernovus/perl6-psgi/ what we have for Perl6 and PSGI? is that recommended? | 15:00 | |
I'm asking because I am considering working on a Catalyst like port to Perl6, as a way to help CatalystP5 experiment with possible futures without breaking existing production code | 15:02 | ||
JimmyZ | BinGOs: I guess libuv will replace apr eventually | ||
PerlJam | jnap++ (I was just going to ask if you were exploring a perl6y catalyst) | ||
JimmyZ | Catalyst? the author of Catalyst creats mojo? | 15:03 | |
*created | 15:04 | ||
jnap | PerlJam: I think so, because like I said, maybe if some of us get sick of hacking backcompat all the time :) nice to have a free slate, but something that can co inspire between P5 and P6 Catalyst teams | 15:05 | |
15:06
census joined
|
|||
jnap | also maybe I can help try to inspire interest in hacking out the nonblcking support, which seems to not really be around, and is becoming a bigger deal for webdevelopment | 15:07 | |
gfldex | rakudo build fine on cygwin after rm -r install/ | 15:08 | |
15:10
ajr_ left
15:12
ajr joined
|
|||
timotimo_ | oh, nonblocking support? yes, please :) | 15:12 | |
15:12
ajr is now known as Guest74130,
Guest74130 is now known as ajr_
|
|||
diakopter | japhb: ping | 15:12 | |
moritz | jnap: you can start by giving moarvm libuv as backend for IO, which supports non-blocking IO very nicely | ||
timotimo_ | not even suggesting to bring parrot up to speed? ;) | 15:13 | |
JimmyZ | timotimo_: that will take another 10 years, me thinks :P | 15:14 | |
timotimo_ | people keep saying moarvm seems very promising, which gives me hope :) | ||
being non-involved in both the jvm work and the moarvm effort makes it really hard for me to see the progress being made; not enough blogposts ;) | 15:15 | ||
15:16
domidumont left
|
|||
jnap | I'll look at linuv, but I guess that's going to be c programming, not my thing. I might be better off doing test cases, etc. | 15:16 | |
so I guess steps would be (for moarvm at least) integrate libuv with test cases, build a non blocking web server with it, then we can complate the PSGI port... | 15:18 | ||
diakopter | jnap: some of us are working on the libuv thing. not sure about timeline. | 15:19 | |
1-2 months to replace apr; 1-2 months to get async IO/events finalized, conservatively | 15:20 | ||
15:20
ajr_ left
|
|||
diakopter | stevan__: that talk has been discussed several times on this channel :D it's possible they're findable in the clogs | 15:20 | |
jnap: optimistically, 2-3 weeks for each of those.. ;) | 15:23 | ||
chip & I are working on the design doc with jnthn's and others' oversight | 15:24 | ||
jnap | diakopter: for nonblocking? are the docs someplace I can watch? | ||
diakopter | anyone else with node/libuv/C/threads experience is very welcome to contribute; we're not at the saturation point of contributors yet | 15:25 | |
jnap: yep; PM me a google account ID I can add to the shared drive folder | 15:26 | ||
jnap | I don't actually think we need to have nonblocking baked in to have PSGI as a base for webframeworks. I'm just looking at github.com/supernovus/perl6-psgi/ and not sure | ||
15:26
btyler_ left
|
|||
diakopter | it doesn't need non-blocking if the threads are low-overhead enough, depending on how high concurrency/capacity you intend to serve... I mean... looking at these graphs gives some perspective: | 15:27 | |
www.techempower.com/benchmarks/#section=data-r3 | 15:28 | ||
15:29
spider-mario left,
btyler left
|
|||
diakopter | oh, I guess there's some more recent rounds linked there from the top | 15:30 | |
ah, they added some perl ones by then | |||
dancer, mojolicious | 15:31 | ||
they're both around 1/25 the capacity of the best | |||
well, on one test anyway | 15:32 | ||
on another, around 1/2 | |||
jnap | lol, I don't even want to know what Catalyst would look like on that | ||
diakopter | off the charts? | ||
and not in the good direction? | |||
jnap | doubt in the good direction, yeah | 15:33 | |
the claim here is going to have to be productivity and long term maint over raw speed, at least for Catalyst P5 | |||
is my focus anyway | |||
15:33
fhelmberger_ joined
15:34
fhelmberger left
15:36
btyler joined
|
|||
diakopter | I mean, they have Web::Simple on there. | 15:37 | |
... | |||
seems Kelp is also a Perl one | 15:38 | ||
afk& | |||
15:38
fhelmberger_ left
15:41
btyler_ joined
|
|||
JimmyZ | can I watch the docs too? | 15:46 | |
15:47
benabik left
|
|||
timotimo_ | i hope there'll be a bit of nice performance to be had with websites and frameworks atop perl6 some day :| | 15:47 | |
15:47
cognominal joined
15:53
pochi_ joined
15:54
pochi left
16:03
kaare_ joined
16:04
snearch joined
16:07
JimmyZ left
16:08
lustlife left,
crab2313 joined
|
|||
__sri would be more than happy with perl5-ish performance | 16:12 | ||
timotimo_ | i don't know what perl5-ish performance is like :( | ||
__sri is also very much looking forward to libuv and proper threads in moarvm :) | 16:13 | ||
16:13
drbean left
16:15
drbean joined
|
|||
timotimo_ is going to be excited about the deployment possibilities the jvm offers | 16:15 | ||
perl6 web app: here's your .war, go! | 16:16 | ||
16:16
Chillance joined
|
|||
__sri | jnap: hopefully we'll not have to make any of the perl5 tradeoffs in perl6 | 16:16 | |
jnap | __sri: I do think the big frameworks ontop of company supported languages are going to have a certain advantage here, since they can spend money on certain types of db and related optimizations | 16:17 | |
__sri expects web development in perl6 to be more like in scala... with play framework and the like | |||
jnap | I like play and on the JS side angular.js has a lot of neat ideas | 16:18 | |
timotimo_ | what's special about play? | ||
__sri is going to bring his mongodb driver with him once he starts working on mojolicious6 | |||
timotimo_: heavily based on actors | 16:19 | ||
jnap | timotimo_: is pretty approachable for the power you get | ||
__sri imagines perl6 web dev to be about custom web servers with non-blocking i/o and actors | 16:20 | ||
jnap | but for CatalystP6 I think I'd want to be inspired by the current catalyst values of not trying to be a full stack, stay with the ideals of sticking as close as possible to standard syntax, etc | ||
16:21
FROGGS left
16:23
FROGGS[mobile] joined
|
|||
japhb | diakopter, pong | 16:24 | |
timotimo_ | so, what are the "conservative" and "optimistic" estimates for running something like the cave adventure game or a simple bailador web server or something along those lines on moarvm and/or jvm? | 16:27 | |
dalek | ecs: 58d18fa | larry++ | S04-control.pod: a try prefix implies 'use fatal' inside |
16:28 | |
diakopter | timotimo_: lolz. | 16:29 | |
16:30
bluescreen10 left
|
|||
diakopter | those are like 60% confidence intervals. ;) | 16:30 | |
timotimo_ | well, i'll still take them :P | 16:31 | |
16:31
SamuraiJack left
16:36
jnap left
16:40
dmol joined
16:46
birdwindupbird left
16:50
gudahtt left
17:02
dmol left
17:08
dmol joined
17:11
colomon left
17:15
scottp left
17:16
colomon joined
17:19
crab2313 left,
scottp joined
17:25
mls joined
|
|||
[Coke] | nieza has 16 failures again today. | 17:27 | |
colomon | [Coke]: presumably that will be the case until I figure out how to fix the Nil bug. | 17:28 | |
dalek | c: 0f839d3 | GlitchMr++ | lib/Bool.pod: Add forgotten dot. |
||
17:28
rafl left,
rafl joined
|
|||
mls | Hi guys! | 17:30 | |
17:30
cognominal left
|
|||
mls | (just backlogged a bit) | 17:31 | |
17:31
Shozan joined,
SHODAN left
|
|||
mls | regarding auto-close: that reminds me of parrot patch I did some time ago | 17:32 | |
tadzik | hi mls! | ||
17:32
daxim__ left
|
|||
mls | It got rid of that "sub->ctx" ponter in parrot. | 17:32 | |
17:33
zby_home joined
|
|||
mls | It made nqp and perl6 work with the patch, it was just changing a couple of lines of code. | 17:33 | |
(jnthn++ maybe doesn't remember, though) | 17:34 | ||
Anyway, I didn't merge it into parrot because it is not backward comatible, so I wanted to get the ok from the hll developers first | 17:35 | ||
[Coke] talks with the rtbugadmins - my bug is fixed in the version we are (eventually) upgrading to. | |||
mls | It somehow slipped of my radar, though, so it's still not merged. | ||
The commits are still in the mls/new-autoclose branch in the parrot git repo | 17:36 | ||
See github.com/parrot/parrot/commits/m...-autoclose | 17:37 | ||
17:37
snearch left
17:39
lizmat joined
|
|||
lizmat arrived in hotel in Nancy, France | 17:40 | ||
17:40
dakkar left
|
|||
mls | .tell jnthn FYI, I wrote a couple of comments about auto-close | 17:40 | |
yoleaux | mls: I'll pass your message to jnthn. | ||
17:42
domidumont joined
17:45
kaleem joined
17:53
census left
18:02
census joined
|
|||
lizmat | "all our dishes are furnished" | 18:04 | |
wow, what google translate will do to your menu :-) | |||
18:07
kaleem left
18:24
rindolf left
18:26
ajr joined
|
|||
lue | hello world o/ | 18:26 | |
18:26
ajr is now known as Guest82299
18:27
Guest82299 is now known as ajr_
|
|||
dalek | rl6-roast-data: f4dd3ba | coke++ | / (4 files): today (automated commit) |
18:27 | |
18:33
kst joined
18:40
rindolf joined
18:46
ssutch joined
|
|||
labster | \o hi lue | 18:54 | |
18:55
_jaldhar_ left
18:57
tomyan joined
19:08
domidumont left
19:11
tomyan left
19:14
FROGGS[mobile] left
19:17
rhr joined
19:19
tgt joined,
tomyan joined
|
|||
flussence | huh... I just noticed the first byte of every UTF-8 codepoint in the Combining Diacriticals block is 0xCC|0xCD. wonder if that was done intentionally as a mnemonic. | 19:21 | |
19:25
fgomez left
|
|||
dalek | kudo-star-daily: 1130a81 | coke++ | log/ (5 files): today (automated commit) |
19:29 | |
19:34
sqirrel left
|
|||
[Coke] | anyone know if star is picking the same version of modules each time, or if it's getting HEAD of master each time? | 19:35 | |
diakopter | I thought the star repo contained snapshots of last known working releases | 19:40 | |
dagurval | they point to a specific commit in each module | 19:49 | |
see for example this commit github.com/rakudo/star/commit/cabe...fa#modules | |||
19:50
rindolf left
19:53
fgomez joined
|
|||
flussence | star uses git submodules last I checked, and those don't auto-update. You have to run a specific `git submodule $something` to do that. | 19:53 | |
labster | r: my $h = &cwd.wrap( { 'FAKE' } ); say cwd(); say &cwd(); | 19:57 | |
camelia | rakudo b2072f: OUTPUT«/home/p6evalFAKE» | ||
labster | Am I doing something wrong here? | ||
dalek | ecs: 8875a24 | (Dagur Valberg Johansson)++ | S11-modules.pod: Constants, enums and (our) variables are also exportable (I hope) |
20:05 | |
20:08
fgomez left
|
|||
lue | I'm a bit confused by S02:1908. Should it instead be s/short form/method form/ (or similar phrasing)? | 20:14 | |
flussence | +1 for method | 20:17 | |
lue | (Of course, I question the validity of mentioning alternate forms of dereferencers in a section called "sigils indicate interference", but oh well) | ||
s/interference/interface/ | |||
timotimo_ | hehe | ||
20:17
zby_home left
|
|||
timotimo_ | with a barcode sigil you get cancer rays from outer space | 20:17 | |
lue | I'm wondering if I shouldn't just remove the paragraph I cited. Yes the [], {}, and () were mentioned above, but only in passing. | 20:18 | |
flussence | that'd kill two problems at once (there's an "s" trying to run away too) | 20:20 | |
20:21
bruges_ left
20:23
bruges joined
|
|||
[Coke] | dagurval: danke. (so, I think one thing I have to add the daily star runs is "how many commits behind are we for each module" | 20:24 | |
20:25
ssutch left
20:26
konundra left
|
|||
dalek | ecs: b832cbe | lue++ | S02-bits.pod: [S02] Remove irrelevant sentence. The operators to which the sentence was referring to were only mentioned in passing in this section ("Sigils indicate interface"). Dereferencers are described in detail elsewhere, along with the dotted method forms. |
20:26 | |
[Coke] | in my checked out copy of star, those module directories are already ... checked out. how can I edit/get the submodule verison? | ||
*version | 20:27 | ||
dagurval | I wonder if there is a reason for star not following latest commit. It wasn't possible before with submodules, perhaps that is the reason? It's possible now though with a recent version of git. | ||
[Coke] | We don't want to fight breakage just before a release. | 20:29 | |
I think it's reasonable to stick with "known good" versions. (I'd prefer something like auto-jumping to the next release tag, but our ecosystem doesn't do that) | |||
doc is not the latest version. | 20:30 | ||
json... jsonrpc, panda, rakudo-debugger, zavolaj - those all have updates not in star. | 20:32 | ||
If someone bumps those up to latest, we can get some test coverage on the daily run before any release this month. | |||
20:38
fgomez joined
|
|||
sorear | good * #perl6 | 20:41 | |
20:41
kaare_ left
20:43
kivutar joined
|
|||
flussence | [Coke]: git submodule init; git submodule update # ...I think | 20:44 | |
20:44
census left
|
|||
flussence | the versions are in ./.gitmodules IIRC | 20:44 | |
20:44
lizmat left
20:45
lizmat joined
|
|||
[Coke] | ./.gitmodules doesn't have a version on it | 20:47 | |
(on any of the submodules) | |||
flussence goes to read up on how this *actually works*... | |||
20:48
tomyan left
|
|||
[Coke] | running "git submodule update", I get the expected updates based on my earlier send - but git status shows no difference in the star checkout I have. | 20:48 | |
flussence | okay, git *does* track the submodule revisions in the parent, just not that file. `git diff` should show they've changed though. | 20:49 | |
[Coke] | nope. I see no diff. | 20:50 | |
flussence | hm... maybe I should try poking the repo myself | 20:51 | |
[Coke] | Danke. | 20:54 | |
timotimo_ | you have to cd into the submodule, checkout a newer revision, cd out, git add the change and then commit it | 20:56 | |
iirc | |||
flussence | aha, there's a way to tell git to pull updates for submodules | ||
each one needs submodule.$thing.branch = master in its .gitmodules section, then you just do `git submodule update --remote` | 20:57 | ||
(want me to commit that?) | 20:58 | ||
(oh wait, I can't. never mind) | 20:59 | ||
actually I'm not sure if all of them call the branch "master", but it didn't break anything when I tested just now | 21:04 | ||
21:07
d4l3k_ joined
21:08
tgt left,
dalek left
21:09
d4l3k_ is now known as dalek,
skids left,
tgt joined
21:18
PacoAir left
21:34
SmokeMac_ joined
21:37
SmokeMachine left
21:38
s1n left
21:48
dmol left
21:53
BenGoldberg joined
21:55
kivutar left
21:56
s1n joined
22:00
Ulti left
22:06
ajr_ left
22:14
s1n left
22:16
donaldh joined
22:23
ssutch joined
22:26
benabik joined
22:35
btyler_ left,
btyler left
|
|||
eternaleye | tadzik: I'm finding myself tempted to try making something like Bailador, but with a bit more magic and a bit more syntactic sugar. Mind if I occasionally poke you with questions? (My current thoughts involve a syntax like: get "/foo/bar/*/baz" -> $var #`[ from that asterisk ], :$parameter #`[ CGI-style ?foo=bar params are named params ] { } with coercion to signature-introspected types) | 22:36 | |
tadzik | eternaleye: no, I won't mind :) Ask whenever you need | 22:38 | |
eternaleye | Also, dynamically generating a grammar from the paths and using that + actions to dispatch. | ||
22:38
BenGoldberg left
|
|||
tadzik | my exam session is coming to an end, so I'll hopefully have tuits to answer them | 22:38 | |
eternaleye | Cool, thanks! | ||
tadzik | oh, I've tried that once, did you see it? | ||
although it wasn't dynamic | |||
eternaleye | tadzik: Mm, no I didn't. It's in the git repo? | ||
tadzik | ttjjss.wordpress.com/2010/11/27/gra...p-further/ | 22:39 | |
eternaleye | Anyway, I just felt that having :name in the path was redundant with Perl 6's signatures, and then I started thinking about type coercion and how well path components = positional and cgiparams = named seemed to work. | ||
tadzik | and previous post, linked | ||
eternaleye | And then you get :$foo! mandatory stuff and :foo(:f) aliasing for free | 22:40 | |
And the Whatever star just seemed to be the placeholder that made the most sense to me. | 22:42 | ||
(earlier I toyed with the idea of doing something more like given/when, but it ended up ugly kinda fast in my head) | |||
Where you'd have root { path 'foo' { } path 'bar' { get 'baz' -> :$cgiparam { } } } | 22:43 | ||
22:46
skids joined
22:48
fgomez left
|
|||
eternaleye | tadzik: I'm thinking of naming it Capoeira, since it's Dancer with a plan to kick ass :P | 22:49 | |
22:49
tomyan joined
|
|||
flussence | eternaleye: I've considered doing a thing that uses multis, where your example up there would match «sub get('foo','bar',$var,'baz')» | 22:49 | |
tadzik | eternaleye: :D | ||
eternaleye: sounds good :0 | |||
flussence | (might get a bit long-winded, but it uses minimal magic :) | ||
eternaleye | flussence: I though about it, but last I checked where clauses were expensive in the MMD sense. | 22:50 | |
22:51
donaldh left
22:57
xenoterracide left
22:58
xenoterracide joined
23:10
btyler_ joined,
btyler joined
|
|||
ssutch | would it be possible to compile EBNF into grammars | 23:20 | |
diakopter | ssutch: sure | 23:23 | |
want to write a grammar for EBNF? :) | 23:24 | ||
ssutch | yeah | ||
i am trying to write a grammar for protocol buffer IDL | |||
and found a protocol buffer EBNF | |||
diakopter | I mean, want to write a grammar than can parse EBNF, so that it can be compiled to p6 grammar | ||
sorear | slaaaaangs | 23:25 | |
ssutch | grammars all the way down | 23:26 | |
[Coke] | is there a better way to write this in nqp these days:? | 23:30 | |
token infix:sym<*> { <sym> <O('%multiplicative, :pirop<mul>')> } | |||
23:32
tomyan left,
btyler left
|
|||
[Coke] | looks like Rakudo leaves off the pirop entirely (which I can do for the ones that match perl6's defaults, I suppose) | 23:34 | |
23:35
adu joined
|
|||
[Coke] | if I remove the pirop mul there, I get the same error. | 23:35 | |
23:35
Chillance left
|
|||
[Coke] | gist.github.com/coke/5778345 | 23:36 | |
23:37
sciurius left
23:38
btyler_ left
23:39
xenoterracide left
23:42
btyler joined
23:47
btyler left
23:49
sciurius joined
|
|||
sorear | NQP uses token infix:sym<*> { <sym> <O('%multiplicative, :op<mul_n>')> } | 23:49 | |
[Coke] | is the _n needed? | 23:55 | |
sorear | probably | 23:56 | |
I'm not really an expert with this part of NQP | |||
[Coke] | ENOCHANGE | 23:57 | |
23:57
s1n joined
|
|||
[Coke] | :op<mul> and :op<mul_n> still die with Null PMC access in get_string - presumably I am missing something else. | 23:58 | |
23:58
Khisanth left
|