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.
00:02 DemoPhreak is now known as DemoFreak 00:13 DemoFreak left 00:15 Kisu left 00:21 wknight8111 joined 00:28 Diederich-HireMe joined
skids Things that look benign till you really start to think about them: 00:37
async { my $a; ... } 00:38
Now asyncs are supposed to share context... so what's going on in the block?
Does the my drop a level and become visible by the parent thread? 00:39
Things that make me go hmmm.
jnthn skids: No, I would think the $a is lexically scoped within that block, and thus only visible inside the thread.
By context it means what's outside that block.
skids Ah, but then we have made it impossible to get an sync that is truly a peer.
s/sync/async/ 00:40
And then: my $a; async { $a.say } <-- does this have to use OUTER? 00:41
pugs_svn r25902 | lwall++ | [S05] define .caps and .chunks methods on match objects 00:44
skids unless the async is allowed to run off the bottom of the block.... ok that might work... but I don't think that was the original intent.
TimToady the compiler knows there that $a is really OUTER::<$a> 00:45
but this is one reason we've defined context vars the way we do, so that each thread can keep track of its own context
00:46 felipe joined
TimToady also why we track whether the outer context variable is readonly or rw 00:46
since those behave differently under threading
skids suspects he's missed some p6l material or an RFC, goes looking 00:47
jnthn skids: I had always assume that reaching the end of the block meant that thread then was finished and terminated. 00:53
skids: Or was able to be .join()'d.
00:53 Woody4286 joined 00:54 wknight8111 left, bacek_ joined 00:55 riffraff left
frooh s1n: I was just wondering if we should make some kind of agenda for tomorrow? 00:58
pugs_svn r25903 | ruoso++ | [re-smop/nagc] the gc for native types is almost ready. it also supports weakrefs, but there is a circularity in there, which is how to make the delegation of the calls on the weakref since at this point we dont have capture yet... maybe I will need to assume that circularity 01:00
..here, but I will think a bit more about it
01:04 japhb joined 01:08 hercynium joined 01:10 kidd left 01:14 Ariens_Hyperion left 01:16 nihiliad joined 01:38 firelord joined
firelord hey everyone 01:39
meppl good night 01:40
firelord night meppi
meppl ;)
01:41 meppl left 01:42 firelord left 01:45 ced-2 joined 01:56 ced-2__ left
s1n frooh: still around? we keep missing each other 02:01
02:02 Kisu joined 02:03 Firelord joined
Firelord anyone got time to help me with some issue where perl6 is not finding any of modules and/or objects? 02:04
02:06 eternaleye joined
s1n Firelord: i doubt i could help, but it sure would be a fun exercise to see if i can :) 02:06
frooh s1n: yeah, sorry 02:09
Firelord s1ln: Thanks. It seems that my Perl6 executable cannot find my 'lib' folder even when I made and export my 'PERL6LIB' in my bash.rc
frooh I was doing some remote stuff fullscreen
Firelord s1n: Never mind.... I found my problem.... 02:10
s1n Firelord: glad i could help :)
frooh: i had an agenda in mind but it's one of those loose-do-whatever-comes-up types 02:11
Firelord s1n: Your the best
frooh s1n: yeah that's fine
I just wanted to make sure we are on the same page
we'll see which/if my co-workers come
it should be cool either way; and I'll bring my laptop at the very least with today's build of rakudo 02:12
s1n no rush to have a huge crowd, first p6m meeting, outta be fun
frooh (and needless to say parrot)
s1n same here
so basically, here's what i had in mind: 02:13
1) get-to-know 2) what interests us with p6 and see if any of us share a more specific common interest 3) q&a 4) next meeting / administrativa 02:14
frooh sounds good to me
one of my friends, when I told him about it, was like, "So are you guys gonna distribute perl 6 there?"
which I thought was pretty funny
he was maybe under the impression that you can't get it on the internet or something 02:15
s1n we could, git clone makes that real easy :)
frooh I know
although he recently got ... side-moted (???) out of programming and into sales
he likes coding, but he is much better at people
s1n i'm mostly interested in seeing what other people are interested in, it's been hard trying to gain momentum in a community you're foreign to and is fairly unforgiving to beginners 02:16
frooh agreed
did you see my two patches so far?
s1n no i did not, link? 02:17
frooh well, I'll give you a rundown before a link
the first one was a pop method, but they didn't want anything for arrays as they are getting a rewrite
so then I did some of the stuff in the wiki that was recommended (floor, ceiling, etc), but those were rejected because they wanted inline PIR in the setting 02:18
s1n i heard about that, didn't see the patch
frooh of course that wasn't communicated
It is discouraging
lemme see if I can find a link for you
s1n well, i think there's a few of us here who are trying to bust in to development...
frooh surely
s1n wayland comes to mind
frooh right
s1n and we really need to get the sorta boys club that has been doing perl6 for the last 8 years working better with us newcomers :) 02:19
frooh hahahaha
well, I think it's mostly just a communication issue 02:20
like if I had known about the PIR thing from the beginning I wouldn't have gotten discouraged and would have (hopefully) had a useful patch
and it's not pmichaud's fault, he's mega busy
s1n jnthn, pmichaud, moritz_, etc those guys are all great and have done amazing work and are ridiculously busy, but we have to work on opening up the doors and improving communication 02:21
frooh right-0
here's the first thing I mentioned
github.com/frioux/rakudo/blob/0ea4c...g/Array.pm
rt.perl.org/rt3/Public/Bug/Display.html?id=63874 02:22
and that's the new one which I felt pretty good about, but I understand that it is porbably slower than the pir etc
s1n where is inline pir documented? 02:24
frooh I couldn't find the docs for that, but there are some recent examples that I can use in the future
but they didn't arrive till *after* I wrote this stuff 02:25
s1n yeah it probably is, pmichaud warned me against doing functions that are basically the same in perl6 for the sake of performance
frooh right
and I understand that
s1n the main problem is a communication breakdown, you experienced this first hand 02:26
they don't want it that way but it's not documented anywhere
frooh but there *were* announcements that to work on the setting no PIR was necesary
s1n my advice, document it :)
frooh right
well, it's probably in some rakudo docs
s1n PIR isn't that bad, you just have less sugar
frooh as it doesn't really belong with the perl 6 docs (which is all I look at)
I know, but I just don't feel the need or even benefit of it until I was told I needed to learn it to hack on rakudo 02:27
s1n i don't think there are any solid rakudo docs, good/bad practices etc
frooh but I'll ask you more about pir tomorrow
but in general inlining the PIR isn't so bad 02:29
it's just q:PIR{...} I think
and I would have asked you about specifics when I was trying to do it
but you were all school'd 02:30
s1n i didn't know how to do inline pir, but if that's how you do it, we can do some sample stuff tomorrow if you want
frooh I'm down
s1n so you scratch my back, i'll scratch yours... 02:31
i'm having trouble with my fork and getting it up to date and passing tests again: github.com/s1n/rakduo
frooh github.com/rakudo/rakudo/blob/f8b6a...Any-str.pm
s1n what's that?
frooh that has some inline PIR btw
s1n ahh, okay
frooh if you don't mind I'd rather help with git tomorrow 02:32
s1n bleh, okay
frooh haha, well I *can* help now, it's just harder over the web
s1n i'm patient :) 02:33
frooh I decided that I will pull from rakudo but not push to my fork unless a patch is accepted
it makes it way easier as you don't have to deal with confilcts
s1n that's the problem i ran into :)
frooh I am not surprised
really the only reason to do it anyway is if you are working with other people on the patch or using multiple comps 02:34
s1n so basically, i want to drop the branch i had and make a new one that is basically in sync with upstream
frooh well, pulling is easy peasy, from upstream anyway, it's just pushing will cause a mess.
s1n i want to redo some work, but i don't really want to remake the fork
02:34 Sepheebear left
frooh when you pull from upstream what happens? 02:34
nah, don't remake the fork
s1n oh that works just fine 02:35
frooh so you are getting issues trying to push then?
s1n i pulled from upstream no problem, but something is wrong
frooh elaborate. (water&)
s1n i suspect my past changes are causing a problem, so i want to work on redoing them
the branch i had is failing the spec tests, and i want to just drop it, redo it with the new workflow (not push to origin) etc 02:36
frooh ok, that shouldn't be a huge issue
how about we do this
make a patch of your brach
so you still have what you did
s1n i have it backed up elsewhere 02:37
frooh ok, that's fine then
s1n easy to copy and paste the bits i changed, done :)
frooh ok, then you can deal with taht
you know how to delete a branch?
s1n nope
frooh k
locally it's git branch -D foo
where foo is the name of the branch 02:38
s1n check
frooh and there may be a web based way to delete the remote branch
a web based way that is
s1n meh, i need to learn git itself
frooh ok 02:39
then lemme look
I wish my git book wasn't at work 02:40
s1n o'reilly has one being published now, which one do you have?
frooh the prag prog one
s1n ah
frooh it is pretty good, but it could use some more...paradigm shifting
gravity just rm's the appropriate branch in .git/refs/heads
Although that's probably wrong 02:41
frooh but won't that not delete the remote branch?
gravity Yeah, you'd have to be on the server
02:41 ced-2 left
s1n gravity: i really loathe the idea of managing my own repo, so i just want to learn the minimum subset of things i need for git to get out of my way 02:41
frooh s1n: I think you can do git branch -D origin/foo
hahahaha
s1n frooh: i already did a git branch -D foo (no origin) 02:42
frooh right
origin should delete the remote one
the other one was the local branch
s1n not found
should it be "origin foo"?
frooh let me look at your remote repo for a sec
I don't think so 02:43
www.kernel.org/pub/software/scm/git...ranch.html
see the examples near the bottom
s1n that's not the same
-d -r origin/foo
frooh so you did something like git branch -D origin/rt_work?
well, the D says delete it even if you haven't merged it yet 02:44
the -r is something I forgot :-)
s1n first i did git branch -D foo, then i tried -D origin/foo and it said branch not found
frooh so -D -r is probably what you want
s1n done
frooh doesn't look like it worked... 02:45
bacek_ to remove remote branch you need "git push origin :branch". All other manipulate with local repo
frooh it still exists on your github thing
ah, there we go :-)
thanks bacek_
02:46 ced-2 joined
bacek_ frooh: you are very welcome :) 02:46
s1n bacek_: is that an actual :branch or :foo where foo is my branch? 02:47
bacek_ actual branch 02:49
for some value of "actual"
frooh wonders what that means 02:50
bacek_ It should be remote-branch-name.
eg "foo" :)
frooh nice
02:51 xinming left
s1n hmm i think it worked 02:54
02:54 xinming joined
frooh it did! 02:54
it's gone from your page
02:56 alester joined 02:59 xinming_ joined
amoc rakudo: my $foo; $foo.--; 02:59
p6eval rakudo f8b6ae: OUTPUTĀ«Statement not terminated properly at line 1, near ".--;"ā¤ā¤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)ā¤Ā»
s1n frooh: so can i just create a new branch, add the upstream and try again? 03:01
03:01 xinming left
frooh yeah 03:01
I just wouldn't push
since we are using RT pushing has pretty little value anyway
s1n true 03:02
but it's not very git-like
shouldn't we be pushing to a small branch per patch?
frooh yes
s1n only just before we submit to RT that is
frooh but that means *creating* a branch per patch 03:03
you don't have to push it
s1n yeah, is that in your current workflow?
frooh the point of git is that you don't need to use another repo
pushing?
s1n so after being accepted on RT, you push and then they cherry pick?
frooh well, I'd say no 03:04
just pull from master and you get your stuff
but that's a pragmatic answer
vs a git-y answer
s1n how are they going to get our patch?
frooh you mail it to RT
and pmichaud or jnthn applies it
s1n that's not git-y at all
03:04 Sepheebear joined
frooh no 03:04
it isn't
but for now I think it's how we will do the stuff, for technical reasons 03:05
s1n i would imagine you push to a branch, submit the patch to RT with a link to the commit, and then they can cherry pick
frooh I agree
s1n or you push after being accepting, comment the link, then they cherry pick
frooh but I don't think that pmichaud is comfortable with git enough to do that
but I agree, that sounds best to me 03:06
s1n baptism by fire, doing is the best teacher :)
frooh hahaha
agreed
03:06 Kimtaro left
frooh well, it's shower time for me, and then I have to chillax so I can get to sleep 03:06
s1n i think i'll just do that and see how it works out to them, push after RT
frooh sure
I'll see you tomorrow at 7
s1n yup
frooh shower& 03:07
s1n bed& 03:10
03:18 nbrown left 03:20 FurnaceBoy left, finchely joined 03:23 hercynium left 03:27 Tene_ joined 03:33 alc joined 03:36 Kimtaro joined 03:39 Tene left 03:51 ced-2_ joined, |jedai| left, finchely left 03:52 amoc left 03:55 simcop2387 left 03:58 Guest90163 joined 04:01 Guest90163 left 04:02 amoc joined 04:04 ced-2 left, unobe joined, unobe left 04:05 unobe joined 04:15 davistv joined
davistv Hey how can I help? 04:16
04:21 disismt left, disismt joined 04:26 orafu left, OuLouFu joined
pugs_svn r25904 | putter++ | [elfparse] More unpodding. 04:28
r25904 | putter++ | [elf_h] Added a kludged given/when.
04:31 dmpk2k joined 04:36 Sepheebear left 04:38 justatheory left 04:42 simcop2387 joined 04:51 disismt left 04:58 simcop2387 left 04:59 Sepheebear joined 05:10 davistv left 05:23 simcop2387 joined 05:41 nihiliad left 05:42 agentzh left 05:52 alester left
pugs_svn r25905 | lwall++ | [t/spec] remove uses of prefix:<int> 06:04
06:45 maerzhase joined 07:09 pnu left
amoc hello, could anyone please explain what "parametric types" in Perl6 Built-in Data Types? 07:32
moritz_ amoc: which document does it appear in? 07:33
amoc I really searched a lot, but i cannot reach to with my head '~'
from here: perlcabal.org/syn/S02.html#Built-In_Data_Types
moritz_ ah
roles can take parameters, just like subroutines do 07:34
amoc at third paragraph.
moritz_ role PaysTax[Num $rate] { method pay-tax { $.amount -= $.amount * $rate } }; class Employee does PaysTax[0.12] { .... }; 07:35
in this case PaysTax needs a parameter, $rate, when it's mixed into a class or an object
amoc thinks
07:36 maerzhase left
moritz_ so the long name of the role that's mixed into the class is PaysTax[0.12] 07:36
and the short name is PaysTax
see S14 for more details 07:37
amoc thank you very much,
moritz_ you're welcome
amoc i missed to read about roles.
07:37 ejs joined
moritz_ I learned OO in a classical class-based language (Eiffel and C++), so it took me quite some time to wrap my head around roles 07:39
07:41 maerzhase joined
amoc i see...* 07:46
07:59 ejs left 08:16 bacek_ left 08:20 Woody4286 left, Woody4286 joined 08:23 agentzh joined 08:26 alc left 08:27 masak joined 08:28 DemoPhreak joined 08:32 rgs left 08:33 rgs joined 08:38 ejs joined 08:46 ejs left 08:47 ejs joined
masak greetings, parrotcamels. 08:48
amoc *greetings*
masak TimToady++ # .caps and .chunks 09:02
as one who uses grammars for these things, I'm very happy about that addition.
Matt-W hmm 09:04
what does .chunks do?
09:04 mberends joined
moritz_ Matt-W: returns all chunks in the order they appeared in the text 09:05
masak so, tokenization. 09:06
mberends greetings, masak. I strongly urge you to pull perl6-examples, cd to lib/Pod and try 'make podserver'
masak complies
moritz_ so for 'foo 345 bar' ~~ /:s <ident> \d+ (\w+)/ it would return a match object for 'foo', ' ', '345', ' ', and a match object for the capture 09:07
at least if I understood it correctly
mberends good parrot, masak.
Matt-W moritz_: that sounds very useful 09:10
moritz_ Matt-W: that's why I suggested it last year :0 09:11
09:11 DemoFreak joined
Matt-W moritz_++ 09:11
09:13 r0bby_ joined
masak mberends: I've said it before, but I really like your Configure.pm. 09:21
mberends: thinking of stealing it for November and Druid.
not sure I like that it calls 'make' by itself, but OTOH I can't verbalise why I think that's ungood. 09:22
mberends I do admit it's 'cheeky'
masak mberends: wow! whatever it is that 'make podserver' is meant to do... wow!
mberends the tension is killing me... does podserver run or crash by you? 09:23
masak however...
it loops on 'sh: netcat: command not found'
is that something I should have installed? :)
mberends dang!
masak anyway, massive kudos.
um... are you sure 'make podserver' itself should be starting a webapp? :) 09:24
09:24 DemoPhreak left
masak might that not be the job for a script or something instead? 09:24
mberends podserver *needs* netcat for listen() and socket I/O
masak ah, so that's how you solve it. 09:25
09:25 unobe left
masak is there any way for make to abort if 'netstat' is not found in the $PATH? 09:25
mberends the 'make' route is currently the friendliest way to sort out PERL6LIB and PERL6BIN and run the right process. 09:26
masak ah, point.
we really need to sort that out, and standardize.
mberends I'm sure Makefile can detect the absence of a file, yes.
can you install netcat?
masak I will.
09:26 grwi left
mberends masak++ 09:27
09:36 DemoFreak left
moritz_ somehow I think I read in one of the design minutes that somebody mentioned a distributed bug/request tracker 09:43
but I can't find it anymore 09:44
any ideas where it was mentioned, or by whom?
09:44 sunnavy left 09:46 sunnavy joined 10:04 alc joined
mikehh moritz_: not that I can find in this years minutes - I seem to remember something like that, but from where? 10:08
10:11 alc left
moritz_ www.ditrack.org/ seems nice, but I don't understand why they store tickets in svn when they want to be distributed... 10:12
jnthn morning 10:14
10:15 Kimtaro left
moritz_ good morning jnthn 10:15
10:16 alc joined
Matt-W morning jnthn 10:18
jnthn can't believe Perl 6 now has a type with a "chunks" method... 10:20
(I had friends that used it as slang for...the substance produced when you're sick.) 10:21
Which is the first thing I thought of when I read the diff. :-| 10:22
masak morning, jnthn 10:23
jnthn masak: OH HAI
masak jnthn: well, maybe $/ _is_ sick. :)
jnthn Maybe. ;-) 10:24
Matt-W jnthn: as in 'to blow chunks'? yes we had that too but it's not the first thing I thought of. I thought of fudge. 10:25
amoc morning, everyone! 10:29
Matt-W morning amoc 10:30
10:30 jferrero joined
jnthn Matt-W: Yes, "to blow chunks". Eww! 10:31
masak in other news, 'crypt' is creepy, 'dump' is doubtful, 'pipe' is too smoker-oriented, and don't get me started on 'kill'. 10:37
jnthn fork that lot 10:38
moritz_ and then wait for it :-) 10:39
masak rakudo: class A { has $.x is rw = 0; submethod BUILD (:$a) { $.x++; } }; A.new() 10:47
p6eval rakudo f8b6ae: OUTPUTĀ«Null PMC access in find_method()ā¤current instr.: 'postfix:++' pc 20473 (src/builtins/op.pir:33)ā¤Ā» 10:48
masak submits rakudobug
moritz_ Matt-W: there's already one for it
sorry, meant masak
masak halts submit process 10:49
moritz_: do you know anything about the cause?
moritz_: I'm eager to start using BUILD submethods...
moritz_ rt.perl.org/rt3/Ticket/Display.html?id=63902 10:50
masak: no idea
lunch&
masak ah, one of the bugs you found this weekend. 10:51
10:52 disismt joined
amoc sighs* 10:53
10:54 ced-2 joined
Matt-W wishes he could figure out why his code doesn't work 10:55
masak mberends: I did 'port install gnome-netstatus', but after seeing what port is pulling down, I'm starting to wonder whether this wasn't a mistake...
Matt-W: nopaste?
Matt-W masak: not got it with me
can't get it down to a test case
masak ah.
Matt-W very frustrating
masak sounds like it.
Matt-W everything smaller I've tried has worked perfectly
masak huh.
Matt-W I may push it into a branch of form and ask if anybody else sees the same problem 10:56
masak aye, sounds like a good idea.
Matt-W and if anybody has time, if they can come up with a test case 10:57
assuming I can't 11:00
mberends masak: gnome-netstatus does not contain netcat afaik. maybe 'port install netcat'.
masak oki
ah, much better. 11:01
strange, I can't find any binary after the install. 11:03
11:05 ced-2_ left
mberends try 'which netcat' or 'which nc', it might be an alias 11:05
masak /usr/bin/nc 11:06
mberends right now podserver is hardcoded to use netcat :(
11:06 rgs left
masak right. is it a one-place change? 11:06
ah, Server.pm 11:07
mberends yes, one place. you're the guinea pig again for portability testing :)
masak seems so.
nc: illegal option -- c
:/
portability is hard! let's go shopping. 11:08
mberends :/ indeed. also, too distracted to concentrate on helping you right now. later maybe... 11:09
masak that's ok, I'm a bit too distracted to get help.
11:09 rgs joined
mberends needs osx86 on his laptop 11:09
11:13 hanekomu joined
Matt-W masak: okay we'll go shopping, you can pay... 11:16
11:16 tombom joined
masak why do I always get to pay? :P 11:18
Matt-W because I had my gas and electricity bills 11:20
masak oh. 11:21
well, for this time, then.
Matt-W :D 11:24
Let's go to the Apple Store!
(and install Rakudo on all the demo machines)
masak :P
moritz_++ ihrd++ # RT tickets 11:26
11:32 alc left
masak today is Rakudo Release day, IIRC. 11:33
Matt-W wheee 11:36
jnthn Damm, I just broke my mouse. 11:40
Matt-W that's okay, you don't need a mouse to write PIR 11:41
jnthn I'm a Windows user! :-P 11:42
masak Windows has completely adequate keyboard shortcuts, methinks.
at least it did as of circa 1998.
jnthn erm.
11:43 Firelord left
jnthn OK, so now the scroll wheel is acting to move the cursor, and when I move the mouse it scrolls... 11:43
.oO( Maybe violence isn't always the solution to hardware problems... )
masak :)
lunch & 11:44
11:49 [particle]2 joined 11:50 maerzhase left 11:55 [particle] left 12:02 disismt left, disismt joined
baest I'm using the grammar and I don't understand why rules with <something>? prints 1 instead of contents of <something> like in pastebin.com/m179ca568 12:08
buubot baest: The paste m179ca568 has been copied to erxz.com/pb/16369
12:09 maerzhase joined
jnthn baest: It's quantified, so you get an array. 12:09
(list actually I guess...) 12:10
baest jnthn: ahh, so [0] would work?
jnthn Yes, should do.
baest it certainly does
jnthn: maybe it's just me, but does that make sense for '?' since 1 match is what we can get and you will not get an empty array in case of no match 12:11
jnthn It's just consistent for all quantifiers. 12:13
baest ok, fair enough
12:15 firelord joined, firelord left
pugs_svn r25906 | ruoso++ | [nagc] doesnt try to solve the circularity now, use the smop_placeholder_message in the weakref message, as in s0native, so it can be replaced later. The test also tests the weakref now 12:18
12:18 skids left
amoc rakudo: sub GLOBAL::foo () {...} 12:26
p6eval rakudo f8b6ae: OUTPUTĀ«Malformed routine definition at line 1, near "GLOBAL::fo"ā¤ā¤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)ā¤Ā»
12:36 Zzz__ joined 12:45 ced-2_ joined 12:54 Woody4286 left 12:58 ced-2 left 12:59 disismt left, disismt joined 13:00 ced-2 joined 13:04 Khisanth left 13:17 ced-2__ joined, ced-2_ left 13:19 Zzz__ left
amoc rakudo: my @a = <one two>; @a[-1] = 'zero'; @a.perl 13:21
p6eval rakudo f8b6ae: RESULTĀ«"[\"one\", \"two\"]"Ā»
amoc it is a bug, right?
masak amoc: [*-1]
amoc rakudo: my @a = <one two>; @a[*-1] = 'zero'; @a.perl 13:22
p6eval rakudo f8b6ae: RESULTĀ«"[\"one\", \"zero\"]"Ā»
masak S09.
jnthn I think -1 is meant to be a syntax error these days.
masak jnthn: why?
jnthn std: @foo[-1]
masak it's just out of bounds.
p6eval std 25906: OUTPUTĀ«##### PARSE FAILED #####ā¤Obsolete use of [-1] subscript to access final element; in Perl 6 please use [*-1] instead at /tmp/LjHndWhXQw line 1:ā¤------> @foo[-1]ā¤Other potential difficulties:ā¤ Variable @foo is not predeclared at /tmp/LjHndWhXQw line 1:ā¤------>
..@...
amoc from perlcabal.org/syn/S09.html#Negative...subscripts
masak oh.
amoc it says: "Using a standard index less than zero prepends the corresponding number of elements to the start of the array and then maps the negative index back to zero"? 13:23
jnthn masak: Because STD.pm says so. But yes, you can declare an array with different indexes too...
masak shall I report this as a rakudobug?
jnthn So I'm not sure what'd happen there.
You can. We're inconsistent with STD.pm there, so it's probably worthy of a ticket.
masak someone put together an example for STD with a different-indexes array, and see what it says! :) 13:24
masak submits
13:24 skids joined
mberends masak, could you make a gist of your 'man netcat'? for a little venture on the slippery slope of OS detection ;) 13:28
masak mberends: sure thing.
mberends tx
pugs_svn r25907 | ruoso++ | [re-smop] Builds and tests the new native garbage collector. Test pass (including weakref). 13:29
masak mberends: gist.github.com/81815 13:30
moritz_ rakudo: class A { method b { eval "say 'hi'" } }; A.new.b 13:32
p6eval rakudo f8b6ae: OUTPUTĀ«Null PMC access in inspect_str()ā¤current instr.: 'eval' pc 16074 (src/builtins/control.pir:317)ā¤Ā»
13:32 ced-2 left 13:34 duke_leto joined, disismt left
jnthn moritz_: Yeah, Ilay found that last night. 13:35
I'm almost certainly to blame.
masak *Ilya. that's the Russian letter 'ya' right there.
ŠÆ. 13:36
jnthn oops 13:38
yes typo
moritz_ blames jnthn :-) 13:39
git disagrees: 13:40
git blame jnthn
fatal: cannot stat path jnthn: No such file or directory
masak :P
13:44 disismt joined
masak frooh: nice about Dallas.p6m. 13:49
seems to me that should have been a p6u email, though, and not a p6x/p6l one.
moritz_ if only it were a bit closer to $here :-)
masak no biggie, just Separation of Concerns. 13:50
jnthn -> slovak glass, back later
masak moritz_: well, on average, things are really far from $here.
jnthn moritz_: Hey, nothing is my fault!
bbl
masak jnthn: dovi! 13:51
man, the Web rocks. I touched up my Slovak greeting knowledge in 30s. 13:52
(on the other hand, I seriously need to close some of the 835 tabs I have open in Firefox.) 13:53
moritz_ I hope the 835 is jokingly, not literal? 13:54
masak moritz_: sadly, the latter.
Matt-W If it's literal, he's got far too much RAM
masak Matt-W: yah, I'm a Java programmer. I need the RAM. 13:55
moritz_ lol
Matt-W Try telling that to my employer
masak :)
Matt-W I do Java and C++ *at the same time* and I only get 1GB
masak that's harsh.
Matt-W IT's slow 13:56
especially as we have to run Eclipse for the Java, and Visual Studio for the C++
neither of which is very lightweight
ruoso can't really picture someone doing sw development in the windows world... 13:58
Matt-W I wouldn't try
I don't find it entertaining
But it pays the bills!
masak Matt-W: go tell your employer that an additional Gb of RAM is the cheapest way to make you more productive right now. that's clearly the bottleneck. 14:00
Matt-W masak: indeed, it's nothing to do with them not blocking the hole in the network I'm using for this SSH connection 14:01
masak moritz_: of course not.
14:01 |jedai| joined
masak moritz_: oops, sorry. :/ 14:02
Matt-W: of course not.
moritz_ m<tab> strikes again
masak :)
Matt-W hurrah for m<tab>
masak considers prying up ERC and teching it to do it right.
it should clearly pick the last person to say something as the first alternative. 14:03
moritz_ masak: I thought so too, but what if somebody says something just before you hit Tab? 14:04
well, somebody just just try it, and tell if it's a real probelm
masak moritz_: I still think I'd prefer that way.
I think it would reduce the number of mis-tabs.
or some of you guys could pick a different initial letter for your nick! :P 14:05
moritz_ masak: you be the first.
masak :P
yah, I'm actually the least qualified to have one.
my first name starts with a C.
Matt-W all my nicknames start with an M 14:06
moritz_ same here... 'moritz' and 'moritz_' 14:09
how creative of me
mikehh I have only been using one - but it's a great club to belong to :-} 14:10
masak a club that is changing the world, no less. 14:11
Matt-W with some help from some other letters of the alphabet 14:18
masak :)
Matt-W such as j, p and l&t 14:19
14:24 |jedai| left 14:33 riffraff joined 14:35 hercynium joined 14:37 nihiliad joined 14:39 oskie left
frioux masak: you should come :-) 14:54
masak frioux: I'd love to. who pays my plane ticket? 14:55
frioux the perl foundation?
masak heh. :) 14:57
15:02 justatheory joined
Matt-W ooh the GNOME project is migrating to git. Clearly just imitating us :) 15:03
moritz_ they are? URL?
Matt-W mail.gnome.org/archives/devel-annou...00005.html 15:04
I'm hoping it'll be faster than the CVS->SVN migration was
which took several years
they're talking about a month
frioux In general I'd say the biggest problem with someone like GNOME going from SVN to git could be what happened with KDE 15:05
everything was in one giant repo
Matt-W that sounds painful
frioux where with git its recommended to have a repo per project (unless they need to be together)
yeah
Matt-W gnome currently has a subversion repo per project
so I assume that structure will remain
frioux ah, the it shouldn't be much of an issue 15:06
then*
except training people
Matt-W yeah
frioux which even we struggle at currently :-)
Matt-W they've got documentation tasks as part of the migration
frioux well, that may help all of us
Matt-W it actually could result in some nice git documents appearing 15:07
frioux right
a lot of the good git stuff out there are random blog posts
Matt-W particularly in the 'git for SVN users' line
yeah
and it can be really hard to figure things out
frioux well, I think there is a good amount of that stuff, it's when you realize that you need to do things completely differently that that stuff starts to be less helpful
Matt-W heh true
but it can at least give you a good grounding in git terminology 15:08
frioux right.
moritz_ what I missed were "what to do when things go wrong" steps in the documetnation
Matt-W moritz_: lots of documentation misses that out unfortunately :(
frioux I should add that to the wiki or something...
one problem is this: for the ease of pmichaud and others we are squashing commits 15:09
and if you push and then squash again things are garaunteed to go wrong
gauranteed?
[particle]1 guaranteed 15:10
frioux there we go :-)
[particle]1 gar-own-teed!
moritz_ maybe squash only a copy of the commit?
if that's possible
frioux that's an interesting idea
moritz_ I mean you undo the merge commit
go to you previous branch
add a commit
frioux right
moritz_ and then squash again
frioux so you have both the history and a nice squash 15:11
I'll look into adding that to my workflow
because that would cause a lot fewer issues
and then we could still push
which although not required is nice
se that we don't lose work if our house burns down 15:12
15:13 ced-2 joined 15:18 duke_leto left 15:19 duke_leto joined 15:20 Kimtaro joined
moritz_ I see good reasons to push feature branches, but do you need to push the squash merges? 15:21
15:22 duke_leto left 15:23 duke_leto joined
frioux no 15:23
I think it's a bad idea to push those
15:26 Exodist joined
jnthn ruoso: Software development in the Windows world works out not so bad depending what you're doing. I still have yet to see a better C debugger than the Visual Studio one. 15:31
Windows is really a disaster on the server side. 15:32
ruoso jnthn, my last experience with windows development was with Delphi in the mid-90;s 15:33
15:33 Khisanth joined
jnthn ruoso: Ah. Things have perhaps moved on a bit since then. ;-) 15:33
moritz_ I've had much "fun" trying to install external libs and header files on windows
but then again it was on win98...
ruoso you still miss a decent terminal and shell, don't you?
15:34 ced-2__ left
Matt-W I certainly do 15:34
jnthn The new PowerShell is meant to be OK.
Matt-W But I learned to develop on Linux
jnthn I guess you only miss it if you're used to having it.
Matt-W And jnthn is right, the Visual Studio debugger is really good
ruoso I like DDD
moritz_ jnthn: if the powershell is as good as what' I've read about it, it'll be much better than bash
Matt-W I just wish Visual Studio could manage to get console apps to keep their window open after they quit so you can see waht they said, but that's under the app's control 15:35
The best solution I've found online is 'get your app to wait for a keypress before it finishes'
jnthn So while I've no doubt that objectively the shells available on Linux are generally better - certainly pre-PowerShell - since I never really got to the point of being a power user of a shell elsewhere I just don't miss it.
Matt-W which is a fat lot of good when you've got an unhandled exception
jnthn Matt-W: Yeah, that's...a pain.
15:36 duke_leto left
Matt-W jnthn: one thing I always liked about UNIX is that graphical apps feel just like ordinary programmes that just happen to talk to the X server 15:36
15:36 duke_leto joined
Matt-W Windows makes things feel like you should have a GUI or else 15:36
jnthn I think it's partly cultural too. 15:37
In fact, perhaps even mostly cultural.
moritz_ sadly it's a culture that makes automation rather hard 15:38
[particle]1 matt-w: can you run the console app under cmd /c ?
jnthn Many Windows users (not power-users) just conflate "a window" with "a program".
[particle]1 or is it /k?
there's one option to cmd that makes the window stay open after the command
jnthn (Where by "a window" I don't mean the terminal one...) 15:39
Matt-W jnthn: that's how windows presents things, compare very much to mac os X where apps are distinct from their windows (and windows are usually documents)
while windows... has MDI
Matt-W shudders
jnthn Automation - yes, agree. PowerShell was partly a response to that from what I've heard. To make Exchange properly scriptable etc.
Matt-W yeah powershell's got a lot of potential
jnthn It even stole from Perl in places. ;-) 15:40
15:40 sri_kraih_ joined, duke_leto left
[particle]1 windows 7 is fixing the mdi problem, to some degree 15:40
frioux but for us unix guys powershell is still annoying: you can't even resize the terminal emulator
etc
Matt-W jnthn: well of course, Perl is full of good ideas :)
15:40 duke_leto joined
jnthn Matt-W: Sure, but always nice to see that acknowledged. 15:41
Matt-W yes it is
and perl 6 is clearly full of good ideas because even perl 5 is borrowing them
moritz_ hopes that with Perl 6 it will be easy to build something as modular as powershell
Matt-W if we get Perl 6 on .NET, you can write Powershell modules in it. I think I might explode if that happened. 15:42
jnthn Perl 6 on .Net would be very cool.
But hacking on one compiler at a time is enough for me. ;-) 15:43
frioux one really cool thing about powershell thoguh is that instead of foo | bar passing the output strings of foo to bar is that it passes *objects* output by foo into bar
[particle]1 hopeully slower than rakudo, though :)
frioux which is really an interesting thought
Matt-W yes they did it all objecty
it does seem to require an adjustment in thinking
frioux objecty is the perfect word for it :-)
Matt-W things can pass a lot more rich information around
jnthn | in powershell reminded me a little of ==> in Perl 6. 15:44
frioux I haven't seen ==> enough to really grasp it
[particle]1 i'd like to see a powershell recipe or building parrot
*for
jnthn I don't know that any Perl 6 implementation has tried ==> yet, though maybe Pugs has it. 15:45
frioux isn't it like...a lazy pipeline?
moritz_ pugs: my @a; @a <<== 3, 4; say @a.perl;
p6eval pugs: OUTPUTĀ«*** ā¤ Unexpected "<<=="ā¤ expecting operatorā¤ at /tmp/SvEq9lTsVo line 1, column 11ā¤Ā»
moritz_ frioux: it is
frioux so map ==> grep is more like 1 perl 5 thing as things can go all the way through the pipe?
moritz_ seems like not
jnthn pugs: my @a = 1,2,3; @a ==> map { $_ * 2 } ==> my @b; say @b; 15:46
p6eval pugs: OUTPUTĀ«*** ā¤ Unexpected " map"ā¤ at /tmp/DbLn71afaB line 1, column 22ā¤Ā»
jnthn pugs: my @a = 1,2,3; @a ==> map:{ $_ * 2 } ==> my @b; say @b;
p6eval pugs: OUTPUTĀ«*** ā¤ Unexpected " map"ā¤ at /tmp/8gKtJKEXMP line 1, column 22ā¤Ā»
jnthn meh, seems now.
15:47 hanekomu left, grwi joined
mberends masak: podserver has 2 blockers on your install: 1. the BSD netcat lacks both -c and -e options, 2. proto gets parrot/rakudo r37000 which is pre $*PROGRAM_NAME 15:47
masak mberends: there's a Rakudo release coming out today.
if you can wait. :)
mberends that's blocker 2 removed, but blocker 1 remains :( 15:48
there is no known workaround for that
masak not much I can do about that one, I'm afraid...
mberends like you said ;)
jnthn Is it me, or does Rakudo really need socket IO...
masak anyway, great work. I'll have a closer look at it when I'm free.
jnthn: the latter. 15:49
mberends jnthn, like masak said :)
Matt-W really need socket IO 15:50
Do we even have a spec for it yet?
jnthn The m's are in alignment on the issue...
frioux haha, where's moritz_ ? 15:51
moritz_ in Germany
frioux no but are you in the alignment
moritz_ about... what?
frioux needing socket IO
moritz_ sure. 15:52
a lone computer is a sad computer
mberends "the network is the computer" -- Scott McNealy, well said.
amoc Where can i get a list of methods in builtin Classes, which are presents now, or are in spec. 15:53
15:54 OuLouFu is now known as orafu
moritz_ amoc: perlcabal.org/syn/ follow the S32 links 15:54
Matt-W oooh dear 15:55
time to go to my singing lesson
this is going to be a disaster
amoc oops ! it is in the page i am browsing !;
Matt-W I'd feel much better if someone implemented socket IO for when I get back :)
Matt-W runs
masak :P 15:56
15:56 duke_leto left, sri_kraih left, duke_leto joined, duke_leto left
jnthn Given I think Parrot list its socked IO... 15:56
15:57 duke_leto joined, duke_leto left 15:58 duke_leto joined, duke_leto left 15:59 duke_leto joined 16:06 donaldh joined 16:08 orafu left 16:30 mberends left, ejs left 16:35 maerzhase left, maerzhase joined 16:36 duke_leto left, duke_leto joined 16:40 duke_leto left 16:41 duke_leto joined, duke_leto left
amoc is it right that "my UndefinedType $var;" is possible? 16:45
16:46 duke_leto joined
jnthn amoc: No, that's going to be a compile time error. 16:50
rakudo: my UndefinedType $var;
p6eval rakudo f8b6ae: OUTPUTĀ«Malformed declaration at line 1, near "UndefinedT"ā¤ā¤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)ā¤Ā»
jnthn std: my UndefinedType $var;
p6eval std 25907: OUTPUTĀ«##### PARSE FAILED #####ā¤Malformed myā¤In "my" declaration, typename UndefinedType must be predeclared (or marked as declarative with :: prefix) at /tmp/67NGS06Dvy line 1:ā¤------> my UndefinedType $var;ā¤FAILED 00:02 34mā¤Ā»
jnthn But Rakudo needs to steal the error reporting improvements from STD 16:51
16:51 duke_leto left
masak that's slightly too vague to be rakudobug material... :/ 16:51
amoc I see.
16:52 Sepheebear left
jnthn masak: Yeah. 16:52
amoc from S02: "my Dog $spot by itself does not automatically call a Dog constructor. It merely assigns an undefined Dog prototype object to $spot: ", i was little confused of 'undefiend Dog prototype'
16:52 duke_leto joined
masak give me a juicy Null PMC access any day. 16:52
jnthn rakudo: class Foo { method bar { eval('') } }; Foo.bar 16:53
masak amoc: the 'undefined' here only means that the object has not been instantiated.
p6eval rakudo f8b6ae: OUTPUTĀ«Null PMC access in inspect_str()ā¤current instr.: 'eval' pc 16074 (src/builtins/control.pir:317)ā¤Ā»
jnthn masak: Happy?
16:53 duke_leto left
masak jnthn: that one's _old_ :P 16:53
jnthn You're so hard to please.
:-P
masak aye. 16:54
but I've been pleased about what I've managed to do with the bug count lately.
high enough to deserve a smiting.
(I've had help, too)
amoc masak: aha, thank you very much :) 16:55
16:55 Psyche^ joined
masak amoc: you're welcome. now, go forth and find Null PMC accesses. 16:55
16:56 Amir_ joined, Amir_ is now known as aharoni
amoc boggles as he don't know what Null PMC access is. 16:57
masak amoc: it's an error internal to Parrot. 16:58
amoc: because of this, it should (ideally) never be visible in Rakudo.
but often they are. (by mistake)
finding a new such error means a free ticket at the bug tracking system. 16:59
17:00 jferrero left
aharoni Hi. I am using Cygwin on XP. I got the latest Parrot and Rakudo from svn/git. Parrot compiled nicely and `make test' succeeded. Rakudo compiled nicely, and `../../parrot perl6.pbc' seems to do the right thing. But `make test' gives me a bunch of messages such as this: "../../parrot perl6.pbc No subtests run" and later "Parse errors: No plan found in TAP output". 17:00
Rakudo is in parrot/languages/rakudo 17:01
moritz_ aharoni: does ./perl6 -e 'say "hi"' work?
jnthn That's...interesting. I thought we used the perl6 fakeexecutable for tests these days?
moritz_ we do, at least for 'make spectest'
aharoni Nope. perl6.exe doesn't seem to work on Cygwin. 17:02
moritz_ then 'make test' won't work either.
17:03 Patterner left, Psyche^ is now known as Patterner
aharoni this does the right thing: ../../parrot perl6.pbc -e "say 'hi'" 17:03
amoc masak: eer.. so you mean, Null PMC access should not be visible to Rakudo. but it sometimes found?
aharoni this does nothing: ./perl6 -e "say 'hi'"
masak amoc: right.
jnthn aharoni: Nothing as opposed to segfaulting? (Not sure, how you'd check that on cygwin though...) 17:06
amoc i will report when i discover while using rakudo. '')/
17:08 riffraff left
aharoni jnthn: i think that nothing is nothing 17:09
jnthn Hmm.
17:09 donaldh left
jnthn It's odd that it'd fail completely silently. 17:10
aharoni: Out of curiosity, do you have a libparrot.dll in your Rakudo directory?
aharoni no
jnthn If not, does cp ../../libparrot.dll . help
[particle]1 amoc: try echo %ERRORLEVEL% 17:11
jnthn [particle]1: Ooh, I didn't know that worked on cygwin too. Nice.
17:12 ced-2_ joined
aharoni jnthn: there's only ../../libparrot.dll.a. But `cp ../../cygparrot1_0_0.dll .' made a big change. 17:14
perl6.exe seems to work now and make test, too.
17:14 ced-2 left
aharoni And the tests are successful, too. 17:15
Thanks.
jnthn aharoni: Ah, interesting to know. Please if you have time would you file a ticket about this? 17:18
mailto:rakudobug@perl.org
aharoni jnthn: OK.
jnthn Then hopefully we can get it fixed out of the box for cygwin users.
17:24 kane_ left, jferrero joined
amoc sighs and thinks he should study english. 17:24
17:32 ejs joined 17:33 masak left 17:37 disismt left 17:38 disismt joined, disismt left, disismt joined
aharoni I don't get it. I logged in to rt.perl.org/ but i can't see the "file ticket" link. I already filed a few in the past. 17:41
moritz_ aharoni: you didn't.
[particle]1 you can't submit tickets to rt.perl.org via the web
only via email. sigh. 17:42
aharoni oh
moritz_ aharoni: rt.perl.org allows only email submissions
aharoni it was a couple of years ago...
moritz_ aharoni: it's rt.cpan.org that allows submissions via the web
frioux why does it only allow email submissions?
[particle]1 to cut down on usability.
or maybe spam.
frioux hahaha
well, it certainly makes posting tickets less obvious initially
aharoni It always confused me badly. Bugs for Rakudo go to rt.cpan.org or to rt.perl.org? Or to both? 17:43
frioux I find rt hard to use in general, but I haven't messed with it much
[particle]1 cpan is for perl 5
17:44 eternaleye left
moritz_ aharoni: rt.perl.org 17:44
17:50 |jedai| joined 17:58 maerzhase left
aharoni www.rakudo.org/how-to-help is not very helpful with explaining how to file tickets. 18:04
18:08 ced-2 joined
pugs_svn r25908 | lwall++ | [S12] attempt to clarify type narrowness of multiple constraints, enums, and where clauses 18:13
18:14 meppl joined
amoc rakudo: ............. 18:15
p6eval rakudo f8b6ae: OUTPUTĀ«No exception handler and no messageā¤current instr.: 'return' pc 15627 (src/builtins/control.pir:39)ā¤Ā»
amoc rakudo: say .............
p6eval rakudo f8b6ae: OUTPUTĀ«No exception handler and no messageā¤current instr.: 'return' pc 15627 (src/builtins/control.pir:39)ā¤Ā»
amoc i don't know why, but rakudo in my system doesn't emits a error when 13 dots. 18:16
amoc thinks it is time-consuming thought, anyway. 18:17
jnthn TimToady: *sigh*.
+All constraints considered in type narrowness. 18:18
That breaks...a lot of assumptions I'd been making.
Before we had a nice clean design whereby anything more complex than a single type became a complex constraint, like a where clause, and thus didn't participate in type narrowness. 18:19
Including the sigil, since Int @foo was still only one type - Positional[Foo]
moritz_ jnthn: it was your turn to be offended today :/
jnthn (A parametric type, sure.)
The change's implication that the sigil implies an additional type rather than a parameterized one is misleading. 18:20
18:21 maerzhase joined 18:22 ced-2_ left 18:23 orafu joined 18:24 M_o_C joined
pugs_svn r25909 | lwall++ | clarify container constraint meaning of sigil as requested by jnthn++ 18:28
jnthn And seeing that shows another upshot that I hadn't considered yet that makes it even more painful. 18:30
TimToady or maybe the parameter is an anonymous subset type rather than an anonymous role
jnthn TimToady: I don't even know how to write it reasonably. That looks wrong. 18:31
Why do you want to allow multiple constraints to be part of the nominal type?
TimToady nominal type? 18:32
jnthn As in, the one that participates in type narrowness analysis.
TimToady sometimes the type is anonymous
jnthn OK, I'm meaning the [insert word you like here] type as opposed to anything provided by where clauses. 18:33
TimToady if you have two constraints they both participate in the type; it's been that way forever 18:34
jnthn That's news to me.
18:34 grwi left, aharoni left
jnthn Sensibly I imagine you'd want to write Positional[Foo Bar]. 18:35
Apart from that violates the two terms in a row rule.
TimToady we get away with it in sigs
:(Foo Bar) maybe
jnthn *sigh* 18:36
ruoso jnthn, I think that can be implemented in terms of subsets
TimToady mostly I'm trying to straighten out the relationship of values to enums
ruoso jnthn, :(Foo Bar) means :(Object where Foo & Bar) 18:37
18:37 tombom left
jnthn ruoso: That is _exactly_ what I've thought it meant for the last year I've been working on Perl 6 type stuff. 18:37
ruoso so what does it mean?
jnthn Apart from TimToady's recent commit changes that.
I'm not really sure. 18:38
ruoso you mean the last or the one before the last?
jnthn r25908 is the one that makes the big changes
TimToady the last one is semibogus on the role
ruoso I don't get it... what changed? 18:39
18:39 ced-2_ joined
jnthn ruoso: The key line is "+All constraints considered in type narrowness." 18:40
ruoso how does that change the meaning of :(Foo Bar) 18:41
?
jnthn It means it can't be equivalent to :(Object where Foo & Bar)
Since where clauses don't contribute to type narrowness.
ruoso interesting... I don't understand that from that commit... 18:42
TimToady well, it's been that the presence of a where clause contributes
jnthn TimToady: Not quite to type narrowness. 18:43
TimToady the change is that static where clauses (based on enums) add more narrowness
jnthn TimToady: You make it sound oh so trivial.
TimToady that's my job :)
I could work it the other way, in fact, for a while I had it that 18:44
ruoso jnthn, what do you mean by "not quite to type narrowwness"
TimToady subsets are required to do that
ruoso ?
I understood that "all constraints" are considered in type narrowness
TimToady but I didn't like that because it made "where" in a subset different from "where" in a sig
ruoso feels that he is missing something fundamental 18:45
TimToady but parameters have had multiple constraints for a long time
here's S02: sub foo (Num Dog|Cat $numdog, MySig $a ($i,$j,$k,$mousestatus)) {...}
jnthn I find it vaguely depressing that I've spent the last year carefully thinking through a bunch of the Perl 6 type system stuff, thought I'd got it down to something that would fit together, implemented a lot of it...and now am being told one of the key assumptions I've made was wrong all along. 18:46
TimToady not that STD parses that quite...
moritz_ wts is a $numdog?
jnthn TimToady: Yes, I know that's possible. I figured that it implied Any $numdog where { Num & Dog|Cat } 18:47
erm, probably without the block there.
And I don't believe I was the only person working on that assumption.
ruoso I still don't understand how that assumption was broken 18:48
TimToady but then you can't use where for a tiebreaker, seems...
jnthn TimToady: You can, it is just like an additional layer of refinement.
ruoso "Any $numdog where Num & (Dog | Cat)" works as an anon type in my head 18:49
jnthn Or even just another where
TimToady I'm not actually interested in breaking your assumptions, but rather in getting constraints like 0 to work as expected
jnthn TimToady: I posted how that could happen quite easy.
ruoso which means that you can do the "A ~~ B" x "B ~~ A" in tie brake
TimToady It seemed to depend on the assumption there was only one constraint on the left, but maybe I was misreading 18:50
moritz_ TimToady: what's wrong with desugaring to 0.WHAT $x where 0 ?
then it breaks ties with 'Int $x'
ruoso you don't need to
jnthn Right, ties at the type narrowness level, then wins because where 0.
ruoso the "A ~~ B" x "B ~~ A" solves it 18:51
0 ~~ Int Ɨ Int ~~ 0
0 is more specific then Int
TimToady so what about the Tue < Weekday < Day < Int ? 18:52
ruoso in which case the above test fail?
szabgab rakudo: for (1,2,3,4) -> $a, $b { say $a*$b }
p6eval rakudo f8b6ae: OUTPUTĀ«2ā¤12ā¤Ā»
TimToady seems like a programmer might expect all those
szabgab rakudo: for (1,2,3) -> $a, $b { say $a*$b }
p6eval rakudo f8b6ae: OUTPUTĀ«2ā¤StopIterationā¤current instr.: '_block14' pc 132 (EVAL_18:58)ā¤Ā»
szabgab what is the correct behavior when the loop runs out of values half way its parameters ? 18:53
TimToady depends on whether the parameters are declared optional
jnthn ruoso: For one it means you start sticking things that don't do Abstraction into the dispatcher...
ERm 18:54
szabgab rakudo: for (1,2,3) -> $a, $b? { say $a*$b }
jnthn Sorry, I meant
p6eval rakudo f8b6ae: OUTPUTĀ«2ā¤StopIterationā¤current instr.: '_block14' pc 132 (EVAL_18:58)ā¤Ā»
jnthn Into the type narrowness analysis.
ruoso jnthn, honestly I still don't see the point on the Abstraction role...
jnthn This blows away the ability to do to type-based caching of multi dispatch...
TimToady point
ruoso specially since 0 doesn'd do Abstraction
jnthn *exactly* 18:55
TimToady but all values may be used as subset types; that's been in there a long time
szabgab $b? was optionl, right?
TimToady right
jnthn TimToady: Yes, I know. The point that checks on the value were handled by subset types.
moritz_ szabgab: yes, it's an error 18:56
szabgab yeah!!!
jnthn (Of course, subsets can do type-based checks too.)
ruoso jnthn, but... type-based caching kinda fails with dynamic where, doesn't it?
TimToady I could live with nominal subsets, since they specify their base
jnthn ruoso: Yes, I know. 18:57
ruoso so, what's the difference? you already had that exception
jnthn ruoso: That's why we only cache dispatches that we know don't depend on a where clause which checks the value.
The difference is that before we had a nice, clean separation of types and values. 18:58
ruoso ah...
the Abstraction role
jnthn Right.
ruoso hmm...
jnthn, so a subset wasn't an Abstraction 18:59
?
jnthn Even down to the point that the typename rule in Rakudo asks "does it do Abstraction"
ruoso: If you name a subset, it does.
ruoso but an anonymous subset doesn''t
szabgab there was a sudden surge in registration to the Perl6 newsletter I am writing - just in the last 3-4 hours, anyone might have an idea why ?
moritz_ szabgab: there was a sudden surge in interest in parrot and perl 6 in the last two days... 19:00
jnthn ruoso: I'm not sure if it matters...
ruoso jnthn, well... that's what we're dealing with here
jnthn Actually talking about Abstraction is confusing the issue a bit.
It's something that you can use as a type.
19:00 Tene joined
jnthn Remember that all subsets are based on a refinement of some "base type" 19:00
TimToady can a literal as a constraint mix in Abstraction, maybe? 19:01
jnthn subset Foo of Int where ... is a refinement on int.
szabgab moritz_, that does not explain
jnthn *Int
19:01 ced-2 left
moritz_ szabgab: and some of your posts are rather high in the perl reddit category... but probably not enough either 19:01
TimToady I've always considered enums to be subsets containing a single value
moritz_ szabgab: check the logs, look for referrer
TimToady (for each enum)
szabgab yeah, I should run an analyzer on the log 19:02
TimToady grr, still ambig, for each enum value
jnthn TimToady: For each...yes, right.
That can work.
ruoso jnthn, but in that case we still have Any as the base type...
I think I'm missing the point
jnthn I think so too. 19:03
TimToady enums default to Int as base
jnthn I'll read the diffs and come back with something more coherent.
(As in, re-re-read them.)
TimToady I can give back that signature "where" is the same as subset where
ruoso always seen that way 19:04
TimToady and require that for a where to participate in the official (possibly anon) type, it must be named
via a subset
ruoso but I never thought about using an Abstraction role...
TimToady which gives its provenance
ruoso as I use a more prototype-based oo... every value is a type
jnthn +All constraints considered in type narrowness.
+That is, these are equivalently narrow:
+
+ Foo Bar @x
+ Bar Foo @x
The up-shot of this is what's bothering me most. 19:05
ruoso I still see that as "Any where Foo & Bar & Positional"
jnthn Which is wrong, but anyway... &
frioux what *does* it mean? 19:06
TimToady Foo & Bar should be more specific than either Foo or Bar, but rewriting as Any makes them less specific
19:07 mberends joined
ruoso TimToady, but it's not simply Any 19:07
the type is the complete sentence
and tiebrake works with the "A ~~ B vs B ~~ A" test 19:08
TimToady but Any where is still less tight than either Foo or Bar
ruoso is it?
TimToady s/tight/narrow/
ruoso how so?
TimToady because a where only epsilons the narrowness it would have otherwise
ruoso "Any where Foo & Bar" is narrower than "Foo" or "Bar" 19:09
TimToady not to jnthn's multi sorter, I suspect
ruoso rakudo: role Foo {}; role Bar {}; subset Bla of Any where Foo & Bar; say Bla ~~ Bar; say Bar ~~ Bla; 19:10
p6eval rakudo f8b6ae: OUTPUTĀ«0ā¤0ā¤Ā»
ruoso hmmm... bad example, actually 19:11
since the subset requires both roles...
rakudo: role Foo {}; role Bar {}; subset Bla of Any where Foo | Bar; say Bla ~~ Bar; say Bar ~~ Bla;
p6eval rakudo f8b6ae: OUTPUTĀ«0ā¤1ā¤Ā»
19:12 Tene_ left 19:14 ZuLuuuuuu joined, DemoPhreak joined
pugs_svn r25910 | putter++ | [elf_h] Sketched in support for multiple calling apis. Left disabled. 19:14
r25910 | putter++ | So someone can add named vars, closures, etc.
r25910 | putter++ | Subs merely checking that they're off fastpath (positional args) is a 20% speed hit (for parse-cached self-compilation). 5% for the SSA version.
TimToady so enums and constant declarations are doing ::Tue := 2 but Abstraction, or some such, I guess 19:19
ruoso TimToady, ok... I got it.... "Any where ..." is the wrong approach
TimToady not sure how much the abstraction is buying us, since it's more an attribute of the symbol table entry than the object
I'm sure there's some happy medium in here somewhere, we just have to negotiate a little :) 19:20
ruoso :(Foo Bar @x) would mean an anonymous role that does Foo does Bar does Positional
TimToady not exactly 19:21
ruoso rakudo: role Foo {}; role Bar {}; role SigType does Foo does Bar {}; say SigType ~~ Foo; say Foo ~~ SigType;
TimToady Foo and Bar are parameters to the Positional role
p6eval rakudo f8b6ae: OUTPUTĀ«0ā¤0ā¤Ā»
TimToady somehow
that's what jnthn++ was remarking on earlier
ruoso hmm... that's surprising 19:22
19:22 mberends left, Khisanth left, simcop2387 left, wolverian left, bacek left, araujo left
TimToady looks a bit buggy, also the 0 0 case earlier with & 19:22
ruoso I'd expect "@x of Foo" or some sort...
19:22 mberends joined, Khisanth joined, simcop2387 joined, wolverian joined, bacek joined, araujo joined, c1sung joined, pugs_svn joined
TimToady which means Positional[Foo] in some form or other 19:22
ruoso I wouldn't expect Foo @x to determine the type of the items in @x 19:23
but to be a constraint on the type of positional
not the type of items inside the positional
TimToady that's what positional uses the parameter for!!!
ruoso I know... I know...
I mean.. 19:24
:(Foo @bar) means a positional that also does Foo
in my head
TimToady well, then your head is on sideways
my Foo @array has always been an array of Foos 19:25
ruoso is it?
ruoso always misread that then
19:25 nihiliad left
ruoso I thought it would require "my Array of Foo @array" 19:25
19:26 nihiliad joined
ruoso so, how do you apply a constraint on the type of Positional? 19:26
TimToady that would be AoA of Foo
my @a is StrangeArray[...] 19:27
ruoso but that doesn't work if you put @a into a lvalue of a bind
TimToady is sets the container type, not the element type like of
19:27 |jedai| is now known as jedai
ruoso rakudo: my Int $a; $a := "Hello"; 19:27
p6eval rakudo f8b6ae: RESULTĀ«"Hello"Ā» 19:28
ruoso that is wrong...
isn't it?
19:29 Diederich-HireMe left
TimToady well, it's certainly bad style 19:29
but := replaces the container
see S02:1079 for is vs of
ruoso ok... I think I see the point now... assignment always copy the elements... 19:30
TimToady it would be possible for binding to complain when it notices the type changing from the declared type, but it's a different check than for assignment 19:31
ruoso right right...
pugs: role Foo {}; role Bar {}; role SigType does Foo does Bar {}; say SigType ~~ Foo; say Foo ~~ SigType; 19:32
p6eval pugs: OUTPUTĀ«1ā¤ā¤Ā»
ruoso pugs is right here I think... it seems like a rakudobug
TimToady the inside-out of that may be why the subset where Foo & Bar didn't work
19:33 ZuLuuuuuu left
TimToady which should imply does Foo 19:33
ruoso TimToady, not if you see it as a subset of Any
19:33 amoc left
ewilhelm how is validation on attribute mutators done? (and where is it documented?) 19:35
I can't seem to find that in S12.
something like: foo should be between 0 and 50, so $thing.foo = 75; is an error 19:36
[particle]1 there's an ip address example, i think
oh, maybe that's in S05
ruoso TimToady, you said thinking it as an anonymous role didn't solve the issue... 19:37
why?
[particle]1 spack: 255 19:38
maybe it's 256... i don't have a perl6doc checkout atm :(
TimToady just that my role def does Foo; does Bar is an | rather than an &, so it probably needs subset
ruoso pugs: role Foo {}; role Bar {}; role SigType does Foo does Bar {}; subset Really of SigType where Foo&Bar; say Really ~~ Foo; say Foo ~~ Really; 19:40
p6eval pugs: OUTPUTĀ«*** ā¤ Unexpected ";"ā¤ expecting "::" or signature valueā¤ Variable "&Bar" requires predeclaration or explicit package nameā¤ at /tmp/f7d5N1RmXS line 1, column 100ā¤Ā»
ruoso pugs: role Foo {}; role Bar {}; role SigType does Foo does Bar {}; subset Really of SigType where Foo & Bar; say Really ~~ Foo; say Foo ~~ Really;
p6eval pugs: OUTPUTĀ«*** ā¤ Unexpected " Bar"ā¤ expecting "::"ā¤ at /tmp/zKikA8P4hT line 1, column 98ā¤Ā»
TimToady ewilhelm: see S06:293
ruoso pugs: role Foo {}; role Bar {}; role SigType does Foo does Bar {}; subset Really of SigType where { $_ ~~ Foo & Bar }; say Really ~~ Foo; say Foo ~~ Really;
p6eval pugs: OUTPUTĀ«*** No such subroutine: "&Really"ā¤ at /tmp/Y2k4r6vfw2 line 1, column 118-131ā¤Ā»
ruoso TimToady, so a subset of the anonymous role? 19:41
TimToady maybe, my brain is running out of nutrients
ruoso but in that case... I think it is never going to be a tie 19:42
hmm...
actually it is..
pugs: role Foo {}; role Bar {}; role SigType does Foo does Bar {}; subset Really of SigType where { $_ ~~ Foo && $_ ~~ Bar }; say Really ~~ Foo; say Foo ~~ Really;
p6eval pugs: OUTPUTĀ«*** No such subroutine: "&Really"ā¤ at /tmp/e9dYpTJuHi line 1, column 125-138ā¤Ā»
ruoso pugs: role Foo {}; role Bar {}; role SigType does Foo does Bar {}; subset Really of SigType where { $_ ~~ Foo && $_ ~~ Bar }; say Foo.does(Really); say Really.does(Foo);
p6eval pugs: OUTPUTĀ«*** No such subroutine: "&Really"ā¤ at /tmp/Z7KUQYW3wc line 1, column 134-140ā¤Ā»
ruoso it seems pugs doesn't support subsets very well 19:43
rakudo: role Foo {}; role Bar {}; role SigType does Foo does Bar {}; subset Really of SigType where { $_ ~~ Foo && $_ ~~ Bar }; say Foo.does(Really); say Really.does(Foo);
p6eval rakudo f8b6ae: OUTPUTĀ«Null PMC access in getprop()ā¤current instr.: '!CREATE_SUBSET_TYPE' pc 17211 (src/builtins/guts.pir:213)ā¤Ā»
ruoso rakudo: role Foo {}; role Bar {}; role SigType does Foo does Bar {}; subset Really of SigType where Foo & Bar; say Foo.does(Really); say Really.does(Foo); 19:44
p6eval rakudo f8b6ae: OUTPUTĀ«Null PMC access in getprop()ā¤current instr.: '!CREATE_SUBSET_TYPE' pc 17211 (src/builtins/guts.pir:213)ā¤Ā»
ruoso submits the second rakudobug 19:45
TimToady it looks like nothing in the test suite actually uses multiple named constraints in front of the param var 19:46
maybe we can have a compromise for 6.0.0 that allows only one pre-constraint, and counts all post-constraints as epsilons 19:47
and reserve the multiple constraint syntax for future expansion 19:48
ruoso the problem is really in creatig the anon type and then creating the subset of it 19:49
TimToady let me run a STD test over t/ and see if it finds any cases of multiple <type_constraint>
19:49 kidd joined
TimToady well, and figuring the narrowest actual that encompasses, so we don't end up with accidental Any 19:49
ruoso the problem was about generalizing "Foo Bar" as "Any where ..."
TimToady yes
ruoso where it should declare a new anon type instead 19:50
TimToady but we can maybe punt on the issue for 6.0.0
and it sounds like punting for now is the conservative thing to do
ruoso lets wait for jnthn to come back
TimToady if he ever does :)
ruoso I think he can solve that with an anon role
TimToady meanwhile, I'll look for any usage of Foo Bar $x 19:51
frioux what is that supposed to mean currently?
ruoso TimToady, it is indeed usefull
moritz_ never seen that syntax in the test suite 19:52
TimToady that we might allow sub x (Foo $x) but not sub x (Foo Bar $x)
for now
ruoso IO::Readable IO::Writeable $foo
TimToady easy to test, just remove the + on <type_constraint>
frioux interesting
ruoso creating an explicit role fails in that case
TimToady and then we can look to see if it can be rewritten IO $foo where IO::R & IO::W for now 19:53
anyway, I'll know the damage in half an hour
lunch shower $larry 19:54
19:56 Diederich joined
ruoso in fact, even the anon role fails 19:58
hmmm/.... 20:01
what if we support using plain junctions as types 20:02
?
Foo & Bar $foo
it's cool because we allow all the junction types...
20:02 DemoPhreak is now known as DemoFreak
ruoso and then it behaves like a regular junction when doing the "A ~~ B x B ~~ A" test... 20:02
TimToady works for constraints, but not for storage types 20:04
lunch &
Exodist makes a note to remove 'lunch' from his IRC ping-me keyword list.
20:05 icwiener joined
frioux wonders why it was in Exodist's ping-me list in the first place :-) 20:07
ruoso TimToady, I think constraints is already a big deal....
Exodist frioux: I use irc at my office, an we use it to talk about going out to lunch every day, and I have it ping me so I don't miss out on office lunches. 20:08
frioux oooooh 20:09
I should get my coworkers to do that
although we only go out once a week and typically just talk face to face about where to go
Exodist my office has a strange taboo about speaking aloud in the office space. 20:10
we have conference rooms for that
frioux oh. Well I'd rather talk than irc :-)
Exodist and to get there we ping eachother in irc.
frioux meeting&
ruoso would like to work in such a quiet office 20:11
usually the office I work on has all kinds of noises
20:11 M_o_C left 20:16 maerzhase left
TimToady hah, not a single instance of two constraints in front of a parameter 20:22
jnthn: for now we can restrict to a single named type in front, I suspect 20:23
so I will mark everything I added today in S12 as post-6.0.0 conjectural 20:24
but we still need to allow (0) as an autodeclared subset of Int somehow 20:25
pugs_svn r25911 | lwall++ | mark recent remarks as only for post-6.0.0 20:35
TimToady jnthn: you can come back now :) 20:36
TimToady apologizes for his reality-distortion field 20:40
pugs_svn r25912 | lwall++ | [STD] disallow multiple type_constraints in front of param_var for jnthn++ 20:44
r25912 | lwall++ | [STD] remove prefix:<int>
r25912 | lwall++ | [STD,Cursor] more cleanup of sequential match output
r25912 | lwall++ | [viv] preliminary work on --p5 output of viv
21:09 nihiliad left, nihiliad joined 21:13 ejs left 21:18 ejs joined 21:28 wknight8111 joined
jnthn breathes a sigh of relief 21:29
moritz_ ;-)
jnthn TimToady: Thanks. I was despairing...
21:29 ced-2_ left
jnthn TimToady: Also, disallowing multiple constraints in Perl 6.0.0 is good, means we do have a path to introduce them later. 21:30
21:33 icwiener left, ced-2 joined 21:39 disismt left 21:42 ced-2_ joined
moritz_ rakudo: class A is A { }; say "alive"; 21:43
p6eval rakudo f8b6ae: OUTPUTĀ«Can't be own parentā¤current instr.: '!meta_trait' pc -91305 ((unknown file):-1)ā¤Ā»
moritz_ rakudo++
rakudo: role A does A 21:46
p6eval rakudo f8b6ae: OUTPUTĀ«Unable to parse role definition at line 1, near ""ā¤ā¤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)ā¤Ā»
moritz_ rakudo: role A does A { }; say 'alive'
p6eval rakudo f8b6ae: OUTPUTĀ«aliveā¤Ā»
moritz_ shouldn't that be an error as well?
pugs_svn r25913 | moritz++ | [t] move self_inheritance.t to spec/ 21:47
21:48 mncharity joined
jnthn moritz_: Well, the spec says a role can't conflict with itself, but that may be stretching the concept just a little too far... ;-) 21:49
pugs_svn r25914 | moritz++ | [t] remove redundant test 21:50
21:50 mberends left, amoc joined
pugs_svn r25915 | moritz++ | [t] remove a test which TimToady++ declared "totally bogus" (and I agree ;-) 21:51
r25916 | moritz++ | [t] moved a test to integration/ 21:54
mncharity so, I have a p5 method which contains $s =~ s/$pat/$replace/g; . Which is fine... except for that odd case where return(do{$o->m($p,$r)}) works... but return(do{my $namedoesntmatter; $o->m($p,$r)}) doesn't. sigh. 5.10.0.
21:54 cspencer joined
cspencer is anybody here familiar with rakudo's inline PIR? 21:55
21:55 ced-2 left
moritz_ cspencer: just a tiny bit 21:55
mncharity from numerous past burns, I look suspiciously at $s =~ s/$pat/$replace/g; . any thoughts on a form of it which might be less likely to tickle p5 implementation bugs?
cspencer i'm trying to get at a parameter than i've passed into the P6 sub
but i'm not sure how to do that from the PIR 21:56
moritz_ cspencer: with find_lex
cspencer ah ok
thanks :)
moritz_ rakudo: my $x = 5; say Q:PIR { %r = find_lex '$x' }; 21:57
p6eval rakudo f8b6ae: OUTPUTĀ«5ā¤Ā»
cspencer moritz_: thanks, i should have realized that myself :) 21:58
moritz_ cspencer: I also needed to ask jnthn++ first, but I did it yesterday already ;-)
that said, you can use `self' in PIR just like in Perl 6 21:59
21:59 hercynium left
mncharity /me notes echoing silence. sigh. 21:59
moritz_ mncharity: what do you want to hear except "file perl bug"? ;-)
pugs_svn r25917 | moritz++ | [t] merged rules_with_embedded_parrot.t into no-capturing.t 22:03
moritz_ rakudo: my @a; @a[5] ~~ /nothing/; say "alive" 22:05
p6eval rakudo f8b6ae: OUTPUTĀ«Use of uninitialized valueā¤aliveā¤Ā»
mncharity moritz_: "anyone: nothing comes to mind"? 22:06
22:08 yahooooo left
pugs_svn r25918 | moritz++ | [t] merge smartmatch_autovivifies.t into autovivification.t 22:09
moritz_ rakudo: my @a; @a[5] ~~ /nothing/; say @a.perl; 22:10
22:10 skids left
p6eval rakudo f8b6ae: OUTPUTĀ«Use of uninitialized valueā¤Null PMC access in isa()ā¤current instr.: 'parrot;List;!flatten' pc 6213 (src/classes/List.pir:253)ā¤Ā» 22:10
22:11 lucs_ joined
pugs_svn r25919 | moritz++ | [t/spec] forgot to declare variable; fudged for rakudo 22:11
jnthn moritz_: We can has more passing tests? 22:14
moritz_ jnthn: one or two more
22:20 donaldh joined
pugs_svn r25920 | moritz++ | [t/spec] merge attribute_of_return_value.t into instance.t 22:23
moritz_ std: my $x = 42; $$$$$$x 22:25
p6eval std 25920: OUTPUTĀ«ok 00:02 35mā¤Ā»
pugs_svn r25921 | moritz++ | [t] remove tests which refer to non-existant `Rul' 22:27
jnthn Rul?
moritz_ Rul.
no shit, sherlok
jnthn can't quite imagien what Rul woulda been... 22:28
moritz_ jnthn: some internal Rule object, it seems 22:29
pugs_svn r25922 | moritz++ | [t] merge passig-arrays-to-functions.t into passing-arrays.t 22:30
r25923 | moritz++ | [t] move parsing_bool.t to spec/, clean up wrong try { } usage 22:32
r25924 | moritz++ | [t/spec] merge shift-from-function-array-arg.t into slurpy-params.t 22:38
moritz_ pugs: my $a = sub { 1 }; my $b; sub c($code) { return 1 if $code and $code(); return 0 }; c($b) 22:39
p6eval pugs: OUTPUTĀ«*** Cannot cast from VUndef to Pugs.AST.Types.VCode (VCode)ā¤ at /tmp/InWC3sXiPr line 1, column 54-71ā¤Ā»
moritz_ rakudo: my $a = sub { 1 }; my $b; sub c($code) { return 1 if $code and $code(); return 0 }; c($b)
p6eval rakudo f8b6ae: RESULTĀ«0Ā»
22:41 nihiliad left
pugs_svn r25925 | moritz++ | [t] mrege cast_undef_shortcircuit.t into short-circuit.t 22:42
moritz_ perl6: my @a = 1..5; @aĀ»++; say @a.perl;
p6eval elf 25924: OUTPUTĀ«2ā¤Ā»
..pugs: OUTPUTĀ«\(1, 2, 3, 4, 5)ā¤Ā»
..rakudo f8b6ae: OUTPUTĀ«Statement not terminated properly at line 1, near "\x{bb}++; say @"ā¤ā¤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)ā¤Ā»
pugs_svn r25926 | moritz++ | [t] remove test that's already present in S03-operators/hyper.t 22:43
22:44 yahooooo joined
pugs_svn r25927 | moritz++ | [t/spec] rakudo doesn't do Int() yet, so use a different way to generate a 22:48
r25927 | moritz++ | random integer
22:48 nihiliad joined 22:49 nihiliad left
pugs_svn r25928 | moritz++ | [t] .values/.eigenstates on junctions is gone 22:50
r25929 | moritz++ | [t] .pick is not a method in junction 22:51
r25930 | moritz++ | [t] remove another test that relies on junction.pick 22:52
lucs_ meh
dalek kudo: c26021b | (Moritz Lenz)++ | t/spectest.data:
we pass the (newly moved) parsing-bool.t
pugs_svn r25931 | moritz++ | [t] merge array_deref.t into autothreading.t 22:54
r25932 | moritz++ | [t] merge junction/s09eg.t into autothreading.t 22:57
23:02 bacek_ joined 23:04 d4l3k_ joined
ewilhelm yay! TPF is in Google Summer of Code this year: socghop.appspot.com/org/show/google...9/dukeleto 23:04
pugs_svn r25933 | lwall++ | make as trait consistent with as/of in S02 23:06
r25934 | moritz++ | [t] removed some files in unspecced/, moved one to examples/ instead
23:08 pmichaud2 joined 23:12 donaldh left, pmichaud left, dalek left 23:13 d4l3k_ is now known as dalek 23:15 ejs left 23:16 fridim_ joined
moritz_ docs/notes/ is full of interesting documents 23:19
23:20 skids joined
pugs_svn r25935 | moritz++ | [t/spec] fix plan in autothreading.t 23:27
r25936 | putter++ | [elf_h] Enable dynamic Call/Apply api switching. 23:32
r25936 | putter++ | Speed cost of ~5% for parse-cached self-compilation. 20% bloat.
r25936 | putter++ | A perl 5.10.0 bug is sometimes tickled, so anyone using it should expect flakiness.
23:32 Exodist left
moritz_ rakudo: sub f($str) { eval $str }; my $x = 5; f('say $str'); 23:33
p6eval rakudo c26021: OUTPUTĀ«say $strā¤Ā»
moritz_ wtf? 23:34
jnthn huh?
TimToady I don't see any explanation for it 23:35
jnthn moritz_: Oh. I do.
TimToady unless eval is implemented as no-op...
moritz_ TimToady: even then it shouldn't execute a say()
TimToady hmm 23:36
moritz_ what *should* it do? complain that $str is not in scope inside the eval?
TimToady but it is in scope...
jnthn You're evaling the code say $str. And $str is the string you're evaling.
mncharity err, why isn't that correct behavior?
moritz_ argl
TimToady right
moritz_ rakudo: sub f($str) { eval $str }; my $x = 5; f('say $x'); 23:37
TimToady bleah
p6eval rakudo c26021: OUTPUTĀ«5ā¤Ā»
moritz_ that's what I wanted to test
is that correct?
jnthn Yes.
TimToady I don't think that's correct
jnthn ($x is in the outer scope of the point where you eval the string)
TimToady oh, yeah 23:38
moritz_ jnthn: only in the outer dynamic scope
TimToady retroactively
mncharity rakudo: sub f($str) { eval $str }; {my $x = 5; f('say $x');}
p6eval rakudo c26021: RESULTĀ«undefĀ»
TimToady eval sees the scope as it was at the block's CHECK time
so it sees the post-declared $x
so it's correct
has nothing to do with the fact that 'say $x' comes after the my 23:39
jnthn
.oO( phew! )
mncharity (aka... audrey didn't want to do scope analysis so everything scopes to block level... ;-)
TimToady rakudo: sub f($str) { eval $str }; f('say $x'); my $x = 5;
moritz_ somehow my brain just had a phase transition to liquid
p6eval rakudo c26021: RESULTĀ«5Ā»
jnthn How does that one work?! 23:40
TimToady yes, she argued me into that, and I've been glad of it ever since
same way
mncharity :)
jnthn TimToady: Is that correct?
TimToady yes, it is
the eval knows the lexical pad it's launched from
mncharity no my $x = $x; sniff.
TimToady and by time the eval happens, that lexical pad contains my $x 23:41
and $x has been initialized to 5
because of the sub
moritz_ and it rescues eval_dies_ok in the test suite ;-)
audreyt++
TimToady rakudo: eval('say $x'); my $x = 5;
p6eval rakudo c26021: RESULTĀ«5Ā»
TimToady now that one is a bit more problematic 23:42
moritz_ but still correct?
TimToady rakudo: eval 'say $x'; my $x = 5;
p6eval rakudo c26021: RESULTĀ«5Ā»
TimToady at the point it executes the eval, it should not have initialized $x yet
so it should be undef, I think
jnthn TimToady: I agree its wrong, but I don't see why f('eval $x'); my $x = 4 is right. 23:43
TimToady something's cheating on the init of the my, I suspect
jnthn (to print 4)
TimToady oh right, same problem
jnthn Since at that point we didn't do the assignment. 23:44
moritz_ TimToady: isn't 'my $x = 4' allowed to do the initalization at compile time?
TimToady no
jnthn I'm a tad confused how Rakudo is getting that wrong...well, rakudobug.
TimToady it's supposed to happen at normal execution time
rakudo: my $x = 42; say $x; my $x = 5 23:46
p6eval rakudo c26021: OUTPUTĀ«Redeclaration of variable $xā¤42ā¤Ā»
TimToady that's supposed to be a warning, not an error
oh, it is
we got the 42
hmm
rakudo: my $x = 42; eval 'say $x'; my $x = 5 23:47
p6eval rakudo c26021: OUTPUTĀ«Redeclaration of variable $xā¤42ā¤Ā»
TimToady rakudo: my $x; eval 'say $x'; my $x = 5
p6eval rakudo c26021: OUTPUTĀ«Redeclaration of variable $xā¤Use of uninitialized valueā¤ā¤Ā»
TimToady rakudo: eval 'say $x'; my $x = 5
p6eval rakudo c26021: RESULTĀ«5Ā»
TimToady curious
amoc '~'
23:48 Kisu left
mncharity (I note in passing that I was pleasantly surprised by the low overhead of p5 do{ ...expr... } blocks. (except for the part of them not always working of course.)) 23:49
jnthn rakudo: say 1; my $x = say 2;
p6eval rakudo c26021: OUTPUTĀ«1ā¤2ā¤Ā»
jnthn rakudo: say 1; say $x; my $x = say 2;
amoc ops
p6eval rakudo c26021: OUTPUTĀ«1ā¤Null PMC access in isa()ā¤current instr.: 'parrot;List;!flatten' pc 6213 (src/classes/List.pir:253)ā¤Ā»
amoc rakudo: say $x; my $x=4
p6eval rakudo c26021: OUTPUTĀ«Null PMC access in isa()ā¤current instr.: 'parrot;List;!flatten' pc 6213 (src/classes/List.pir:253)ā¤Ā»
moritz_ now that should complain at compile time about $x not being declared 23:50
mncharity end of quarter almost here. it might be interesting to do some sort of p6 status report(s).
jnthn Rakudo bug for sure.
mncharity g'night all &
moritz_ mncharity: send me one, and I'll put it into my next Tidings post (soon to come)
mncharity @todo.push
lambdabot Unknown command, try @list
mncharity lol 23:51
23:51 mncharity left
pugs_svn r25937 | moritz++ | [t/spec] test for declaring variables after an eval() they are used in 23:51
23:51 DemoFreak left
amoc sorry, but may anyone please explain what 'capture' or 'subscript' is ? i cannot clarify from reading Synopsises. 23:52
moritz_ amoc: subscript is a postfix operator like @x[4] or %h{$foo}, I think 23:53
amoc Captures are sort of references, %x and @x will bound to Capture, Capture Obj is function call arguments... (the explanations are not match in my head)
moritz_ amoc: svn.pugscode.org/pugs/docs/Perl6/FAQ/Capture.pod 23:54
23:54 aindilis joined
moritz_ maybe a bit out of date, but it should still capture (sic) the idea 23:54
TimToady yes, ignore the part about using $ to get the invocant back out 23:55
the invocant is now always just the first positional argument
jnthn is glad to see he can mostly have the weekend "off"
23:56 jferrero left
jnthn Will be hacking on Rakudo tomorrow, BTW. :-) 23:57
amoc er..
pugs_svn r25938 | lwall++ | [STD] "categorize" nouns and values for better extensibility
jnthn is happy about this, because the last couple of days saw him trying to pile more stuff into a 3,000 line ASP file... 23:58
amoc moritz_: what is (sic) ? 23:59