»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: irc.perl6.org/ | UTF-8 is our friend! | YAPC::NA talk submissions due end of Month. Have you submitted your talk?
Set by toddr_ on 18 March 2013.
00:00 uasi joined 00:16 labster joined 00:28 bbkr left 00:38 am0c joined 00:48 LlamaRider left, cognominal left 00:50 tokuhiro_ joined 00:51 uasi left 00:54 grondilu left 01:00 anuby joined 01:09 rindolf joined 01:21 benabik joined 01:30 chinaXing joined, chinaXing left 01:31 japhb_ left 01:43 hypolin joined 02:00 gdey left 02:09 rindolf left 02:16 tokuhiro_ left 02:21 xinming_ left 02:23 xinming joined 02:25 fgomez joined 02:29 fgomez left 02:30 fgomez joined 02:43 cognominal joined 03:12 noxgirl joined 03:23 uasi joined, uasi_ joined 03:25 sevin joined 03:28 uasi left 03:34 sevin left 03:39 Ulti joined 03:40 uasi_ left 03:44 lustlife joined 03:58 orafu left, OuLouFu joined, OuLouFu is now known as orafu 04:15 sivoais joined 04:18 cognominal left 04:41 preflex_ joined 04:42 preflex_ is now known as preflex 04:44 Cynede joined
Cynede hey #perl6 people! 04:44
diakopter ahoy 04:45
04:45 fgomez left 04:50 Cynede is now known as Heather
diakopter watches www.youtube.com/watch?v=pzwL-IOOLVE over and over 04:50
04:52 kurahaupo left 05:14 cognominal joined
diakopter r: say 1.HOW.WHY 05:20
p6eval rakudo e0ce08: OUTPUT«No such method 'docs' for invocant of type 'NQPClassHOW'␤ in method WHY at src/gen/CORE.setting:711␤ in block at /tmp/65ljJ1TsFl:1␤␤» 05:21
diakopter o_o_
05:48 fgomez joined
diakopter r: any all one .WHO.WHAT.WHERE.WHY.WHICH.HOW.say 06:00
p6eval rakudo e0ce08: OUTPUT«Perl6::Metamodel::ClassHOW.new()␤»
diakopter r: say *^^* 06:04
p6eval rakudo e0ce08: OUTPUT«Nil␤»
diakopter rn: say *^^*
p6eval rakudo e0ce08: OUTPUT«Nil␤»
..niecza v24-35-g5c06e28: OUTPUT«{ ... }␤»
diakopter rn: say *^^^* 06:05
p6eval rakudo e0ce08: OUTPUT«Nil␤»
..niecza v24-35-g5c06e28: OUTPUT«{ ... }␤»
diakopter rn: say *^^^ ^!^!\!\\^ ^* 06:06
p6eval rakudo e0ce08: OUTPUT«Nil␤»
..niecza v24-35-g5c06e28: OUTPUT«{ ... }␤»
diakopter rn: say (*^^^ ^!^!\!\\^ ^*)(1) 06:07
p6eval niecza v24-35-g5c06e28: OUTPUT«Unhandled exception: System.NullReferenceException: Object reference not set to an instance of an object␤ at Niecza.StashCursor.Core (System.String key, Boolean final, Niecza.StashCursor& sc, Niecza.Variable& v, Niecza.Variable bind_to) [0x00000] in <file…
..rakudo e0ce08: OUTPUT«No such method 'Nil' for invocant of type 'Int'␤ in block at /tmp/fTlDLx9ccM:1␤␤»
06:07 wk left
diakopter hm, my heart isn't in it 06:08
cognominal what's the diff between a VMArray and a CArray? 06:09
06:10 fgomez left 06:11 xilo left 06:13 xilo joined
diakopter the VMArray supports things like push,pop,shift,unshift; the CArray can be passed to NativeCall callsites 06:13
06:14 Heather left
diakopter oh, and "CArray may only contain native integers and numbers, strings, C Structs or C Pointers" 06:14
06:16 kaleem joined
diakopter VMArray can contain only native ints/nums or 6model object pointers, I'm almost certain 06:16
06:17 cognominal left 06:18 cognominal joined
diakopter cognominal: seems you missed my 3 replies 06:18
cognominal diakopter, will read the log as usual 06:19
thx 06:20
06:22 daniel-s_ is now known as daniel-s 06:28 Heather joined
Heather suggest me good way to parse config file 06:28
something alike ConfigParser in python 06:29
diakopter .ini? java .properties? .xml? macos .plist? .csv?
Heather diakopter with ini-alike structure
or even custom structure 06:30
.conf
diakopter something alike this: github.com/Heather/dotfiles/blob/m...olist.conf 06:31
diakopter well, do you want to use Perl 6 or something else? 06:33
Heather diakopter yes perl6 )
06:36 cognominal left 06:39 kivutar joined 06:40 vaelxon joined
diakopter well, kindof a heavyweight/heavyhanded (but somewhat more readable) approach is to write a grammar, but any structured file can also usually be parsed with successively granular regexes doing split or comb 06:41
Heather I see... 06:42
maybe json... 06:45
06:45 rindolf joined
Heather here is project github.com/moritz/json 06:46
06:46 cognominal joined 06:52 rindolf left 06:53 rindolf joined 07:00 cognominal left 07:04 rindolf left 07:05 rindolf joined 07:07 wtw joined 07:10 cognominal joined 07:11 fgomez joined 07:20 rindolf left, rindolf joined 07:22 cognominal left 07:27 uasi joined 07:31 cognominal joined 07:37 cognominal left, cognominal joined 07:40 jerome joined 07:42 nebuchadnezzar joined 07:43 cognominal left 07:45 cognominal joined 07:47 wk joined 07:57 jerome left 08:01 FROGGS joined 08:04 domidumont joined 08:10 jerome joined 08:19 cognominal left, sizz_ joined 08:20 sizz left 08:22 cognominal joined 08:32 domidumont left, domidumont joined 08:35 erkan left 08:37 sqirrel joined 08:42 daxim joined 08:47 daxim left, daxim joined
Heather what difference between %ENV and %*ENV 08:57
r: say %*ENV<PREFIX>
p6eval rakudo e0ce08: OUTPUT«(Any)␤»
FROGGS r: say %*ENV 08:58
p6eval rakudo e0ce08: OUTPUT«("PERLBREW_VERSION" => "0.42", "MAIL" => "/var/mail/p6eval", "USER" => "p6eval", "SHLVL" => "1", "HOME" => "/home/p6eval", "OLDPWD" => "/home/p6eval", "PERLBREW_ROOT" => "/home/p6eval/perl5/perlbrew", "PERLBREW_MANPATH" => "/home/p6eval/perl5/perlbrew/perls/perl-5.…
FROGGS r: say %ENV
p6eval rakudo e0ce08: OUTPUT«===SORRY!===␤Variable '%ENV' is not declared␤at /tmp/3VLpK2oQ83:1␤------> say %ENV⏏<EOL>␤ expecting any of:␤ postfix␤»
FROGGS that's the difference
Heather FROGGS ?
I don't get it
FROGGS what is %ENV ? 08:59
I see... it's declared in rakudo...
FROGGS %*ENV gives you the environment vars
moritz r: say %*ENV.keys 09:00
p6eval rakudo e0ce08: OUTPUT«PERLBREW_VERSION MAIL USER SHLVL HOME OLDPWD PERLBREW_ROOT PERLBREW_MANPATH LOGNAME _ TERM PATH PERLBREW_HOME PATH_WITHOUT_PERLBREW PERLBREW_BASHRC_VERSION LANG LS_COLORS PERLBREW_PATH SHELL PERLBREW_PERL PWD MANPATH MANPATH_WITHOUT_PERLBREW␤»
hoelzro well, now I know that p6eval runs under perlbrew =) 09:02
09:04 kivutar left
Heather p5eval say %*ENV.keys 09:09
p5eval: say %*ENV.keys
p5eval Heather: ERROR: syntax error at (eval 7) line 1, near "%*ENV"
Heather p5eval: say %ENV 09:10
p5eval Heather: HOME/rootSSH_CLIENT192.168.1.3 58296 22SSH_CONNECTION192.168.1.3 58296 192.168.1.42 22MAIL/var/mail/rootPWD/rootLANGen_US.UTF-8USERrootLOGNAMErootWINDOW0STY294.pts-0.p5evalSHLVL2_/usr/bin/irssiPATH/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/binLS_COLORSrs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.
moritz p5eval: [keys %ENV]
p5eval moritz: ["HOME","SSH_CLIENT","SSH_CONNECTION","MAIL","PWD","LANG","USER","LOGNAME","WINDOW","STY","SHLVL","_","PATH","LS_COLORS","SHELL","TERM","TERMCAP","SSH_TTY"]
Heather oh...
moritz p5eval: $ENV{SSH_CONNECTION}
p5eval moritz: 192.168.1.3 58296 192.168.1.42 22
hoelzro yikes 09:11
Heather that's not even ENV...
moritz why not?
Heather ok, maybe it's ENV 09:12
but
moritz how can I set it? 09:13
moritz where?
Heather moritz when I want eval perl5 with special ENV set 09:14
moritz well, you can't on IRC 09:15
except for
p5eval: BEGIN { $ENV{ABC} = 'blah' }; # rest of your program goes here 09:16
p5eval moritz: No output
Heather no need on irc :)
I need it from bash
moritz well, you know how to set environment variables, no?
export KEY=VALUE
Heather moritz but they doesn't look the same :S
moritz don't look the same as what?
Heather at least p6 eval and p5 eval show different env-s 09:17
as ENV
moritz yes, because they run as different users on different machines
Heather e.g. %ENV
moritz so they have totally different environments
Heather hm...
diakopter p5eval: use threads; 09:19
p5eval diakopter: ERROR: Can't locate threads.pm in @INC (@INC contains: /lib) at (eval 7) line 1.BEGIN failed--compilation aborted at (eval 7) line 1.
diakopter p5eval: use forks;
p5eval diakopter: ERROR: Can't locate forks.pm in @INC (@INC contains: /lib) at (eval 7) line 1.BEGIN failed--compilation aborted at (eval 7) line 1.
diakopter p5eval: use Modern::Perl
p5eval diakopter: ERROR: Can't locate Modern/Perl.pm in @INC (@INC contains: /lib) at (eval 7) line 3.BEGIN failed--compilation aborted at (eval 7) line 3.
09:20 rindolf left
Heather r: use Panda::Installer 09:21
p6eval rakudo e0ce08: OUTPUT«===SORRY!===␤Could not find Panda::Installer in any of: /home/p6eval/nom-inst/lib/parrot/4.10.0-devel/languages/perl6/site/lib, /home/p6eval/nom-inst/lib/parrot/4.10.0-devel/languages/perl6/vendor/lib, /home/p6eval/nom-inst/lib/parrot/4.10.0-devel/languages/perl6/l…
Heather r: dir('/home/p6eval/nom-inst/lib/parrot/4.10.0-devel/languages/perl6/site/lib').say 09:23
p6eval rakudo e0ce08: OUTPUT«Failed to get the directory contents of '/home/p6eval/nom-inst/lib/parrot/4.10.0-devel/languages/perl6/site/lib': readdir failed: No such file or directory␤ in block at src/gen/CORE.setting:7937␤ in sub dir at src/gen/CORE.setting:7933␤ in block at /tmp/OcE6P6…
moritz star: use Panda::Installer;
p6eval star 2013.02: ( no output )
Heather wow
star: use Json::Tiny; 09:25
p6eval star 2013.02: OUTPUT«===SORRY!===␤Could not find Json::Tiny in any of: /home/p6eval/star/lib/parrot/4.10.0/languages/perl6/site/lib, /home/p6eval/star/lib/parrot/4.10.0/languages/perl6/vendor/lib, /home/p6eval/star/lib/parrot/4.10.0/languages/perl6/lib, /home/p6eval/.perl6/2013.02.1/lib…
moritz star: use JSON::Tiny;
p6eval star 2013.02: ( no output )
Heather aha
moritz helps to spell it correctly :-)
Heather I was going to correct ) thx 09:26
moritz star: use JSON::Tiny; say to-json { a => [1, True, "abc", Any] }
p6eval star 2013.02: OUTPUT«{ "a" : [ 1, true, "abc", null ] }␤»
Heather moritz cool
09:29 labster left 09:37 kivutar joined 09:38 fhelmberger joined 09:44 kivutar left 09:47 kivutar joined 09:48 dakkar joined 09:52 kivutar left 09:53 kivutar joined
jnthn Heather: If you're still looking to parse INI files, there's a Config::INI module. 10:00
Heather star: use Config::INI; 10:01
p6eval star 2013.02: OUTPUT«===SORRY!===␤Could not find Config::INI in any of: /home/p6eval/star/lib/parrot/4.10.0/languages/perl6/site/lib, /home/p6eval/star/lib/parrot/4.10.0/languages/perl6/vendor/lib, /home/p6eval/star/lib/parrot/4.10.0/languages/perl6/lib, /home/p6eval/.perl6/2013.02.1/li…
Heather jnthn for perl5?
I see raw.github.com/tadzik/perl6-Config.../META.info ? 10:02
10:03 eternaleye joined
jnthn Heather: No, on modules.perl6.org 10:04
yes, there
Should be panda-installable
Heather interesting it support sections alike [DEFAULT]
seems like yes 10:05
10:11 hypolin left, SamuraiJack joined 10:13 kivutar left 10:15 kivutar joined 10:17 Liz_ joined 10:19 anuby left 10:26 Liz_ left
hoelzro ahoy #perl6 folk 10:28
colomon \o
Heather hoelzro hey
hoelzro I hate to keep bothering everyone, but could someone check out my latest changes to NQP? github.com/hoelzro/nqp
I want to make sure it makes it into tomorrow's release
Heather tomorrow's release? 10:30
hoelzro yeah
(there *is* an NQP release tomorrow, yes?)
Heather git tag? =) 10:31
10:36 cognominal left
FROGGS hoelzro: did you send a pull request yet? (but keep in mind that I am not the right guy to merge it in) 10:47
hoelzro FROGGS: not yet; I want to clean up the commits a bit before it gets merged
10:49 cognominal joined 10:56 cognominal left, erkan joined 10:59 wtw left
masak good just-past-noon, #perl6 11:14
colomon o/
jnthn o/ masak 11:15
masak is on a train!
colomon wishes he had gone nom shopping last night...
masak I'm like, "how cool is this? I'm typing stuff into IRC *while moving*."
nwc10 does it work in tunnels? 11:16
FROGGS masak: why are you on train on a daily basis?
masak FROGGS: $work. 11:17
nwc10 (not a silly question. I expected it to fail, but my 3G connection held out through every one of the 9 tunnels between Cambridge and King's Cross)
masak FROGGS: apparently, we're living in a time where it makes more sense to *transport* me to places to teach, rather than to telecommute/Skype/IRC me.
I expect that equation to change, as teleconf options grow less sucky, and the cost of travel/transportation goes up, in the next decade or two. 11:18
11:18 kivutar left
nwc10 masak: does this train offer you power? 11:19
masak yes.
very important.
nwc10 cool
masak they also offer me wifi, but I ditch it and tether my phone instead. more stability. 11:20
nwc10 oh, not had that
jnthn yeah, those trains have reliable power
nwc10 have had table service which will bring beer to my seat
(not compatible with laptops)
jnthn I find my phone doesn't handle the tunnels too well, but the wifi on the train may do a bit better
masak they also offer coffee/tea, fruit, and small chocolate biscuits. for free. and a daily newspaper.
I could live here :) 11:21
sorear I've been following the news out of LPSC2013, it's interesting that they've had to turn half of the speakers into telepresence because of NASA budget issues, and the reactions thereto
masak sorear: what've been the reactions thereto?
sorear masak: mostly frustration over the issues themselves 11:22
(LPSC = lunar planetary sci. conf., half of the stuff being presented was done by NASA) 11:23
(for those of you blissfully ignoring US politics, our clown legislators decided to cut every discretionary program by 8% two weeks ago; NASA's initial response was to eliminate travel expensing) 11:24
masak the course I taught Mon-Tue had three people in the room, and three people in a room across the country. lag isn't a problem. occasional noises are less than ideal, but by no means a show-stopper. as a teacher I feel that the big problem is that those other people are not getting 100% value-for-money, because being in the room means being more involved.
jnthn really dislikes teaching with people on remote 11:25
masak the general stance from the infrastructure company is "we have to do remote -- that equipment was very expensive and has to pay for itself"
jnthn Never feel I engage with them in the same way, or that I can feel how well they're grokking stuff.
masak yeah, 'xactly.
sorear s/eliminate/drastically restrict/
jnthn masak: "It was expensive so we must use it"...yeah, you probably hit the nail on the head. :) 11:26
nwc10 sorear: I have been observing all the daftness in the US, mainly by reading bloomberg news. The relative crazy between the US, the Eurozone and the UK affects the exchange rates, and hence how much I get paid. 11:27
Not massively. But not zero either
masak .oO( "this positive number is between 0 and Intfy" ) 11:28
\Infty* 11:29
jnthn nwc10: Well, the idiocy over Cyprus is probably weakening the euro some...
sorear [i]nfty?
tadzik hello hello
sorear Intify
masak tadzik! \o/
diakopter nifty
masak tinfy.
nwc10 jnthn: yes. That's the current bit of stupid. There's so much stupid to choose from :-(
masak what did Cyprus do? did they actually take money from people's savings accounts? 11:30
nwc10 masak: they've voted not to go with that plan.
jnthn masak: People didn't seem to like the idea so now they're having crisis meetings.
sorear sleep& 11:31
nwc10 and the banks are shut until (IIRC) Thursday.
masak wow.
good nifty, sorear. dream of intified infinities.
nwc10 the UK government has flown 1 million euros (cash) to keep UK troops and employees afloat 11:32
UK government is keeping very quiet about the fact that Cyrpus is an ex-British colony
11:43 fgomez left 11:57 dvj_ joined
dvj_ r: my $a = "b"; <a $a>.say 11:57
p6eval rakudo e0ce08: OUTPUT«a $a␤»
jnthn use shell words to interpolate 11:58
moritz r: my $a = "b"; <<a $a>>.say
dvj_ shell words?
jnthn r: my $a = "b"; <<a $a>>.say
p6eval rakudo e0ce08: OUTPUT«a b␤»
jnthn It's strangely consistent with 'a $a' vs "a $a" :) 11:59
masak I'm studying category theory presently. they *formalize* notions of "strangely consistent"! (but they don't call it that) 12:00
dvj_ nice :) 12:02
pmichaud good morning, #perl6 12:03
12:04 fgomez joined
masak pmichaud! \o/ 12:04
cf especially en.wikipedia.org/wiki/Universal_property
the only frustrating thing about Wikipedia articles on category theory is that you read the intro blurb, and then you're no wiser :) 12:05
12:07 sizz joined
moritz isn't that true for nearly all articles on category theory? 12:07
12:07 sizz_ left
pmichaud jnthn: I worked on the container issues a bit overnight... I have some interim conclusions. (You may have figured these out already.) 12:08
jnthn Even if I have, it's good to be on the same page. :) 12:09
pmichaud first, our array and hash declarations are likely going to need containers that aren't "scalar containers" -- i.e., we need some way for "my @a;" to leave @a undefined. Operationally, we need a container that doesn't suppress flattening. 12:10
jnthn That implies nqp::iscont is going to need to change/be split up or something 12:11
12:11 SmokeMachine joined, SmokeMachine left
pmichaud second, some assignment operations are just going to involve executing Perl 6 (HLL) code -- I'm thinking of Hash assignment in particular. 12:11
masak moritz: well, I found arxiv.org/pdf/1302.6946.pdf which I rather enjoy. very approachable. 12:12
pmichaud moreso, I don't think we can statically detect all such assignments. That means that our assignop either involves the possibility of inferior runloop, or we have to do runtime checking of the target prior to invoking the assignop in those cases where we can't statically detect things. 12:13
jnthn Note that this check could go into infix:<=> and we send all the uncertain cases through that. 12:14
12:14 SmokeMachine joined
jnthn some_guard(cont) ?? low_level_assign(cont, value) !! cont.STORE(value) # ish 12:15
masak tadzik: did you see the panda email on p6l? 12:16
pmichaud it might also be the case that we can't do "some_guard(cont)" easily; that what we need is cont.STORE(...) that can forward to low_level_assign 12:17
diakopter pass the fallback callback to STORE ?
moritz masak: looks interesting
jnthn pmichaud: How we do .VAR is also worth considering amongst all of this 12:18
pmichaud I think jnthn is wanting to eliminate the fallback. Do we have fallbacks in other ops?
12:18 rindolf joined
diakopter by fallback, I just meant whatever you meant by "forward to low_level_assign" 12:19
pmichaud ah
jnthn pmichaud: The odd one, but this is on a hot-path
pmichaud how about .Numeric?
12:19 JimmyZ joined
pmichaud maybe that one isn't so hotpath-ish 12:19
jnthn Only if we do it through get_number, which should be very rare these days.
masak moritz: I'm third-way through it so far. it fills in a lot of blanks for me.
pmichaud right
okay, I have to do kid carpool... bbi20 12:20
jnthn k
diakopter bbi240 &
tadzik masak: yeah
prolly a proxy problem of some sort 12:21
moritz yes, thought so too
or firewall
masak I've seen in movies that you can break through firewalls by typing frenetically on your keyboard. Preferably while looking young and hip. 12:24
hoelzro pmichaud, jnthn: do either of you have the time to look over my NQP changes? 12:25
I'd like to make sure they make it into tomorrow's release?
moritz hoelzro: have you opened a pull request? 12:26
hoelzro not yet; I want to make sure my changes make sense, then clean up the commits 12:27
12:28 jaldhar left
pmichaud hoelzro: I needed a url or something to look at the changes. 12:36
(still do)
hoelzro oh, sure thing
github.com/hoelzro/nqp
pmichaud it's generally easier to see the changes in a pull request, fwiw. 12:37
or some sort of patch/diff file 12:38
12:39 dvj_ left
pmichaud reading diff now 12:40
12:41 census joined
pmichaud do we still need the errno_values hash? 12:41
[Coke] masak: I think swordfish is probably one of the more egregious in that genre.
Heather is UFO fun. that's all...
pmichaud (I think the errno_values hash shouldn't be needed.) 12:42
same for the nqperrnovalues opcode
er, nqp_posixerrnovalues op
hoelzro oops, I forgot to remove the errnovalues code 12:43
pmichaud erg, the diff includes a stage0 diff
(sigh)
FROGGS jnthn: if I have 'say(1)', that is just an EXPR, right? and within EXPR it calls postcircumfix which invokes the methodcall? 12:46
pmichaud github.com/hoelzro/nqp/blob/master...le.in#L665 has a POSIX_PASM that should probably be POSIX_PIR 12:47
hoelzro ah, true
masak [Coke]: haven't seen that one, though I remember when it came. 12:48
[Coke]: do you recommend it?
moritz if you like action movies, it's not bad IMHO
one shouldn't expect much realism from the "hacking" part though :-) 12:49
[Coke] not as a serious movie, no. but it has 4 actors that in lots of stuff I like, and things blow up.
pmichaud posix.pir probably needs to be installed somewhere. 12:50
otherwise HLL::Backend::Parrot won't be able to find it. 12:51
[Coke] that *are* (wolverine, storm, iron patriot, chili palmer)
pmichaud if not too much trouble, we should change the name of "posix.pir" to be "nqp_posix.pir" to avoid potential collisions with a parrot-provided "posix" module in the future. 12:54
(this can happen post-merge, though)
also nqp_posix.pir would make it clearer that it's something coming from nqp and not parrot
hoelzro pmichaud: ok, I'll add that as well
pmichaud actually, I wonder if it should just be nqp_const.pir 12:56
in case we ever put other non-posix constants in there
I like that better, I think. 12:57
jnthn hoelzro/pmichaud: There's no need to do a bootstrap update with this patch afaict
pmichaud jnthn: I agree, bootstrap update not needed.
jnthn FROGGS: EXPR calls termish, which parses the term and the postcircumfix there 12:58
12:58 kivutar joined
hoelzro ok, cool; I'll remove it from my branch 12:59
ok, so nqp_const.pir, then?
pmichaud hoelzro: yes, please.
hoelzro ok 13:00
FROGGS jnthn: so it looks like 'termish' doesn't get called
pmichaud bbiab 13:07
13:07 dvj_ joined, SamuraiJack left 13:08 uasi left, dvj_ left, uasi joined 13:10 cognominal joined
masak .oO( 'termish' doesn't even get calledish ) 13:10
FROGGS yaish :/ 13:11
13:11 kivutar left
[Coke] so, a whish, then. 13:12
13:15 bluescreen10 joined 13:16 woosley1 joined
Heather star: use IO::Socket; 13:17
p6eval star 2013.02: OUTPUT«===SORRY!===␤Could not find IO::Socket in any of: /home/p6eval/star/lib/parrot/4.10.0/languages/perl6/site/lib, /home/p6eval/star/lib/parrot/4.10.0/languages/perl6/vendor/lib, /home/p6eval/star/lib/parrot/4.10.0/languages/perl6/lib, /home/p6eval/.perl6/2013.02.1/lib…
FROGGS star: say IO::Socket.new 13:18
p6eval star 2013.02: OUTPUT«Could not find symbol '&Socket'␤ in method <anon> at src/gen/CORE.setting:10522␤ in at src/gen/Metamodel.pm:2488␤ in any find_method_fallback at src/gen/Metamodel.pm:2476␤ in any find_method at src/gen/Metamodel.pm:925␤ in at src/gen/BOOTSTRAP.pm:883␤ in any…
FROGGS star: say IO::Socket
p6eval star 2013.02: OUTPUT«Could not find symbol '&Socket'␤ in method <anon> at src/gen/CORE.setting:10522␤ in at src/gen/Metamodel.pm:2488␤ in any find_method_fallback at src/gen/Metamodel.pm:2476␤ in any find_method at src/gen/Metamodel.pm:925␤ in at src/gen/BOOTSTRAP.pm:883␤ in any…
FROGGS hmmm, I thought it is built in?
Heather I don't know.
star: socket.new 13:19
p6eval star 2013.02: OUTPUT«===SORRY!===␤Undeclared routine:␤ socket used at line 1␤␤»
moritz IO::Socket is built-in, but p6eval removes some IO stuff for security reasons 13:20
pmichaud Rakudo has my role IO::Socket {
moritz so, try it locally
pmichaud ah, makes sense.
FROGGS ahh
right
I always forget that
Heather ah, ok... I was planning to run irc bot
pmichaud maybe RESTRICTED.setting should declare IO::Socket also :) 13:21
star: say IO 13:22
p6eval star 2013.02: OUTPUT«IO()␤»
pmichaud star: say IO.new
p6eval star 2013.02: OUTPUT«IO.new()␤»
pmichaud star: say IO.new.whatever; 13:23
p6eval star 2013.02: OUTPUT«IO is disallowed in restricted setting␤ in sub restricted at src/RESTRICTED.setting:2␤ in block at src/RESTRICTED.setting:18␤ in at src/gen/Metamodel.pm:2488␤ in any find_method_fallback at src/gen/Metamodel.pm:2476␤ in any find_method at src/gen/Metamodel.pm…
13:23 sqirrel left 13:25 daxim left 13:26 Heather left 13:27 daxim joined
moritz it creates a new class IO which has this message as catch-all method 13:27
pmichaud yeah, I'm reworking that a bit.
and I'm realizing that I really want --target=pbc to work soon :) 13:29
hoelzro ok, official cleaned up pull request: github.com/perl6/nqp/pull/86 13:35
jnthn pmichaud: the --target=pbc should be easier now 13:37
pmichaud jnthn: yeah; I just have to wait for the Parrot branch to merge, and for it to be safe for us to bump PARROT_REVISION :) 13:41
jnthn pmichaud: Probably after the release tomorrow then ;)
pmichaud maybe.
Parrot's having some release issues this month.
jnthn oh? 13:42
pmichaud lists.parrot.org/pipermail/parrot-d...07433.html 13:43
moritz something with IO stuff failing
jnthn
.oO( not an IOta of surprise there... )
13:45
pmichaud how about something like gist.github.com/pmichaud/5204740 for handling restricted types ? 13:47
jnthn pmichaud: Looks reasonable. 13:48
13:48 cognominal left
[Coke] (io) looks like the release will probably rollback to before that mergeback. 13:50
pmichaud ...which mergeback?
[Coke] pull request? 13:53
there was an io pull request between releases.
[Coke] points over in #parrot/#parrotsketch at Util's note.
pmichaud I'm lost on the details, but I don't feel a strong need to be found, either. 13:55
13:55 cognominal joined 13:58 PacoAir joined
dalek kudo/nom: 337fcee | pmichaud++ | src/RESTRICTED.setting:
Refactor handling of RESTRICTED classes such as IO and IO::Socket.
14:00
masak signs you've been teaching Perl 5: trying to use 'bless' as a sub. 14:01
pmichaud I couldn't get the fallback thingy to work -- maybe someone can add that back in.
masak Undeclared routine: bless used at line 17. Did you mean '&elems'?
NO I DID NOT MEAN &elems
:P
jnthn It is levensteinly closely
*close
masak was gonna say.
pmichaud sub bless(|) { say "masak, I think you meant &elems"; } 14:02
masak :P
pmichaud or even better
sub bless($x) { $x.elems }
masak I acutally meant self.bless
pmichaud: you're evil :P
14:02 kaleem left
pmichaud r: say IO.new 14:03
p6eval rakudo e0ce08: OUTPUT«IO.new()␤»
pmichaud r: say IO.new.xyz
p6eval rakudo e0ce08: OUTPUT«IO is disallowed in restricted setting␤ in sub restricted at src/RESTRICTED.setting:2␤ in block at src/RESTRICTED.setting:18␤ in at src/gen/Metamodel.pm:2501␤ in any find_method_fallback at src/gen/Metamodel.pm:2489␤ in any find_method at src/gen/Metamodel.p…
pmichaud r: say IO.new.perl
p6eval rakudo e0ce08: OUTPUT«IO.new()␤»
pmichaud r: say CORE::IO.new.perl # just sayin
p6eval rakudo e0ce08: OUTPUT«IO.new(ins => 0, chomp => Bool::True, path => Any)␤»
pmichaud bbiab
jnthn pmichaud: Mostly it's "must be a least *this* Perl 6 skilled to do evil" :)
pmichaud my CORE is RESTRICTED; :-P 14:04
I wonder how much breaks if RESTRICTED declares CORE
moritz that's why it's called RESTRICTED and not SAFE :-) 14:05
14:07 Exodist joined, skids joined 14:08 kivutar joined, xilo left 14:09 woosley1 left 14:16 cognominal left
moritz r: say IO::Socket::INET 14:21
p6eval rakudo 337fce: OUTPUT«Could not find symbol '&INET'␤ in method <anon> at src/gen/CORE.setting:10615␤ in at src/gen/Metamodel.pm:2501␤ in any find_method_fallback at src/gen/Metamodel.pm:2489␤ in any find_method at src/gen/Metamodel.pm:937␤ in block at /tmp/hH9nEUNo1B:1␤␤»…
moritz r: say IO::Path.new 14:22
p6eval rakudo 337fce: OUTPUT«Could not find symbol '&Path'␤ in method <anon> at src/gen/CORE.setting:10615␤ in at src/gen/Metamodel.pm:2501␤ in any find_method_fallback at src/gen/Metamodel.pm:2489␤ in any find_method at src/gen/Metamodel.pm:937␤ in block at /tmp/zdBYUHf2fl:1␤␤»…
14:23 Psyche^ joined, cognominal joined 14:27 fgomez left, Patterner left, Psyche^ is now known as Patterner 14:31 cognominal left
dalek kudo/nom: 9be4cce | pmichaud++ | src/RESTRICTED.setting:
Add FALLBACK method to RESTRICTED. FALLBACK from S12 is NYI, but when
14:34
14:35 lichtkind joined
lichtkind moritz: in erlangen we had about 80visitors? 14:36
moritz lichtkind: context?
lichtkind german perl workshop 14:37
14:38 uasi left, uasi joined
pmichaud TimToady: S12:613 (FALLBACK) is worded a little confusingly; it says "If your class defines a method with the special name <FALLBACK>, that method will be called if all other attempts to locate a method of that name fail, ..." 14:38
moritz the "of that name" should be removed, I think 14:39
pmichaud TimToady: the "locate a method of that name" seems confusing (antecedent)
I agree, "of that name" could be removed. 14:40
14:40 fgomez joined
jnthn +1 14:41
pmichaud I'm afk for a bit 14:44
masak yes, remove "of that name".
+1
pmichaud removes. 14:45
14:46 SmokeMachine left
dalek ecs: 7371e2e | pmichaud++ | S12-objects.pod:
[S12] Remove spurious "of that name" qualifier from description of FALLBACK.
14:46
14:47 SmokeMachine joined 14:52 dakkar left 14:56 xilo joined
lichtkind moritz: was that a no? 14:59
moritz lichtkind: I don't remember exact numbers, but between 80 and 90 sounds about right 15:00
15:01 dakkar joined
lichtkind thanks i just write about berlin and wanted to put it in context, btw berlin was fantastic even the p6 to get back on topic was recieved very well 15:01
i just had an error when it comes to inheriting roles 15:02
when joined to classes they get inherited
15:02 sqirrel joined
moritz lichtkind: it's well worth your time to run the code in slides before the talk :-) 15:03
lichtkind moritz: i run a lot of examples 15:05
moritz and it also puts Perl 6 in a better light if you can say "none of this is speculative. All of the code runs"
lichtkind: then do ss/a lot off/all/ and be done :-)
lichtkind but like you know i couldnt compile rakudo so i could not test the few cases i didnt thought about beforehand
at home under linux all is well 15:06
moritz I don't know that you can't compile rakudo 15:07
I can't keep track of everybody and their rakudo status in my head
lichtkind no but i filed it and you commented so i know you know
15:09 PacoAir left
moritz I knew, and RT knows. I don't keep track of all that stuff in my head 15:09
15:11 PacoAir joined 15:16 LlamaRider joined
JimmyZ 'night 15:22
15:22 JimmyZ left
lichtkind moritz: hast aber recht hätte für den talk genausoviel testen können wie für den in chemnitz 15:24
masak lichtkind: why can't you compile Rakudo? 15:32
(I also didn't know this) :)
jnthn lichtkind can't compile Rakudo?!
lichtkind because it exits during compilation with a heap of errors but yesterday i updated to macos 10.8.3 maybe should try one more time 15:33
jnthn
.oO( is a heap of errors messier than a stack of errors? )
15:34
masak you can't deallocate a heap of errors as easily. 15:35
moritz well, by killing the process 15:36
lichtkind: also since you saw that I replied to your ticket, you could have been so kind to reply in turn 15:37
15:37 cognominal joined
lichtkind I did that 15:37
i had 187 gig free
sent you that with mail and said it froggs too
moritz lichtkind: well, since a ticket, you should reply to the ticket 15:38
15:38 benabik left
moritz otherwise others that work on the ticket don't have the same information 15:38
masak lichtkind: when did Rakudo compilation start failing on your box? was it connected to some change or upgrade? have you tried cloning from scratch and building? how far back do you have to go in git history for it to build? could you perhaps bisect for us? 15:47
lichtkind: any answer to the above questions would be helpful.
lichtkind it never worked it was my first attempt under my new macbook 15:48
yes it was a fresh clone
run configure with perl 5.14
i do a fresh run now 15:49
maybe i had perlbrew on but a 5.16 should do no harm 15:50
15:55 alester joined
moritz it would be really helpful if you could use strace (or your platform's equivalent) to find out what the reason for 'Cannot open output file blib/Perl6/Actions.pbc' is 15:58
masak lichtkind: aha. "my new macbook". I immediately suspect a case-insensitive HFS drive. 15:59
16:00 gdey joined
FROGGS .oO( case-insensitive clod ) 16:02
moritz if compilation works on windows, it should work on case-insensitive HFS too 16:04
masak hm. 16:05
16:05 SunilJoshi joined
geekosaur it works here and I'm using case insensitive on my primary drive (per apple recommendations; I think it may still refuse to install os x on a case sensitive hfs+) 16:07
16:08 cognominal left
lichtkind i think problem is alsewhere its pages over pages errors again i have to redirect that output in a file 16:12
moritz well, usually only the first error is actually interesting
lichtkind exactly 16:13
masak there should be like a tool that keeps track of dependencies between tasks and stops after the first error. 16:14
I see a big market for this.
lichtkind but looks like all warnings real error is in multi_dispatch.c:89:9 error void function 'add_to_cache' should return a value [-Wreturn-type] return NULL;
masak lichtkind: I'm pretty sure warnings of that kind aren't causing your current problem. 16:16
jnthn Hm, I already fixed that one 16:17
masak not on lichtkind's box :P
jnthn there should be like a tool that keeps a central copy of fixes to code so others can get hold of them P 16:18
lichtkind i did a fresh git clone 20 min ago
jnthn oh...that code is in NQP...
lichtkind allright more later gotta eat and post office is closing in 40 min 16:19
masak fare well, dear friend of run-on sentences :) 16:21
hoelzro what time does the release go out tomorrow? 16:22
masak .oO( how should I know? ask the release manager! ) :P
hoelzro .oO( who's the release manager? )
16:23 fgomez left
masak hoelzro: I'll likely cut it in the evening. a few hours + 24 h hence. 16:23
PerlJam
.oO( whoever steps up! :)
hoelzro masak: ok
I cleaned up my NQP work and stuffed it in a pull request
github.com/perl6/nqp/pull/86 16:24
masak hoelzro: nice. 16:25
masak looks 16:26
PerlJam would *really* like to see github properly highlight Perl 6 code
IF only to get $var-name highlighted correctly.
moritz masak: remember that there's already a skeleton for the release announcement (because we've switched it to markdown)
masak PerlJam: that's easy :) just provide them with a nice STD-based parser in some language they're prepared to run.
*grin* 16:27
hoelzro PerlJam: almost there!
16:27 bluescreen100 joined
hoelzro bitbucket.org/hoelzro/pygments-main 16:27
masak moritz: ok. thanks. is that in the release guide? it probably should be.
hoelzro I only have about three issues left
they all revolve around regexes =/
moritz masak: no, it's a one-time thing
PerlJam hoelzro: need any help?
moritz masak: ie next month you'll just be using the announcement from March as a template, which then will be markdown 16:28
hoelzro PerlJam: now that I'm almost done you ask ;)
masak moritz: ah, ok.
hoelzro PerlJam: honestly, just test it out
16:28 stevan__ joined
hoelzro I know how I'm going to solve 2/3 bugs I have left 16:28
bug 3 is correctly highlighting <[...]> + <[...]> or <[...]> - <[...]> 16:29
so if you can figure that out, that'd be amazing
also, the filetype detection is very primitive
it looks for a perl6 shebang line or 'use v6'
so I need to improve that
PerlJam hoelzro: let me clone the repo and see what I can do :) 16:30
hoelzro great!
16:30 stevan_ left, bluescreen10 left
FROGGS hoelzro: well, class, token, role, method declarations could also trigger that 16:31
but I believe a shebang and/or 'use v6' is pretty fine tii 16:32
too
PerlJam FROGGS: only if they happen before any "use" line. Perl 5 can have role, class, token, method, etc. declarations if they've used the appropriate syntax modulating module. 16:33
16:33 fgomez joined
hoelzro FROGGS: I have some ideas, they just haven't been high priority to fix =) 16:33
16:33 grondilu joined
FROGGS PerlJam: ahh okay, never used Moose and friends... 16:33
grondilu rn: my $_ = "BROWN"; s:p(1):g/O/A/; .say 16:34
p6eval rakudo 9be4cc: OUTPUT«Potential difficulties:␤ Redeclaration of symbol $_␤ at /tmp/7d1GWLaswU:1␤ ------> my $_ ⏏= "BROWN"; s:p(1):g/O/A/; .say␤BROWN␤»
..niecza v24-35-g5c06e28: OUTPUT«Potential difficulties:␤ Useless redeclaration of variable $_ (see line 0) at /tmp/xyDsEhChoX line 1:␤------> my $_ ⏏= "BROWN"; s:p(1):g/O/A/; .say␤␤BROWN␤»
FROGGS hoelzro: correctly, it has a minor priority
grondilu rn: $_ = "BROWN"; s:p(1):g/O/A/; .say
p6eval rakudo 9be4cc, niecza v24-35-g5c06e28: OUTPUT«BROWN␤»
PerlJam btw, hoelzro++ for pygments 16:35
hoelzro FROGGS: yeah, it's the last thing I intend to do
grondilu rn: $_ = "BROWN"; s:c(1):g/O/A/; .say
p6eval rakudo 9be4cc, niecza v24-35-g5c06e28: OUTPUT«BRAWN␤»
PerlJam and again hoelzro++ for POSIX stuff
:)
16:35 grondilu left
hoelzro \o/ 16:36
is there something in the spec for detecting v5 vs v6?
I thought I remember reading that somewhere
decommute & # I'll read the backlog 16:37
PerlJam S01:107
or there abouts
16:37 FROGGS left 16:39 uasi left 16:43 grondilu joined
grondilu rn: $_ = "foooo"; s/(.) ** 2 .. */$0; .say; 16:43
p6eval rakudo 9be4cc: OUTPUT«===SORRY!===␤Malformed replacement part; couldn't find final $stop␤at /tmp/BVoZeXq8VO:1␤------> $_ = "foooo"; s/(.) ** 2 .. */$0; .say;⏏<EOL>␤ expecting any of:␤ postfix␤»
..niecza v24-35-g5c06e28: OUTPUT«===SORRY!===␤␤Spaces not allowed in bare range at /tmp/QrlfZGCPO8 line 1:␤------> $_ = "foooo"; s/(.) ** 2 ..⏏ */$0; .say;␤␤Parse failed␤␤»
grondilu rn: $_ = "foooo"; s/(.) ** 2 .. */$0/; .say; 16:44
p6eval niecza v24-35-g5c06e28: OUTPUT«===SORRY!===␤␤Spaces not allowed in bare range at /tmp/139Ul6EYTF line 1:␤------> $_ = "foooo"; s/(.) ** 2 ..⏏ */$0/; .say;␤␤Parse failed␤␤»
..rakudo 9be4cc: OUTPUT«f o␤»
16:44 SmokeMachine left
grondilu rn: $_ = "foooo"; s/(.) ** 2..*/$0/; .say; 16:44
p6eval rakudo 9be4cc, niecza v24-35-g5c06e28: OUTPUT«f o o o o␤»
masak grondilu: the $0 is a list of matches. stringify it, and you get spaces. 16:48
16:49 kaare_ joined
masak rn: $_ = "foooo"; s/(.) ** 2..*/$0.join/; .say; 16:49
p6eval rakudo 9be4cc, niecza v24-35-g5c06e28: OUTPUT«f o o o o.join␤»
masak er :)
rn: $_ = "foooo"; s/(.) ** 2..*/$0.join()/; .say;
p6eval rakudo 9be4cc, niecza v24-35-g5c06e28: OUTPUT«foooo␤»
16:49 SmokeMachine joined
masak hoelzro: looks good. I'll merge this. 16:52
done. 16:53
dalek p: 42611bf | (Rob Hoelz)++ | src/ (2 files):
Add nqp::x_posixerrno
p: 9918925 | (Rob Hoelz)++ | t/nqp/67-errno.t:
Add test for nqp::x_posixerrno and pir::const::POSIX_*
p: c76de5a | (Rob Hoelz)++ | tools/build/generate-constants.pl:
Add script to generate list of errno value macros
p: 0e42959 | (Rob Hoelz)++ | tools/build/Makefile.in:
Generate nqp_const.pir as dependency for building NQP
nqp: f2e0aa1 | (Rob Hoelz)++ | src/HLL/Compiler.pm:
nqp: Include nqp_const.pir in registered constants
16:54 fgomez left 16:57 Chillance joined 17:07 daxim left
grondilu masak: thanks 17:13
17:14 wtw joined, bluescreen100 left 17:16 wk left 17:29 FROGGS joined
dalek kudo/tmp_highfive: 9b75a65 | (Tobias Leich)++ | / (5 files):
just for testing purposes
17:33
17:34 dwoldrich joined
FROGGS jnthn: if you have time to have a glimpse at that branch ---^ it would be super sweet 17:35
jnthn: compare -e 'say(1)' with -e 'use v5; say(1)'
I have no idea right now what piece of the puzzle is missing 17:36
17:41 SunilJoshi left
jnthn I know! It's the part you missed! :P 17:42
nqp::rebless($/.CURSOR, %*LANG<Perl5>); 17:44
That looks weird
FROGGS hmmm, within the Perl6::Grammar it is: nqp::rebless($/.CURSOR, %*LANG<MAIN>);
jnthn Yeah, but %*LANG<MAIN< will always be a subclass of what the cursor currently is. 17:45
FROGGS ahh, ohh
jnthn I'm pretty sure Grammar::Perl5 ain't a subclass of Grammar::Perl6 :)
FROGGS so I should change that
jnthn yeah, I'm surprised it doesn't explode.
FROGGS *g*
it explodes silently though...
jnthn Is it reached? 17:46
FROGGS reached what?
jnthn does the say("P6 use v5"); run, for example? 17:47
FROGGS it is switching to Perl6::P5Grammar, and yes, this statement gets printed
jnthn OK
Oh...
You didn't add anything to the action method for this rule, though?
FROGGS errr, no 17:48
ó.ò
jnthn If you update the statement_control:sym<use> grammar rule to parse something else, then the action method needs updating to say what to do with it.
I think at the moment no branch in the statement_control:sym<use>($/) action method is being hit, so there's no "make" statement executed, so its .ast is not set, so the next thing up is in trouble. 17:49
elsif $<statementlist> { make $<statementlist>.ast; } # or so 17:50
FROGGS kk 17:53
diakopter rn: use v3.14159; say 'alive' 18:00
p6eval rakudo 9be4cc, niecza v24-35-g5c06e28: OUTPUT«alive␤»
diakopter p: use v3.14159; say 'alive' 18:01
p6eval pugs: OUTPUT«alive␤»
18:01 vaelxon left 18:02 fgomez joined
diakopter r: use v9; BEGIN say 'alive9'; use v10; BEGIN say 'alive10'; 18:05
p6eval rakudo 9be4cc: OUTPUT«alive9␤===SORRY!===␤Could not find v10 in any of: /home/p6eval/nom-inst/lib/parrot/4.10.0-devel/languages/perl6/site/lib, /home/p6eval/nom-inst/lib/parrot/4.10.0-devel/languages/perl6/vendor/lib, /home/p6eval/nom-inst/lib/parrot/4.10.0-devel/languages/perl6/lib, /h…
diakopter so.. how is there a v9 but not a v10 18:06
18:07 spider-mario joined
jnthn std: use v9; BEGIN say 'alive9'; use v10; BEGIN say 'alive10'; 18:08
p6eval std 86b102f: OUTPUT«===SORRY!===␤Cannot locate module v9 at /tmp/6ELjvcsXmT line 1:␤------> use v9⏏; BEGIN say 'alive9'; use v10; BEGIN say␤Cannot locate module v10 at /tmp/6ELjvcsXmT line 1:␤------> use v9; BEGIN say 'alive9'; use v10⏏[31…
jnthn Hm, curious :) 18:09
I seem to recall there being something interesting going on with LTM there between a module name and a version
token version:sym<v> {
'v' <?before \d> :: <vnum> +% '.' '+'?
That goes some way to explaining it :) 18:10
dinner; bbiab
18:12 am0c left 18:14 fgomez left, xilo left 18:16 dakkar left, shinobicl joined, xilo joined
pmichaud (nqp_errno): I think the nqp_const.pir file needs to be installed somewhere on "make install" The patch doesn't show that being done. 18:19
dalek rl6-roast-data: 2a026d7 | coke++ | / (3 files):
today (automated commit)
rl6-roast-data: 8e24a9f | coke++ | / (3 files):
today (automated commit)
lichtkind jnthn: allright have first warning 18:20
jnthn: its in nqp_ops.c:3391::33
pmichaud nqp_ops.c has lots of warnings on linux-ish boxes that can be safely ignored. 18:22
lichtkind jnthn: warning: equality comparison with extraneous parentheses [-Wparentheses-equality]
FROGGS lichtkind: I guess this one can be ignored 18:23
lichtkind if ((var->vtable->base_type ==smo_id)) {
18:23 SamuraiJack joined
lichtkind yes buts the first one that lead to compile error 18:23
iposted the error too so i did my duty
pmichaud posted where? 18:24
lichtkind 2h ago in this list
realistically i dont have time for that should write something else
18:25 ggoebel left
FROGGS lichtkind: I dont see a link 18:25
[Coke] rakudo test clean 3 days in a row again.
lichtkind sure but fails on darwin
FROGGS lichtkind: there is no link within today's irclog 18:28
lichtkind but i wrote: multi_dispatch.c:89:9 error void function 'add_to_cache' should return a value [-Wreturn-type] return NULL; 18:29
there really my compilation ends
diakopter rnp: my $a = []; my $b := $a[1]; push $a, 5, 6; say $b; $b = 7; say $a.perl
p6eval rakudo 9be4cc: OUTPUT«(Any)␤[5, 7]␤» 18:30
..niecza v24-35-g5c06e28: OUTPUT«(Any)␤[Any, 7, 5, 6]␤»
..pugs: OUTPUT«␤\\(undef, 7, 5, 6)␤»
18:30 ggoebel joined, wk joined
pmichaud rn: my $a = []; my $b := $a[1]; say $a.elems; $b = 7; say $a.elems 18:31
p6eval niecza v24-35-g5c06e28: OUTPUT«2␤2␤»
..rakudo 9be4cc: OUTPUT«0␤2␤»
diakopter rnp: my $a = []; my $b := $a[1]; unshift $a, 5, 6; say $b; $b = 7; say $a.perl 18:32
p6eval pugs: OUTPUT«␤\\(5, 6, undef, 7)␤»
..rakudo 9be4cc: OUTPUT«(Any)␤[5, 7]␤»
..niecza v24-35-g5c06e28: OUTPUT«(Any)␤[5, 6, Any, 7]␤»
diakopter I can perhaps understand rakudo putting the 7 where it does, but why does it then say Any for $b at first 18:33
pmichaud because it's an uninitialized variable.
diakopter there's not a 6 there? 18:34
pmichaud no.
$b is tied to the container at $a[1], it isn't tied to position 1 of $a. 18:35
diakopter they how does the 7 overwrite the 6
pmichaud oh, wait.
oh 18:36
because $b := $a[1] doesn't vivify $a[1], we instead get a scalar that will attempt to vivify $a[1] when it's assigned to
when we assign to $b, we see that $a[1] has already been vivified, so we assign to that instead of binding the unused one.
that's so that the following succeeds: 18:38
diakopter why doesn't $b read 6 at first then
18:38 zby_home_ joined
pmichaud rn: my $a = []; my $b := $a[1]; my $c := $a[1]; $b = 6; say $c; 18:38
p6eval niecza v24-35-g5c06e28: OUTPUT«6␤»
..rakudo 9be4cc: OUTPUT«(Any)␤»
pmichaud er
ick.
yeah 18:39
anyway, the reason $b doesn't read 6 is because it's not bound to the $a[1] that was created by the unshift
worse might be 18:40
rn: my $a = []; my $b = $a[1]; $a.unshift(5,6); $b = 7; say $a.perl; say $b.perl; 18:41
p6eval rakudo 9be4cc, niecza v24-35-g5c06e28: OUTPUT«[5, 6]␤7␤»
pmichaud oops
rn: my $a = []; my $b := $a[1]; $a.unshift(5,6); $b = 7; say $a.perl; say $b.perl;
18:41 jeffreykegler joined
p6eval rakudo 9be4cc: OUTPUT«[5, 7]␤7␤» 18:41
..niecza v24-35-g5c06e28: OUTPUT«[5, 6, Any, 7]␤7␤»
pmichaud okay, that works for some reason.
diakopter rnp: my $b := []; $b = 7; say $b.perl
p6eval niecza v24-35-g5c06e28: OUTPUT«Unhandled exception: Writing to readonly scalar␤ at /tmp/XBp1omJ62V line 1 (mainline @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4299 (ANON @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4300 (module-CORE @ 583) ␤ at /home/p6eval/niecza/li…
..pugs: OUTPUT«\(7,)␤»
..rakudo 9be4cc: OUTPUT«7␤»
diakopter rnp: my $b := [0]; say $b.WHAT; $b = 7; say $b.perl; say $b.WHAT 18:42
p6eval rakudo 9be4cc: OUTPUT«(Array)␤7␤(Int)␤»
..pugs: OUTPUT«Array()␤\(7,)␤Array()␤»
..niecza v24-35-g5c06e28: OUTPUT«(Array)␤Unhandled exception: Writing to readonly scalar␤ at /tmp/NxrkqHKGUX line 1 (mainline @ 5) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4299 (ANON @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4300 (module-CORE @ 583) ␤ at /home/p6eval/n…
diakopter rnp: my $b := \[0]; say $b.WHAT; $b = 7; say $b.perl; say $b.WHAT 18:44
p6eval niecza v24-35-g5c06e28: OUTPUT«(Capture)␤Unhandled exception: Writing to readonly scalar␤ at /tmp/5KO1Y8GFRe line 1 (mainline @ 6) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4299 (ANON @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4300 (module-CORE @ 583) ␤ at /home/p6eval…
..rakudo 9be4cc: OUTPUT«(Capture)␤Cannot modify an immutable value␤ in block at /tmp/E9YLCq5spu:1␤␤»
..pugs: OUTPUT«Array()␤\(7,)␤Array()␤»
diakopter ok..
pmichaud hoelzro: did you see my note about needing to install nqp_const.pir ? 18:51
(release) Are we going to stay with minimum Parrot 4.10 for the 2013.03 release? 18:52
diakopter r: my $b := sub { $b }; say $b()()()()()()()()()()()()()()()()()() 18:53
p6eval rakudo 9be4cc: OUTPUT«sub() { ... }␤»
diakopter heh
pmichaud guesses "yes" to sticking with PARROT_RELEASE at 4_10_0 for this month.
diakopter r: my Positional @b := @b[0]; 18:55
p6eval rakudo 9be4cc: OUTPUT«Type check failed in binding; expected 'Positional' but got 'Positional'␤ in block at /tmp/zr_GxU3uIn:1␤␤»
diakopter _o_o
rakudo, which Positional is the evil twin? 18:56
18:56 wk left, xilo left, xilo joined 19:02 SamuraiJack left
masak hands diakopter a Y combinator 19:04
I'm tempted to rakudosubmit the 'my Positional @b := @b[0]' one 19:05
19:06 fgomez joined 19:09 jeffreykegler left
moritz what should happen? 19:11
diakopter has no idea 19:14
but *something*'s wrong ;)
jnthn It's an error reporting fail that is already RT'd, iirc 19:19
One of those should be Positional[Positional]
masak ah, yes.
that one is reported.
ooh, I have a heisenbug here. 19:22
add debug statements: "no, of course nothings wrong". remove them: "something's wrong".
:/
masak tries to golf it 19:24
rn; say; say "alive" 19:25
19:25 fhelmberger left
masak rn: say; say "alive" 19:26
p6eval niecza v24-35-g5c06e28: OUTPUT«===SORRY!===␤␤Unsupported use of bare 'say'; in Perl 6 please use .say if you meant $_, or use an explicit invocant or argument at /tmp/7l9JxqYH06 line 1:␤------> say⏏; say "alive"␤␤Unhandled exception: Check failed␤␤ …
..rakudo 9be4cc: OUTPUT«␤alive␤»
masak is this one difficult to fix?
Rakudo's had it basically since the nom branch.
jnthn If not forever... 19:28
I don't think it's too hard. Just find where STD does it and see if it's a simple copy/paste
19:30 fgomez left 19:31 fgomez joined
masak no, not forever. 19:33
we did it sufficiently far back.
I'll see what I can do.
just found my heisenbug :) 19:34
yeah, this is a weird one.
diakopter run it? 19:35
masak rn: my $c = [[1]].map({ [ @$_ ] }); $c.push( 42 ); say $c.perl
19:35 bluescreen100 joined
p6eval rakudo 9be4cc, niecza v24-35-g5c06e28: OUTPUT«([1], 42).list.item␤» 19:35
masak rn: my $c = [[1]].map({ [ @$_ ] }); $c.unshift( 42 ); say $c.perl 19:36
p6eval rakudo 9be4cc: OUTPUT«(42,).list.item␤»
..niecza v24-35-g5c06e28: OUTPUT«(42, [1]).list.item␤»
masak submits rakudobug
jnthn masak: I think before we may have caught it at runtime. 19:38
masak possibly.
but we did catch it.
...which is like 1000% better than printing empty lines ;) 19:39
rn: my $c = [[1], [2], [3]].map({ [ @$_ ] }); $c.unshift( 42 ); say $c.perl
p6eval niecza v24-35-g5c06e28: OUTPUT«(42, [1], [2], [3]).list.item␤»
..rakudo 9be4cc: OUTPUT«(42,).list.item␤»
jnthn That's a weird one... 19:41
masak rn: my $c = [[1], [2], [3]]; $c.unshift( 42 ); say $c.perl
p6eval rakudo 9be4cc, niecza v24-35-g5c06e28: OUTPUT«[42, [1], [2], [3]]␤»
masak and the deep-cloning is part of it.
*phew* -- at least it wasn't a lexical bug! :D 19:42
19:43 grondilu left
jnthn my $c = [[1], [2], [3]].map({ [ @$_ ] }).eager; $c.unshift( 42 ); say $c.perl 19:44
r: my $c = [[1], [2], [3]].map({ [ @$_ ] }).eager; $c.unshift( 42 ); say $c.perl
p6eval rakudo 9be4cc: OUTPUT«(42, [1], [2], [3]).list.item␤»
jnthn I'm wondering if it's a mishandling of $!nextiter 19:45
pmichaud: ^^ if you have a moment.
diakopter r: my $c = [[1], [2], [3]].map({ say $_.WHAT; [[ @$_ ]] }).eager; $c.unshift( 42 ); say $c.perl 19:48
p6eval rakudo 9be4cc: OUTPUT«(Array)␤(Array)␤(Array)␤(42, [[1]], [[2]], [[3]]).list.item␤»
masak r: my $c = [[1], [2], [3]].map({ [ @$_ ] }).eager; $c.unshift( 42 ); say $c.perl 19:49
p6eval rakudo 9be4cc: OUTPUT«(42, [1], [2], [3]).list.item␤»
masak so ".eager" seems to make the difference. hmm.
19:49 sqirrel left
masak and .unshift only wants the beginning, and .push wants the end. hmm hmm. 19:49
oh man. this may not even be a bug :( 19:50
diakopter just so I'm clear, what did youthink the problem was
jnthn masak: It feels like a bug to me, fwiw.
masak r: my $c = [[1], [2], [3]].map({ say $_.WHAT; [[ @$_ ]] }).eager; $c.unshift( 42 ); say $c.perl
p6eval rakudo 9be4cc: OUTPUT«(Array)␤(Array)␤(Array)␤(42, [[1]], [[2]], [[3]]).list.item␤»
masak rn: my $c = [[1]].map({ [ @$_ ] }); $c.unshift( 42 ); say $c.perl
p6eval rakudo 9be4cc: OUTPUT«(42,).list.item␤»
..niecza v24-35-g5c06e28: OUTPUT«(42, [1]).list.item␤»
masak diakopter: the bug is that rakudo doesn't behave like niecza there.
i.e. it loses my [1] 19:51
jnthn I'm guessing a good bit here, but $!items is the currently reified stuff, potentially with an iterator at the end, and $!nextiter is a thing we can use to get more elements, and making $!items exist hides the $!nextiter. 19:52
19:53 fgomez left
jnthn *If* that's the case, I don't know if the bug is that $!nextiter isn't moved into $!items, or that it's not seen later on. 19:53
pmichaud back again 19:56
diakopter rn: my $c = [66]; $c.=map({ [ @$_ ] }); $c.unshift( 42 ); say $c.perl # ha!
p6eval rakudo 9be4cc: OUTPUT«(42,).list.item␤»
..niecza v24-35-g5c06e28: OUTPUT«(42, [66]).list.item␤»
diakopter rn: my $c = [[66]]; $c.=map({ [ @$_ ] }); $c.unshift( 42 ); say $c.perl # ha! 19:57
p6eval rakudo 9be4cc: OUTPUT«(42,).list.item␤»
..niecza v24-35-g5c06e28: OUTPUT«(42, [66]).list.item␤»
19:57 wk joined
diakopter rn: my @c = [66]; @c.=map({ [ @$_ ] }); @c.unshift( 42 ); say @c.perl 19:57
p6eval rakudo 9be4cc: OUTPUT«Array.new(42, [66])␤»
..niecza v24-35-g5c06e28: OUTPUT«[42, [66]].list␤»
diakopter rn: my @c = [[66]]; @c.=map({ [ @$_ ] }); @c.unshift( 42 ); say @c.perl
p6eval niecza v24-35-g5c06e28: OUTPUT«[42, [[66]]].list␤»
..rakudo 9be4cc: OUTPUT«Array.new(42, [[66]])␤»
diakopter heh
pmichaud I'm having trouble following the syntax, or what is expected. Just a sec 19:58
diakopter (see more backlog)
jnthn pmichaud: The examples before diakopter started throwing stuff at p6eval are more informative ;)
pmichaud ETOOMUCHBACKLOG
masak there's also an RT ticket ;)
pmichaud can I just look at the ticket?
masak rt.perl.org/rt3/Ticket/Display.html?id=117235
diakopter note the @c does fine 19:59
pmichaud rn: my $c = [[1],[2],[3]].map({ [ @$_ ]}); say $c.perl;
p6eval rakudo 9be4cc, niecza v24-35-g5c06e28: OUTPUT«([1], [2], [3]).list.item␤»
eiro /wg #soul9
pmichaud rn: my $c = [[1],[2],[3]].map({ [ @$_ ]}); say $c.perl; $c.unshift(42); say $c.perl
p6eval rakudo 9be4cc, niecza v24-35-g5c06e28: OUTPUT«([1], [2], [3]).list.item␤(42, [1], [2], [3]).list.item␤»
eiro oops sorry
hello all
masak heiro! \o/
jnthn o/ eiro
eiro :) what's up ? 20:00
masak eiro: you're up!
eiro haha :)
pmichaud ...what am I missing?
jnthn pmichaud: irclog.perlgeek.de/perl6/2013-03-20#i_6610221 is my best guess
masak pmichaud: it's as if .unshift causes an unfinished iterator to forget where it is.
jnthn pmichaud: Note that putting the $c.perl *before* the unshift actually hides teh bug. 20:01
masak right.
because .perl eats it all.
but .map doesn't.
jnthn s/eats/reifies/
pmichaud rn: my $c = [[1],[2],[3]].map({ [ @$_ ]}); $c.unshift(42); say $c.perl 20:02
p6eval niecza v24-35-g5c06e28: OUTPUT«(42, [1], [2], [3]).list.item␤»
..rakudo 9be4cc: OUTPUT«(42,).list.item␤»
masak jnthn: right.
diakopter watch this:
rn: my $c = [[1]].map({ [ @$_ ] }); $c.unshift( 42 ); say $c.perl
p6eval rakudo 9be4cc: OUTPUT«(42,).list.item␤»
..niecza v24-35-g5c06e28: OUTPUT«(42, [1]).list.item␤»
diakopter rn: my $c = [[1]].map({ [ @$_ ] }); say $c.perl; $c.unshift( 42 ); say $c.perl
p6eval niecza v24-35-g5c06e28: OUTPUT«([1], ).list.item␤(42, [1]).list.item␤»
..rakudo 9be4cc: OUTPUT«([1],).list.item␤(42, [1]).list.item␤»
diakopter true heisenbug 20:03
jnthn Not really.
pmichaud it just has to do with eagerness.
jnthn It's very repeatable. :)
Yeah. 20:04
masak pmichaud: surely .unshift destroying items is wrong? :(
diakopter I meant in the sense that observing it mutated it
jnthn diakopter: oh, then yes, good point :)
pmichaud masak: I'm looking. method unshift is clearly wrong in List
masak \o/
pmichaud well, maybe not. 20:06
yes, something is wrong.
rn: my $c = [[1],[2],[3]].map( { $_ } ); $c.unshift(42); say $c.perl; 20:07
p6eval niecza v24-35-g5c06e28: OUTPUT«(42, [1], [2], [3]).list.item␤»
..rakudo 9be4cc: OUTPUT«(42,).list.item␤»
diakopter is the problem not just that unshift doesn't .eager it first? 20:08
pmichaud is unshift supposed to be eager?
jnthn No
pmichaud the problem is in .map or ListIter 20:09
jnthn I think the problem is that .map populates $!nextiter in the resulting List
And that nqp::p6listitems(self); then binds an RPA to $!items
(at the start of unshift)
And that RPA doesn't include what was in $!nextiter, so is essentially "lost" 20:10
I may be misunderstanding the model here, though.
pmichaud that seems like a correct analysis
diakopter how could unshift get away with not being eager?
pmichaud simple
my @a = 1..*; @a.unshift(0); 20:11
do we have to evaluate all of 1..* before doing the unshift?
masak no.
jnthn diakopter: You're putting things on the start of the list. That doesn't depend on evaluating anything else.
pmichaud we know the result ends up being 0, 1..*
jnthn push, otoh... :)
pmichaud push is eager, yes.
masak .oO( sometimes even a bit pushy... ) 20:12
pmichaud jnthn: the $!items RPA never includes lazily evaluated elements, though.
$!items is only for those things that are already reified 20:13
jnthn pmichaud: Oh.
diakopter rn: my @a = 1..20; say shift @a; say @a.perl
p6eval niecza v24-35-g5c06e28: OUTPUT«1␤[2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20].list␤»
..rakudo 9be4cc: OUTPUT«1␤Array.new(2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20)␤»
diakopter then why is shift eager
pmichaud shift isn't eager there, assignment is.
my @a = 1..20; fully populates @a 20:14
rn: my @a = 1..*; say shift @a; say @a.perl
p6eval niecza v24-35-g5c06e28: OUTPUT«(timeout)»
..rakudo 9be4cc: OUTPUT«(timeout)1␤»
pmichaud huh
masak diakopter: there's a real difference between @a assignment and $a assignment
pmichaud rn: my @a = 1..*; say shift @a; 20:15
p6eval niecza v24-35-g5c06e28: OUTPUT«(timeout)»
..rakudo 9be4cc: OUTPUT«1␤»
masak diakopter: in terms of eagerness, I mean.
pmichaud r: my @a = 1..*; say shift @a; say @a.gist
p6eval rakudo 9be4cc: OUTPUT«1␤2 3 4 5 ...␤»
pmichaud better.
jnthn r: my @a = 1..*; say shift @a; say @a
GlitchMr But, I thought you can assign infinite lists to @ variables.
r: my @a = 1 .. Int;
r: my @a = 1 .. Inf; 20:16
fail
pmichaud GlitchMr: you can. I just did, above.
p6eval rakudo 9be4cc: OUTPUT«1␤2 3 4 5 ...␤»
rakudo 9be4cc: OUTPUT«Parameter '' requires an instance, but a type object was passed␤ in method Real at src/gen/CORE.setting:3053␤ in method new at src/gen/CORE.setting:5309␤ in method new at src/gen/CORE.setting:5289␤ in sub infix:<..> at src/gen/CORE.setting:5480␤ in block at /…
rakudo 9be4cc: ( no output )
20:16 japhb_ joined
pmichaud jnthn/masak: all I can conjecture at this point is that the $!nextiter chain is being lost somewhere. 20:17
r: my $c = [[1],[2],[3]].map( { $_ } ); nqp::p6listitems($c); say $c; 20:18
p6eval rakudo 9be4cc: OUTPUT«Can not get attribute '$!items' declared in class 'List' with this object␤ in block at /tmp/yulP9dv0oJ:1␤␤»
pmichaud r: my $c = [[1],[2],[3]].map( { $_ } ); nqp::p6listitems(nqp::p6decont($c)); say $c;
p6eval rakudo 9be4cc: OUTPUT«1 2 3␤»
diakopter r: my $a = [1..*]; say $a.elems; say shift $a; say $a.elems 20:19
p6eval rakudo 9be4cc: OUTPUT«Inf␤1␤Inf␤»
20:19 shinobicl left
jnthn r: my $c = [[1],[2],[3]].map( { $_ } ); nqp::unshift(nqp::p6listitems(nqp::p6decont($c)), 4); say $c 20:19
p6eval rakudo 9be4cc: OUTPUT«4 1 2 3␤»
pmichaud yeah. 20:20
jnthn hm, why doesn't that expose it...
pmichaud I'm guessing it might be a problem with $!items ?
is that cached somehow in a register or something?
20:20 Liz joined
pmichaud because nqp::p6listitems() will rebind $!items 20:21
20:21 Liz is now known as Guest9302
jnthn No, I don't think we do any caching of attribute lookups 20:21
a $!items compiles to a getattrbiute
pmichaud doublecheckng p6listitems to see what it does
20:22 rindolf left
dalek kudo/nom: 88ea890 | jnthn++ | tools/build/NQP_REVISION:
Bump to NQP_REVISION with a build fix.

