perl6-projects.org/ | nopaste: sial.org/pbot/perl6 | evalbot: 'perl6: say 3;' | irclog: irc.pugscode.org/ | ~280 days 'til Xmas Set by mncharity on 18 March 2009. |
|||
jnthn | Hmmm....after state vars some of svn.pugscode.org/pugs/t/spec/S04-cl...ts/start.t should be relatively easy to make happen. | 00:04 | |
00:06
justatheory left
00:10
eternaleye left
00:11
justatheory joined
00:12
justatheory left
00:24
lichtkind left
00:25
eternaleye joined
00:30
unitxt joined
00:40
unitxt left
00:42
eternaleye left
00:49
DemoFreak left
00:55
eternaleye joined
01:13
nihiliad joined
01:28
kimtaro left
01:52
kimtaro joined
01:56
wknight8111 left
02:03
agentzh left
02:09
kimtaro left,
kimtaro joined
02:14
justatheory joined
02:25
agentzh joined
02:40
c9s left
02:41
c9s joined
02:42
justatheory left
02:44
takadonet joined
|
|||
meppl | good night | 02:44 | |
takadonet | hey everyone | 02:45 | |
02:45
meppl left
02:53
justatheory joined
03:03
mncharity joined
|
|||
mncharity | perl6-projects.org/ | nopaste: sial.org/pbot/perl6 | evalbot: 'perl6: say 3;' | irclog: irc.pugscode.org/ | ||
03:05
justatheory left
03:06
kimtaro left,
kimtaro joined
03:07
takadonet left
|
|||
mncharity | rakudo: my $f=sub ($n){$n+1}; say $f(2); | 03:12 | |
p6eval | rakudo 9a84c3: OUTPUT«3» | ||
03:13
alc joined
03:14
Kisu joined
03:16
msmatsko joined
03:18
justatheory joined
03:25
disismt left
03:27
kate21de left
03:40
ab5tract joined
03:45
nww joined
|
|||
pugs_svn | r25990 | putter++ | [elf] Tidying up. | 03:51 | |
r25990 | putter++ | elf_h_src/: 'self.' -> '$.' . elfish: Removed empty directories, and deleted obsolete elfish/AST/Ast.pm. | |||
03:51
mncharity left
03:56
alester left
04:14
ab5tract left
04:29
nww left
04:30
amoc joined
04:33
sklm joined,
amoc left,
amoc joined
04:43
cnhackTNT joined
04:46
orafu left,
OuLouFu joined,
OuLouFu is now known as orafu
04:53
sklm left
05:15
viklund`` joined,
viklund` left
05:20
cnhackTNT left
05:22
aaabbbccc joined
05:27
aaabbbccc is now known as gbie
05:31
nww joined
05:32
parduncia joined
05:33
parduncia left
05:41
Tene_ joined
05:57
nww left,
Tene left
06:04
nihiliad left,
FurnaceBoy left
06:46
justatheory left
|
|||
pugs_svn | r25991 | szabgab++ | testing index() with junction | 07:06 | |
07:17
cotto left
|
|||
moritz_ | szabgab: type checks are better made with isa_ok() | 07:21 | |
szabgab: and is() doesn't autothread, because most of the time it's a test error to pass a junction to is(), so better write that as 'ok $res == 1, "description"' | |||
szabgab | ok | 07:22 | |
i guess the same with eq, right ? | 07:23 | ||
moritz_ | right | ||
szabgab | actually I wanted to write a function same_junctions($this, $that) or some similar | 07:24 | |
moritz_ | please do | ||
07:25
xinming joined
|
|||
moritz_ | that would help us once .eigenstates is gone | 07:25 | |
because all the "bad" code is then concentrated in that function | 07:26 | ||
szabgab | oh, I wanted to use .eigenstates for that ... | ||
moritz_ | you can do that for now | 07:27 | |
it's better to have a deprected method used in one function than all over the place in the test suite | 07:28 | ||
szabgab | yeah but I was working on something totally different just noticed this unfinished test and committed it :-) | ||
moritz_ | well, no hurry | ||
will you fix it, or should I? | |||
07:29
goksie joined
|
|||
szabgab | fixing now | 07:30 | |
pugs_svn | r25992 | szabgab++ | some Junctions related test cleanup | 07:33 | |
07:37
xinming_ left
|
|||
szabgab | moritz_, did you mean that ? | 07:37 | |
moritz_ | szabgab: yes, exactly | 07:38 | |
well, nearly ;-) | 07:39 | ||
rakudo: use Test; plan 1; isa_ok(1|2, "Junction"); | |||
p6eval | rakudo 9a84c3: No output (you need to produce output to STDOUT) | 07:40 | |
moritz_ | rakudo: say "alive" | ||
p6eval | rakudo 9a84c3: OUTPUT«alive» | ||
moritz_ | rakudo: use Test; say "alive" | 07:41 | |
p6eval | rakudo 9a84c3: No output (you need to produce output to STDOUT) | 07:42 | |
moritz_ | ah, Test.pm isn't precompiled on p6eval's server | ||
rakudo: use Test; say "alive" | |||
p6eval | rakudo 9a84c3: OUTPUT«alive» | ||
moritz_ | rakudo: use Test; plan 1; isa_ok(1|2, "Junction"); | ||
p6eval | rakudo 9a84c3: OUTPUT«1..1not ok 1 - The object is-a 'Junction'# Looks like you failed 1 tests of 1» | ||
moritz_ | rakudo: use Test; plan 1; isa_ok(1|2, Junction); | 07:43 | |
p6eval | rakudo 9a84c3: OUTPUT«1..1Null PMC access in get_integer()current instr.: 'parrot;Junction;!type' pc 9169 (src/classes/Junction.pir:180)» | ||
szabgab | ah you want the () around it ? | ||
moritz_ | no | ||
actually I want no quotes around the type name, but I guess it should work with quotes as well | |||
szabgab | :1 | 07:44 | |
moritz_ | but why the heck do we get that Null PMC access? | ||
rakudo: use Test; plan 1; isa_ok(1, Int); | 07:45 | ||
p6eval | rakudo 9a84c3: OUTPUT«1..1ok 1 - The object is-a 'Int'» | ||
moritz_ | rakudo: use Test; plan 1; isa_ok(1, "Int"); | ||
p6eval | rakudo 9a84c3: OUTPUT«1..1ok 1 - The object is-a 'Int'» | ||
moritz_ | ok, it works with quotes as well | ||
no need to worry about that one | |||
rakudo: say (1|2).isa(Int).perl | 07:46 | ||
p6eval | rakudo 9a84c3: OUTPUT«any(1)» | ||
07:46
DemoFreak joined
|
|||
moritz_ | rakudo: say (1|"str").isa(Int).perl | 07:46 | |
p6eval | rakudo 9a84c3: OUTPUT«any(1, 0)» | ||
moritz_ | so it .isa autothreads | 07:49 | |
anyway, thanks for the fixes szabgab | 07:51 | ||
szabgab | another issue if I am already looking at this | 07:52 | |
how can I compare two arrays ? | |||
is there some built-in function in Perl 6 that can compare two arrays ? | 07:53 | ||
moritz_ | rakudo: use Test; plan 2; isa_deeply [1, 2], [1, 2]; is_deeply [1, 2], [0, 2] | ||
p6eval | rakudo 9a84c3: OUTPUT«1..2Could not find non-existent sub isa_deeplycurrent instr.: '_block14' pc 141 (EVAL_16:53)» | ||
moritz_ | rakudo: use Test; plan 2; is_deeply [1, 2], [1, 2]; is_deeply [1, 2], [0, 2] | ||
p6eval | rakudo 9a84c3: OUTPUT«1..2ok 1 - not ok 2 - # Looks like you failed 1 tests of 2» | ||
moritz_ | szabgab: smart matching compares them element wise, and DWIMs on Whatever-stars | ||
rakudo: say [1, 2] ~~ [1, 2] | |||
szabgab | oh yes, | ||
p6eval | rakudo 9a84c3: OUTPUT«1» | ||
szabgab | smart match | ||
moritz_ | rakudo: say [1, 2] ~~ [1, 0] | ||
p6eval | rakudo 9a84c3: OUTPUT«0» | ||
moritz_ | rakudo: say [1, 2] ~~ [1, *] | 07:54 | |
p6eval | rakudo 9a84c3: OUTPUT«1» | ||
moritz_ | rakudo: say [1, 2, 3] ~~ [1, *] | ||
p6eval | rakudo 9a84c3: OUTPUT«1» | ||
szabgab | rakudo: [1, 2] ~~ [1, 2] | ||
p6eval | rakudo 9a84c3: RESULT«Bool::True» | ||
szabgab | rakudo: [1, 2] ~~ [1] | ||
p6eval | rakudo 9a84c3: RESULT«Bool::False» | ||
szabgab | rakudo: [1, 2] ~~ [2, 1] | ||
p6eval | rakudo 9a84c3: RESULT«Bool::False» | 07:55 | |
moritz_ | rakudo: [[1,2], 3] ~~ [[1, 2], 3] | ||
p6eval | rakudo 9a84c3: RESULT«Bool::False» | ||
moritz_ | rakudo: [[1,4], 3] ~~ [[1, 2], 3] | ||
szabgab | but I think I'd like to have a detailed report of the differences | ||
p6eval | rakudo 9a84c3: RESULT«Bool::False» | ||
08:00
xinming_ joined
08:04
orevdiabl left
08:10
bacek_ joined
08:11
DemoFreak left
08:12
bacek left
08:15
goksie_ joined
08:17
xinming left
|
|||
szabgab | rakudo: 1 ~~ 1|2 | 08:25 | |
p6eval | rakudo 9a84c3: RESULT«Bool::True» | ||
08:30
ejs joined
|
|||
szabgab | rakudo: (1|2).perl | 08:34 | |
p6eval | rakudo 9a84c3: RESULT«"any(1, 2)"» | ||
szabgab | rakudo: (1|2).perl.WHAT | ||
p6eval | rakudo 9a84c3: RESULT«Str» | ||
szabgab | I have forgotten, can I fetch the type of the Junction somehow or just my parsing the stringification ? | 08:36 | |
08:37
masak joined
|
|||
masak | morning, eigencamels. | 08:37 | |
masak backlogs | |||
rakudo: +("freeeeeeeeeeeeeeeew" ~~ /('e'|'w')*/)[0] | |||
p6eval | rakudo 9a84c3: OUTPUT«Use of uninitialized value» | ||
masak | <TimToady> that oughta work... | ||
did someone report this? | 08:38 | ||
szabgab | wan't there a way to get all the available methods of an object ? | ||
$ob.METHODS | |||
masak | $obj.^methods, I'd guess. | 08:39 | |
I'm sure the answer is in S12. | |||
szabgab | there is a WHY | 08:40 | |
08:40
goksie left
|
|||
szabgab | but there is no WHYNOT | 08:40 | |
08:40
ejs1 joined
|
|||
masak | szabgab: well, WHYNOT isn't an interrogative pronoun. | 08:40 | |
neither is WTF, for example. | 08:41 | ||
szabgab | rakudo: class A { method f(){say "42"} ; A.f | 08:42 | |
p6eval | rakudo 9a84c3: OUTPUT«Unable to parse block; couldn't find final '}' at line 1, near ""current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)» | ||
szabgab | rakudo: class A { method f(){say "42"} }; A.f | ||
p6eval | rakudo 9a84c3: OUTPUT«42» | ||
szabgab | rakudo: class A { method f(){say "42"} }; say A.methods | ||
p6eval | rakudo 9a84c3: OUTPUT«Could not locate a method 'methods' to invoke on class 'A'.current instr.: 'die' pc 15799 (src/builtins/control.pir:204)» | ||
masak | szabgab: missed the '^'. | ||
szabgab | rakudo: class A { method f(){say "42"} }; say A.HOW | 08:43 | |
p6eval | rakudo 9a84c3: OUTPUT«get_string() not implemented in class 'P6metaclass'current instr.: 'print' pc 19322 (src/builtins/io.pir:26)» | ||
masak | also, I don't think it's implemented. | ||
szabgab | rakudo: class A { method f(){say "42"} }; say A.^methods | ||
p6eval | rakudo 9a84c3: OUTPUT«Method 'methods' not found for invocant of class 'P6metaclass'current instr.: 'parrot;Perl6Object;!.^' pc 1917 (src/classes/Object.pir:685)» | ||
08:43
bacek_ left
|
|||
szabgab | 12 talks about MyClass.methods() or MyClass.HOW.methods | 08:44 | |
masak | ok. | ||
my bad, then. | |||
szabgab | and a few lines below my current page view was the ^ syntax | ||
PgDown help | 08:45 | ||
The "^" metasyntax is equivalent to ".HOW" | |||
rakudo: (1|2).WHICH | 08:46 | ||
p6eval | rakudo 9a84c3: RESULT«-1241493232» | ||
szabgab | rakudo: (1|2).WHO | ||
p6eval | rakudo 9a84c3: OUTPUT«Method 'WHO' not found for invocant of class 'Int'current instr.: 'parrot;P6metaclass;dispatch' pc 637 (src/classes/ClassHOW.pir:161)» | ||
szabgab | so do you think the only way to interrogate a junction about its type is to pars it .perl representation ? | 08:47 | |
masak | szabgab: no. | ||
moritz_ | rakudo: say 1|2 ~~ Junction | 08:48 | |
p6eval | rakudo 9a84c3: OUTPUT«1» | ||
moritz_ | rakudo: say 1, 2 ~~ Junction | ||
masak | but I also think that this is not yet settled. :) | ||
p6eval | rakudo 9a84c3: OUTPUT«10» | ||
szabgab | I mean if it any or all | ||
moritz_ | rakudo: say (1, 2) ~~ Junction | ||
p6eval | rakudo 9a84c3: OUTPUT«0» | ||
masak | yes, I understand. | ||
08:48
ejs left
|
|||
masak | maybe we'll have a method .eigentype :) | 08:49 | |
moritz_ | we recently spuculated about how it might be called | 08:50 | |
*speculated | |||
szabgab | rakudo: (1|2).perl ~~ /^(\w+)/ | 08:51 | |
moritz_ | "view", "measurement" and "collapse" came up | ||
p6eval | rakudo 9a84c3: RESULT«Match.new( # WARNING: this is not working perl code # and for debugging purposes only ast => "any", text => "any", from => 0, to => 3, positional => [ Match.new( ast => "any", text => "any", from => 0, to => 3, ), ],)» | ||
masak | 'collapse' sounds too verbish to me. | ||
moritz_ | no wonder TimToady didn't like it :-) | 08:52 | |
szabgab | rakudo: say (1|2).perl ~~ /^(\w+)/ | ||
p6eval | rakudo 9a84c3: OUTPUT«any» | ||
szabgab | rakudo: (1|2).perl ~~ /^(\w+)/ | ||
p6eval | rakudo 9a84c3: RESULT«Match.new( # WARNING: this is not working perl code # and for debugging purposes only ast => "any", text => "any", from => 0, to => 3, positional => [ Match.new( ast => "any", text => "any", from => 0, to => 3, ), ],)» | ||
szabgab | rakudo: my $x = (1|2).perl ~~ /^(\w+)/ | ||
p6eval | rakudo 9a84c3: RESULT«Null PMC access in get_bool()current instr.: 'parrot;Match;_block1385' pc 36743 (src/gen_setting.pir:4764)» | ||
masak prepares for submitting something | 08:53 | ||
Matt-W | Morning | ||
masak | Matt-W: ahoj! | ||
szabgab | rakudo: my ($x) = (1|2).perl ~~ /^(\w+)/ | ||
moritz_ | masak: if you want to submit the Null PMC access in get_bool(), that's already reported | ||
p6eval | rakudo 9a84c3: RESULT«Null PMC access in get_bool()current instr.: 'parrot;Match;_block1385' pc 36743 (src/gen_setting.pir:4764)» | ||
masak | moritz_: ok. and the program above works fine here, so it's probably an artefact of perl6eval. | 08:54 | |
szabgab | the same code work on my computer | ||
masak | szabgab: use 'say'. | ||
moritz_ | masak: with (do { ... }).perl.print around it? | ||
masak | moritz_: I guess. | ||
masak tests | 08:55 | ||
moritz_: right, that fails. | |||
08:55
mberends joined
|
|||
masak | Matt-W, mberends: meeting in four minutes! | 08:56 | |
Matt-W grabs some breakfast | |||
mberends | hi all, shall we invite moritz_ as well ? | ||
08:57
kane___ left
|
|||
moritz_ | because my nicks starts with m? :-) | 08:57 | |
08:58
amoc left
|
|||
Matt-W | Sure why not :) | 08:58 | |
Great thing about IRC meetings: I can talk with my mouth full | 08:59 | ||
masak | of cookies, I hope? | ||
mberends places a bowl filled with small chocolate Easter eggs on the table. Please help yourselves. Also a document called hello.bash: gist.github.com/85378 | |||
masak | Yarr! This here be a meeting of the Self-Appointed Standards Group for Perl 6 Projects. I now pronounce it open, sorta. | 09:00 | |
cap at 20 minutes. | |||
masak opens box of delicious cookies | |||
09:00
amoc joined
|
|||
masak | the word is free during the whole meeting. we have no agenda. | 09:00 | |
(as far as I know) | 09:01 | ||
mberends | could you try running hello.bash? your pets will not be harmed. | ||
masak | mberends: where, exactly? | ||
Matt-W finds a lot of code from Form's build system in there | |||
mberends | the gist above gist.github.com/85378 | ||
thanks, Matt-W++ | 09:02 | ||
masak | in the meantime, I'll just field two questions and see where they land. (1) Makefile.PL: Perl 5 or Perl 6? (2) Test.pm: symlink it into the project, or leave it in the Rakudo dir? | ||
mberends | symlink is less risky | ||
Matt-W | Makefile.PL should be in Perl 6 | 09:03 | |
moritz_ | shouldn't @*INC take care of such things? | ||
Matt-W | I was thinking about this last night | ||
Also yes, Test.pm should just work as a system library | |||
moritz_ | can Makefile.PL - can we configure that in a meta file? | ||
s/can // | |||
Matt-W | We don't have to do any special juggling to make Test::More work in Perl 5, after all | ||
An installed Rakudo should be able to find the Test.pm it shipped with. This may depend on Rakudo's install system | 09:04 | ||
masak | I'm leaning towards leaving Test.pm in the Rakudo dir, and making sure PERl6LIB points there always. | ||
moritz_ | masak: +1 | ||
Matt-W | yup | ||
masak | that's settled, then. | 09:05 | |
09:05
DemoFreak joined
|
|||
Matt-W | The problem with including modules from the project itself is that we put them in lib/ | 09:06 | |
09:06
jedai left
|
|||
Matt-W | if we didn't, they'd Just Work | 09:06 | |
masak | mberends: hello.bash looks intriguing. | ||
mberends wonders whether <RAKUDO_DIR> is truly a library directory. | |||
masak | mberends: is there any way to test it without creating a new github project? | ||
Matt-W | <RAKUDO_DIR>/lib might be | ||
moritz_ | aye, we should move Test.pm to lib/ at some point | ||
mberends | no, but deleting projects is quick. I've done many in the last 12 hours. | ||
masak | Matt-W: putting in lib/ in projects is still a net win in my book. | ||
Matt-W | masak: yes, we just need to figure out hte best way to get whatever perl 6 compiler you're using to find your modules | 09:07 | |
masak | mberends: oh, ok. trying that. | ||
Matt-W | at some point we may need to expand this to work with out perl 6 implementations | ||
moritz_ | Matt-W: that's not specced yet | ||
Matt-W | argh s/out.other/ | ||
typing's gone completely wrong | 09:08 | ||
don't need to worry about it now though | |||
masak | Matt-W: you're thinking to large. proto is created so that we won't have to care about the future. :) | ||
s/to/too/ | |||
moritz_ | the overall idea is that we need some kind of module database | ||
masak | this is explicitly outside of today's meeting topic. | ||
moritz_ | because not all file systems support Unicode databases | ||
masak | we know PERL6LIB will go away, but that's what we have today. | 09:09 | |
Matt-W | fair enough | ||
szabgab | masak, where will it go ? | ||
Matt-W | if we write suitably cunning scripts when the change comes, it should be easy enough to swap out to the new system, whatever it is | ||
masak | any consensus about Makefile.PL? Perl 6? | ||
Matt-W | I believe it should be Perl 6 | ||
I don't know if Rakudo can do the necessary stuff yet | |||
masak | szabgab: away. | ||
moritz_ | I believe it should be Perl 6, but configurable for now | 09:10 | |
Matt-W | and it would also put more onus on the environment to allow it to find Rakudo | ||
moritz_ | or maybe the installer should just look for 'use v6' | ||
szabgab | so no control over @INC from the environment ? | ||
masak | szabgab: don't know, don't care right now. | ||
half time! | |||
szabgab | you just frightening me | ||
masak | szabgab: no, we're just building a dependencay handler that Works Today(TM). | 09:11 | |
szabgab: TimToady has said that PERL6LIB is a temp solution. | |||
moritz_ | for the reasons I stated above | ||
masak | ok, mberends has a nice Makefile.PL in Perl 6 in perl6-examples. | 09:12 | |
I think we can use that. | |||
but we cannot depend on modules from proto, so we'll have to copy it over. | |||
is that OK? | |||
moritz_ | OK for me | ||
masak | (I don't mean from a license perspective, but from a niceness perspective) | ||
Matt-W | Should be fine :) | ||
mberends renamed it the Perl 6 Makefile.PL to Configure.p6 for less confusion | 09:13 | ||
masak | I like that. | ||
proto will have to support Perl 5 Makefile.PL for the foreseeable future. | |||
but we should encourage Configure.PL. | |||
moritz_ | masak: at some point we need core modules to do the stuff we need for installing more stuff. Copying modules seems like a viable temp solution to me | ||
masak | moritz_: aye. | 09:14 | |
we'll put up big honking RAKUDO comments as always. | |||
mberends | there are some discussion points at the bottom of hello.bash, your comments please? | ||
masak looks | |||
mberends | 4. will be Perl 6, ok | ||
Matt-W | 3. will be solved out of scope | ||
when PERL6LIB is replaced | 09:15 | ||
masak | hah! I knew there was an agenda hidden somewhere. :) | ||
mberends | ok | ||
:) | |||
Matt-W | 6. Ultimately we do want a Perl 6 Test::Harness but I see no particular reason to rush on that at the moment | ||
pugs_svn | r25993 | szabgab++ | naive implementation of comparing two junctions | ||
masak | ack. | ||
75% time! | |||
it'd be fun to try and do 2, but the probalem is maintaining it. | 09:16 | ||
mberends | 1. is just some grunt work, no? | ||
masak | projects change, modules come and go. | ||
mberends: yes. we start small. | |||
your hello.bash seems a good start. | |||
mberends | masak: 2. we're here -Ofun :) | 09:17 | |
masak | what would be the ultimate goal of providing this, besides the obvious "making it easy to start a Perl 6 project"? | ||
Matt-W wonders about Windows | 09:18 | ||
mberends | to learn what the next version requires | ||
masak | Matt-W: the day we have a project developer who uses Windows... | ||
mberends | P2T1A | ||
masak | mberends: indeed. you're right. | ||
man, these cookies are great! | |||
mberends | 1 minute 2 go! | 09:19 | |
masak | I wish to thank you all for your involvement in this semi-impromptu meeting. | ||
I'm very happy about it. | |||
meeting closed. | 09:20 | ||
09:20
bacek joined
|
|||
bacek | good evening | 09:21 | |
masak: around? | |||
masak | bacek: hoy! | ||
mberends | bacek: hi | ||
bacek | masak: github.com/bacek/parrot | ||
masak: guess what? :) | 09:22 | ||
masak | sockets? | ||
bacek | masak: indeed. | ||
masak | \o/ | ||
bacek | unix only | ||
masak | to hell with other systems! | ||
bacek | s/hell/jnthn/ :) | ||
masak | uh, yes. | 09:23 | |
I meant that. | |||
bacek | mberends: hi there | ||
Matt-W | woooooooooooooooooooooooooo | ||
mberends | bacek++: that is fantastic news! | ||
masak | bacek++ | ||
I think I'll go back to my lobster for a while, so that it's web ready when HTTP::Server gets Parrot sockets. | |||
bacek | it still requires some polish and extensive testing. | 09:24 | |
masak | in due time, in due time. | ||
right now we're giddy with the news. | |||
Matt-W swoons | 09:25 | ||
baest | hello, I was trying to use the /\w ** ','/ style quantifier and it doesn't parse. Should I submit an bugreport or is that just creating cruft when they're is some skipped tests in spec showing the same? | ||
masak | baest: when in doubt, submit | 09:26 | |
baest | masak: ok :) | ||
masak | baest++ | ||
moritz_ | baest: I already wrote one the other day | 09:27 | |
baest | moritz_: oh, moritz_++ then :) | ||
moritz_ | no, moritz_--, I can't find it | ||
I probably just planned to write it, but didn't actually | |||
baest: so please go ahead :/ | 09:28 | ||
and sorry for the noise | |||
baest | moritz_: ok, fair enough :) I will | ||
mberends | bacek, I'm available to try testing in this HTTP::Daemon clone, but I may need some guidance. github.com/eric256/perl6-examples/b.../Daemon.pm | ||
mberends begins by cloning bacek's parrot | 09:29 | ||
bacek | mberends: did you check examples/io/httpd.pir in my parrot repo? | ||
mberends will look immediately | |||
bacek | and there is actually HTTP::Daemon in parrot as well. | 09:30 | |
somewhere in "runtime"... | |||
masak | whoa! | ||
there is? | |||
mberends | ok, then Rakudo HTTP::Daemon should not be far off. | ||
bacek | ls -la runtime/parrot/library/HTTP/Daemon.pir | 09:31 | |
-rw-r--r-- 1 bacek bacek 22313 2009-03-23 23:23 runtime/parrot/library/HTTP/Daemon.pir | |||
here we are. | |||
09:32
gbie left
|
|||
bacek | It is probably broken... | 09:32 | |
bacek changed op sockaddr | |||
mberends | bacek: Daemon.pir is 1156 lines, it will take a while to study :) | 09:35 | |
masak | .oO( if people would write half as much Perl 6 code as they write opinions about a logo... ) |
||
bacek | mberends: you need first 200 including comments :) | 09:36 | |
baest | masak: :), well somebody also mentioned the bikeshed on the list and it has been quiet since then... | ||
mberends | httpd.pir is only 426 lines :) | ||
bacek | :) | 09:37 | |
masak | baest: indeed. but don't bet it'll last just 'cus someone says 'bikeshed'. | 09:38 | |
baest | masak: no, I'm sure that it wont | ||
bacek | mberends: you need "sockaddr/socket/bind/accept" combo and then you can just "read" and "write" to socket. | 09:40 | |
masak | www.haskell.org/logos/results.html -- 90% of those are better than all suggestions I've seen for a Rakudo logo so far. | ||
mberends | bacek: yeah, just like in C or Perl 5. very cool. | 09:41 | |
mberends taught classes to do the same with Perl 5 | |||
moritz_ | maybe we should start a similar contest | ||
bacek | mberends: it's straight forward "C" API implementation. And I have no idea about "proper" OO style for it. | 09:42 | |
mberends | nevermind, this is *almost* Christmas for me! | ||
Matt-W | I get a little bit of Christmas every few days | ||
bacek thinking about learning NCI and bind libfcgi to Parrot | 09:43 | ||
09:46
meppl joined
|
|||
masak | rakudo: +("eeeeeeeeeeeeeeeew" ~~ /('e'|'w')*/)[0] | 09:50 | |
p6eval | rakudo 9a84c3: RESULT«17» | ||
masak submits rakudobug | 09:51 | ||
(the bug being, for those who don't have a one-hour attention span, that adding 'fr' to that string makes the match fail) | |||
mberends has attention focused on sockets and pir :) :) | 09:55 | ||
09:58
kidd_ joined
|
|||
mberends | bacek: in bacek/parrot, 'git pull && make realclean && perl Configure.pl && make' dies with src/io/socket_unix.c:103: error: x91enum_class_Sockaddrx92 undeclared (first use in this function) | 10:02 | |
bacek | mberends: oops. I forgot to add sockaddr.pmc | 10:03 | |
mberends: pull again. | |||
mberends | ok, thanks! | ||
pulled && making | 10:04 | ||
built ok. making test | 10:08 | ||
bacek | mberends: try gist.github.com/85406 | 10:10 | |
mberends | bacek: very soon, after 'make test' finishes :) | 10:11 | |
bacek | mberends: :) | 10:12 | |
10:12
NoirSoldats joined
10:15
alc left
10:16
amoc left
|
|||
mberends | bacek++: couldn't wait for tests to finish. './parrot head.www.ibm.com.pir' works! | 10:16 | |
10:16
amoc joined
|
|||
bacek | mberends: make test; ./parrot examples/io/httpd.pir and open localhost:1234/ in you browser :) | 10:18 | |
make html | |||
s/you/your/ ... | 10:20 | ||
mberends | yes! yes! yes! | ||
10:21
disismt joined
|
|||
masak | "screams of extacy were heard from the #perl6 channel as sockets support landed." | 10:21 | |
mberends | yes! yes! | ||
mikehh | rakudo (9a84c35) builds on parrot r37704 - make test/make spectest PASS - Kubuntu Intreoid i386 | 10:22 | |
mberends | it's FAST too (relative to socat and netcat)! | ||
bacek++ bacek++ | |||
masak | this all sounds very promising. | 10:24 | |
I've gotten distracted from lobster work by $WORK. foiled again! :/ | |||
moritz_ | next steps: 1) make it run on @other_platforms; 2) get it into core | 10:25 | |
3) ... | |||
4) profit! | |||
jnthn | OH HAI | 10:26 | |
masak is reminded of www.webamused.com/blogosophy/archiv...02064.html | |||
jnthn: Rakudo day! \o/ | |||
mberends plans out to put Q:PIR wrappers into Perl 6 subs and test with perl6-examples/lib/HTTP/Daemon.pm, then move the subs into 'setting'. | |||
masak | mberends++ | 10:27 | |
jnthn | Oh hey, is this the sound of Rakudo getting socket support, which I can just watch fall into place? :-) | ||
mberends++, bacek++ | 10:28 | ||
mberends suddenly feels the peer pressure of expectations | 10:29 | ||
bacek | jnthn: trac.parrot.org/parrot/ticket/496 | ||
10:30
pmurias joined
|
|||
jnthn | bacek: Ah, it's not applied yet? | 10:30 | |
bacek | wow... almost 50 kilobytes... | ||
jnthn: I'm not parrot/rakudo committer :) | |||
mberends | that's heavy lifting! | 10:31 | |
jnthn | bacek: Yeah, am reading it now. | 10:33 | |
bacek: Are the ops needed or is it possible to use it entirely with the method interface? | 10:34 | ||
bacek | jnthn: they are specified in pdd22. My initial version contained only method interface. | ||
jnthn | bacek: Ah, if they're in the PDD then that's just fine. | 10:35 | |
moritz_ | ... assuming the PDD is fine :-) | ||
bacek | jnthn: personally I dislike this ops... | 10:36 | |
moritz_ | talk to allison, maybe she can be convinced of a method-only interface | ||
jnthn | moritz_: The PDD is one she's reviewed and approved in the not too distant past. | 10:37 | |
10:37
skids left
|
|||
moritz_ | jnthn: ah, ok | 10:37 | |
jnthn | bacek: If they're in the PDD and you've implemented them, I'm inclined to apply them. :-) | ||
bacek | jnthn: ok :) | 10:38 | |
there is last op left unimplemented - "shutdown" :) | 10:39 | ||
jnthn | Gah. My patch program is such a fail... | 10:41 | |
bacek: Was this against HEAD? | 10:42 | ||
bacek | jnthn: no. r37646 | ||
But I can recreate it against HEAD. | 10:43 | ||
jnthn | bacek: Don't worry, it's only two small bits that have iddues. | ||
*issues | |||
oh, actually it was a bunch of them | 10:44 | ||
bacek: Oh, false alarm. It was the $Id... lines. | 10:46 | ||
That was all that was in the .rej files! | |||
bacek | jnthn: you should have some .rej for src/ops/ops.num | 10:47 | |
Or at least some clashes. | |||
jnthn | bacek: Yeah, I did. | 10:48 | |
bacek: But it looked like you'd just added them onto the end... | 10:49 | ||
bacek | jnthn: yes I am. | ||
jnthn | heh, fail | ||
hole in ops.num before #1245 at lib/Parrot/Ops2pm.pm line 122, <$op> line 1271. | |||
oh, the load language patch | |||
bacek | jnthn: I have new version of patch agains HEAD. | 10:51 | |
jnthn | bacek: it's fine, twiddled it | ||
bacek | Or I can send new ops.num | ||
jnthn | bacek: No, don't worry. | ||
Building now. :-) | |||
bacek | jnthn: ok :) | ||
jnthn: Are you on win32 atm? | 10:52 | ||
jnthn | bacek: Yes | ||
I'm relying on @other here having tested in on Unixy places. ;-) | |||
bacek | ah, ok :) | 10:53 | |
jnthn | ah, win32 build is fail | ||
jnthn investigates | |||
10:53
goksie_ left
|
|||
jnthn | bacek: I'm getting a bunch of things like | 10:53 | |
src\io\socket_api.c(74) : warning C4013: 'PIO_POLL' undefined | |||
Any hints? | 10:54 | ||
bacek | jnthn: yes... | ||
mberends | jnthn, do you have a winsock.h instead os sockets.h ? | ||
bacek | You have to add socket_win32 into Makefile and run "make headerizer"... | ||
mberends | *f | ||
*of | 10:55 | ||
bacek | jnthn: and actually port socket_win32.c | ||
jnthn: give me few minutes. I'll create subs for win32. | |||
jnthn | bacek: Are we going to need something in Configure to detect Win32 and emit the right line? | 10:56 | |
bacek | jnthn: no, AFAIU. | ||
jnthn | bacek: Because at the moment I'm ending up trying to compile src\io\socket_unix.c | 10:57 | |
bacek | jnthn: it's... weird. socket_unix.c protected by #ifdef | 10:59 | |
10:59
rgs left
|
|||
jnthn | bacek: eh, the #include <sys/socket.h> was not. | 11:00 | |
bacek | jnthn: gist.github.com/85422 | ||
jnthn: ouch. | |||
jnthn | bacek: Moved it. | ||
Now compile gets past there. | |||
bacek | jnthn: thanks. | 11:01 | |
jnthn | Thanks for extra patch, applied, trying compile now. :-) | 11:03 | |
11:03
pmurias left
|
|||
bacek still wonders why "almost BSD compatible socket API in win32" is not "fully BSD compatible" | 11:04 | ||
11:04
donaldh joined,
donaldh left
11:06
nigel joined,
nigel is now known as trexy
|
|||
trexy | hi | 11:06 | |
jnthn | bacek: Because Microsoft are incapable of implemetning a standard, perhaps? ;-) | ||
trexy: hi | |||
trexy | just thought I drop some ideas into the meme-stream | ||
I'm excited about new logos for Perl6 etc | |||
bacek | jnthn: probably... Same for Kerberos and other stuff... | 11:07 | |
trexy | I think I just sent an emai to perl6-language but not sure it landed | ||
so I thought I would share some ideas here | |||
I think rakudo needs a logo - but then shouuldn't there be a logo for the Perl6 | 11:08 | ||
... which is really defined by the test suite | |||
so I was thinking ....you could have a very simple/boring logo for the test suite: | |||
mberends | no, you guys don't understand. Microsoft extends (improves) the standards :P | ||
trexy | very basic mock coming ... | 11:09 | |
t10.com/perl6-test.jpg | |||
and then this basic imagery can be incorporated into more exotic implementation logos | 11:10 | ||
like: | |||
t10.com/perl6-camelia.png | |||
jnthn | bacek: OK, now I just blow up at the link stage for symbols like Parrot_io_poll_win32 | ||
mberends | trexy: it's a good start :) can you save in SVG format? | ||
jnthn | bacek: Which is where I actually have to do some work. ;-) | ||
bacek | jnthn: I expected it... :) | ||
trexy | which in turn could be incorporated into Parrot | ||
t10.com/parrot-rakudo.png | 11:11 | ||
11:11
amoc left
|
|||
trexy | I'm not a graphic designer - so really have no skillz in this department - but you have to use your imagination ;-) | 11:11 | |
bacek | jnthn: I hope that porting socket_unix to socket_win32 shouldn't be hard :) | 11:12 | |
mberends | trexy: that last one is even nicer :) | ||
trexy | you like? | ||
mberends | yes, U HAZ SKILLZ | 11:13 | |
trexy | I HAZ NOT | ||
but I hope you get the idea - of taking some iconic Perl6 thing and moving it through logos ... | |||
it could be whatever * | 11:14 | ||
;-) | |||
mberends believes art benefits from perspiration as well as inspiration | |||
jnthn | bacek: Yes, bwaha. src\io\win32.c is epic compile fail. | 11:15 | |
bacek | jnthn: :) | ||
trexy | ok - just a thought for the pool ... | 11:16 | |
bye | |||
11:16
trexy left
|
|||
jnthn | bacek: So this socket_win32.c was the one that existed from the previous impl? | 11:18 | |
bacek | jnthn: yes. | ||
11:18
BinGOs joined,
amoc joined
|
|||
bacek | jnthn: but probably copying socket_unix.c to socket_win32.c is better way to resurrect it :) | 11:19 | |
(And run %s/_unix/_win32/ in vim of cause) | 11:20 | ||
11:21
donaldh joined
11:32
elmex left,
elmex joined
|
|||
jnthn | bacek: SOCKADDR(io, remote)->sin_family = fam; | 11:32 | |
Where hare SOCKADDR and remote meant to come from? | |||
oh, I see | 11:33 | ||
#define SOCKADDR(p, t) ((struct sockaddr_in*)VTABLE_get_pointer(interp, PARROT_SOCKET((p))->t)) | |||
bacek | jnthn: it's #define in socket_unix | ||
11:40
kane_ joined
|
|||
bacek | jnthn: I'm going to sleep very soon... | 11:43 | |
jnthn | bacek: OK, I've nearly got this Win32 version compiling. | 11:47 | |
bacek | jnthn: good news | ||
afk # zzz... | 11:50 | ||
11:59
kimtaro left
12:06
msmatsko left
|
|||
jnthn | OK, compiles, and *almost* works on Win32 despite the fact that I guessed my way through the port. :-| | 12:07 | |
(My browser seems to hang without showing the page after the thing has been fully served...then when I hit Esc it shows the served page...not quite sure what would cause that.) | 12:08 | ||
mberends | jnthn, buffer flush required? | 12:09 | |
12:09
shruggar joined
|
|||
mberends | Esc on the browser stops receiving and may close the connection | 12:10 | |
12:12
ruoso joined
|
|||
ruoso | Hello! | 12:13 | |
12:13
skids joined
|
|||
jnthn | mberends: Yeah, I figure that's what Esc is doing. | 12:14 | |
oh arse, I had a couple of other local changes I just ci'd by accident. | |||
12:15
kolibrie left,
kolibrie joined
|
|||
jnthn | mberends: OK, the sockets stuff for Parrot from bacek++ is applied | 12:17 | |
mberends | v.cool | ||
jnthn++ | |||
ruoso | jnthn++ indeed... and bacek++ as well... | 12:18 | |
jnthn, is it implemented in a simple blocking fashion? or is there some event-loop intelligence added? | 12:19 | ||
12:20
rgs joined
12:21
icwiener joined
|
|||
jnthn | Well, bacek++ really, I just did a crappy Win32 port and applied it. ;-) | 12:21 | |
ruoso: I think it's nothing immensely clever, though I know async IO is planned for Parrot and it already has an event loop and scheduler. | 12:22 | ||
ruoso | jnthn, cool... | 12:23 | |
jnthn | mberends: If you start adding this to the setting, please do bump up the version of Parrot that is required for Rakudo. | 12:35 | |
mberends: That just means editing the number in build/PARROT_REVISION. | |||
mberends | don't worry, I have no commit access anyway, so I shall probably mail a patch to rakudobug. If and when it ever works ;) | 12:38 | |
ruoso still wonders if SMOP should try to implement interpreter threads, or if it should simply go to OS threads... | 12:39 | ||
mberends | ruoso, aren't OS threads non portable? | 12:40 | |
ruoso | mberends, only if you expose the use of a specific threads implementation | 12:41 | |
it works ok as long as you abstract it from the user, so each port can provide its specific version | |||
jnthn | ruoso: AFAIU, you almost certainly want to use OS threads. Otherwise the kernel scheduler won't be able to distribute them over multiple execution units. | 12:43 | |
ruoso | jnthn, the other option would be to implement a scheduler myself, ala POE | 12:44 | |
jnthn | I don't see how that would actually deal with the issue I mentioned. | 12:46 | |
Unless you do plan to schedule onto multiple underlying kernel threads. | |||
ruoso | yes... that would be the plan... as erlang does | ||
ruoso people use to say that too-much-flexible languages allow the user to write bad code... but I've never seen such an ungly code written in Perl.. www.pirnat.com/mike/2008/11/25/pyth...-it-wrong/ | 12:47 | ||
but in fact.. I'm not sure I can avoid writing a scheduler of some sort... Async IO doesn't fit well with OS threads... | 12:48 | ||
I mean.. with "using only OS threads" | |||
jnthn | Yes, perhaps. | 12:49 | |
Well, as I said, Parrot has an event scheduler too, but that interacts with threads already IIRC. | |||
I didn't play with it much. | |||
ruoso | maybe I should have a "worker thread" pattenr | 12:50 | |
and a scheduler that simply designates a worker thread to assume a task | |||
that's certainly easier than having a full scheduler | 12:51 | ||
12:51
kimtaro joined
|
|||
ruoso | and probably fits better with Perl 6 | 12:51 | |
and then the user can have a command-line switch to indicate the min/max number of worker threads... | 12:53 | ||
jnthn is a tad bewildered that he fails a bunch of multi-dispatch tests after moving List.uniq to the setting... | |||
ruoso trying to figure out how to make... for =$boundaddr -> $conn { $conn.say: "Hello" } to autothread... | 13:01 | ||
PerlJam | Are any concurrency mechanisms exposed in rakudo yet? | 13:03 | |
skids | You mean explicit asyncs and forks? No. pugs has asyncs, IIRC. | 13:06 | |
baest | skids: yes, it does | ||
skids | Mainly because there are 3 RFCs, a preliminary attempt at A17 from years ago, and no consensus that I have been able to find yet on a thread/async API. | 13:08 | |
Though I will keep searching away. | |||
baest | I think the pugs one was almost identical to haskell, but I'm not sure and don't know haskell. But I had a small program with async and atomically blocks | 13:09 | |
PerlJam | Assuming there's a concensus on how to do it, that might be a good GSoC project for someone. | 13:10 | |
(I'm sure we can come up with *a* way and let a gsoc-er prototype it) | |||
skids | Yeah, well I might be able to suggest a consensus API as a shooting galley target, but I need a full understanding of context/lexpad/"stack" behavior first. | 13:11 | |
And that seems to be implementation specific and subject to flux ("We moved thing X into/out of the lexpad") | |||
I think there is little debate, though, of what a "fork" should do. | 13:13 | ||
So that might be a good GSoC thing. | |||
PerlJam | yeah, but it also might be way too simple :) | ||
skids | Ahh, but I have managed to complicate it quite a bit. | 13:14 | |
Nothing here is even to the point that I feel like sticking up for it myself yet, | |||
but my ongoing scribblings for S17 can be found: www.abrij.org/~bri/S17.tempurl.pod | 13:15 | ||
I'm more happy with the fork API than the rest of it. | |||
jnthn | ruoso: A recent spec change means that pointy blocks to not auto-thread. Just routines. | 13:19 | |
skids | So those "thread-emulated forks" could be quite challenging. | ||
jnthn | (That is, anything that is a subclass of Routine) | 13:20 | |
PerlJam | jnthn: so I'd need a change in syntax to get my for loops to thread? | 13:21 | |
jnthn | ruoso: Actually the real idfference is just in the default paramter type. You could in fact feasibly make a pointy block auto-thread. | ||
PerlJam: Yeah, just do like for @foo -> Any $x { } | |||
The Any then causes auto-threading. | |||
The change is that the default parameter type is Object in this case. | |||
PerlJam | i was kind of hoping for magic :) | ||
jnthn | (And for routines, it's Any.) | ||
Well, the thing is that you tend to use pointy blocks in a scope where you know whether junctions are expected or not. | 13:22 | ||
That is, you either created them in your current routine or you marked a paramter in the routine as expecting them. | |||
I think that was the language design argument. | |||
rgs | small question (can't find the answer in the synopses). Can one use "when" as a postfix statement modifier ? | 13:24 | |
PerlJam | rgs: yes | ||
rgs | woot | ||
13:25
ejs2 joined
|
|||
PerlJam | it's a tad bothersome that you can't find the answer to that question though. What synopses did you look in? | 13:27 | |
skids suggests a "hey this isn't in the synopsis" wiki bullet list page | 13:30 | ||
13:31
FurnaceBoy joined
13:35
ejs1 left
|
|||
PerlJam | skids: good idea | 13:39 | |
13:45
Khisanth left
13:59
disismt left
14:00
Khisanth joined
14:05
riffraff joined,
pmurias joined
14:06
disismt joined
14:08
aindilis left
14:09
aindilis joined
|
|||
ruoso | jnthn, I didn't mean autothread on Junctions... I mean autothread on async IO | 14:13 | |
like... | |||
for =$boundaddress --> $socket {...} | |||
this would autothread on each accept... | 14:14 | ||
jnthn | ruoso: As in, spawn a new thread? | ||
ruoso | not necessarly an OS thread | ||
but it wouldn't block new accepts | |||
jnthn | Feels rather like we're twisting for a bit too bar there. | 14:15 | |
moritz_ | agreed | ||
I don't think we need new syntax for non-blocking/async IO | |||
ruoso | I don't mean a new syntax | ||
jnthn | for =$boundaddress -> $socket { async { ... } } # probably is fine | ||
moritz_ | the --> looked like new syntax to me :-) | 14:16 | |
ruoso | ah... sorry.. | ||
it's the feed operator that is ==> | |||
it always gets me confused | |||
jnthn | If that was meant to be a feed operator then I expect you don't need the for. | 14:17 | |
ruoso | no it wasn't... | ||
but I guess... | 14:18 | ||
$boundaddress ==> -> $connection { ... } | |||
std: $boundaddress ==> -> $connection { ... } | |||
p6eval | std 25993: OUTPUT«Potential difficulties: Variable $boundaddress is not predeclared at /tmp/aSv6DGJ5A0 line 1:------> $boundaddress ==> -> $connection { ... }ok 00:02 37m» | ||
ruoso | cool... it works.. | 14:19 | |
that could autothread ;) | |||
but my question wasn't really syntatical... | |||
I'm wondering how to turn transactional programming into async IO programming without the user having to worry about | 14:20 | ||
so if you write a normal code as if it performed blocking IO | 14:21 | ||
it could be done by the interpreter using async IO | |||
frioux | maybe you could look at JS libraries | ||
because ajax is a form of io (obviously) and is done asyncronously | |||
although with js it's done with event handlers, so it's not really transparent | 14:22 | ||
moritz_ | events are good :-) | 14:23 | |
frioux | does perl 6 specify events at all? | ||
moritz_ | it will | 14:24 | |
ruoso | frioux, that's my point actually... I'd like code wrote as synchronous to work assynchronously | ||
so the interpreter can preemptively execute other tasks | |||
frioux | ruoso: Yeah, I realized that after I mentioned the events | ||
ruoso | I somehow think Control Exceptions are the solution here... | 14:25 | |
skids | It's a coroutine :-) except the caller is the scheduler/IO loop. | ||
frioux | ruoso: you know, I bet it could be done similarly to laziness | 14:27 | |
ruoso | skids, fwiw, SMOP is completely coroutine-based... you might want to take a look, since you're so interested in that subject... | ||
frioux | so you do something like: my $foo = get-internet-string, and it does that and continues execution, and then when it get's to $foo it blocks if it doesn't have that yet, or just keeps going if it already does | 14:28 | |
skids | ruoso: Basically coros are the only sane way to handle the complex state logic in many network protocols. | ||
I have read some of the SMOP stuff, yes. | |||
14:29
hercynium_ joined
|
|||
ruoso | frioux, I somehow think that all the lazyness will need to be expressed in terms of different threads of execution... | 14:29 | |
14:29
exodist joined
|
|||
jnthn | std: my $i; sub baz() { my $x = START { $i++ }; say $x } | 14:29 | |
14:29
pmurias left
|
|||
p6eval | std 25993: OUTPUT«ok 00:02 35m» | 14:29 | |
14:29
pmichaud joined
|
|||
ruoso | that can be allocated in different worker threads... | 14:29 | |
I think we need an Iterator::Observable role... | 14:30 | ||
skids | What would that add? | 14:31 | |
ruoso | has @.observers | ||
has Iterator::Observer @.observers | |||
skids | You mean like a condition wait? | 14:32 | |
ruoso | no... like an event | ||
skids | So the iterator sends events when it has data queued? | 14:33 | |
ruoso | yeah... | ||
but it would be the scheduler that would observe that... | 14:34 | ||
not the consumer of the iterator | |||
if you try to consume from an iterator that has no data but hasn't ended... | |||
it will throw a ControlExceptionWouldBlock | |||
skids | Oh, so like IO signals extended to code execution checkpoints? | 14:35 | |
ruoso | yes | ||
then this control exception is catch by the scheduler... which will put that continuation in the "waiting" pool | |||
and once data is available, it would receive the event | 14:36 | ||
and would be able to try to resume that continuation (if any worker thread is available | |||
actually, not "waiting" pool... but "blocked" pool | 14:37 | ||
it would go to "waiting" if no worker thread is available | |||
and in "running" when some worker thread is executing | 14:38 | ||
does it sound sane? | 14:39 | ||
14:41
ron_ joined
|
|||
skids | Sorry visit from Mr. manager. | 14:44 | |
ruoso | the same could happen when a non-blocking-infinite-data-producer reaches the buffer limit of an iterator | ||
ron_ | rakudo: my @a; if ('ab' ~~ /(a)(b)/) {my @a = @();say 'in if block: ', @a.join('/')} say 'after if block: ', @a.join('/') | 14:45 | |
p6eval | rakudo 9a84c3: OUTPUT«Statement not terminated properly at line 1, near "say 'after"current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)» | ||
ruoso | basically... iterator is the "unix pipe" of Perl 6 | ||
and the scheduler needs to be aware of that | |||
skids | Well that for sure. | ||
ron_ | rakudo: my @a; if ('ab' ~~ /(a)(b)/) {my @a = @();say 'in if block: ', @a.join('/')}; say 'after if block: ', @a.join('/') | ||
p6eval | rakudo 9a84c3: OUTPUT«in if block: a/bafter if block: » | ||
14:46
justatheory joined
|
|||
pugs_svn | r25994 | jnthn++ | [t/spec] Fudge S04-closure-triats/start.t for Rakudo. | 14:46 | |
ron_ | The "after block" output would seem to be off. Yes/No? Reported already? | 14:47 | |
pugs_svn | r25995 | jnthn++ | [t/spec] Tests for renaming parameters in the signature. | ||
pmichaud | why do you think it's off? | ||
it looks correct to me. | |||
skids | I was kinda wondering when I was first looking at coros whether a model where IO is just a coro that throws events unhandled up to the top level, where there's a default action (that is not just for errors.) | 14:48 | |
ron_ | Why does @a have the value for @() in the block but forgets it outside? | ||
pmichaud | because you declared it with 'my' inside the block, perhaps? | ||
moritz_ | aye, there are two varaibles named @a in that short program | 14:49 | |
pmichaud | masak: ping | 14:51 | |
ron_ | sorry - looked too similar to another problem and I missed the second my .. will keep looking | ||
pmichaud | ron_: no problem. :-) | 14:52 | |
jnthn about to add another 16 passing tests | |||
moritz_ | RT #64188 is bogus | 14:53 | |
14:53
nihiliad joined
|
|||
pmichaud | yes, I was just looking at that one :-) | 14:53 | |
and about to ask that question | |||
moritz_ | rakudo: ?("freeeeeeeeeeeeeeeew" ~~ /('e'|'w')*/) | ||
p6eval | rakudo 9a84c3: RESULT«Bool::True» | ||
moritz_ | I'm already writing the reply | ||
pmichaud | okay, thanks. | ||
ruoso | I think I'm going to start adding ControlExceptionWouldBlock, Iterator::Observable, Iterator::Observer to S07... waiting for others to comment... | 14:55 | |
jnthn | pmichaud: I tried moving uniq to the setting and hit upon a whole bunch of..."fun". | 14:56 | |
pmichaud: So backed off that one for now. | |||
Essentially, Junction using List.uniq was exposing it though. | 14:57 | ||
pmichaud | jnthn: I don't have an issue with revising Junction to not use List.uniq | 15:00 | |
jnthn | pmichaud: Yeah. In hindsight though, I also had to do some stuff to register Parrot's MultiSub and write a Scalar for it (and Perl6MultiSub for that matter) | ||
pmichaud | especially since Junction is treated more like a native type than anything else (if I've read the latest spec updates correctly) | ||
ruoso | pmichaud, jnthn, if junction is native now, you can use a lowlevel parrot type... | ||
you can even have junction in a pmc of its own | 15:01 | ||
jnthn | Since they happen to inherit from Parrot's ResizalbePMCArray. Which we register with List. Which really gets us into all kinds of trouble. | ||
15:01
ejs1 joined
15:04
justatheory left
|
|||
dalek | kudo: f11ad52 | jnthn++ | (3 files): Implement START statements (not terms yet). Add S04-closure-traits/start.t to spectest.data. |
15:05 | |
kudo: 87068ef | pmichaud++ | docs/spectest-progress.csv: spectest-progress.csv update: 329 files, 7367 passing, 0 failing |
|||
15:11
ejs2 left,
Tene joined
15:13
icwiener left,
icwiener_ joined
15:20
donaldh left,
donaldh joined
15:22
Tene_ left
|
|||
jnthn | moritz_: Thinks this ticket can be closed now? rt.perl.org/rt3/Ticket/Display.html?id=56226 | 15:22 | |
moritz_ | jnthn: aye | 15:23 | |
jnthn | moritz_: Done. | 15:24 | |
.oO( We're actually going to hit 300 tickets soon... ) |
|||
moritz_ | jnthn: from top or from bottom? :-) | 15:25 | |
jnthn | From below | ||
15:27
disismt left
15:28
disismt joined
|
|||
pugs_svn | r25996 | jnthn++ | [t/spec] Correct assuming and MMD used together test. Since we didn't declare a proto and multi-dispatch doesn't operate on named arguments, the test wasn't going to work like that. | 15:30 | |
jnthn has S06-currying/assuming-and-mmd.t passing locally. :-) | 15:31 | ||
pmichaud | I'm working on tickets now. | 15:32 | |
we have a lot of duplicates. | |||
jnthn | pmichaud++ | ||
pmichaud: Yes, I can imagine that. | |||
masak | pmichaud: pong. | 15:33 | |
masak backlogs | |||
pmichaud | masak: nm, moritz++ answered what my ping was about. | 15:34 | |
masak | oki | ||
pmichaud | (it was about #64188) | ||
masak | I was away, studyuing Mandarin. | ||
jnthn | masak: ni hao ;-) | ||
masak | jnthn: nin hao. :P | ||
jnthn | masak: OH RLY? | ||
masak | (您好, I should say.) | 15:35 | |
jnthn: well, both work, of course. | |||
differ only in formality. | |||
jnthn | masak: Ah, OK. | ||
masak: I never really studied much Chinese at all. :-( | |||
masak | jnthn: it's hard. :/ but sometimes really rewarding. | ||
jnthn | masak: Oh, I can imagine. | 15:36 | |
masak | and I figure, if three-year olds can speak it, it must be possible for me to learn as well. | ||
moritz_ | ... in three years *SCNR* | ||
jnthn | I have various Korean friends here...pondering trying to learn a bit of that. | ||
15:37
grwi joined
|
|||
masak | jnthn: at least the writing system. it's the best in the world. | 15:37 | |
jnthn | Yeah, they told me it was very logical. | ||
masak | extremely so. | 15:38 | |
15:38
Tene_ joined
|
|||
masak | it was designed by the enlightened king's advisors in the 17th century, IIRC. | 15:38 | |
15:38
grwi left
15:43
ron_ left
15:50
Tene left
|
|||
jnthn | rakudo: my $x = True; $x &&= False; say $x; | 15:51 | |
p6eval | rakudo 87068e: OUTPUT«0» | 15:52 | |
dalek | kudo: de86e8a | jnthn++ | (2 files): Make .assuming work on multi-methods. Add the now-passing S06-currying/assuming-and-mmd.t to spectest.data. |
15:58 | |
kudo: f27c7ea | jnthn++ | : Merge branch 'master' of [email@hidden.address] |
|||
masak | moritz_: re #64188: and here I thought that * and + were greedy. | 16:00 | |
moritz_: oh! | 16:01 | ||
moritz_ | masak: they are. | ||
masak | they are, but they match too soon. | ||
moritz_ | right | ||
and as soon as match is found, it doesn't try different start positions | |||
pugs_svn | r25997 | jnthn++ | [t/spec] Add a test for &&= with True and False, to make sure we don't regress on RT#63396. | 16:02 | |
16:02
Kisu left
|
|||
moritz_ | which is "works as designed", although I daresay there's nobody who hasn't tripped over it | 16:02 | |
but the alternative would be even more scary | |||
masak | right. | ||
I'll reject the bug. | 16:03 | ||
moritz_ | didn't I do that already? | ||
jnthn looks at a ticket | |||
"it's the spirit of the bug that counts, not the letter" | |||
masak | moritz_: oh, you did. | ||
jnthn: meaning what? that there's still some sense to be had from that ticket? | 16:04 | ||
jnthn | masak: You wrote it in a ticket. :-P | ||
masak | ah. :) | 16:05 | |
wise words. :P | |||
moritz_ | when you are quoted and don't remember you own words... then you know you're famous :-) | ||
masak | 哈哈 | ||
16:06
REPLeffect joined
|
|||
jnthn is happy that he can see Chinese characters on IRC now :-) | 16:06 | ||
masak | hanzi to the people. | 16:07 | |
jnthn wonders how hard it'd be to get us parsing indirect method syntax. | |||
pmichaud | jnthn: I suspect not too difficult.... but there's going to be some major parser refactors soon anyway | ||
jnthn | pmichaud: Ones that'd make it a waste of time putting it in now? | 16:08 | |
moritz_ | when we have LTM? or sooner? | ||
pmichaud | jnthn: if it's easy to put them in now, we could probably do it. | ||
jnthn: I know that we're going to have a major refactoring of block handling (again) | |||
masak could imagine the Rakudo mascot being a toad | 16:09 | ||
jnthn | Ugh. | ||
pmichaud: Why this time? | |||
pmichaud | because the grammar changed significantly | ||
jnthn | Ah. | ||
pmichaud | there's a new <blockoid> construct in STD.pm | ||
which also does some lexical and pad handling | 16:10 | ||
similar to what we do with $?BLOCK_OPEN now | |||
in the settings code, I'm thinking that we should have parens on most/all of the argument-less methods. yes/no ? | 16:11 | ||
jnthn looks at the end of token blockoid and is terrified | |||
pmichaud | the end of blockoid is handling the implied statement terminator stuff. | ||
jnthn | (settings parens) Yes, probably. | 16:12 | |
pmichaud | it's not too far from what I'm currently doing in rakudo's grammar. | ||
jnthn | OK. | ||
jnthn wishes he had an install of STD.pm so he could see how it parses print $*OUT: "lolz" | |||
pmichaud | i have one -- just a sec. | 16:13 | |
jnthn | I'm thinking it's done in methodop | ||
Thanks | |||
oh, maybe not | 16:14 | ||
pmichaud | (updating, rebuilding) | 16:17 | |
16:17
felipe left
|
|||
pmichaud | jnthn: it's in token arglist | 16:20 | |
jnthn: basically there's a $*INVOCANT_OK flag that says whether we're allowing an invocant in the arglist, and we scan the delims to see if any of them are a colon | 16:22 | ||
jnthn: short answer: not all that easy to implement at the moment. | |||
jnthn | pmichaud: Yeah, looks a bit tricky. | ||
I'll leave it for now then. | |||
pmichaud | another place where we probably want to get support for contextual variables. | 16:23 | |
jnthn | Aye. | ||
pmichaud: Ah, while I remember. japhb was asking about use Foo:from<parrot> stuff. | |||
Really wants to work on OpenGL libs and using them from Rakudo. | |||
pmichaud | I still want/need to get the PCT changes in place to support that. | ||
that's on my list for this week. | |||
jnthn | OK, that was my gues. | ||
*guess | 16:24 | ||
Oh, great. :-) | |||
japhb hears his name ... | |||
PerlJam | pmichaud: where is LTM on the list? :) | ||
pmichaud | PerlJam: I still need to get the other pge/pct refactors in place first. | ||
japhb | This week? YAY! | ||
japhb would do a happy dance, if he wasn't completely exhausted. | |||
pmichaud | japhb: the pct refactors are on my list; I don't know where :from<parrot> will fall in that. | ||
I've also got to figure out where Parrot is headed with load_language stuff (since it's related) | 16:25 | ||
japhb | OK | ||
well, suffice it to say that I'm damned excited at even a decent chance of seeing it soon. | 16:26 | ||
16:26
ron_ joined
|
|||
pmichaud | yes, it's likely to occur reasonably soon. Then we get to figure out a bunch of other language interop issues. | 16:26 | |
ron_ | rakudo: my $s = 'abcZdef'; my @a; if $s ~~ /(Z)/ {@a = @();$s = 'NOMAT';}; say 'with str change: ', @a; | 16:27 | |
p6eval | rakudo f27c7e: OUTPUT«with str change: A» | ||
ron_ | rakudo: my $s = 'abcZdef'; my @a; if $s ~~ /(Z)/ {@a = @();}; say 'no str change: ', @a; | ||
p6eval | rakudo f27c7e: OUTPUT«no str change: Z» | ||
pmichaud | ron_: yes, that's a known bug. The match objects are tied to the original string. | 16:28 | |
I'm not quite sure what to do about it yet. | |||
although it will likely fix itself when I refactor PGE to be cursor-based. | |||
ron_ | Thx - was working on match objects for split and will look to a different approach I guess ... | 16:29 | |
16:38
felipe joined
|
|||
pmichaud | does a method without a parameter list get an implicit @_ the way a sub does? | 16:45 | |
jnthn | pmichaud: I'm not aware of anywhere that the synopsis says it does. | 16:48 | |
pmichaud: But OTOH it doesn't say that methods differ from subs in that respect either. | |||
Out of orthogonality, I'd expect they do. | |||
pmichaud | jnthn: yeah, that's what I've been wondering | ||
jnthn | What do we do now? | ||
pmichaud | I suspect we treat it like a sub | 16:49 | |
(assuming that parameter-less subs get @_ by default now) | |||
16:49
Psyche^ joined
|
|||
jnthn | I'm not even sure we're giving them @_ by default. | 16:49 | |
rakudo: sub foo { say @_.elems }; foo(); foo(1); foo(1,2,3); | |||
p6eval | rakudo f27c7e: OUTPUT«013» | ||
pmichaud | we did at one time -- I don't know if that made it in the parameter refactors. | ||
jnthn | rakudo: class X { method foo { say @_.elems } }; X.foo(); X.foo(1); X.foo(1,2,3); | 16:50 | |
p6eval | rakudo f27c7e: OUTPUT«013» | ||
pmichaud | rakudo: class X { method foo() { say 'yes'; } }; X.foo(); X.foo(1); X.foo(1,2,3); | 16:51 | |
p6eval | rakudo f27c7e: OUTPUT«yestoo many arguments passed (3) - 1 params expectedcurrent instr.: 'parrot;X;foo' pc 166 (EVAL_21:71)» | ||
PerlJam | It's interesting that self is out of band in @_ for the X.foo() case | 16:52 | |
jnthn | Good. | ||
PerlJam: From a Perl 5 POV, that's maybe weird. | |||
PerlJam: From a Perl 6 one, it kinds fits though, in my head. | |||
pmichaud | it fits for me. | ||
method foo() is equivalent to method foo($self:) | 16:53 | ||
jnthn | Right. | ||
ron_ | pmichaud: I took a look around on rt and trac for a ticket on match objects being tied to the original string. Are you pretty sure there is a ticket? Should there be one? | ||
PerlJam | and so is method foo { ... } | ||
(apparently) | |||
jnthn | Stupid question - how do you make a copy of a string in Parrot? | ||
pmichaud | ron_: I don't know if there's a ticket for it -- but it's a known bug. | 16:54 | |
jnthn: clone | |||
jnthn | (Since another routine is using it descructively) | ||
pmichaud: Oh yeah! | |||
pmichaud | PerlJam: well, thus my question -- what does method foo { ... } mean? | 16:55 | |
16:56
jhorwitz joined
|
|||
PerlJam | I think the currently-implemented-in-rakudo meaning works. (at least I can't think of a good reason you'd want it another way, but that's may be lack of imagination on my part right now) | 16:59 | |
s/t's/t/ | |||
pmichaud | afk # lunch | 17:04 | |
17:05
Patterner left,
Psyche^ is now known as Patterner,
ron_ left
|
|||
pugs_svn | r25998 | jnthn++ | [t/spec] Fudge S11-modules/import.t for Rakudo. | 17:15 | |
jnthn | Question for anyone who knows on S11. It suggests there is a :DEFAULT tag. | 17:17 | |
dalek | kudo: a51a0da | jnthn++ | src/builtins/eval.pir: Fix importation of modules in nested namespaces. |
||
kudo: ce7ff26 | jnthn++ | t/spectest.data: Add S11-modules/import.t to spectest.data. |
|||
jnthn | sub bar is export(:DEFAULT :others) {...} # :DEFAULT, :ALL, :others | 17:18 | |
Which makes me thing that if you juse use the module that this is in, without specifying any tags, you'd get what was in :DEFAULT. | |||
However, elsewhere, it suggests you get :ALL | 17:19 | ||
From S11: | |||
module Foo { | |||
sub foo is export {...} | |||
...then later... | |||
The C<Foo> module will export C<&foo>] | |||
17:19
masak left
|
|||
jnthn | ... | 17:19 | |
by default; | |||
Which seems to suggest that you'd actually have the :ALL tag imported by default. | 17:20 | ||
(Since foo in the example is not tagged as :DEFAULT) | |||
PerlJam | I think perhaps sub foo is export { ... } is slight sugar for sub foo is export(:DEFAULT) { ... } | 17:21 | |
jnthn | That's not what S11 says though. :-| | ||
sub bop is export {...} # :ALL | |||
sub foo is export(:DEFAULT) {...} # :DEFAULT, :ALL | |||
PerlJam | hrm. | ||
jnthn | And for multis it makes the following notes: | 17:22 | |
Any proto declaration that is not declared "my" is exported by default. | |||
Any multi that depends on an exported proto is also automatically exported. | |||
When there is no proto for a multi, the autogenerated proto is assumed | |||
to be exportable. | |||
17:24
nbrown left
|
|||
jnthn | Which gave me the impression that multis got :DEFAULT | 17:24 | |
ruoso | jnthn, yes... I think S11 is just wrong... plain "is export" doesn't include in :DEFAULT | ||
and plain "use" doesn't include :ALL | |||
jnthn | ruoso: I'd like to think it's that way. | ||
PerlJam | submit a doc patch to make it so :) | 17:25 | |
17:25
cdarroch joined
|
|||
ruoso | jnthn, otoh, we could have :DEFAULT being set as a default in "is export" | 17:25 | |
jnthn | ruoso: True. | ||
ruoso | which means that a bare "is export" is the same as "is export(:DEFAULT)" | ||
jnthn | ruoso: Well, presumably :ALL, :DEFAULT | ||
ruoso | but "is export(:SOMETHING_ELSE)" doesn't include :DEFAULT | ||
jnthn, yes yes... but I think ALL is given, you don't have a way to unset it | 17:26 | ||
jnthn | Oh, but ALL gets them always, so yes, see your point. :-) | ||
It seems multis get an exception though. | |||
And are in DEFAULT. | |||
If you just say "is export" | |||
ruoso | my point is... that can be made to everythign... | 17:27 | |
the code inside trait_auxiliary:<is>('export',&code) | |||
actuallly, trait_auxiliary:<is>('export',&code, *%tags) | |||
jnthn | Oh, for sure. | ||
I'm just saying, is that really a good idea. | |||
And the synopsis says otherwise. | |||
ruoso | does an if !%tags { %tags<DEFAULT> = 1 }; | ||
jnthn | Sure, we could do that. | 17:28 | |
It's just contradictory with S11. | |||
(As is the other stance though.) | |||
ruoso | S11 is contradictory with itself, so... | ||
jnthn | So we gotta pick one or the other. | ||
My feeling is we say that "sub bop is export {...} # :ALL | |||
" is right | |||
And add in the exception for multis | |||
Which get :DEFAULT anyway. | |||
Because multis are not really so dangerous. | 17:29 | ||
PerlJam | why should multis get :DEFAULT? | ||
ruoso | the exception looks weirder to me... | ||
jnthn | PerlJam: It's just what S11 seems to suggest. | ||
PerlJam: But it makes some sense in that presumably your multis that you are exporting mostly respond to types that your module defines. | 17:30 | ||
PerlJam | I think that's wrong though. | ||
ruoso | I think that was written with @EXPORT_OK in mind | ||
jnthn | So basically the suggestion boils down to, plain is export always means is export (:DEFAULT) ? | 17:31 | |
17:32
shruggar left,
donaldh left
|
|||
ruoso | basically... :DEFAULT is the default | 17:32 | |
jnthn | OK. | 17:33 | |
Then S11 just needs patching to say that. | |||
17:33
ejs2 joined
|
|||
jnthn | And then that resolves the contradictions. | 17:33 | |
17:33
ejs2 left
|
|||
ruoso | but makes :ALL kinda useless | 17:33 | |
jnthn | ruoso: No, not really. | 17:34 | |
Because is export(:other) ends up in ALL but not in DEFAULT | |||
ruoso | right... | ||
jnthn | So you can use Foo :ALL; | ||
If you want everything possible imported. | |||
ruoso | but if you want to export something not by default | ||
you have to say | |||
sub foo is export(:ALL) | |||
jnthn | Surely if you wanted something to be exported not by default though, you'd be giving it another tag? | 17:35 | |
sub foo is export(:thingy) | |||
PerlJam | well, sub foo is export( :some-other-tag ) | ||
right. | |||
jnthn | So I don't see is export(:ALL) being so common. | ||
Plus it means what it says. :-) | 17:36 | ||
PerlJam | But what happens with multis? Can you export one variant and not another? | ||
jnthn | I doubt that's going to work out if you try it. | ||
Maybe we could make it work... | 17:37 | ||
ruoso | PerlJam, I think it should be an error to have different visibility for candidates of the same multi | 17:40 | |
the only thing they have different is the signature and the code block | |||
jnthn | Aye, we should probably either make it work or make it an error. | 17:41 | |
PerlJam | ruoso: I think so too but I can't convince myself enough that it's *not* useful to say that's how it should be. | ||
ruoso | PerlJam, it simply doesn't work | 17:42 | |
because the stored container holds all the candidates | |||
17:42
ejs1 left
|
|||
ruoso | you don't get &foo for just that candidate | 17:42 | |
at least not in the same lexical scope | |||
PerlJam | not if "is export" controls visibility of the candidates for dispatch | 17:43 | |
jnthn | ruoso: You could feasibly grab a particular candidate though, create Multi containers in the various export namespces, and push them into the ones wehre they're exported. | ||
ruoso | hmm.. I was asssuming the export packages were always holding aliases to something defined in the actual module | 17:44 | |
jnthn | ruoso: Yeah, as defined they are. | ||
ruoso: I'm just saying there is a way we could make it work if it were spec'd that we should. | |||
ruoso | right... | ||
so let's spec otherwise ;) | 17:45 | ||
jnthn goes to change Rakudo's export in light of discussing this | 17:46 | ||
Patch to S11 would be cool if anyone has the repo checked out... | |||
ruoso has | |||
jnthn | ruoso: I guess it's just | 17:47 | |
- sub bop is export {...} # :ALL | |||
+ sub bop is export {...} # :ALl, :DEFAULT | |||
17:48
grwi joined
|
|||
pugs_svn | r25999 | ruoso++ | [spec/S11] :DEFAULT is default in "is export" | 17:49 | |
17:49
ejs joined
|
|||
PerlJam | So ... if we're going to export a multi ... should the is export be on the proto or on (at least one of) the sub defs? | 17:50 | |
17:51
grwi left
|
|||
ruoso | I'd say "all should have the same visibility declaration" | 17:51 | |
jnthn | PerlJam: multis get is export by default, though | 17:52 | |
17:52
disismt left
|
|||
jnthn | So you'd have to write an explicit one to make things interesting. | 17:52 | |
17:52
disismt joined
|
|||
PerlJam | so ... how do you *not* export a multi then? | 17:52 | |
jnthn | Make sure they're all marked is export(:other) | ||
PerlJam | let me rephrase, how do you mark a multi as not-exportable? | 17:53 | |
jnthn | my multi ... | ||
ruoso | hmmm... | 17:54 | |
how did we get there? | |||
jnthn | S11: Any proto declaration that is not declared "my" is exported by default. | ||
ruoso | right... but.. how did we get to that spec? | 17:55 | |
what's wrong with Foo::Bar::baz() being a multi? | |||
jnthn | Well, I guess somebody sat down and thought about it and decided that's what the spec would be. :-P | ||
ruoso | I mean... why does it force me to export baz? | ||
PerlJam | this is one of those areas where it seems we have a strange mix of implicit and explicit behavior | 17:56 | |
jnthn | It doesn't, but if you're not going to export it that probably means you want to encapsulate it, which probably means you want to use "my" | ||
PerlJam | jnthn: so what does "my sub foo is export" mean? | ||
jnthn | IIRC we used to have to write is export on multis. And then it was changed. | ||
PerlJam | jnthn: is it private because of the my or does the export override that? | 17:57 | |
jnthn | PerlJam: It's exportable, but you can't fall it as Foo:Bar::foo | ||
ruoso | it seems like "my/our" inconsistency again... just like in methods | ||
PerlJam | ruoso: my thoughts too. | 17:58 | |
jnthn | ruoso: It had occured to me that in answer to your "what about modifying the outer multi" the other day, btw, we coulda used augment multi... | ||
17:58
M_o_C joined
|
|||
jnthn | (just as a btw) | 17:58 | |
pmichaud | with this change to Rakudo/S11, does that mean we can get rid of all of the :DEFAULT tags in Test.pm ? | ||
jnthn | pmichaud: Yes | ||
pmichaud | \o/ | ||
jnthn | pmichaud: Right after I ci the Rakudo change. | ||
ruoso | (but I'd wait for TimToady, too see if he doesn't revert that commit) | ||
pmichaud | that was something I noticed while on vacation and said "THAT's gotta change." | 17:59 | |
jnthn | pmichaud: Yeah, I was thinking...the spec says it but it feels wrong. | ||
pmichaud | also, we should probably start moving Test.pm into settings anyway. | ||
ruoso | jnthn, hmmm... after thinking about it... I realized we don't need yet another monkey patch mechanism ;) | 18:00 | |
18:00
skids left
|
|||
jnthn | FWIW, I would be happy enough to go back to needing "is export" on multis. | 18:00 | |
ruoso supports that idea | |||
PerlJam | me too | ||
ruoso | and we have the meaning of "my/our" consistent... | ||
jnthn | ruoso: My question still stands though on lexical multi stuff. Do we still ahve to consider candidates in outer scopes? | 18:01 | |
PerlJam | Are protos required for multis or not? | ||
ruoso | jnthn, no... we copy from the outer scopes when the inner multi is declared | ||
jnthn | ruoso: Just copy and tack the new ones on the end and sort? | ||
pmichaud | jnthn: that's the way I was figuring it, yes. | 18:02 | |
ruoso | I mean... consider as if all candidates of the outer multi were declared in the current scope | ||
jnthn | my multi foo() { 1 }; { my multi foo() { 2 }; foo() } # and so this is thus ambiguous? | ||
ruoso | yes | ||
jnthn | OK, good. | 18:03 | |
That's sane. :-) | |||
pmichaud: While we're on lexical stuff - can you remember what lay behind our problem with classes not being able to see outer lexicals? | |||
pmichaud: Because we need to fix that, and then we need lexical multis, and then we can import to lexical scopes from the setting etc. | 18:04 | ||
pmichaud | jnthn: the body of the class can't see the outer lexicals because the body gets invoked before the outer. | ||
my $a = 5; class Foo { say $a; } | |||
jnthn | rakudo: my $x = 1; class Foo { method x { say $x } }; Foo.x | 18:05 | |
p6eval | rakudo ce7ff2: OUTPUT«Lexical '$x' not foundcurrent instr.: 'parrot;Foo;x' pc 168 (EVAL_20:77)» | ||
jnthn | Taht's the one I was meaning more. | ||
pmichaud | oh. | ||
Parrot doesn't like :outer on :init subs. | |||
jnthn | But yes, we do have the other, separate problem, as you describe. | ||
Oh. | |||
Did we ever work out why? | |||
Or is that still to explore? | |||
pmichaud | I haven't tried it recently. | ||
I've tried it since the lexicals updates, though. I can do a quick test program. | 18:06 | ||
jnthn | Not urgent if you're on with other stuff. | ||
Just something I want to sort out in the near future. | 18:07 | ||
pmichaud | I'm waiting for a spectest run on a patch. | ||
so I can look at it quickly. | |||
jnthn | ah, nice | ||
18:10
alester joined
18:13
aindilis left,
aindilis joined
18:19
schmalbe joined
18:22
ejs left
18:28
ejs joined
18:32
ejs left,
ejs joined
18:34
ejs1 joined,
ejs1 left
18:35
skids joined
|
|||
pmichaud | jnthn: the original bug report for this is RT #47956 | 18:37 | |
I've got an updated script that illustrates the bug -- will add it to trac (and point the RT ticket to that one) | 18:38 | ||
jnthn | OK. | 18:39 | |
pmichaud | TT #500 | 18:44 | |
skids | Someone should claim with no evidence that a fully implemented Perl6 is the inly language capable of "unwinding the CDS and CDO financial markets" :-) | 18:47 | |
What, it works for AIG number cruncher bonuses :-) | |||
pmichaud | skids: I think the markets would go into a panic if we made that claim, under the assumption that Perl 6 will never ship. | 18:48 | |
skids | :-) | ||
jnthn finally tracks down why multi exports weren't really working | 18:49 | ||
dalek | kudo: b64e163 | pmichaud++ | src/ (2 files): Move capitalize into Any-str.pm setting (RT #64060). |
18:51 | |
kudo: 7b3f8c4 | pmichaud++ | : Merge branch 'master' of [email@hidden.address] |
|||
diakopter wonders if Goldman Sachs still heavily uses APL | |||
18:53
cdarroch left
|
|||
Tene_ | pmichaud: let me know if I can help with PCT refactors. | 18:55 | |
18:55
Tene_ is now known as Tene
18:57
NordQ joined
|
|||
jnthn | Tene: Did you have any luck with .leave? | 18:58 | |
Tene | ... oh, right. | 18:59 | |
I knew I was forgetting something... | |||
>.> | |||
jnthn | ;-) | 19:01 | |
mberends | jnthn, pmichaud: written by a PIR total n00b, how does this look? gist.github.com/85641 | 19:03 | |
19:04
maustin joined,
maustin left
|
|||
Tene | mberends: why don't you just do like: | 19:04 | |
jnthn | mberends: Ah, the infix:= calls ain't quite what you want in this case. | ||
Tene | find_lex sock, "$socket" | ||
? | |||
jnthn | Tene: Because finx_lex only hands back PMCs and the socket op needs other things, I think. | 19:05 | |
Tene | ah | ||
jnthn | mberends: mberends I explained it badly last time I suspect - it's for assigning to Perl 6 variables rather than temporaries that you'll use in the PIR | 19:06 | |
find_lex $P0, "$socket" # handle to be opened | |||
can become | |||
find_lex sock, "$socket" # handle to be opened | |||
You can just put it right into that since it's a PMC | |||
For the others just domain = $P1 | |||
Is fine | |||
mberends: Other than that, looks fine. :-) | 19:07 | ||
mberends | that's at least a start... thanx for the advice :) | ||
jnthn | Thanks for working on it. :-) | 19:08 | |
mberends | plenty more to do of course, but an occasional sanity check helps :) | ||
jnthn | mberends: Are you roughly following svn.pugscode.org/pugs/docs/Perl6/Sp...ary/IO.pod ? | 19:09 | |
mberends | jnthn: yes | 19:10 | |
jnthn | mberends: Great! | 19:11 | |
mberends | just part of it, mind ;) | 19:12 | |
jnthn | ;-) | 19:13 | |
pugs_svn | r26000 | jnthn++ | [t/spec] A few more import tests. | ||
dalek | kudo: c1c4307 | jnthn++ | src/classes/Multi.pir: Revert an accidential change from earlier debugging. |
||
kudo: a572337 | jnthn++ | src/ (2 files): Fix up exporting (and as a result, importing) of multis. |
|||
kudo: 0f50d4f | jnthn++ | : Merge branch 'master' of [email@hidden.address] |
19:14 | ||
jnthn | OK, I need a food break. | 19:15 | |
pmichaud | mberends: note that failure should probably be done with a call to 'fail' | 19:17 | |
jnthn | Ah, yes, good pooint. | 19:18 | |
pmichaud | in this particular case, I'd expect there to be only one line of inline PIR | ||
okay, a bit more than one line | |||
jnthn | pmichaud: With that patch probably now the :DEFAULT can go away. | ||
pmichaud | but essentially | ||
oh wait. | |||
socket() just returns true/false? | |||
I suspect the socket opcode will fail if $socket is an IO object. | 19:20 | ||
jnthn | mberends: I'm not seeing a method called socket in S32-setting-library/IO.pod, BTW. | ||
pmichaud | me neither. | ||
jnthn | (Though I can understand this may be a helper sub for implementing that.) | ||
Tene | pmichaud: allison was planning to work on issues with PMCs and HLLs soon. Would you be okay with me pushing up a branch to rakudo that was migrated to .HLL 'perl6' (and therefore broken) ? | 19:21 | |
pmichaud | Tene: branches are always welcome. | ||
19:24
ejs1 joined
|
|||
TimToady | my fixes to IO.pod were not intended to be completist :) | 19:24 | |
and I know I forgot open with :w | |||
pmichaud | (scheduling note: I may be a few minutes late to design meeting call today) | 19:25 | |
TimToady | k | ||
pmichaud | (have to pick up kids from school, as it's raining here.) | ||
19:30
ejs1 left
19:31
ejs1 joined
|
|||
mberends | jnthn, pmichaud: bacek++ has essentially wrapped the BSD socket functions for Parrot, so they will become helper functions in the eventual IO setting library. | 19:31 | |
pmichaud | ...should they be? | 19:32 | |
mberends | dunno | ||
moritz_ | perl6: say True ~~ False | 19:38 | |
p6eval | rakudo 0f50d4: OUTPUT«Method 'ACCEPTS' not found for invocant of class ''current instr.: 'infix:~~' pc 19529 (src/builtins/match.pir:18)» | ||
..elf 26000, pugs: OUTPUT«» | |||
19:38
ejs1 left
|
|||
moritz_ | perl6: say False ~~ False | 19:38 | |
19:38
araujo left
|
|||
p6eval | rakudo 0f50d4: OUTPUT«Method 'ACCEPTS' not found for invocant of class ''current instr.: 'infix:~~' pc 19529 (src/builtins/match.pir:18)» | 19:38 | |
..pugs: OUTPUT«1» | |||
..elf 26000: OUTPUT«» | |||
moritz_ | perl6: say False ~~ Bool::False | ||
p6eval | pugs: OUTPUT«1» | ||
..rakudo 0f50d4: OUTPUT«0» | |||
..elf 26000: OUTPUT«» | |||
19:38
ejs1 joined
|
|||
moritz_ | why does smartmatching against a Bool alway return the RHS? | 19:39 | |
pmichaud | because S03 specs it that way :-) | ||
moritz_ | I know | ||
but what's the motivation? | |||
I mean for always true conditions we have * on the RHS | |||
having False ~~ False being False seems very unintuitive | 19:40 | ||
given that 0 ~~ 0 is True | |||
and for a smartmach that's always false you can still use { False } on the RHS | |||
pmichaud | I think it's so that someone can do things like | ||
when foo($x) { ... } | |||
where foo($x) returns a bool | |||
moritz_ | yes, that makes sense | 19:41 | |
pmichaud | afk for a bit # kid pickups | ||
moritz_ | maybe there's no do-it-right-in-every-case solution here | ||
pmichaud | if you want to smart match against false, it's just when !$_ { ... } | ||
or === False, I suspect. | 19:42 | ||
amoc | rakudo: say ::SomeThing | ||
p6eval | rakudo 0f50d4: OUTPUT«Null PMC access in isa()current instr.: 'parrot;List;!flatten' pc 5960 (src/classes/List.pir:227)» | ||
amoc | May I bug report it ? | ||
moritz_ | amoc: please do | ||
amoc | Er.. is this of 'parrot' or 'rakudo' ? | 19:44 | |
moritz_ | rakudo. | 19:45 | |
amoc | thanks a lot for your kindness at my noob question. | 19:46 | |
moritz_ | no problem, we all began like that ;-) | 19:47 | |
amoc is moved by moritz's word. | 19:49 | ||
moritz_ | actually the time I came in here I reported a broken link on the pugs webite | 19:51 | |
and two minutes later I had a commit bit in my inbox | |||
and audreyt told where I could have fixed it myself ;-) | |||
rakudo: grammar A { token TOP { ^ .* $ } }; class B { method TOP ($/) { given 1 { when * { make 1 } } } }; A.parse("foo", :action(B.new)); say "alive"; # make() in given/when seem to segfault on my machine | 19:54 | ||
p6eval | rakudo 0f50d4: OUTPUT«alive» | ||
moritz_ | well, my segfaulting example is a little bit more complicated | 19:55 | |
19:57
cognominal left
19:58
ejs1 left
|
|||
amoc | i see but it's very respectful for me that you immediately corrected and committed.. :O | 20:09 | |
moritz_ | I didn't, audreyt did it ;-) | 20:12 | |
actually I had never even used svn before | |||
20:14
riffraff left
|
|||
amoc | oh, how long was it .. years ago? | 20:16 | |
moritz_ | April 2006, iirc | ||
jnthn back from foods | 20:18 | ||
amoc thinks it's awesome | 20:20 | ||
jnthn | Actually, was just the takeout...so not that awesome. ;-) | 20:21 | |
Though while eating it I think I figured out how to easily do lexical multis in Rakudo. | 20:22 | ||
moritz_ | ;-) | ||
Tene | my favorite takeout curry place has closed. | ||
i need to find another one. | |||
jnthn | Ouch. :-( | 20:23 | |
moritz_ | actually it was 2007-02-04 | ||
jnthn | Lack of curry is a Bad Thing. | ||
jnthn is visiting friends at the weekend and they're taking him to a good curry place. | 20:24 | ||
amoc | jnthn: then, it's 'really' awesome it's a meal with rakudo | ||
moritz_: then, i guess that perl is your first proejct? | 20:25 | ||
20:25
M_o_C left
|
|||
moritz_ | amoc: nearly; I did some small stuff in C++ and Eiffel before, but nothing really in a larger community | 20:30 | |
amoc is stalking to moritzs homepage o_O....! | 20:33 | ||
jnthn | Heh. Perl 6 is my first compiler project too. Talk about starting with something small... | ||
20:34
cspencer_ joined
|
|||
pmichaud | any thoughts on what to do with 63874? Do we simply close it as rejected, or is there likely to be another patch coming? | 20:34 | |
or did I miss a patch to replace the original? | |||
moritz_ | we have floor/ceiling/round etc in the setting already | 20:35 | |
ruoso | SMOP is my first real C project | ||
amoc | (sniff) I don't have my first project yet. | 20:36 | |
moritz_ | pmichaud: one be cspencer++, if I can believe my blame log | ||
so I'd reject it | |||
cspencer_ | moritz: i'll accept the blame for that, yes :) | ||
jnthn | If it's already in the setting, ticket isn't much use. | ||
pmichaud | okay, I'll reject it. The version that is in setting now has some issues, though. | ||
it's improperly type-constraining the invocant. | 20:37 | ||
bacek | good morning | ||
moritz_ | cspencer_: I like 'svn praise', which does the same as 'svn blame', but is so much nicer ;-) | ||
pmichaud | also, for the time being we might want to have floor/ceiling return nums instead of ints. | ||
moritz_ | pmichaud: why? | ||
jnthn | bacek: morning | ||
pmichaud | we don't have bigint support, and we can't represent Inf as an int | 20:38 | |
amoc | bacek: good morning * | ||
moritz_ | pmichaud: that seems unintuitve; my Int $x = ceil(3.4) would fail | ||
jnthn | Indeed. | ||
bacek | jnthn++ # porting socket_win32.c :) | ||
pmichaud | there is that. | ||
moritz_ | I'd rather regress on Inf/NaN things than on such "easy" stuff | ||
jnthn | bacek++ # giving me something to port ;-) | 20:39 | |
pmichaud | okay, I'll go with that logic for now. But we still need to remove the invocant constraints. | ||
"34.4".floor should work. | |||
moritz_ | I can do that | ||
pmichaud | also, get rid of the 'return' calls | ||
moritz_ | ok | 20:40 | |
pmichaud | that adds an extra function call + exception + capture into the mix. | ||
moritz_ | should I also get rid of the invocant at all, and use self instead? | ||
pmichaud | that's my strong preference, yes. | ||
not only that, but it eliminates the need for find_lex | |||
moritz_ | aye | ||
pmichaud | (I'm sooooo happy we implemented the 'box' opcode, btw :-) | 20:41 | |
jnthn too | |||
ruoso adding mildew to ohloh | 20:42 | ||
20:44
cspencer left,
mberends left,
cspencer_ is now known as cspencer
|
|||
moritz_ | changes implemented, spectesting now | 20:44 | |
20:53
sri_kraih_ joined
20:54
skids left
20:57
|jedai| joined
21:01
dKingston joined
21:03
eternaleye left
21:06
sri_kraih left
|
|||
cspencer | moritz: i'd submitted ~ 3 tickets adding various things to the setting late last week, is it easier if i go back and combine them since they may not apply cleanly now that some of the files may have changed? | 21:08 | |
or are smaller patches preferable? | |||
21:08
ruoso left
|
|||
pmichaud | I tend to prefer smaller patches -- easier to review (assuming they're independent) | 21:12 | |
cspencer | pmichaud: alright :) | ||
pmichaud | it is a bit annoying that git-apply doesn't apply patches that patch(1) is able to handle. | ||
or to be more explicit | |||
patches generated with git might not pass git-apply but work fine with patch(1) | 21:13 | ||
Tene | My office is also dealing with the "pass plain patches around and try to deal with them on top of git" issue lately | 21:14 | |
pmichaud | well, if I just use patch(1), it works fine but we don't preserve the commit history that git-apply would have. | ||
That said, I'm fine with just using patch(1) for now. | |||
PerlJam | how do patches generated with git fail git-apply? | 21:19 | |
pmichaud | I'm getting context errors because the line numbers don't match precisely | 21:23 | |
21:23
|jedai| left
|
|||
pmichaud | as an example, try to git-apply the patch in RT #64092 to the current master | 21:23 | |
cspencer | pmichaud: would you like me to resubmit that one against the current HEAD? | 21:24 | |
pmichaud | cspencer: no, I just used patch(1) and it worked fine. | ||
I'm spectesting it now. | |||
cspencer | also, (reviewing some of your comments above), would you prefer return not be used when avoidable, just to save overhead? | 21:25 | |
pmichaud | yes. | 21:26 | |
cspencer | ie) in the p5chomp just use "$num" instead of "return $num" | ||
pmichaud | yes. | ||
cspencer | ok, will do in the future | ||
pmichaud | eventually we'll likely do some optimization there, but for the present it's better to avoid the explicit returns when we can easily do so, I think. | ||
21:26
DemoPhreak joined
|
|||
jnthn | I've probably used return in places where I needn't have done so too... | 21:27 | |
21:28
|jedai| joined
|
|||
pmichaud | in general errors should be indicated by fail(), return values simply by giving the result to be returned | 21:28 | |
cspencer | ok | ||
21:30
eternaleye joined
|
|||
PerlJam | pm: the only errors I got were whitespace errors (which are easily fixed with --whitespace=fix) | 21:31 | |
21:32
schmalbe left
|
|||
pmichaud | PerlJam: just a sec, I'll try reapplying. | 21:36 | |
21:36
NordQ left
|
|||
pmichaud | PerlJam: nopaste.snit.ch/15960 | 21:38 | |
21:39
ejs1 joined
21:40
ejs1 left,
DemoFreak left
|
|||
PerlJam | pm: what version of git are you using? | 21:41 | |
21:41
DemoPhreak is now known as DemoFreak
|
|||
pmichaud | $ git --version | 21:41 | |
git version 1.5.4.3 | |||
PerlJam | Here's what I see. nopaste.snit.ch/15961 | ||
(I included the output of git rev-parse HEAD just in case my HEAD is different from yours somehow :) | 21:42 | ||
pmichaud | we have the same HEAD | ||
so, it's a git version issue? | |||
PerlJam | must be. I'm using 1.6.2.rc2.22.g1d035 currently. | 21:43 | |
pmichaud | I'm using whatever version is in the ubuntu repos. | 21:44 | |
PerlJam installs 1.5.4.3 and tries anyway (I'm curious) | |||
pm: I keep a copy of the git repo around and build it occasionally. | 21:45 | ||
There was something that 1.6 had that I wanted and 1.5.4 didn't have it, but I've since forgot what that something was. | 21:46 | ||
pmichaud | I think I'll just stick with patch(1) until I can manage to get to 1.6 :-) | ||
PerlJam | yep, it definitely fails with 1.5.4.3 | 21:48 | |
PerlJam goes back to 1.6.2 (no rc this time :) | |||
21:49
NordQ joined,
skids joined
|
|||
PerlJam | pm: it doesn't take much to build and install you're own git :) I just did it twice in the span of about 10 minutes | 21:52 | |
pmichaud | I might look into doing that. So far it's been nice that it's part of my standard install sequence. | ||
(i.e., just grabbing the package from ubuntu) | |||
besides, the 9.04 release might come with an updated git, so I might just wait a month. | 21:53 | ||
PerlJam | oh, that's right ... it's almost time for a new ubuntu | ||
yeah, I'd wait if I were you | |||
21:53
jhorwitz left
|
|||
jnthn wonders how long until Rakudo overtakes Parrot on tickets | 21:58 | ||
21:59
alester left
|
|||
PerlJam | jnthn: depends on how fast you and Patrick implement things ;) | 21:59 | |
jnthn | Yes, yes, I'm just smoking another thing. :-P | 22:00 | |
ENOTENOUGHHOURSINRAKUDODAY | |||
22:02
araujo joined
22:03
ejs left
22:07
justatheory joined
|
|||
pugs_svn | r26001 | jnthn++ | [t/spec] More tests for import; also comment on one that I can't see any justification for in the spec. If nobody else can either, suggest we kill it. | 22:08 | |
dalek | kudo: bb22e02 | jnthn++ | (3 files): Support specifying :tags when doing a use, which will import things with those tags. Default to :DEFAULT if none specified. Also always import :MANDATORY no matter what tags are specified. |
22:11 | |
22:13
justatheory left
22:20
exodist left
22:21
eternaleye left
22:26
Southen joined
|
|||
jnthn | pmichaud: ping | 22:31 | |
pmichaud | pong | 22:32 | |
22:33
nihiliad left
|
|||
jnthn | pmichaud: "Applying this patch causes me to get failures in t/spec/S05-mass/rx.t ." | 22:33 | |
I know why, and meant to talk to you about this one... | |||
When you have code like: | |||
/foo/ | |||
It compiles this regex and puts it in the namespace PGE::Grammar | 22:34 | ||
Or so it appears | |||
And the reason it causes failures in that test is because it has loads of regexes, and the block names start conflicting with blocks already in the setting. | |||
Which also wind up in that namespace. | |||
pmichaud | well, the namespace issue is a bit of red-herring I suspect -- the block names need to be unique regardless of the namespace. | 22:35 | |
jnthn | Aye | ||
They get unique sub ids | |||
bu | |||
.namespace ["PGE";"Grammar"] .sub "_block20" :method :subid("12_1238020527") | |||
ah, two lines got stuck together there | 22:36 | ||
pmichaud | what happens with other blocks... what names are they getting? | ||
jnthn | Similar but it's less of an issue at the moment. | ||
(Because those end up in the namespace of the place where they are defined.) | |||
But yes, the namespace issue may well turn out to be a red-herring. | 22:37 | ||
pmichaud | I suspect the problem is really related to the fact that these are (anonymous) methods and not blocks/subs | ||
i.e., if the :method flag wasn't there, it probably wouldn't complain. | |||
jnthn | That's very possible too. | 22:38 | |
pmichaud | the error I got was complaining about inserting over an existing method (that may have been supplied by a role) | ||
cspencer | pmichaud: if i replaced the negative offsets to substr with a $str.chars - 1, would that be preferable? (for the p5chomp/p5chop patch) | 22:39 | |
(or something along that line) | |||
jnthn | pmichaud: Oh, yes, I remember now... | ||
pmichaud: So yes | |||
pmichaud | cspencer: that might work out better. | ||
cspencer | ok, i'll fix that and the regex and resubmit | ||
jnthn | Though the names might come and bite us too. | 22:40 | |
Since the subs are not :anon'd. | |||
pmichaud | and we can't :anon methods. | ||
(TT #389) | 22:41 | ||
jnthn | Ah. | ||
22:43
Southen_ left
22:44
Southen_ joined
|
|||
pmichaud | okay, I'll either work on improving the uniqueness of the subnames or see if I can come up with a way to otherwise anonymize them. | 22:44 | |
jnthn | k | 22:45 | |
22:46
Southen left
|
|||
pmichaud | it kinda bugs me that there's no way to create a :method Sub without having to generate a unique name for it, though. | 22:46 | |
jnthn | Let me look up that tt, I'm curious why :anon and :method don't play. | 22:47 | |
22:47
hercynium_ left
|
|||
pmichaud | I guess they play depending on what we want the meaning of :anon to be there, though. | 22:48 | |
looking at the ticket -- I guess that :anon is actually doing what I want it to do in this case. | |||
i.e., it's creating a method without installing it in the method table. | |||
I'm just lacking a way of creating a method that doesn't go into the namespace. | 22:49 | ||
jnthn | IIRC that's what :method without a :nsentry was meant to do. :-| | ||
pmichaud | yes, that's what I said in the ticket. :-| | 22:50 | |
moritz_ | so you also get the failure in rx.t? then I can commit my changes... | ||
pmichaud | moritz_: I wouldn't commit any changes if you're getting a failure in rx.t | 22:51 | |
I'm not getting the rx.t failure in HEAD -- only when certain patches are applied. | |||
(generally patches involving anonymous regexes) | |||
jnthn | moritz_: And if you re-order things in the setting they might disappear... | ||
moritz_ | pmichaud: ah, ok | 22:52 | |
jnthn didn't actually seriously suggest that ;-) | |||
pmichaud | I'll fix the underlying issue tonight. | ||
jnthn | Cool. | ||
jnthn just finally wrote *last week's* rakudo day report | |||
pmichaud | fortunately it's raining here, which means that kid-evening-soccer-practices have been cancelled so I have a little bit more time for stuff | ||
moritz_ | pmichaud: ok, I'll push to a branch, which you can merge once you're done | ||
pmichaud | moritz_: that's great. how do I merge a branch again...? 1/2 :-) | 22:53 | |
22:53
|jedai| is now known as jedai
|
|||
moritz_ | pmichaud: normally you go to master and simply say 'git merge the-branch-to-merge'... but in this case it'll be a single commit, so you can simply cherry-pick it, then you won't get a merge commit | 22:54 | |
pmichaud | okay, thanks. | 22:56 | |
moritz_ | branch setting-num-improvements pushed to github | ||
jnthn | What's the syntax for messaging someone here? | 22:59 | |
moritz_ | @tell jnthn there you go | ||
lambdabot | Consider it noted. | ||
jnthn | @tell ? | ||
lambdabot | Consider it noted. | ||
jnthn | @tell mberends be sure to use the method forms of socket IO on the PMCs, not the opcodes, which actually are now unspec... | 23:00 | |
lambdabot | Consider it noted. | ||
cspencer | what's the signature that allows a slurpy argument list for a variable number of arrays? | 23:01 | |
ie) foo(@a, @b, @c) | |||
moritz_ | cspencer: a foo(*@a) will flatly slurp up all arrays (I think) | 23:02 | |
and foo(@@a) would do so without flatting, but that's NYI | |||
cspencer | that would explain things :) | ||
Tene | if it's just a fast-forward, there won't be a merge commit | 23:07 | |
23:08
eternaleye joined
|
|||
Tene | all the merge commits in rakudo bug me a little. If you do a rebase instead of pull, you don't get those. | 23:08 | |
jnthn | Tene: merge commits? | ||
lambdabot | jnthn: You have 1 new message. '/msg lambdabot @messages' to read it. | ||
jnthn | @messages | 23:09 | |
lambdabot | moritz_ said 9m 50s ago: there you go | ||
jnthn | .oO( phew, it wasn't a secret message ) |
||
Tene | jnthn: run 'gitk' in rakudo | ||
jnthn | wtf there's a gui app that I didn't even know about?!?! | 23:10 | |
Tene | jnthn: for doing commits and such, there's git-gui | ||
frioux | jnthn: we kept it a secret | ||
jnthn | hah, apparently I have 1,500 "loose objects" | ||
frioux | jnthn: it was a conspiracy | ||
moritz_ | Tene: but I think a 'git pull' does merge commits even for fast-forwards commits | 23:11 | |
jnthn | Is compressing the database non-lossy? | ||
moritz_ | which is kinda... inconvenient | ||
Tene | moritz_: pull does not do merge commits if it's just ff | ||
moritz_ | jnthn: yes | ||
jnthn | As in, is there any reason not to? | ||
OK. | |||
Tene | jnthn: 'git gc' will repack everything for you | ||
moritz_: but if you have local commits on your local master, and you pull down commits from the remote master, it makes a merge commit | 23:12 | ||
moritz_ | Tene: that's what I meant, yes | ||
jnthn | Tene: Is this about the issue of when you do a push, and it moans about non-fast-forward and you ahve to pull and then push to resolve it? | ||
Tene | moritz_: fast-forward is if you have no local commits | ||
jnthn: yes | |||
jnthn | Tene: And I shouldn't be doing it that way, or? | 23:13 | |
Tene | jnthn: if you 'git fetch; git rebase origin' instead of 'git pull', it doesn't get a merge commit. | ||
it's not really a big issue | |||
moritz_ | Tene: ah, I confused that with trival rebases | ||
Tene | depends on how picky you are. I'm rather picky about trivial things at times. | ||
It certainly doesn't hurt anything how things currently are | 23:14 | ||
'git pull' is approximately an alias for 'git fetch; git merge origin' | |||
pugs_svn | r26002 | putter++ | [elfish/on_sbcl] elfcl now self-compiles on CCL too. Synced with elf_h (added Array::clone), unbreaking the build. | 23:22 | |
r26002 | putter++ | Compared with SBCL, the CCL (aka Clozure, formerly aka OpenMCL) compile is much quieter, and somewhat faster (still several x slower than elfp5), though its fib() is 4x slower (~6x elfp5, ~20x perl5, ~~200x unboxed non-multi generic CL). | |||
23:30
kate21de joined
23:31
DemoPhreak joined
|
|||
pmichaud | fwiw, I figure that the extra merge commits generated by 'git pull' aren't a big issue. If they are, then git is huffmanized the wrong way. | 23:33 | |
cspencer | pmichaud: i've attached a fixed p5chomp/p5chop patch to the original ticket | 23:34 | |
though rx.t is still failing | |||
pmichaud | cspencer: excellent! | ||
23:34
bacek_ joined
|
|||
pmichaud | I'll fix the method naming issues later tonight and apply the patch (assuming it passes) | 23:34 | |
cspencer | sounds good :) | 23:35 | |
jnthn | use.perl.org/~JonathanWorthington/journal/38701 # write-up of today's work | 23:40 | |
23:45
DemoFreak left
23:47
nihiliad joined
|
|||
jnthn | pmichaud: Just as a heads-up, I'll probably be completely offline the weekend and Monday. | 23:49 | |
23:49
icwiener_ left
|
|||
jnthn | I could take my laptop, but wouldn't find much time to use it, and I'm getting some RSI-ish symptoms, so figure a few days off it would be good anyway... | 23:50 | |
23:50
xinming_ is now known as xinming
|
|||
jnthn | Will be back and working as normal from Tue and have a Rakudo day next week though, anyways. :-) | 23:50 |