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 |