Was just a warning fix in theory, but may be an error for some.
20:23
lichtkind jnthn: the fix of the nqp problem you talked about, it is in main branch?
looks like the answer :)
jnthn lichtkind: It was in the main branch of NQP. Somehow, probably 'cus of all the multi dispatch work I'd been doing in the Rakudo repo, I didn't think to update NQP_REVISION also. 20:24
20:25 Guest9302 left
jnthn Rakudo used to have its own multi cache, but that bit of infrastruture is reused now. 20:25
pmichaud r: my $c = [[1],[2],[3]].map( { $_ } ); $c.unshift(42).perl.say
p6eval rakudo 9be4cc: OUTPUT«(42, [1], [2], [3]).list␤»
lichtkind jnthn: your main goal i till jvm port? 20:26
pmichaud I wonder if the problem is related to sink context.
r: my $c = [[1],[2],[3]].map( { $_ } ); $c.unshift(42).say
p6eval rakudo 9be4cc: OUTPUT«42 1 2 3␤»
pmichaud $c.unshift(42); is being evaluated in sink context.
moritz that might be it
20:26 yoleaux joined
pmichaud r: my $c = [[1],[2],[3]].map( { $_ } ); $c.unshift(42) + 1; say $c.perl; 20:26
p6eval rakudo 9be4cc: OUTPUT«WARNINGS:␤Useless use of "+" in expression ".unshift(42) + 1" in sink context (line 1)␤(42, [1], [2], [3]).list.item␤» 20:27
pmichaud yup.
jnthn oh, wow
jnthn shouldn't have guessed that one...
pmichaud r: my $c = [[1],[2],[3]].map( { $_ } ); $c.unshift(42).sink; say $c.perl;
p6eval rakudo 9be4cc: OUTPUT«(42,).list.item␤»
pmichaud there ya go.
moritz niecza doesn't implement sink context
masak huh.
20:27 Liz_ joined
pmichaud maybe this is the point where I try to figure out what you all have done to scre.... implement sink context :-) 20:27
FROGGS did nothing wrong this time 20:28
pmichaud r: my $c = [[1],[2],[3]].map( { $_ } ); $c.sink; say $c.perl;
p6eval rakudo 9be4cc: OUTPUT«().list.item␤»
moritz pmichaud: c4083c42f2e63c97254b7a215a858913c4ff4a44 is the relevant merge commit 20:29
pmichaud golfed.
jnthn r: my @c = [[1],[2],[3]].map( { $_ } ); @c.sink; say @c.perl
p6eval rakudo 9be4cc: OUTPUT«Array.new([1], [2], [3])␤»
jnthn r: my @c := [[1],[2],[3]].map( { $_ } ); @c.sink; say @c.perl 20:30
p6eval rakudo 9be4cc: OUTPUT«().list␤»
pmichaud I'll have to look at it later (i.e., maybe tomorrow), though; I have to prepare for a meeting in 60 mins.
jnthn pmichaud++ # golfing
pmichaud I don't know if that bug is big enough to warrant holding up the release. My initial thought is "yes"
although perhaps it's been there for several months already (i.e., since 2013.01) 20:31
moritz it has
star: my @c := [[1],[2],[3]].map( { $_ } ); @c.sink; say @c.perl 20:32
p6eval star 2013.02: OUTPUT«().list␤»
jnthn Was gonna say, it's been in a previous release.
20:32 fgomez joined
jnthn Which doesn't mean we shoudln't try to make sure it's fixed in the upcoming one. 20:32
Though that may be a Star issue more than a compiler one.
pmichaud pmichaud@kiwi:/zip/perl/rakudo-star-2012.12$ ./perl6
> my $c = [[1], [2], [3]].map( { $_ } ); $c.unshift(42); say $c;
42 1 2 3
masak \o/ 20:33
pmichaud well, it's been in the 2013.* releases, undoubtedly.
checking.
20:33 zby_home_ left
lichtkind got to make phase tons of warnings but still looking good 20:33
20:33 Liz_ is now known as lizmat
pmichaud anyway, I won't be able to work on it until tonight. 20:33
or late tomorrow.
I'll let you all decide how to handle the release. 20:34
masak oki 20:35
dalek kudo/tmp_highfive: c8a0d35 | (Tobias Leich)++ | src/Perl6/ (4 files):
MAIN is always the current language; add P5/P6 to debug output
20:36
FROGGS jnthn: sometimes it is funny that you can change hundrets of essential lines, and nothing changes...
dalek kudo/nom: 8fea533 | jnthn++ | docs/ChangeLog:
A couple of ChangeLog entries.
20:37
20:37 domidumont left
FROGGS but I believe it is as you said, I changed token which dont fit to the action methods anymore 20:37
jnthn FROGGS: Yes, the set of things you capture in your grammar rule is kind of the API the actions depend on.
20:39 mikess joined
moritz fwiw I'm not sure the unshift thing above is actually a bug 20:39
.sink emptying lists is how we can avoid building huge result lists for for 1..10_000 { .say } in sink context 20:40
pmichaud .sink should never empty something held in a scalar container, however.
which $c obviously is.
moritz is that specced somewhere? :-) 20:41
pmichaud my @c = [1], [2], [3].map({$_}); @c.unshift(42); say @c.perl;
r: my @c = [1], [2], [3].map({$_}); @c.unshift(42); say @c.perl;
p6eval rakudo 9be4cc: OUTPUT«Array.new(42, [1], [2], 3)␤»
pmichaud r: my @c := [[1], [2], [3].map({$_})]; @c.unshift(42); say @c.perl; 20:42
p6eval rakudo 9be4cc: OUTPUT«Array.new(42, [1], [2], 3)␤»
pmichaud hmm.
r: my @c := [[1], [2], [3]].map({$_})]; @c.unshift(42); say @c.perl;
p6eval rakudo 9be4cc: OUTPUT«===SORRY!===␤Unexpected closing bracket␤at /tmp/Lm3s5ZOWAV:1␤------> my @c := [[1], [2], [3]].map({$_})⏏]; @c.unshift(42); say @c.perl;␤»
moritz ok, why doesn't that expose the bug?
pmichaud r: my @c := [[[1], [2], [3]].map({$_})]; @c.unshift(42); say @c.perl;
p6eval rakudo 9be4cc: OUTPUT«Array.new(42, [1], [2], [3])␤»
pmichaud bad parens.
I'd have to check it out further. But I'm quite certain that .sink should not empty out a scalar array.
an unbound array can be emptied, yes, but not a bound one. 20:43
moritz but in general we don't know inside the array if it's bound somewhere
if it's in a scalar container, we happen to know that
pmichaud agreed, that's been a common problem with laziness and lists
moritz we could also change the spec not to return the invocant from List.unshift 20:44
pmichaud then we can't do things like @a.unshift(42).say
that seems wrong.
moritz well, we can say (42, @a).say
if that's what you want
pmichaud that doesn't change @a
moritz yes, I know 20:45
20:46 yoleaux left, kurahaupo joined, yoleaux joined
pmichaud I think sink context *has* to be smarter than "throw away items for whatever I find", otherwise there's just too much surprise 20:46
timotimo .o(... i am the man who arranges the bugs ...)
pmichaud as seen in the discussion above, and the fact that it took so long to identify sink context as the culprit.
moritz fwiw sofar this has been the only surprise from throwing away stuff
pmichaud ...that we know of. 20:47
moritz so it can't be *that* pervasive
pmichaud but I'll go with "fair enough" for the moment.
moritz but in general I'm not very happy with it
IMHO it would make stuff much more transparent if is simply gave up the "for is an alias for map" doctrine 20:48
and say that 'for' is always eager
and map is lazy
and be done with it
and then we don't need sink context for listy stuff anymore
just for blowing up Failure objects returned in sink context
it'd also solve the problem that the exception escapes in try { for 1..3 { die "foo" } } 20:49
to fix that with the old sink context semantics, we have to propagate the context inwards 20:50
jnthn Yeah, true
moritz something which isn't trivial in all runtimes
and I also thought we'd said goodbye to propagating context inwards
pmichaud no, but TimToady has expressed a few times that sink context is something that propagates inwards. :) 20:51
jnthn moritz: Me also.
moritz pmichaud: I know he did
jnthn It's counter to the usual flow of context in Perl 6, is all.
moritz pmichaud: but I'm not convinced it's necessary if we simply say that 'for' isn't lazy
jnthn 'for' being lazy *does* catch people out.
moritz and 'for' being lazy is more surprising than anything 20:52
jnthn Decalring it eager or sinky will catch people out in the case they write sub foo() { for @blah { ... } }
moritz so we jump through hoops to make it eager again
jnthn Which will build up a throw-away result list.
pmichaud I don't have an argument with that. 'for' seems like an imperative statement, much like 'while', 'loop', 'if', 'do', etc.
moritz so, my official proposal: make 'for' eager.
masak +1
moritz keep 'map' lazy. 20:53
pmichaud what happens in the case of
(building)
oh, do we no longer have a map function? 20:54
rakudo: say map
p6eval rakudo 9be4cc: OUTPUT«===SORRY!===␤CHECK FAILED:␤Calling 'map' will never work with no arguments (lines 1, 1)␤ Expected any of:␤ :(&code, *@values)␤»
jnthn r: say map { 2 * $_ }, 1, 2, 3
p6eval rakudo 9be4cc: OUTPUT«2 4 6␤»
pmichaud is the sub form of map lazy, too? 20:55
moritz why shouldn't it be?
"yes"
jnthn Should be; I think it just delegates to the method.
pmichaud map { say $_+1 }, @a
is a p5-ish idiom.
moritz "doctor, it hurts" 20:56
pmichaud how about grep?
grep { .say }, @a
or even
moritz "doctor, it hurts"
pmichaud really?
jnthn Wait, in sink context those two are fine?
20:56 yoleaux left
moritz currently, yes 20:56
20:57 yoleaux joined
pmichaud yes, that's part of the point of sink context. It makes lazy things eager. 20:57
and not just 'for'
moritz pmichaud: fwiw I've never seen either of those used in Perl 5 code, except to demonstrate anti-pattern
*patterns
masak pmichaud: you have a point.
pmichaud it makes lazy Failures eager, it makes lazy iterators eager.
I'm fine with saying 'for' is eager by default, but I don't think it resolves the issues with sink context. 20:58
masak is exhausted
jnthn Indeed.
masak 'night, #perl6
FROGGS gnight masak
jnthn iiuc, the bug we're seeing here is that we can't distinguish a bound thing from an unbound thing. 20:59
pmichaud I went down that path in 2010, fwiw. 21:00
that's what led us to immutable iterators.
dalek kudo/tmp_highfive: b68b046 | (Tobias Leich)++ | src/Perl6/P5Actions.pm:
Perl 5 sub is called now, even if the param is borken
FROGGS jnthn: ./perl6 -e 'use v5; say(7)' 21:01
0
pmichaud I'm not opposed to revisiting that path... but... gosh.
jnthn pmichaud: Given how well the immutable iterator model is serving us otherwise, imho...
pmichaud: I'd be rather reluctant to reconsider *that* bit... 21:02
pmichaud I suspect the immediate problem is with List.sink -- it sending the :sink option to .gimme to say "hey! throw away my contents" and it shouldn't do that.
List.sink doesn't have enough information to do that, nor is that consistent with the immutable iterator model for doing things.
jnthn OK. That bit was probably my doing. 21:03
pmichaud if you just change method sink to method sink() { eager() }
then masak++'s bug probably goes away.
(at the possible cost of keeping long lists around, but that's where we were before sink context anyway)
jnthn It probably does. Sadly, so does...yes, that.
Part of the reason for sink context was to be able to not do that.
pmichaud (and the "don't keep long lists around" involves other changes to List which I was working on before tuit interruptus) 21:04
moritz is there any place that has enough information to say "iterate eagerly and throw the results away"?
pmichaud "throw the results away" is supposed to happen via gc 21:05
i.e., the results are thrown away because nothing needs them any longer
that's the core of immutable cursors and immutable iterators
tadzik whatwat 21:06
jnthn So the core fail hear is that it tries to avoid ever keeping them?
*here
tadzik FROGGS, FROGGS, is that what I think it is?
jnthn When it should just build smaller pieces and let them before unreferencd more readily?
pmichaud the core fail here is that List and Map aren't quite sophisticated enough to not keep things around too long
FROGGS tadzik: well, depends *g* 21:07
pmichaud there are ways to improve the communication among the lists... I just haven't had a chance to implement them yet :-/
moritz pmichaud: how does one debug such stuff?
jnthn pmichaud: Ah, and then I tried to make up for it by doing something that I now realize goes against the grain of the model.
FROGGS tadzik: but dont expect too much, I just spent four days on it so far
pmichaud well, it's a common mistake - I had a :sink option in earlier versions of List which I never fully eliminated, too. 21:08
so it's easy to be misled :)
sink context and flattening context for lists are something that MapIter, List, and ListIter have to be intimately aware of in order to be efficient (both speed and memory) 21:09
and we don't have a solid enough API to do that yet.
and that's mostly due to my inaction at this point, I suspect. 21:10
21:10 supernovus joined
pmichaud and figuring that out is partially why I hadn't gone too far on sink context :) 21:10
but I'm very happy for the pieces we have now. 21:11
we just need to keep the eagerness aspect of sink context and ignore the "throw stuff away" part of it for the moment.
21:11 mtk joined
supernovus Good * all you (happy|sad|mad|insane) Perl 6 people! :-) 21:11
pmichaud doesn't feel that he fits that particular disjunction.
tadzik FROGGS: you're a hero gotham deserves 21:12
hey supernovus!
diakopter conflicted|unknown|complex|rapidly-cycling
supernovus Let's see, lead developer of a Perl 6 compiler, certainly should fit you into the insane category ;-) 21:13
lizmat agrees with tadzik
pmichaud although "disjunction" and "dysfunction" are only about four bits away from each other.
FROGGS blushes
21:14 alester left 21:16 kaare_ left
supernovus tadzik: as per our previous discussions about merging Bailador and Web::App::Ballet, I've started some refactoring on the latter, adding in some features that Bailador had but it didn't. I also borrowed your template engine abstraction technique, and have template engine adapters for four of the five Perl 6 template engines I could see on modules.perl6.org. 21:17
21:17 spider-mario left
lichtkind jnthn: consider it solved after shitload of warnings it still compiled under 10.8.3 21:18
21:18 bluescreen100 left
supernovus Oh, and for anyone who cares about such things, as of a couple hours ago, HTTP::Easy works again, currently using a rather hackish workaround until IO::Socket::INET.get() doesn't stall on blank lines. 21:18
lizmat lichtkind: do you mean to say that OS X 10.8.3 Xcode messed with Rakudo's compiling? 21:19
lichtkind hai liz
no i ment to say that the just fixed nqp bug prevented compiling 21:20
21:20 skids left
lizmat aha… ok *phew* 21:20
jnthn lizmat: So far as I can tell, lichtkind was ending up with some compiler flag that made a certain warning (for most people) into an error.
lizmat just upgraded to 10.8.3
ack
tadzik supernovus: wow, awesome 21:27
supernovus: I'll try to look at Ballet architecture this week, if tuits permit, and possibly hack something up too
pmichaud since nqp (and rakudo) get their compiler flags from parrot, which in turn gets them from perl, it could be very much to do with the fact that lichtkind had a slightly different perl than standard OSX (a perlbrew, iirc)
lichtkind yes but i tried std 5.12 too 21:28
it think its not that
supernovus I'll be refactoring the Web::App library (included in the 'Web' distribution) to support a "mock" transport, and to have a testing library like your Bailador::Test, so that anything built upon Web::App or Web::App::Dispatch will be able to have simple tests that don't require a running daemon. 21:30
lichtkind supernovus++
21:33 Sifr joined
supernovus I will likely refactor common bits of Web::App::Ballet and Web::App::MVC into separate libraries, so there is even less duplication between projects. The template engine abstraction layer for instance seems like something that can be shared. 21:37
raiph yapcna request: more perl6 talks please 21:52
21:52 labster joined
raiph (the weekly yapcna planning call just wrapped; i said i'd convey this request) 21:55
21:56 acheche joined 21:57 xilo left
lizmat hopes she'll be able to do her "Is Perl 6 'Perl'" lightning talk at the Swiss Perl Workshop 21:58
(and then why not at YAPC::NA ? :-)
21:59 lichtkind left
tadzik lizmat: how about at Polish Perl Workshop? :) 22:00
jnthn lizmat: You'll be at YAPC::NA?
lizmat jnthn: yes
tadzik: yes, we'll most likely be there
tadzik \o/ great!
jnthn lizmat: nice :) 22:01
lizmat tadzik: as long as I can do my presentation in English
:-)
tadzik lizmat: sure :) 22:02
lizmat found some nice quotes from TimToady from 1994 that are very applicable now
22:04 lustlife left
lizmat is wondering whether there is some easy ~ 5 point list of improvements of perl 6 over perl 5 22:09
enough to put in one slide (it is a lightning talk, after all) 22:10
22:12 xilo joined
lizmat how about: 22:14
- types that work
- objects that work
- introspection that works
22:15 sjn joined
lizmat - laziness that works 22:15
22:15 census left
lizmat - roles that work 22:15
- grammars that work 22:16
- sets, bags and junctions that work 22:17
- operators that work 22:18
tadzik subroutine signatures 22:19
this is a hot topic :)
lizmat tadzik++ 22:20
maybe: - operator overloading that works
22:21 census joined
dalek kudo/tmp_highfive: f283d43 | (Tobias Leich)++ | src/Perl6/Actions.pm:
silence debug output
22:25
kudo/tmp_highfive: 4934854 | (Tobias Leich)++ | src/Perl6/P5Actions.pm:
make <term> within method termish
kudo/tmp_highfive: fd0d899 | (Tobias Leich)++ | src/Perl6/P5Grammar.pm:
borrow token integer from Perl 6, say(42) and say(3.14) is working now
tadzik aww yiss
22:27 grondilu joined
lizmat highfives FROGGS 22:27
FROGGS o/ 22:28
lizmat is running low on battery in Mannheim (on the way to Berne) and wishes #perl6 goodnight 22:30
FROGGS gnight lizmat
jnthn 'night, lizmat
dalek osystem: 24b5f4b | (Timothy Totten)++ | META.list:
Added Web::Template, a template engine abstraction layer.
22:31 kivutar left
tadzik good night lizmat 22:31
22:31 lizmat left 22:32 PacoAir left 22:42 kivutar joined 22:48 skids joined
supernovus There, now both Web::App::MVC and Web::App::Ballet share the same template abstraction layer. Less code duplication ftw. 22:55
22:59 kivutar left
FROGGS supernovus++ 23:07
23:09 sizz left 23:10 sizz joined
dalek kudo/tmp_highfive: f1d69ae | (Tobias Leich)++ | src/Perl6/P5 (2 files):
make say("abc") work
23:11
23:12 kivutar joined 23:29 kivutar left 23:33 LlamaRider left
jnthn 'night, #perl6 23:39
FROGGS gnight 23:40
23:45 countley joined 23:47 cognominal joined 23:48 FROGGS left 23:54 daniel-s_ joined 23:55 daniel-s__ joined 23:57 countley left 23:58 daniel-s left 23:59 daniel-s_ left