»ö« 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:00
sjn left
|
|||
lizmat | yes, it was my change… I'll roll back because pmichaud++ didn't like those changes anyway... | 00:03 | |
timotimo_ | ah, those changes | ||
lizmat | adding typed hash support to List.classify and List.categorize | 00:04 | |
if the fix makes ok, I'll commit and start a spec test while going to bed | 00:06 | ||
timotimo_ | t/spec/S32-io/IO-Socket-INET.t ............................ Failed 1/21 subtests | 00:11 | |
is this known? | |||
lizmat | nope | 00:12 | |
dalek | kudo/nom: 686cf53 | (Elizabeth Mattijsen)++ | src/core/List.pm: Undo typed hash support for List.(classify|categorize) pmichaud didn't like it. And he was right. :-) |
||
lizmat | not with me | ||
starting spectest and sleep& | |||
timotimo_ | oke | 00:13 | |
probably changes in my socket stuff that i failed to track properly | |||
sorear | www.youtube.com/watch?v=92sKmO-AHZQ#t=1782s # i see this is online now too :D | 00:16 | |
00:19
salv0 left
|
|||
timotimo_ | it seems the socket tests actually work | 00:20 | |
00:21
salv0 joined
00:22
sjn joined
|
|||
diakopter | sorear: you're immortal | 00:22 | |
[Coke] | timotimo_: you can check github.com/coke/perl6-roast-data to see if something is a known failure. | 00:23 | |
timotimo_ | r: my %h{Str;Str} | ||
camelia | rakudo b2072f: OUTPUT«===SORRY!===Invalid hash shape; type expected» | ||
timotimo_ | r: my %h{Str(Any)} | ||
camelia | rakudo b2072f: OUTPUT«===SORRY!===Invalid hash shape; type expected» | ||
sorear | diakopter: no, only until a major network runs clips of the keynote and youtube takes down the video for retroactive copyright infringement | ||
00:24
PacoAir left
|
|||
timotimo_ | github.com/rakudo/rakudo/pull/163 - the pull request is out :) | 00:25 | |
dalek | : cd6b480 | (Tobias Leich)++ | lib/Perl5/Actions.nqp: fix args passed to indirect object call |
||
sorear | diakopter: and anyways, mdk.per.ly/files/2012/08/IMG_0365.jpg already exists | 00:32 | |
timotimo_ | hm, maybe i'll throw a proper error for the other die, so that it at least gives a trace ... | ||
how can i throw a non-typed exception with the cursor? | 00:37 | ||
oh, maybe just a comp exception | |||
aah, X::Comp::AdHoc | 00:39 | ||
00:42
sjn left
|
|||
timotimo_ | i think i'll turn a few more nqp::die's into AdHoc errors with more info | 00:43 | |
00:49
mtk left
00:51
mtk joined,
dukeleto left
01:03
sqirrel_ joined
01:05
sqirrel left
01:06
dukeleto joined,
FROGGS left
01:13
dukeleto left
01:19
FROGGS joined
|
|||
timotimo_ | wasn't there some syntax that would allow me to do this? | 01:20 | |
r: class Dog { has $.tail; has $.mouth }; my (:$tail, :$mouth) = Dog.new(:tail<fluffy>, :mouth<drooly>); say $tail; say $mouth; | |||
camelia | rakudo b2072f: OUTPUT«Dog.new(tail => "fluffy", mouth => "drooly")Nil» | ||
01:23
raiph joined
01:41
raiph left
01:45
raiph joined
01:53
census joined
01:56
xenoterracide|2 joined
02:12
census left
02:18
dayangkun_ left
|
|||
colomon is trying to remember how to reverse a hash in p6 | 02:18 | ||
timotimo_ | first you .invert it and push the result into a hash | 02:20 | |
colomon | timotimo_++ | ||
timotimo_ remembers it from one of the advent calendar posts | 02:21 | ||
colomon | though I'm now looking at categorize and thinking that might be even better | ||
labster | I like the sound of this | ||
ssutch | i did it! | 02:24 | |
(with the gracious help and love at #perl6) | 02:25 | ||
protocol buffer grammar! gist.github.com/samuraisam/5786535 | |||
colomon | \o/ | ||
ssutch | time for a beer! | ||
if anyone has any suggestions, on how to make the grammar suck less, im happy to listen | 02:26 | ||
timotimo_ | did you see proto tokens yet? | 02:27 | |
you can write proto token proto { <...> }; and then you can write token token proto:sym<import> { <sym> <.ws> ... } and token proto:sym<package> { <sym> <.ws> ... } | 02:28 | ||
so you don't have to write "import" and "option" and such twice and you get the big alteration in your current "token proto" for free | 02:29 | ||
also, if you use the sigspace modifier, you don't have to put <.ws> between each two things, i think that would lead to the biggest improvement | |||
also: that "stupid syntax highlighting" thing! :D i do that all the time ;( | 02:30 | ||
ssutch | lol | ||
some how github gets it almost correct | 02:31 | ||
timotimo_ i used the proto tokens for matching str-lit, toward the bottom | |||
but i should do that instead of alternation in token proto | 02:32 | ||
timotimo_ | ah, indeed, i hadn't read that far ahead | 02:33 | |
colomon | ssutch: did you try using rule instead of token, only to discover that ratcheting was a problem? | 02:34 | |
timotimo_ | be advised you may use spaces inside <[...]> if you feel it makes the code more readable (i have no idea if grouping applies, for instance for char-escape) | ||
ssutch | also, i ran into a bug using sigspace (read: 'rule' instead of 'token') but i can try it again once i have some tests… rakudo has a bug when you type rule { ^ <XXX> $ } | ||
colomon: is what i describe above what you mean? | 02:35 | ||
timotimo_ | can you elaborate on that? | ||
ratcheting means the grammar will not ever backtrack while inside the rule | |||
so ... maybe? | |||
ssutch | ah, well, to fix the problem i mention, i had to delete the space between the opening bracket and the caret | 02:36 | |
so rule {^ … works fine where rule { ^ … does not | |||
colomon | ratcheting wouldn't be a bug. | ||
but it might not work for what you want. | |||
02:36
tgt left
|
|||
ssutch | colomon: yeah, i think i understand what you mean, but i don't think i can give you a very good answer unfortunately | 02:37 | |
im still pretty green at this | |||
colomon | ssutch: I don't think there's anyone but TimToady who could be said to be really experienced at p6 grammars. More people have implemented them than have used them for large projects. ;) | 02:38 | |
ssutch | i was reading over ratcheting in S05, and slammed my head into it while trying to do balanced string literals | 02:39 | |
timotimo_ | r: say "foo bar baz" ~~ rule { ^ (\w+)+ % <.ws> $ }; | ||
camelia | rakudo b2072f: OUTPUT«「foo bar baz」 0 => 「foo」 0 => 「bar」 0 => 「baz」» | ||
ssutch | so ultimately (and it may not be the best) i came up with what you see toward the bottom of the file with the proto token str-lit | ||
timotimo_ | r: say "foo bar baz" ~~ token { ^ (\w+)+ % <.ws> $ }; | ||
camelia | rakudo b2072f: OUTPUT«「foo bar baz」 0 => 「foo」 0 => 「bar」 0 => 「baz」» | ||
timotimo_ | i think white space at the very beginning after the opening brace is never meaningful and you have to put <.ws> or <?> in there to get additional white space matched there | 02:40 | |
ssutch | there is some duplication that i was unsure of how to get rid of | ||
timotimo_ | mhm, that does seem tricky. i'm not sure if you actually have to remove the " from the character class, let me try something | 02:41 | |
r: say q{"foo bar baz" quuz} ~~ / \" ~ \" (.*?) / | |||
ssutch | here lemme give you my test string… after removing all the curse words | 02:42 | |
camelia | rakudo b2072f: OUTPUT«Unable to parse expression in ; couldn't find final \" in any FAILGOAL at src/stage2/QRegex.nqp:1037 in regex at /tmp/dTtxeDxjxA:1 in method ACCEPTS at src/gen/CORE.setting:10509 in method ACCEPTS at src/gen/CORE.setting:683 in block at /tmp/dTtxeDxjxA:… | ||
timotimo_ | ah, indeed, it will go over that even if i make it .*? | ||
r: say q{"foo bar baz" quuz} ~~ / \" ~ \" (.?*) / # or this way? | |||
camelia | rakudo b2072f: OUTPUT«===SORRY!===Quantifier quantifies nothingat /tmp/FJpBwLGulL:1------> q{"foo bar baz" quuz} ~~ / \" ~ \" (.?*⏏) / # or this way? expecting any of: postfix infix stopper infix or meta-infix … | ||
timotimo_ | hm. | ||
02:43
crab2313 joined
|
|||
diakopter | ssutch: you can give camelia bot a non-private gist url | 02:43 | |
ssutch | how do i do that | 02:44 | |
diakopter | guess :P | ||
ssutch | /msg camelia gist.github.com/samuraisam/5786535 | ||
diakopter | yeah, but you need the r: | ||
ssutch | r: gist.github.com/samuraisam/5786535 | ||
camelia | rakudo b2072f: ( no output ) | ||
ssutch shrug? | 02:45 | ||
diakopter | your program doesn't do anything :P | ||
colomon | ssutch: it just defines a grammar. apparently in a way that doesn't make rakudo complain. | 02:46 | |
ssutch | r: gist.github.com/samuraisam/5786535 | ||
camelia | rakudo b2072f: OUTPUT«「 package com.niceword; option nice_thing = "face"; import "allunicorns.proto"; message not_ass { required double happy = 4; optional bool mild = 5; extensions 100 to 199, 500 to max; extensions 1 to max; opt… | ||
ssutch | ok i updated it with my mostly-cleaned-up test string | 02:47 | |
pretty neat that camelia will run a gist | |||
timotimo_ | it really is. when you combine the power to just fork a gist and edit it by yourself, it gets even cooler | 02:48 | |
people may complain and whine about github making the dvcs centralised again and single-point-of-failure and such, but it does offer incredible value at times | |||
ssutch | meh, back up your shit, there are alternatives | 02:49 | |
diakopter | you need a DDVCS | 02:50 | |
02:51
xinming left
|
|||
ssutch | ha | 02:51 | |
timotimo_ backs up his git repos on his laptop and the laptop data goes on a backup drive that i haven't used in at least two months now =o | 02:52 | ||
02:53
xinming joined
|
|||
ssutch | im going to try migrating a bunch of these tokens to rules, removing the <.ws> | 02:54 | |
timotimo_ | that should make a huge difference in readability | 02:56 | |
ssutch | yeah | ||
timotimo_ | maybe you can find space for a few newlines and indentation in the rules, too | ||
another trick is this: | |||
r: my @types = <double float int32 int64 uint32 and_so_on>; say "int32 uint32 float float double" ~~ / @types* / | 02:57 | ||
camelia | rakudo b2072f: OUTPUT«「int32」» | ||
timotimo_ | r: my @types = <double float int32 int64 uint32 and_so_on>; say "int32 uint32 float float double" ~~ / @types* % <.ws> / | ||
camelia | rakudo b2072f: OUTPUT«「int32 uint32 float float double」» | ||
timotimo_ | may be more readable than your huge alteration | 02:58 | |
(plus: you can read the types programmatically from an array) | |||
ssutch | neato | ||
timotimo_ | yup :3 | ||
i'm going to bed now, it's too darn late for me to stay up :( | |||
ssutch | night! thanks for all the help :) | 02:59 | |
timotimo_ | no problem, i enjoyed it :) | ||
RedditAnalytics | a little treat for you guys if you need a diversion ... really amazing old computer story: www.ibiblio.org/harris/500milemail.html | 03:01 | |
colomon | catagorize works! \o/ | 03:03 | |
03:03
SamuraiJack joined
|
|||
timotimo_ | RedditAnalytics: i remember reading it some time ago and i indeed really enjoyed it :) | 03:04 | |
RedditAnalytics | just goes to show you that sometimes the user is right | ||
Teratogen | that is a good story! | 03:16 | |
I remember messing with sendmail years ago | |||
it was a nightmare | |||
03:22
benabik joined
|
|||
ssutch | awesome | 03:29 | |
03:32
crab2313 left
|
|||
ssutch | perl 6, thus far, feels very "do what i mean" | 03:33 | |
03:45
ldthien0 joined
|
|||
colomon | nod | 03:45 | |
sorear | o/ | 03:48 | |
ugexe | what feature is required for my @stuff = ([0,1],[0,1]);' and then @stuff[2][0] = 0;(assignment to non-container) instead of @stuff.push([0,]);? | 03:49 | |
@stuff[0][2] = 0 grows, whereas @stuff[2][0] doesnt and complains of assignment to non-container | 03:51 | ||
03:58
preflex left
03:59
preflex_ joined,
ChanServ sets mode: +v preflex_
|
|||
sorear | rn: my @stuff = ([0,1],[0,1]); @stuff[2][0] = 0; | 03:59 | |
camelia | rakudo b2072f, niecza v24-76-g3e65d84: ( no output ) | ||
sorear | seems to work? | ||
03:59
preflex_ is now known as preflex
04:05
ldthien0 left
04:14
jaldhar joined
04:18
konnjuta joined
|
|||
konnjuta | hi, can perl6 programs be compiled? | 04:18 | |
04:19
jaldhar left
|
|||
geekosaur | in the sense that Java or C# programs can, yes. to native code, not currently | 04:20 | |
04:22
jaldhar joined
|
|||
konnjuta | thanks! | 04:22 | |
exactly what i was hoping for | 04:23 | ||
04:26
Psyche^ joined
04:30
Patterner left,
Psyche^ is now known as Patterner
04:31
konnjuta left
04:32
kaare_ joined
|
|||
eternaleye | r: class Dog { has $.mouth; has $.tail; }; my Dog $ ( :$mouth, :$tail ) = Dog.new( :mouth<drooly>, :tail<fluffy> ); say $mouth; say $tail; | 04:59 | |
camelia | rakudo b2072f: OUTPUT«(Mu)(Mu)» | ||
eternaleye | r: class Dog { has $.mouth; has $.tail; }; my :( Dog $ ( :$mouth, :$tail ) ) := Dog.new( :mouth<drooly>, :tail<fluffy> ); say $mouth; say $tail; | 05:01 | |
camelia | rakudo b2072f: OUTPUT«===SORRY!===Malformed myat /tmp/ejJRucVrAx:1------> ss Dog { has $.mouth; has $.tail; }; my ⏏:( Dog $ ( :$mouth, :$tail ) ) := Dog.ne expecting any of: scoped declarator» | ||
diakopter | geekosaur: both .NET and mono can ahead-of-time compile to machine code | 05:02 | |
geekosaur | ah | ||
diakopter | not redistributable | 05:03 | |
but still | |||
geekosaur | I knew niecza cached away CLR bytecode, but CLR is not really my area of expertise (nor JVM, really) | ||
eternaleye | r: class Dog { has $.mouth; has $.tail; }; my Dog :( :$mouth, :$tail ) := Dog.new( :mouth<drooly>, :tail<fluffy> ); say $mouth; say $tail; | 05:04 | |
camelia | rakudo b2072f: OUTPUT«===SORRY!===Type 'Dog' is not declaredat /tmp/gtBCuG6pMZ:1------> og { has $.mouth; has $.tail; }; my Dog ⏏:( :$mouth, :$tail ) := Dog.new( :mouth<Malformed myat /tmp/gtBCuG6pMZ:1------> og { has $.mouth; has $.tail; … | ||
eternaleye | r: class Dog { has $.mouth; has $.tail; }; my Dog :( $mouth, $tail ) := Dog.new( :mouth<drooly>, :tail<fluffy> ); say $mouth; say $tail; | ||
camelia | rakudo b2072f: OUTPUT«===SORRY!===Type 'Dog' is not declaredat /tmp/w_dsHFQqPW:1------> og { has $.mouth; has $.tail; }; my Dog ⏏:( $mouth, $tail ) := Dog.new( :mouth<drMalformed myat /tmp/w_dsHFQqPW:1------> og { has $.mouth; has $.tail; … | ||
eternaleye | std: class Dog { has $.mouth; has $.tail; }; my Dog :( $mouth, $tail ) := Dog.new( :mouth<drooly>, :tail<fluffy> ); say $mouth; say $tail; | ||
camelia | std d4cc5ab: OUTPUT«===SORRY!===Multiple prefix constraints not yet supported at /tmp/B8rFC0XVI2 line 1:------> og { has $.mouth; has $.tail; }; my Dog ⏏:( $mouth, $tail ) := Dog.new( :mouth<drMalformed my at /tmp/B8rFC0XVI2 line 1:------> o… | ||
eternaleye | Hmm | ||
timotimo_: ^^^ was my attempt at using perlcabal.org/syn/S06.html#Unpackin...parameters which seems to be what you were looking for | 05:05 | ||
std: class Dog { has $.mouth; has $.tail; }; my Dog $ ( $mouth, $tail ) := Dog.new( :mouth<drooly>, :tail<fluffy> ); say $mouth; say $tail; | 05:07 | ||
camelia | std d4cc5ab: OUTPUT«ok 00:01 47m» | ||
eternaleye | r: class Dog { has $.mouth; has $.tail; }; my Dog $ ( $mouth, $tail ) := Dog.new( :mouth<drooly>, :tail<fluffy> ); say $mouth; say $tail; | ||
camelia | rakudo b2072f: OUTPUT«(Mu)(Mu)» | ||
eternaleye | timotimo_: Anyway, it seems STD doesn't recognize the :( signature ) form from the spec, and Rakudo fails to bind the variables properly in the $ ( ) form. | 05:08 | |
TimToady: Is ^ a stdbug or a specbug? I'd suspect even a specbug has a stdbug component, because it isn't a multiple prefix constraint regardless. | 05:12 | ||
Mmm, unless... | 05:15 | ||
std: class Dog { has Str $.mouth; has Str $.tail; }; my Str :( :$mouth, :$tail ) := Dog.new( :mouth<drooly>, :tail<fluffy> ); say $mouth; say $tail; | 05:16 | ||
camelia | std d4cc5ab: OUTPUT«===SORRY!===Multiple prefix constraints not yet supported at /tmp/GdO08MekMK line 1:------> Str $.mouth; has Str $.tail; }; my Str ⏏:( :$mouth, :$tail ) := Dog.new( :mouth<Malformed my at /tmp/GdO08MekMK line 1:------> … | ||
eternaleye | r: class Dog { has Str $.mouth; has Str $.tail; }; my Str $ ( :$mouth, :$tail ) := Dog.new( :mouth<drooly>, :tail<fluffy> ); say $mouth; say $tail; | ||
camelia | rakudo b2072f: OUTPUT«Type check failed in binding; expected 'Str' but got 'Dog' in block at /tmp/W8yQNOGfKm:1» | ||
eternaleye | r: class Dog { has Str $.mouth; has Str $.tail; }; my Dog $ ( Str :$mouth, Str :$tail ) := Dog.new( :mouth<drooly>, :tail<fluffy> ); say $mouth; say $tail; | ||
camelia | rakudo b2072f: OUTPUT«(Mu)(Mu)» | ||
eternaleye | Mm | 05:17 | |
r: class Dog { has Str $.mouth; has Str $.tail; }; my Str ( :$mouth, :$tail ) := Dog.new( :mouth<drooly>, :tail<fluffy> ); say $mouth; say $tail; | |||
camelia | rakudo b2072f: OUTPUT«droolyfluffy» | ||
eternaleye | timotimo_: AHA! ^^^ | ||
.tell timotimo_: class Dog { has Str $.mouth; has Str $.tail; }; my Str ( :$mouth, :$tail ) := Dog.new( :mouth<drooly>, :tail<fluffy> ); say $mouth; say $tail; | 05:18 | ||
yoleaux | eternaleye: What kind of a name is "timotimo_:"?! | ||
eternaleye | .tell timotimo_ class Dog { has Str $.mouth; has Str $.tail; }; my Str ( :$mouth, :$tail ) := Dog.new( :mouth<drooly>, :tail<fluffy> ); say $mouth; say $tail; | ||
yoleaux | eternaleye: I'll pass your message to timotimo_. | ||
eternaleye | Signature-unpacking++ | ||
Incidentally, not knowing the return value of twodogs made that section of the spec a lot harder to grok than it should have been. I'll work up a patch. | 05:19 | ||
It also looks like that test a.) could possibly be unfudged and b.) needs a fudged colon-prefix variant, since that's untested as yet. I'll wait on the latter until I know if that part of the spec is going to change, but I'll look into the former. | 05:22 | ||
Ah. It needs three more variants (colons on the parameters without $ and the interior type, colon-prefixed sig with container type, and entirely uncoloned with interior type), of which all but the first would be fudged. | 05:27 | ||
05:28
xenoterracide|2 left
05:42
quester-temp-1 joined
05:44
zby_home joined,
quester-temp-1 left
05:49
amoe_ joined
05:52
amoe left
05:57
araujo left
06:03
quester joined
|
|||
dalek | kudo/nom: cdda38e | (Timo Paulssen)++ | src/Perl6/Actions.nqp: better error messages for hash shapes. |
06:10 | |
kudo/nom: e9aa2a9 | (Timo Paulssen)++ | src/Perl6/Actions.nqp: make sure those errors have pos-in-file info |
|||
kudo/nom: 0c0e3c0 | lizmat++ | src/Perl6/Actions.nqp: Merge pull request #163 from timo/hash-shape-errors better error messages for hash shapes. |
|||
06:15
Chillance joined
06:29
SamuraiJack left
06:30
raiph left
06:36
fgomez left
06:41
amoe joined,
birdwindupbird joined
06:43
amoe_ left
|
|||
[Coke] is still up at 0246 local time, and wonders if he can code anything perl6 related. | 06:46 | ||
[Coke] wonders if jnthn is awake yet. | 06:47 | ||
eternaleye | .ask jnthn I've found various bits on poking methods into classes via .HOW and add_method (MOP++), but I can't figure out how that might work to poke rules into a grammar. Any advice? | 06:53 | |
yoleaux | eternaleye: I'll pass your message to jnthn. | ||
eternaleye | .tell jnthn (I'm trying to make something Dancer-like called Capoeira that generates a grammar (to do the routing) from the paths, and uses singature introspection in the actions to bind the placeholders to the signature of the response Callable) | 06:55 | |
yoleaux | eternaleye: I'll pass your message to jnthn. | ||
[Coke] | .ask jnthn - partcl-nqp is trying to use :namespace when creating some QAST nodes. this seems to be a holdover from PAST last. Does QAST support namespaces? | 07:00 | |
yoleaux | [Coke]: I'll pass your message to jnthn. | ||
sorear | eternaleye: A rule is just a method. | 07:12 | |
I don't think you need anything at all special | 07:13 | ||
except possibly for longest-token matching | |||
07:21
arlinius left
07:27
salv0 left
07:31
salv0 joined
07:33
woolfy left
07:34
quester left
07:35
lizmat left
07:39
fgomez joined
07:53
arlinius joined,
eternaleye left
07:58
eternaleye joined
08:03
lizmat joined
08:11
crab2313 joined
08:21
xinming left,
xinming joined
08:33
SamuraiJack joined
08:58
dmol1 joined,
sjn joined,
dmol left
09:08
eternaleye left
09:17
woolfy1 joined
09:18
eternaleye joined
09:27
sjn left
09:34
PacoAir joined
|
|||
dalek | ast: a3d361a | (Elizabeth Mattijsen)++ | S10-packages/use-with-class.t: Make sure we look in test directory first Found when doing spectest while having ./Foo.pm available |
09:45 | |
09:47
sjn joined
|
|||
lizmat drops a pin again | 09:56 | ||
sorear | ? | 10:02 | |
10:03
sjn left
|
|||
lizmat | I heard it fall | 10:03 | |
aka, it's very silent on the channel | 10:04 | ||
dalek | ecs: dca94f7 | (Elizabeth Mattijsen)++ | S32-setting-library/Containers.pod: Remove superfluous |, probably a copy/paste error |
10:06 | |
10:08
crab2313 left
10:10
Guest21891 is now known as ponbiki
|
|||
dalek | ecs: 01c9f44 | (Elizabeth Mattijsen)++ | S32-setting-library/Containers.pod: Added some identical method based examples, seemed appropriate |
10:13 | |
10:14
salv0 left
|
|||
woolfy1 picks up pin that lizmat dropped and hands it over to her | 10:17 | ||
woolfy1 sighs that she never cleans up her mess | |||
10:17
salv0 joined
|
|||
lizmat hides | 10:18 | ||
10:19
daniel-s__ joined
10:21
cognominal joined
10:23
tomyan joined,
daniel-s left
|
|||
masak | lizmat: it's quiet because loud obnoxious members of the channel (like masak) are currently having too much fun AFK. | 10:26 | |
lizmat | aha! it's Saturday! :-) | 10:27 | |
masak | no no, it's Saturday in *London*! | ||
:D | |||
woolfy1 | Nono, it's saturday in Nancy | ||
lizmat | and the weather is nice, and we're inside :-( | ||
masak | good developers are perfectly capable of abstracting away nice weather. | 10:28 | |
woolfy1 | And the people here are speaking about Perl in French -> double fun | ||
masak .oO( fun double ) | |||
10:28
tgt joined
|
|||
woolfy1 | Later today: journeesperl.fr/fpw2013/talk/4845 | 10:29 | |
10:29
birdwindupbird left
|
|||
woolfy1 | (Yet Another Perl6 Interpreter) | 10:29 | |
10:33
cognominal left
|
|||
sorear | yapsi? | 10:34 | |
10:35
woolfy1 left,
woolfy joined
|
|||
tadzik | oh :) | 10:35 | |
sorear | and, o/ masak. | 10:36 | |
10:36
tomyan left
10:38
tomyan joined
|
|||
masak | \o, \o | 10:41 | |
FROGGS | o/, o/ | 10:42 | |
sorear | i just added a new type to KnowHOWBootstrapper | ||
masak | does anyone have any opinion on my kvetch yesterday about inner-outer-class communication? | 10:43 | |
it feels like we are missing a language feature/detail there, or at least a pattern to somehow workaround the lack of a feature/detail. | |||
10:43
cognominal joined
|
|||
sorear | how does this not break ~everything~? it just passed all tests, despite not recompiling anything | 10:44 | |
10:44
tomyan left
|
|||
sorear | surely the changed indexes in the __6MODEL_CORE__ SC should have broken deserialization of stuff | 10:44 | |
masak: I've always thought Java's behavior there is fairly insane. | |||
*default behavior | |||
masak | sorear: yes, that's what Perl people usually tell me. and I agree, at least in part. | 10:45 | |
there's something surprising about Java's default behavior -- somewhere in the region of having to write 'static' before the inner class to get the sane variant. | |||
10:46
cognominal left
|
|||
sorear is in the habit of using owner pointers | 10:46 | ||
10:46
cognominal joined
|
|||
sorear is driven crazy by p5's cycle-hating VM | 10:46 | ||
s/VM/GC/ | |||
jnthn: ping | 10:47 | ||
masak | here, I've set up a use case so we can talk about this. | 10:48 | |
rn: class C { class Thing { has @.value; method Str { ~@.value } }; has $.total; has @!things; method add($value) { @!things.push(Thing.new(:$value)); $!total += $value; self }; method Str { "[ {@!things.join(q[, ])} ]" } }; say ~C.new.add(1).add(2).add(3) | |||
camelia | rakudo b2072f: OUTPUT«[ 1, 2, 3 ]» | ||
..niecza v24-76-g3e65d84: OUTPUT«Use of uninitialized value in numeric context at /home/p6eval/niecza/lib/CORE.setting line 1382 (warn @ 5)  at /home/p6eval/niecza/lib/CORE.setting line 297 (Any.Numeric @ 8)  at <unknown> line 0 (ExitRunloop @ 0)  at /tmp/kTkrKaRP3D line 1 (C.add … | |||
masak | this is similar in structure to the real-world code I had. | 10:49 | |
sorear | .oO( has class Thing ) |
||
masak | now, let's pretend I want to print not just the values '1, 2, 3', but their percentages, too: '1 (17%), 2 (33%), 3 (50%)' | 10:50 | |
how would I do that? any solution is allowed, and then we can discuss their respective merits. | |||
note that I've provided $.total for you in the C class ;) | |||
sorear | it's bad form to commit failing tests to nqp, right? breaks bisect? | 10:52 | |
masak | if you're thinking of committing failing tests, why aren't you working in a branch? | 10:54 | |
10:54
JimmyZ joined
11:00
xenoterracide|2 joined
|
|||
sorear | masak: because I haven't broken any of the standard tests | 11:03 | |
moritz will be gone for most of the weekend | |||
moritz ~~ | 11:04 | ||
sorear | o/ moritz | ||
dalek | p: 9aeeadd | sorear++ | / (8 files): 6model bits for representing continuations as objects, also s/shift/control/ (oops) |
||
sorear | have the appropriate amount of fun | ||
masak | o/ moritz | 11:05 | |
r: class C { class Thing { has $.value; has $.c; method Str { sprintf "%d (%d%%)", $.value, $.value / $.c.total * 100 + .5 } }; has $.total; has @!things; method add($value) { @!things.push(Thing.new(:$value, :c(self))); $!total += $value; self }; method Str { "[ {@!things.join(q[, ])} ]" } }; say ~C.new.add(1).add(2).add(3) | 11:07 | ||
camelia | rakudo b2072f: OUTPUT«[ 1 (17%), 2 (33%), 3 (50%) ]» | ||
masak | I guess this is what sorear++ suggested. | ||
* sorear is in the habit of using owner pointers | 11:08 | ||
and, *sigh*, yes that works. | |||
and maybe it's close enough to a sweet spot that there's not much to kvetch about... | 11:09 | ||
11:13
JimmyZ left
11:14
JimmyZ joined
11:16
isBEKaml joined,
xenoterracide|2 left
11:19
JimmyZ left
11:22
JimmyZ joined
11:24
JimmyZ left,
JimmyZ joined
|
|||
lizmat is back from lunch | 11:26 | ||
I wonder how "multi method classify ( @values: @mapper --> Hash )" is supposed to work | 11:30 | ||
use an array as a mapper? Which would imply only Integers as values to map? | |||
11:31
araujo joined
|
|||
sorear | o/ araujo | 11:34 | |
11:47
tomyan joined,
spider-mario joined
11:49
atrodo left,
atrodo joined
|
|||
colomon | lizmat: I've no idea. Is that implemented anywhere? Certainly not in Niecza.... | 11:54 | |
lizmat | it's not implemented. and not explained. I assume it is just that: using an array as a lookup, if it gets anything non-numeric, it will probably blow | 11:55 | |
r: my @a=1; say @a['foo'] # yes,it will blow | 11:56 | ||
camelia | rakudo b2072f: OUTPUT«Cannot call 'Real'; none of these signatures match::(Mu:U \v: Mu *%_) in method Real at src/gen/CORE.setting:870 in method Real at src/gen/CORE.setting:2596 in method Real at src/gen/CORE.setting:870 in sub infix:<<> at src/gen/CORE.setting:3100 in sub i… | ||
11:56
cognominal left,
tomyan left
|
|||
dalek | kudo/nom: 42ef7be | (Elizabeth Mattijsen)++ | src/core/Any.pm: Make sure $default doesn't leak to GLOBAL:: |
11:57 | |
colomon | lizmat: actually, if you presume that it works by passing the things you are classifying as indices to the array, then it would have to be things that work that way. So things that can be converted to numeric, including code blocks? | 11:59 | |
11:59
tomyan joined
|
|||
colomon | r: my @a=1; say @a[*-1] | 11:59 | |
camelia | rakudo b2072f: OUTPUT«1» | ||
colomon | r: my @a=1; say @a['0'] | ||
camelia | rakudo b2072f: OUTPUT«1» | ||
araujo | hello sorear ! | ||
& everyone else | |||
:) | |||
lizmat | hello araujo | 12:00 | |
colomon: good point | |||
JimmyZ | good evening, #perl6 | 12:01 | |
sorear | good evening JimmyZ | 12:02 | |
.tell jnthn I'm not sure I understand this __6MODEL_CORE__ bootstrap SC stuff... why aren't the bootstrap CodeRefs included in it? | 12:03 | ||
yoleaux | sorear: I'll pass your message to jnthn. | ||
colomon has just barely woken up today... | 12:04 | ||
sorear | i'm up a bit late. | 12:05 | |
12:05
cognominal joined
|
|||
JimmyZ | I guess sorear is in sleep time :P | 12:07 | |
woolfy | sorear maybe should get some sleep now he told jnthn something important... | ||
woolfy wonders why she said that, since it is weekend now and sorear seemingly wants to break the record for longtime nerding! | 12:08 | ||
sorear thinks some people here have been nerding longer than sorear has been living. | 12:10 | ||
12:10
cognominal left
|
|||
woolfy agrees with sorear... names come to mind like lizmat, woolfy, pmichaud, timtoady... | 12:13 | ||
FROGGS | $ ./p5 'use v5; package A; sub new { bless [], shift }; use overload q[""] => sub { 42 }; my $ua = new A; say "a $ua b"' | 12:21 | |
Perl5: a 42 b | |||
v5: a 42 b | |||
\o/ | |||
lizmat | FROGGS++ | ||
JimmyZ | FROGGS: awesome | 12:23 | |
12:23
kivutar joined
|
|||
FROGGS | and the cool thing is: two lines changed, and something between 10 and 15 added for the overload module (only ""-overloading right now) | 12:23 | |
12:23
tomyan left
|
|||
lizmat | when one sheep is across the dam, many will follow (old NL saying) | 12:24 | |
FROGGS | gotcha | ||
JimmyZ | this is another awesome: awesome.naquadah.org/ | 12:25 | |
12:31
konundra left
|
|||
woolfy admires lizmat... in a few minutes she will do her presentation "Perl's Diaspora" for the French Perl Workshop. And she is not nervous at all. She sits there hacking in Perl 6 stuff. | 12:36 | ||
lizmat looks a bit angry at me ("why did you have to tell that????") | |||
12:37
fer joined
|
|||
lizmat | I will also do "Is Perl 6 Perl?" and "From Fat Comma To Adverbial Pairs" lightning talks | 12:37 | |
but later :-) | |||
woolfy basks in the rays of lizmat's calm | 12:39 | ||
lizmat | .oO(I'm not nervous) |
||
sorear | if the lightning talk is about pairs, perhaps it should be given by two people? | ||
lizmat | .oO(I'm not nervous) |
||
sorear | :) | ||
lizmat | they're only adverbial pairs | 12:40 | |
woolfy | sorear: I am so NOT giving a presentation! | ||
12:42
fer left
12:53
fgomez left
12:55
salv0 left
12:57
salv0 joined
13:03
ldthien0 joined
13:05
spider-mario left
13:11
spider-mario joined,
woolfy left
13:12
cognominal joined,
cognominal left
|
|||
dalek | p: bfee017 | sorear++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/ (4 files): First (compiles but untested) draft of nqp::continuation* op implementations |
13:12 | |
sorear | don't celebrate yet, there are several known bugs | 13:13 | |
*sleep* | |||
13:14
ldthien0 left
|
|||
JimmyZ | 'night | 13:27 | |
timotimo_ | night sorear | 13:38 | |
yoleaux | 05:18Z <eternaleye> timotimo_: class Dog { has Str $.mouth; has Str $.tail; }; my Str ( :$mouth, :$tail ) := Dog.new( :mouth<drooly>, :tail<fluffy> ); say $mouth; say $tail; | ||
timotimo_ | eternaleye: thank you for slogging through it! :) | ||
i didn't manage to find the right point in the specs to look for an explanation | |||
so i had to resort to guesswork | |||
i had a brief look into the deserialisation stuff; it doesn't seem like i can very easily add a bit of code in one place that would give a "traceback" of what packages caused the serialisation that error'd out on the wrong dependency | 13:39 | ||
13:43
zby_home left
13:45
mtk left
13:49
zby_home_ joined
|
|||
lizmat | "Yet Another Perl6 Interpreter - A Hack Around LuaJIT" now starting at FPW | 13:49 | |
a replacement for Parrot | 13:50 | ||
colomon | is jnthn there? | ||
lizmat | started in 2011 | ||
colomon: no, and it's in French, so he wouldn't understand much from it, I gather | 13:51 | ||
colomon | gotcha | ||
lizmat | TvmJIT is the name, comparing now with LuaJIT | 13:52 | |
colomon had somehow assumed that jnthn could handle any language you threw at him.... | |||
lizmat | (!call print (!mul 6 7 )) | ||
42 | |||
Table Virtual Machine Just In Time | 13:53 | ||
Table Processing used S-expression syntax | |||
Lua 5.1 C/API ABI compatible | |||
Github hosted / TAP test suite | |||
13:54
cognominal joined
|
|||
colomon | lizmat: who is doing it? | 13:54 | |
lizmat | journeesperl.fr/fpw2013/user/2391 | 13:55 | |
JimmyZ | ferrad | ||
lizmat | at one time, he worked at getting Lua to run on Parrot | ||
compatible with LuaJIT 2.0.2 now | 13:58 | ||
13:59
birdwindupbird joined
|
|||
lizmat | use TP (Table Processing) as an intermeidate language | 14:00 | |
Lua translator included / required by JIT bytecode utilities | 14:03 | ||
1.3KLoC, 19Kb bytecode | 14:04 | ||
p6jit - perl6 backend | 14:07 | ||
linked with libtcmjit, native librarus (p6str,p6num), NQP.lua bytecode included, also on Github | 14:08 | ||
14:08
isBEKaml left
|
|||
lizmat | libtvmjit | 14:09 | |
tadzik | exciting | 14:10 | |
lizmat | ./psjit > say(6*7) 42 | 14:11 | |
p6jit *sigh* | |||
./ps6jit --ast shows AST of code | 14:12 | ||
timotimo_ | so, how much of the spec test suite does it pass? :3 | 14:13 | |
lizmat | ./ps6jit --op shows S-expressions opcodes | ||
lizmat can't type p6jit :-( | |||
timotimo_: I will ask at the end | 14:14 | ||
tadzik | I suppose it's github.com/fperrad/tvmjit | 14:15 | |
and github.com/fperrad/p6jit | 14:16 | ||
lizmat | I would think so, yes :-) | ||
Language gap: MOP | 14:17 | ||
timotimo_ | ../t/00-sanity.t .. ok All tests successful. Files=1, Tests=8, 1 wallclock secs ( 0.03 usr + 0.00 sys = 0.03 CPU) ;) | ||
lizmat | some metemodel functionlaity built in | ||
timotimo_ | fwiw, p6jit is very fresh apparently | 14:18 | |
lizmat | runtime classes: Num, num, Str, str, Bool, bool, Nil, nil, Array, Hash, Mu, Any, Cool | ||
p6jit: say( (1).WHAT ) num | 14:19 | ||
the 1 is not boxed, apparently native Lua capability ? | |||
there has not been an official announcement yet | 14:20 | ||
timotimo_ | the talk *is* the official announcement? :) | ||
lizmat | well, I don't think he intended it like that | ||
he would like to work with perl6 community to create a true NQP baclkend | |||
(slide titled "Next Step") | 14:21 | ||
Other recent good news: NQP on JVM bootsrapped / MoarVM | |||
I guess more people have kept their VM work secret :-) | 14:22 | ||
timotimo_ | sounds good :) | ||
nwc10 | it's better than overpromising and underdelivering | 14:24 | |
lizmat | demonstration of REPL | ||
nwc10 | (such as Unladen Swallow, which did deliver some things, but nothing like what they boldly announced at the start) | ||
lizmat | p6jit is *fast* | ||
nwc10 | (which is a shame, as I was keen to see how they were going to slay Python's GIL) | 14:25 | |
fast is good, but see blog.headius.com/2012/10/so-you-wan...-ruby.html | |||
timotimo_ | it's hard to make anything of "p6jit is fast" until you see how many actual features it offers; a super-slim subset of p6 is easy to make fast, after all :P | 14:26 | |
but it's still very cool! | |||
lizmat | now giving demo | ||
seems relatively complete so far | 14:27 | ||
will ask about spectests at the end | |||
timotimo_ | wow, cool | ||
lizmat | live example of chaning the jit to make &ln work, based on .ln | 14:29 | |
changing | |||
recompile is *very* quick, impressive! | 14:31 | ||
nwc10 | lizmat: in luajit, strings are immutable aren't they? | ||
if so, how are Perl 6's mutable strings implemented? | |||
lizmat | nwc10: I will ask | 14:32 | |
nwc10 | and (I have no clue on this) - how does LuaJIT do concurrency? | ||
thanks | |||
JimmyZ | by embed into MoarVM :P | 14:35 | |
lizmat | this is still more like NQP, rather than Perl 6 | 14:37 | |
runs a part of the NQP test-suite, 180 tests so far | |||
nwc10 | OK, I forget - NQP strings are immutable or not? | ||
lizmat | no assignments in NQP, just binding | 14:38 | |
wrt concurrency: there is a coro library for Lua, but that isn't used here yet | 14:41 | ||
nwc10 | thanks, interesting, useful | 14:42 | |
14:42
cognominal left
|
|||
nwc10 | please pass on thanks and my encouragement | 14:42 | |
lizmat | official announcement after his 3 week holiday, which starts next week | ||
nwc10 | :-) | ||
lizmat | will do | 14:43 | |
nwc10 | OK, and "enjoy well deserved holiday" | ||
lizmat | done | ||
going to other room now... | |||
nwc10 is going to the big blue room | |||
lizmat | presentation has ended… so I guess we will know more mid July | 14:44 | |
we live in exciting tiimes! | |||
diakopter | It wasn't a privats github project | 14:49 | |
JimmyZ | diakopter: I pmed you my google id | ||
diakopter | I mentioned it here a couple months ago | 14:50 | |
timotimo_ | lizmat: thanks for livetranslating :) | 14:52 | |
lizmat | diakopter: the good news: it is still going on, then! | 14:53 | |
diakopter | there are quite a few things crucial to a nqp backend that simply aren't possible there. I studied the codebase a while ago; I'll have to refresh my memory to recall them | ||
[if they're still valid] | 14:54 | ||
he would have been better served to explore the nqp requirements first | 14:55 | ||
timotimo_ | diakopter: i remember you querying me when i talked vaguely about considering building a vm atop pypy for perl6 and you mentioning some secret project in that same area :D | ||
diakopter | heh | ||
well at the time I think there was someo one talking about doing that | 14:57 | ||
wait, maybe you | |||
timotimo_ | i didn't continue with the thoughts, though. with my very limited experience of vm design, i was certain the task would be even more complicated and hard than i imagined, even after correcting for my lack of grasp of the topic :P | 14:58 | |
diakopter | well I can remember one, anyway | ||
control flow exceptions | 14:59 | ||
lizmat | lightning talks starting | 15:00 | |
timotimo_ | lizmat: have fun! :) | 15:01 | |
diakopter | it's the same model as p2: make a VM, and then try to understand nqp/6model well enough to implement it. making a jit is the ultimAte premature optimization | 15:02 | |
15:02
cognominal joined
|
|||
diakopter | he might not be aware I already made a nqp backend on luajit | 15:02 | |
that passed all the tests through the cross compiler | 15:03 | ||
lizmat | possibly, should I ask ? | ||
diakopter | but the regex ones, which I just didn't do | 15:04 | |
because I knew it was changing a lot soon | |||
timotimo_ | when was that? | ||
before nom? | |||
diakopter | no | ||
now, it doesn't have the 6model native types, but that's simply a matter of compiler fu | 15:05 | ||
er, primitive/unboxed. | 15:06 | ||
it didn't compile to bytecode; it compiled to lua source | 15:07 | ||
it was a direct port of jnthn's nqp POC prototype in C# | 15:09 | ||
er, 6model POC/prototype | 15:10 | ||
timotimo_ | oooh, so many interesting things i've never heard about ever | 15:11 | |
diakopter | liz: was it a recompile from make clean or just the changed files :P | ||
mine wasn't very interesting :P | 15:12 | ||
commute& | 15:13 | ||
15:16
zby_home_ left
15:21
dmol1 left
15:25
preflex left
|
|||
nwc10 | masak: your problem with the weather is due to www.bbc.co.uk/sport/0/tennis/22914580 | 15:25 | |
15:26
preflex joined,
ChanServ sets mode: +v preflex
|
|||
nwc10 | now, historically, it would have been a worse plan to go to London during Wimbledon fortnight, but now Centre Court can shake its fist, er roof, at God, Queens is now the prime target for malicious rain disruption. | 15:26 | |
dalek | kudo/nom: d3ae978 | (Elizabeth Mattijsen)++ | src/core/ (3 files): Implement Hash.(classify|categorize), as well as other mapper types |
||
nwc10 | I'd suggest avoiding Eastbourne next week | ||
lizmat | main classify / categorize implementation moved to src/core/Hash now | 15:27 | |
15:28
cognominal left
|
|||
nwc10 | masak: also, it seems point 3 on the second slide: www.youtube.com/watch?v=_Lf83bcnR4k | 15:29 | |
15:29
risou_awy is now known as risou
15:30
preflex left
15:31
preflex joined,
ChanServ sets mode: +v preflex
|
|||
lizmat | diakopter: announcement of Etherpad::API on CPAN | 15:38 | |
15:45
sqirrel_ left,
zby_home joined
15:46
JimmyZ left
15:51
Ulti joined
|
|||
lizmat | bar& | 16:03 | |
16:04
lizmat left
16:07
dmol joined
16:09
ldthien0 joined
16:17
PacoAir left
16:21
ldthien0 left
16:24
domidumont joined
16:31
PacoAir joined
16:32
domidumont left,
dmol left
16:33
domidumont joined
16:34
risou is now known as risou_awy
16:40
mtk joined
16:47
birdwindupbird left
16:48
dmol joined
16:52
snearch joined
17:10
lizmat joined
17:14
arlinius left
17:16
dmol left
17:18
btyler joined
|
|||
dalek | : 34fbe88 | (Tobias Leich)++ | lib/Perl5/ (2 files): added overload.pm, only "" right now |
17:26 | |
17:27
rindolf joined
|
|||
diakopter | FROGGS: O_O | 17:27 | |
FROGGS | :o) | 17:29 | |
dinner & | |||
17:35
woolfy joined,
zby_home left
17:38
dmol joined
17:48
dmol left,
dmol joined
17:53
dmol left
17:56
SamuraiJack left
17:57
GlitchMr joined
18:01
SunilJoshi joined
18:02
dmol joined
|
|||
[Coke] gives up on QAST namespacs for now, and tries to figure out why his custom EXPR operatros are causing null pmc errors. | 18:05 | ||
18:06
btyler left,
SunilJoshi left
|
|||
[Coke] | ah. assoc is no longer optional. | 18:11 | |
one down.. | 18:12 | ||
where does nqp define all the available ops? | 18:17 | ||
I don't see "mul", for example anywhere in src/vm/parrot/ops/*.ops | |||
diakopter | they're defined in the qast-> compiler | 18:21 | |
[Coke] | ack -a mul src/QAST -> nada. | 18:22 | |
looks like I want to look for add_core_pirop_mapping in src. | 18:23 | ||
Danke. | 18:24 | ||
diakopter | it's not in src/QAST | ||
it's in src/vm/parrot/QAST | |||
[Coke] | that fixes [expr 2+3] (and a few others.) | 18:25 | |
18:36
Celelibi left
|
|||
[Coke] | how can I debug an NQP grammar parse failure? | 18:36 | |
18:36
zby_home joined
|
|||
[Coke] | I'm trying to parse something, and getting Cannot look up attributes in a type object inside nqp's parsegrammar | 18:37 | |
FROGGS | hmmm, only but inserting debug (say) statements | ||
[Coke]: pass --ll-exception | |||
[Coke] | syntax for executable code in the grammar? | ||
FROGGS: --ll-exception doesn't seem to do anything for ./partcl | 18:38 | ||
FROGGS | { nqp::say("token statement") } | ||
hmmm | |||
[Coke] | FROGGS: gist.github.com/coke/5789104 | ||
FROGGS | [Coke]: if you have plenty of work to do, you might want to do the same like I did for v5 | 18:39 | |
[Coke] | FROGGS: ... inside a rule? | ||
FROGGS | [Coke]: yes, inside grammar tokens/rules/whatever | ||
github.com/rakudo-p5/v5/blob/maste...ns.nqp#L10 | |||
and look at line 51 in the actions... | 18:40 | ||
[Coke] | FROGGS: those are actions. | ||
I'm failing in the parse. | |||
FROGGS | yeah, that might be the second step | ||
just wanna point that out, it is pretty useful for me | |||
18:41
snearch left
|
|||
FROGGS | well, it is failling here: called from Sub 'proc' pc 52664 (./src/Partcl/commands.pir:20536) (src/Partcl/commands.pm:1747) | 18:41 | |
[Coke] | yes. proc is calling the grammar's .parse() | 18:42 | |
the failing is happening inside the parse step. no clue where. | |||
that's what I'm trying to get some insight into. | |||
FROGGS | [Coke]: PAST::Compiler still exists? | 18:43 | |
[Coke] | No. but I have yet to get past the .parse() failure. :) | 18:44 | |
dalek | : 79e5ea5 | (Tobias Leich)++ | STATUS.md: added (forgotten) overload.pm |
18:48 | |
: cc04ca9 | (Tobias Leich)++ | lib/Perl5/overload.pm: added (forgotten) overload.pm |
|||
18:50
domidumont left
|
|||
[Coke] | switching Partcl::Compiler.parse to nqp::getcomp('Partcl').parse seems to have improved things. | 18:57 | |
19:00
Celelibi joined
19:02
kaare_ left
|
|||
[Coke] | ... oh. I bet I needed to instantiate the compiler instead of calling it as a class method. | 19:08 | |
(hurm. that wasn't needed on expr...) | 19:09 | ||
19:14
census joined
|
|||
[Coke] | how can I add a method to a class at runtime without a MONKEY_TYPED eval? | 19:16 | |
I have a freshly compiled &sub. | |||
diakopter | something like .HOW.add-method then must compose | 19:21 | |
add_method | |||
google for "HOW.add_method" | 19:22 | ||
.g "HOW.add_method" | 19:23 | ||
yoleaux | github.com/perl6/mu/blob/master/v6...5v6_mop.pl | ||
diakopter | heh | ||
[Coke] | sadly, "add_method" doesn't appear in the specs. | 19:24 | |
diakopter | well, I said google | 19:26 | |
a lot of the 6model stuff isn't in the specs | 19:27 | ||
[Coke] | ok, now 0-arg subs work. yay. | 19:36 | |
19:39
sjn joined
|
|||
eiro | hello! back from FPW (good edition). I have what sounds like an autopun to me: | 19:41 | |
I have a joke on UDP but i'm not sure you'll get it | |||
19:49
jtpalmer joined
19:55
census left
19:56
fgomez joined
20:00
ssutch left
|
|||
diakopter | eiro: :) | 20:01 | |
lizmat: interesting | 20:03 | ||
ahmetalpbalkan.com/blog/8-months-microsoft/ # someone ought to write a detailed analysis of these phenomena | 20:11 | ||
geekosaur | ...this is news? | 20:13 | |
diakopter | to the author, yes, as he states several times | 20:14 | |
geekosaur | yes, I saw that. corporations are not the only places that can be insular... | ||
diakopter | geekosaur: I just meant it would be convenient to see mitigation strategies and costs for those related phenomena explained in one central place | 20:17 | |
20:19
Araq joined
|
|||
geekosaur | I've seen several such, mostly directed at managers of geeks. and mostly not taking any cognizance that said managers are likely to be outranked by marketing and/or finance departments, etc. | 20:20 | |
also, with respect to that specific article, some of that is not really a problem, just what's going to happen when engineering intersects with the rest of the world. | 20:21 | ||
20:22
skyheights joined
|
|||
lue | .oO("Not giving back to the public domain is a norm." was a bit of a "You don't say" for me) |
20:23 | |
diakopter | well, tbh my suspicion was that such an analysis would end up concluding/persuading that the costs of avoiding many of those things are too high. but some of them seem fixable to me. | 20:25 | |
20:26
bluescreen10 joined
|
|||
diakopter | geekosaur: (but yes, I agree with you that some of them aren't even problems) | 20:36 | |
20:42
danaj left
20:44
snearch joined
20:47
Araq left
20:48
ecocode joined
20:49
zby_home left
20:54
danaj joined
21:10
adu joined
|
|||
sorear | good * #perl6 | 21:13 | |
21:14
skyheights left
|
|||
diakopter | o/ | 21:14 | |
21:21
ecocode left,
adu left
21:26
ecocode joined
21:36
raiph joined
21:49
twigel joined,
jaldhar left
21:50
jaldhar joined
|
|||
dalek | p: 580a904 | sorear++ | src/HLL/Compiler.nqp: Make sure compiler error messages have a final newline to avoid confusing readline |
21:56 | |
21:57
adu joined,
adu left
22:00
stevan_ joined
22:03
stevan__ left
|
|||
sorear | that last one may be controvertial...:) | 22:20 | |
22:25
ggoebel joined
|
|||
raiph | r: eval ( "f" ) | 22:27 | |
camelia | rakudo b2072f: OUTPUT«===SORRY!===Undeclared routine: f used at line 1» | ||
raiph | ww | ||
22:31
dmol left
22:34
ssutch joined
|
|||
sorear | whee, starting to pass my continuation tests | 22:36 | |
timotimo_ | ssutch: have you continued work on the protobuf grammar? could i have a look? :) | 22:37 | |
ssutch | hallo | ||
yeah a bit | |||
starting to figure out actions and such | 22:38 | ||
timotimo_ | ah, cool :) | ||
if you need a bit of assistance, just ask :) | |||
ssutch | just updated the gist: gist.github.com/samuraisam/5786535 | ||
so much cleaner w/o all the <.ws> | |||
you had a suggestion to use proto token instead of alternation for the body, but i couldn't figure out what that would look like | 22:39 | ||
Teratogen | Does Perl 6 have thread support? | 22:40 | |
ssutch | Teratogen depends… but the most practical answer would probably be not yet | ||
timotimo_ | Teratogen: in theory or in practice? ;) | ||
22:41
bluescreen100 joined
|
|||
ssutch | haha | 22:41 | |
flussence | irclog.perlgeek.de/perl6/2012-02-21#i_5185652 | ||
timotimo_ | there was a nice talk by pmichaud that you should be able to find on youtube when searching for "perl6 parallelism yapcna" | ||
sorear: cool beans wrt continuation tests :) | 22:42 | ||
22:44
bluescreen10 left
|
|||
flussence | ...*does* Perl 6 have thread support? The 6 month old readme in the Threads.pm repository doesn't exactly inspire confidence. | 22:46 | |
timotimo_ | the threading stuff isn't properly specced out yet, because there's no good underlying thread support on any of the currently targetted platforms | 22:47 | |
it's due to change pretty soon and thus people can start experimenting what's the best way to put threading into perl6 | |||
ssutch | esp w/ jvm threads | 22:51 | |
timotimo_ | and moarvm will become very interesting as well | 22:54 | |
22:54
spider-mario left
|
|||
ssutch | at some point i will want to be able to point out to the user of the protobuf grammar where parsing failed | 22:57 | |
i am not sure how that is accomplished with a grammar | |||
timotimo_ | there's tricks like explicitly adding || { die "something didn't work here" } to the end of one of your rules | 22:59 | |
ssutch | seems like you could use something like this: github.com/jnthn/grammar-debugger/.../Tracer.pm | 23:00 | |
however, i have noticed that matches are super slow when running with Tracer | |||
timotimo_ | indeed | ||
i don't recommend that | |||
but i have no very good suggestions :( | |||
ssutch | for protobuf, the speed doesn't matter a whole lot anyway, because this will be done once and then cached for the lifetime of the program | 23:01 | |
timotimo_ | right | ||
you can even put the parsing into a BEGIN block and it will be done once, when the program/script gets compiled | |||
(but unfortunately scripts will not be compiled and stored away for later use yet) | |||
ssutch | yar | 23:02 | |
23:03
rindolf left
|
|||
flussence | .oO( using up my insanity quota for the month: what if there was a module that parallelised a script by farming bits of the AST out to run in multiple subprocesses and communicating return values etc. over shm ) |
23:03 | |
timotimo_ | do it! | ||
flussence | but people might start using it :( | 23:04 | |
timotimo_ | then make fun of them | ||
ssutch | STD.pm uses .panic github.com/perl6/std/blob/master/STD.pm6#L285 | 23:06 | |
lue | flussence: don't limit yourself to just one computer. I wanna set up p6compilefarm.net ! | ||
timotimo_ | indeed; but the problem is to discern between "i need to backtrack in order to make this work, but then it works" and "when i reach this place and there is not an a here, that's definitely an error" | 23:08 | |
ssutch | haha i like this one <.panic: "Confused"> github.com/perl6/std/blob/master/STD.pm6#L1144 | ||
timotimo_ | yeah, confused is something that happens often | 23:11 | |
23:12
sergot left,
sergot joined
|
|||
masak waves to #perl6 | 23:14 | ||
flussence | o/ | 23:15 | |
(are we on a big screen again?) | |||
masak | not to my knowledge. | ||
my screen is about 14", methinks :P | 23:16 | ||
23:16
woolfy left
|
|||
sorear | o/ masak! | 23:19 | |
wtf | |||
masak | \o | ||
sorear | nqp has hash constructors now? | 23:20 | |
masak has been enjoying London all day with Esperanto friends | |||
that nqp has hash constructors is news to me too... | |||
sorear | oh, I think it's just for empty ones | 23:21 | |
nqp: say(nqp::istype({}, NQPHash)) | |||
camelia | nqp: OUTPUT«0» | ||
sorear | nqp: ({})() | 23:22 | |
camelia | nqp: OUTPUT«invoke() not implemented in class 'Hash'current instr.: '' pc 47 ((file unknown):141329136) (/tmp/ki_TofzMz_:1)» | ||
sorear | nqp-jvm: say(nqp::istype({}, NQPHash)) | ||
camelia | nqp-jvm: OUTPUT«0» | ||
23:22
PacoAir left
|
|||
sorear | nqp-jvm: say(nqp::isnull([nqp::null()][0])) | 23:39 | |
camelia | nqp-jvm: OUTPUT«0» | ||
sorear | this was not expected | ||
maybe a bug | |||
nqp: say(nqp::isnull([nqp::null()][0])) | 23:40 | ||
camelia | nqp: OUTPUT«0» | ||
sorear | .ask jnthn say(nqp::isnull([nqp::null()][0])); # nqpbug or Working As Designed? | ||
yoleaux | sorear: I'll pass your message to jnthn. | ||
23:51
snearch left
|
|||
dalek | p: b37f6f2 | sorear++ | src/vm/jvm/ (3 files): Misc bugfixes |
23:51 | |
p: a6a7660 | sorear++ | t (2 files): Start of a t/jvm/01-continuations.t |
|||
sorear | it's functionally complete | 23:54 | |
need to increase the test coverage a bit and update the documentation to reflect the last-minute API changes | |||
masak | sorear++ |