»ö« | perl6-projects.org/ | nopaste: paste.lisp.org/new/perl6 | evalbot usage: 'perl6: say 3;' | irclog: irc.pugscode.org/ | UTF-8 is our friend! Set by moritz_ on 30 July 2009. |
|||
frettled | TimToady: so that instead of do {…}_, we'd have _autoindex {…}_, or am I Not Getting It? | 00:02 | |
(yow, run-away underlines) | |||
arthur-_ | /me wants to convert a Str to a Regex ( with interpolation ) but don't find in S05 | ||
00:03
TimToady sets mode: +oooo [particle] frettled cognominal japhb,
TimToady sets mode: +oooo kolibrie Limbic_Region mberends s1n,
TimToady sets mode: +o sjohnson
|
|||
TimToady | frettled: that would be the basic idea, but perhaps the blockless form would not make sense | 00:03 | |
frettled | Mm, I don't think it would make programming life easier to do so. | 00:04 | |
TimToady | arthur-_: /<$string>/ if you don't want \Q semantics | 00:05 | |
but nyi in rakudo | |||
frettled | same goes for autoindex, I see :) | ||
TimToady | nobody implements S09 yet | ||
not even the "easy" bits :) | 00:06 | ||
frettled | hee-hee | ||
Fortunately (for me, anyway), I don't yet have enough Perl 6 or rakudo clue to fix that. | 00:07 | ||
eternaleye | Ya know, if do { @out[$^k,$^j] = @in[$^j,$^k] } is what we're looking for for 2d arrays, maybe we could define it as do { @out[@in.shape.rotate] = @in[@in.shape] } ? | 00:08 | |
00:08
tak11 left
|
|||
frettled | or just @out.transpose ;) | 00:09 | |
TimToady has to go and play drums & | |||
eternaleye | s:1st:2nd/,/;/ | ||
frettled | :) | ||
arthur-_ | TimToady: thx | ||
eternaleye | frettled: I mean what we define .transpose to be in code | 00:10 | |
That way .transpose is defined on multi-dim arrays | |||
frettled | eternaleye: sorry, I just wanted to joke a bit. But yes, that would be one way to see it. | ||
I'm not sure that transposing on multi-dim arrays makes sense without a parameter set to transpose. | |||
eternaleye | frettled: Quite possible. I'm still very early in my mathematical education (just finished derivatives and integrals last year) | 00:11 | |
frettled | I think that «rotate» would seem more understandable as a term then, but I suppose a mathematician would then proceed to file off my fingers with wet celery. | 00:12 | |
00:12
ascent_ left
|
|||
eternaleye | frettled: Well, we aready have a .rotate | 00:12 | |
00:12
ascent_ joined
|
|||
eternaleye | And really, rotating two elements is transposition | 00:13 | |
frettled | Yes, .rotate is for bits or something. | ||
eternaleye | frettled: .rotate is defined on arrays, I remember that from the Josephus discussion | ||
frettled | Ah, for lists it's the same as rotating bits in a byte. | 00:14 | |
Sensible in a computer science kind of way. | |||
eternaleye: but to «transpose» a 3D array, we'd have to say which way, since it can be «transposed» in two dimensions. | 00:15 | ||
In general, the similar operation to transposition has N-1 dimensions for an N-dimensional matrix. | |||
eternaleye | frettled: Well, the code I wrote abvove would do x->y y->z z->x | ||
frettled | Yes, but x->z, z->y, y->x would be different. | 00:16 | |
and still valid :) | |||
eternaleye | Rather than rotating elems, it rotates dimensions | ||
frettled: Hm, yes | 00:17 | ||
Well, .rotate takes an integer parameter, so we could pass that from outside - -1 would DWYM, and 0 or +(@in.shape) would be identity | |||
frettled | and we could pass it a list to handle multiple dimensions? *g,d&r* | 00:18 | |
eternaleye | frettled: Well, we're rotating dimensions rather than elements. Unless you can find a way to have dimensions of dimensions (looser that ';' | 00:19 | |
frettled: Well, we're rotating dimensions rather than elements. Unless you can find a way to have dimensions of dimensions (looser than ';'?), that wouldn't have any meaning | 00:20 | ||
frettled | I was about to suggest, though, just after I mentioned «use Mathematica», that making use of GNU Octave might be a win for stuff like this. | ||
eternaleye | frettled: Yeah, but the bindings might be somewhat painful | ||
frettled | SMOP :) | 00:21 | |
00:21
stimpi joined
|
|||
eternaleye | heh | 00:21 | |
00:23
ujwalic left
00:24
unitxt left
|
|||
frettled | Octave wouldn't be useful for bindings as much as either inspiration or blatant copying of features into a Perl 6 compiler/interpreter. | 00:24 | |
00:24
unitxt joined
|
|||
frettled | Heh. Hehe. | 00:26 | |
eternaleye: Speaking of bindings, see search.cpan.org/dist/Inline-Octave/ | |||
eternaleye | nice | ||
00:29
meppl left
00:30
stimpi left
|
|||
frettled | Good night! *idle* | 00:32 | |
pugs_svn | r27986 | ujwal++ | Added myself to AUTHORS | 00:41 | |
00:42
ujwalic joined,
ujwalic left
00:48
KatrinaTheLamia joined
00:49
mersel left
00:51
tak11 joined
00:57
winthrowe left
01:07
KatrinaTheLamia left
01:13
helper joined
01:15
Whiteknight left
01:37
ilbot2 left,
ilbot2 joined
01:43
KatrinaTheLamia joined
01:48
xinming_ left
01:51
xinming joined,
mintsoup left
01:52
helper left
01:55
rdice left
01:56
meteorjay joined
01:57
japhb left
01:58
sri_kraih_ joined
02:01
xinming_ joined,
sri_kraih left
02:07
xinming_ left
02:11
xinming_ joined
02:13
xinming left
02:21
japhb joined
02:26
tann left
02:34
xinming_ left
02:36
xinming joined
02:44
KatrinaTheLamia left
02:46
DakeDesu joined
02:51
DakeDesu is now known as KatrinaTheLamia
02:53
oxygenfad joined
03:02
tarbo2_ joined
03:14
Limbic_Region left
03:19
molaf joined
03:20
donaldh left,
donaldh joined,
ihrd left,
ihrd joined
03:29
molaf left
03:39
wayland76 joined
|
|||
wayland76 | ping jnthn | 03:41 | |
phenny | wayland76: 12 Aug 06:34Z <moritz_> tell wayland76 every pugs committer can also invite new committers at commitbit.pugscode.org/admin/project/Pugs/people (it's not a special power of mine) | ||
wayland76 | phenny: tell jnthn The least we could do for Ian Hague is spell his name right in posts on the Rakudo website. www.rakudo.org/node/51 | 03:42 | |
phenny | wayland76: I'll pass that on when jnthn is around. | ||
03:48
sri_kraih_ left
04:02
sevvie joined
|
|||
pugs_svn | r27987 | kyle++ | [t/spec] begin cleansing of eval and todos that should skip | 04:05 | |
04:12
oxygenfad left
04:14
RonOreck left
04:20
kane_ left
04:22
kane_ joined
04:28
sevvie left
|
|||
pugs_svn | r27988 | kyle++ | [t/spec] fix todo test that should skip | 04:30 | |
04:31
eternaleye left
04:35
kane_ left
04:36
eternaleye joined
05:10
KatrinaTheLamia left
05:11
tann_ joined
05:14
KatrinaTheLamia joined
05:15
tann___ joined
05:23
szabgab_ joined
05:31
szabgab left
05:32
tann_ left
05:34
rfordinal joined
05:39
frew__ left
05:42
finanalyst joined
05:45
orafu left
05:46
orafu joined
|
|||
japhb | phenny tell pmichaud I'm thinking of writing the Parrot module install tool in NQP -- or rather, write it in Perl 6 using the subset that NQP will support around the 2.0 time frame or so, with the intent of being able to use NQP to compile it when 2.0 ships. Do you have an updated list of the features you expect NQP to support around that time? Is this even reasonable? | 05:53 | |
phenny: tell pmichaud I'm thinking of writing the Parrot module install tool in NQP -- or rather, write it in Perl 6 using the subset that NQP will support around the 2.0 time frame or so, with the intent of being able to use NQP to compile it when 2.0 ships. Do you have an updated list of the features you expect NQP to support around that time? Is this even reasonable? | |||
phenny | japhb: I'll pass that on when pmichaud is around. | ||
japhb | sigh, forgot the colon first time. | ||
05:58
guest_007 left
06:08
ihrd left
06:16
__ash__ joined,
__ash__ left
06:24
rfordinal left,
jaldhar joined
06:25
justatheory joined
06:35
tak11 left
|
|||
wayland76 | japhb: Interesting idea. One of my currently stalled projects is something that worries about different package formats (P6 of course) | 06:50 | |
japhb | wayland76: do tell | 06:51 | |
wayland76 | Well, it has an object that models metadata | 06:53 | |
And if you can feed the metadata into the object... | |||
...then it will (in theory) spit it out in various different packaging formats | 06:54 | ||
I personally only plan to support RPM, but I'm intending to make it flexible enough that anyone can use it | |||
japhb | Ah so. | ||
wayland76 | The problem is, I wrote it in P5, and converted it across, and now I can't find the bugs very easily because Rakudo tells me what line they're on, but not in which file :) | 06:55 | |
japhb | There is mention in the Parrot module ecosystem proposal that the metadata spec include enough information that automated tools (like yours, say) could generate RPM, DEB, etc. | ||
wayland76: heh | |||
wayland76 | I had a skim over that | 06:56 | |
japhb | Any comments? | ||
wayland76 | Only that I've seen more proposals than work in this area, and that, as long as I can convince people to use my package modelling stuff, I'm not too fussed with the rest :) | ||
For example, when we said on p6l "Lets discuss packaging/CPAN", it turned out that the 4 most interested people were interested in different parts of the problem | 06:57 | ||
japhb | Getting enough agreement on the basics and then writing the proposal was exhausting. I'm attempting to pace myself. :-) | ||
wayland76 | Like I said, though, I only skimmed it | 06:58 | |
There are all kinds of cool ideas that could be tried, but as long as it's heading somewhere flexible, I'm happy :) | |||
(If I tried to keep up with everything in the Parrot and P6 communities, I'd have no time to code :) ) | 06:59 | ||
japhb | What I heard privately was that some previous proposals seen over here (#perl6) weren't going to fly over there (#parrot), so I worked from scratch except for cribbing some of the metadata keys from existing CPAN META.yml/json keys | ||
NODNOD | |||
07:00
rfordinal joined
|
|||
japhb | One nice thing is that masak has already produced a simple prototype of an easy install tool, so I can look at what's good and bad with that. | 07:01 | |
07:01
justatheory left
07:03
kane_ joined
|
|||
wayland76 | It would also be cool if all these things would integrate properly with package meta-managers (ie. apt and yum) | 07:05 | |
For example, we go "yum install foo-perl-package", and it downloads, compiles, installs, etc :) | |||
I admit it's unlikely, but it's nice to dream | 07:06 | ||
japhb | I'd actually see it in reverse: 'plumage install perl:Foo' looks to see if 'foo-perl' exists as a system package, and offers that. Otherwise, fetch, build, install. (Note to backloggers: NOT A FIRST RELEASE FEATURE! ;-) | 07:07 | |
wayland76 | japhb: That would be nice too. There's no reason both ways couldn't work :) | 07:08 | |
japhb | :-) | ||
Tene | in RH distros, it's more likely to be perl-Foo | ||
Tene now has 256-color support working in ncurses in rakudo. | 07:12 | ||
The following loop runs far too slowly. | 07:16 | ||
for 0..255 X 0..255 { say "$^a - $^b" } | 07:17 | ||
rakudo: for 0..255 X 0..255 { say "$^a - $^b" } | |||
p6eval | rakudo 0d4fe0: ( no output ) | ||
japhb | timeout! | ||
You know, the evalbot should *say that* | |||
moritz_ | japhb: patches welcome | 07:18 | |
japhb | I knew you were going to say that. | ||
moritz_ | ;-) | ||
then you already prepared a patch? ;-) | |||
japhb | Given that I'm having trouble focusing my eyes right now, that's probably unwise. ;-) | ||
moritz_ | you're excused | 07:19 | |
;-) | |||
wayland76 | Tene: I'm a Fedora user myself, so I know these things :) | ||
07:20
donaldh left
|
|||
moritz_ | anyway, p6eval is a quick hack upon which way too many quick hacks have been built | 07:20 | |
07:20
donaldh joined
|
|||
Tene | wayland76: I'm just nitpicking. | 07:21 | |
Matt-W | Morning | ||
moritz_ | good day Matt-W | 07:22 | |
07:23
jkva left
|
|||
wayland76 | Tene: Yah, I know. You'd have to have a "Redhat package name to Perl package name converter", and a separate one for Debian | 07:23 | |
Matt-W | hi moritz_ | ||
07:24
kent\n joined
|
|||
wayland76 | moritz_: Are you referring to STD.pm as one of the major implementations? | 07:25 | |
moritz_ | wayland76: yes | ||
wayland76 | Ok, my confusion is dispelled. I don't like enspelled confusion :) | 07:26 | |
07:27
synth left
07:30
rfordinal left
08:03
iblechbot joined
08:05
frederico left
08:29
pmurias joined
08:30
meppl joined
08:34
masak joined
|
|||
masak | aloha, #perl6. | 08:34 | |
rakudo: ((Temporal::DateTime.new(:date(Temporal::Date.new(:year(2010), :month(4))), :time(Temporal::Time.new)).epoch - time) / 86400).ceiling.fmt('%d days left until April!').say | |||
p6eval | rakudo 0d4fe0: OUTPUT«230 days left until April!» | 08:35 | |
moritz_ | oh hai | ||
moritz_ has another weekend without internet access before him | 08:36 | ||
masak | nice. | ||
moritz_ | depends ;-) | ||
it's certainly more productive, but I have to live with the withdrawal symtomps ;-) | 08:37 | ||
masak | I'm sure you'll make it through. :P | 08:38 | |
moritz_ | so far I always did ;-) | ||
masak | <hume>yeah, but...</hume> | ||
08:42
tann___ left
08:46
EDevil joined
08:49
kane_ left
08:57
zamolxes left
09:01
explorer joined
|
|||
masak | まじで? "Perl 6、2010年4月登場 | エンタープライズ | マイコミジャーナル" | 09:02 | |
I don't know what it says, but it's kinda warming to see people being expectant in Japanese. | 09:03 | ||
09:03
explorer left
|
|||
masak | three days ago, there was some kind of Twitter surge of Japanese news on "Perl 6, April 2010". | 09:04 | |
huf | ;))) | 09:06 | |
perl6 for kurisumasu | |||
masak | apparently 'まじで?' means 'for real?' | 09:09 | |
in a way, Rakudo Star is a big stage play to show to the world that, yes, Perl 6 is for real. | 09:10 | ||
it's not really a more special release than the other ones, but we're making it special by saying "by this point, it will be worthy of your attention". | 09:11 | ||
moritz_ | masak: it kinda is special. We never had a roadmap before with time estimates, and a good reason to stick to it | 09:12 | |
wayland76 | We've had time estimates before :) | 09:13 | |
They were wrong :) | |||
moritz_ | that's why I said "and a good reason to stick to it" | ||
wayland76 | I figured that :) | ||
masak | it's definitely an ambitious time plan before April. | 09:15 | |
I wouldn't be surprised if we'll have to compromise on some of the features slated for April. | |||
(but it's still a very good idea to have set a concrete goal) | 09:16 | ||
are there visitor statistics for rakudo.org and perl6-projects.org ? | 09:18 | ||
09:19
PacoLinux left,
zloyrusskiy joined
|
|||
moritz_ | I could assemble some for p6p | 09:19 | |
09:20
PacoLinux joined,
pmurias left
|
|||
wayland76 | Are we planning to spend the last month before Rakudo * killing bugs instead of implementing features? | 09:21 | |
moritz_ plans to continue his testing effort | |||
09:22
guest_007 joined
|
|||
masak | wayland76: depends on the state of the ROADMAP at that point, I assume. | 09:22 | |
moritz_: I had something like this in mind: github.com/masak/web/graphs/traffic | 09:23 | ||
09:24
Su-Shee joined
|
|||
Su-Shee | good morning. | 09:24 | |
masak | Su-Shee: o/ | 09:27 | |
Su-Shee | o/xB0 <-- waving with a coffee-pot in the hand. ;) | 09:29 | |
moritz_ | masak: moritz.faui2k3.org/tmp/p6p.html | 09:30 | |
masak | moritz_++ | ||
and interesting results, too! | |||
masak couldn't see Su-Shee's coffee-pot because of differences of encoding | 09:31 | ||
moritz_: the 07/Aug surge I can understand, but what happened on 23/Jul? :) | 09:32 | ||
Su-Shee | masak: oh - was just the small "degree" circle, nothing special. | ||
masak | ah. | 09:33 | |
moritz_ | masak: no idea | ||
wayland76 hopes Su-Shee spills no coffee :) | 09:39 | ||
masak: re: ROADMAP, in other words, no we won't, unless we agree to it now :) | |||
09:39
zamolxes joined
|
|||
masak | wayland76: we won't what? | 09:40 | |
wayland76 | masak: 23 July was people going there 3 days before my birthday to see if tyhey could find present ideas :) | ||
masak: won't spend the last month fixing bugs instead of adding features | |||
masak | ah. | ||
wayland76: it's more like, when March rolls around, what's most important? | 09:41 | ||
might be bugfixes, might be making that last feature fall into place. | |||
agreeing to it now makes little or no sense by me. | |||
wayland76 | masak: Well, I agree, but maybe we should agree that it's a good idea in theory now :) | 09:42 | |
masak | yes, it sounds like a good idea. | 09:43 | |
I just think it'll be fairly self-regulating. | |||
wayland76 | Yeah, good point :) | 09:44 | |
(re self-reg) | |||
Did people see that Parrot has had lots of features removed this time? | 09:46 | ||
Well, I guess there's no point me saying that -- the people who care already know :) | |||
masak | aye, because 1.4 was a milestone release of some kind. | ||
and the Parrot team remove deprecated things after milestone releases. | |||
09:52
PacoLinux left
09:55
[particle]1 joined
10:01
eternaleye left
10:02
pmurias joined
10:03
eternaleye joined
10:09
tomaw_ left
|
|||
mikehh | rakudo (0d4fe08) builds on parrot r40543 - make test/make spectest (up to 27988) PASS - Ubuntu 9.04 amd64 | 10:10 | |
10:11
tomaw_ joined
10:14
[particle] left
10:18
rafl_ joined
10:20
omega_ joined
10:23
Maddingu1 joined
10:27
Maddingue left
10:28
Su-Shee left
10:32
omega left
10:35
renormalist left,
rafl left
10:36
rafl_ is now known as rafl
10:43
payload left
|
|||
masak | Ruby has a method Kernel#autoload, which registers a file to be loaded (with 'require') the first time a given module is accessed. in other words, a lazy version of 'use'. | 10:51 | |
would it be possible to simulate something like that in existing Perl 6? | 10:52 | ||
10:52
szabgab_ left
10:58
szabgab_ joined
11:06
masak left
|
|||
jnthn | o/ | 11:11 | |
phenny | jnthn: 03:42Z <wayland76> tell jnthn The least we could do for Ian Hague is spell his name right in posts on the Rakudo website. www.rakudo.org/node/51 | ||
jnthn | wayland76: Good catch, fixed (typo most likely). | 11:13 | |
11:16
renormalist joined
|
|||
moritz_ | funny thing is, if you google for Ian Hague the first hit is from perlbuzz ;-) | 11:17 | |
szbalint | good karma :) | 11:18 | |
11:20
donaldh left,
donaldh joined
11:27
explorer joined
11:29
donaldh left
11:40
masak joined
11:46
molaf joined
11:47
meteorjay left,
meteorjay joined
11:49
rdice joined
11:50
payload joined
11:54
molaf left
11:57
BinGOs left
11:58
BinGOs joined
12:00
molaf joined
12:09
masak left,
takadonet joined
|
|||
takadonet | morning all | 12:09 | |
12:18
Maddingu1 is now known as Maddingue
12:19
ruoso joined
|
|||
pmurias | ruoso: hi | 12:20 | |
ruoso: what flags do you pass to Configure? | |||
moritz_ | rakudo: say %*VM.keys | 12:23 | |
p6eval | rakudo 0d4fe0: ( no output ) | ||
moritz_ | rakudo: say ~%*VM.keys | ||
p6eval | rakudo 0d4fe0: ( no output ) | ||
ruoso | pmurias, the only flag I defined was -DSMOP_INTEGRATION | ||
but we still need the smop sources to be compiled inside the perl sources | |||
moritz_ | rakudo: say %*VM.perl | 12:24 | |
p6eval | rakudo 0d4fe0: ( no output ) | ||
moritz_ | rakudo: say $*VM.perl | ||
p6eval | rakudo 0d4fe0: ( no output ) | ||
moritz_ | rakudo: say 2 | ||
p6eval | rakudo 0d4fe0: ( no output ) | ||
szbalint | uh-oh :) | ||
moritz_ | something is very broken. | ||
pmurias | ruoso: i hand hacked them into the build system... testing now | 12:27 | |
ruoso | pmurias, coool | 12:28 | |
moritz_ | rakudo: say 1 | ||
p6eval | rakudo 0d4fe0: OUTPUT«1» | ||
moritz_ | rakudo: say %*VM<config><infodir> | ||
p6eval | rakudo 0d4fe0: OUTPUT«/home/evalenv/p2/info» | ||
12:30
masak joined
|
|||
takadonet | hey masak | 12:32 | |
moritz_ | speaking of masak... did anybody adjust proto to work with an installed parrrot? or no adaption necessary? | 12:33 | |
masak | moritz_: no-one has yet. I should at least test it, I guess. | ||
moritz_ has a secrit plan for world domination, to be prototyped over the weekend | 12:35 | ||
12:36
omega_ left
12:37
omega joined
|
|||
Infinoid | if I suddenly feel dominated, I'll know the prototype worked | 12:38 | |
moritz_ | masak: does SVG.pm work as advertised in the Pod? (ie with :[...]) | 12:41 | |
12:41
szabgab_ left
|
|||
masak | moritz_: barring the recent Rakudo bug, yes. | 12:42 | |
moritz_ | aka "no" ;-) | ||
jnthn | Where recent Rakudo bug = a regression? | 12:43 | |
masak | jnthn: not sure, but I think so. | ||
the SVG.pm example used to work. I'm sure of that. | 12:44 | ||
moritz_ | and pmichaud already spent a day trying to fix it, or so | ||
12:45
|theJackal| joined
|
|||
masak | moritz_: I should perhaps add a note in SVG.pm on how to work around that bug. | 12:45 | |
jnthn | RT#? | ||
moritz_ can't find it | 12:48 | ||
masak: your call | |||
masak | it's can't hurt. | 12:50 | |
s/'s// | |||
frettled | Statement not terminated properly at line 1, near "\n" | 12:51 | |
;) | |||
12:51
araujo left
|
|||
wayland76 | moritz_: You realise that anyone who feels dominated over the weekend is now going to blame you, whether your plan succeeds or not? :) | 12:54 | |
pmurias | ruoso: would we lose anything by storing the files like smop-s0native-idconst.c? | 12:55 | |
moritz_ | wayland76: I can live with being blamed. Actually I thought about starting a company that takes money for being blamed random things ;-) | ||
ruoso | pmurias, I've been thinking about it.. I think we can simplify it.. at least for this core smop modules | ||
wayland76 | moritz_: The drawback is, people would sue you when you took the blame :) | 12:56 | |
12:56
eiro joined,
eiro left
|
|||
frettled | wayland76: naaah, not if the T&C make it clear that you agree to indemnify and hold harmless $company | 12:57 | |
wayland76 | At least these days | ||
moritz_ | wayland76: I'd only take the moral blame, not the legal | ||
frettled | So you're free to _blame_ them, but they won't take responsibility. :D | ||
12:57
explorer left
|
|||
wayland76 | Ah, ok, moritz_'s solution might work. frettled's I'm not so sure about :) | 12:57 | |
Because if A pays you and you take their blame, then B might sue you instead of A | 12:58 | ||
frettled | Nono, moritz_ didn't say that he'd _take_ the blame. | ||
He said the company would take the _money_ ;) | |||
wayland76 | Oh, got it :) | ||
However, the kind of people that would hire you would probably get you in trouble in the end for receiving stolen funds or something :) | 12:59 | ||
wayland76 can't wait for a new, multi-core computer, where my web browser won't take 95% of the CPU :) | 13:00 | ||
moritz_ | hey, multicore is the only way in which a browser can take up more than 100% CPU ;-) | 13:01 | |
frettled | mm | ||
wayland76 | Well, yes, but my new desktop is going to be dual Xeon. That should solve the problem :) | ||
Oh, did I say it takes 95% CPU and *also* hasn't responded in over 2 minutes? :) | 13:03 | ||
13:03
kent\n left
|
|||
moritz_ | maybe you should open less tabs :-) | 13:04 | |
wayland76 | ³‘¤¾½€¼ single-threaded browsers | ||
I don't know how to open less tabs, but I could open fewer tabs :) | |||
masak | wayland76: you should see my browsers. here tabs truly are an uncountable. :) | 13:05 | |
wayland76 | Well, I only have 2 windows at the moment, with about 8 tabs each | ||
frettled | that's not much. | 13:06 | |
wayland76 | I'm sure I've gone double that both ways (ie. quadruple tabs) in the past | ||
masak | wayland76: I just restarted Firefox here. had to go offline, because it can't load the 2k tabs into memory all at once. | ||
wayland76 | Yeah, I think one site has some misbehavoiur | ||
frettled | I cleaned up my Firefox thingy the day before yesterday, went from around 130-150 tabs to 20-ish. | ||
moritz_ | masak: maybe should queue links, not tabs? | 13:07 | |
frettled | But Firefox 3.5.x is _really_ unstable for me, no matter what I do. | ||
masak | moritz_: well, that becomes the effect, no? :) | ||
wayland76 | Well, I had trouble with my DVD Burner today, and rebooted, so my tabs are still low :) | ||
frettled | masak: two thousand? holy schmoly | ||
wayland76 | I'm actually using Seamonkey :) | ||
moritz_ | masak: but links instead of tabs would be a bit more resource friendly | ||
masak | frettled: I know. it's Twitter's fault. after I started using it, my number of tabs experience a net growth each day. :/ | ||
frettled | I'm using Opera (or Safari) to view the synopses, because Firefox can't take'm. | ||
masak | moritz_: yes. still looking for a system that does that well for me. | 13:08 | |
wayland76 | Speaking of tabs, Get FREE Cia1is Tabs NOW!!! :) | ||
frettled | heh | ||
masak doesn't even know what Cialis is | |||
frettled | wayland76: TYVM for getting the webserver with the IRC logs spamlisted ;) | ||
masak: it's the active ingredient in Viagra, I think | 13:09 | ||
wayland76 | I think the KDE browser has the same backend as Webkit | ||
frettled | masak: at least it seems to crop up in lots of Viagra related spam. | ||
moritz_ | wayland76: no, KHTML vs. webkit | ||
masak | frettled: ah, convenient -- only buying the active ingredient. | ||
frettled | masak: hee-hee | 13:10 | |
moritz_ | they had a common source, or merged at one point, but are diverging again today | ||
13:10
[particle]1 is now known as [particle]
|
|||
wayland76 | masak was the one who said it in cleartext :). Cialis is a drug that presumably comes in tablet form. When I was fiddling with a spam filter for an ISP years ago, we got e-mails with subject lines that bore some resemblance to what I posted | 13:10 | |
frettled | wayland76: yes, but spam filters check for the obfuscated versions, since that's what spammers use. When doctors and patients communicate, they use the real names. :D | ||
wayland76 | moritz_: Thanks. | ||
[particle] | frettled: it's a competitor to viagra. different company, similar drug | ||
wayland76 | [particle]: I think it was masak that asked that :) | 13:11 | |
frettled | [particle]: aha! Now why would you know that? :D | ||
wayland76 | "So what did you do today son?" "I hung out on #perl6 and talked about drugs" | ||
[particle] | because i'm an american consumer, bombarded by television ads. | 13:12 | |
Matt-W | for some reason, it's also more popular as a fake drug for spammers to 'sell' | ||
wayland76 | Btw, one thing I found while fiddling with the spam filter -- the word "specialist" contains the word "cialis" | ||
And I accidentally blocked someone from sending an e-mail with the subject line "My wife needs to see a specialist" :) | 13:13 | ||
Matt-W | doh | 13:14 | |
spam filtering is a difficult thing | |||
masak always liked Graham's "A plan for spam" | 13:15 | ||
he makes it seem so easy! | |||
13:15
pmurias left
|
|||
Matt-W | yeah | 13:15 | |
but the spammers read it too | |||
moritz_ | there are many words in german that contain 'sex' as a substring but have nothing to do with sex - many of them accounted for much trouble for the earliest adult filters | 13:16 | |
wayland76 | I don't get much spam. My e-mail gets filtered by both pobox.com and by my local mail provider | 13:17 | |
I also liked the solution to Alan Ralsky or whatever his name was | |||
frettled | [particle]: my heartfelt sympathies -- I try to avoid looking at TV too much myself. | 13:18 | |
wayland76 | The only TV on this property is in my sister's room. And we grew up without one. A the joy of missing cultural references :) | ||
[particle] | frettled: they air mostly during live televised sports events, of course | 13:19 | |
masak | no TV here either. | ||
frettled | [particle]: heh :) | 13:20 | |
masak: statistical filtering has been implemented in several popular anti-spam engines for years. | |||
wayland76 | Well, I don't like watching sport either, so I'm doubly protected :) | ||
jnthn has a TV in his appartment, but only because it was there when he arrived. | |||
wayland76 lends jnthn some virtual pliers :) | |||
masak | frettled: I'm sure it has. | ||
jnthn | I thought I'd make use of it watching the Euro football stuff last year, but in reality I couldn't find it on there and ended up streaming it over the net instead... | 13:21 | |
jnthn rarely watches football. Just one championship every two years. ;-) | |||
wayland76 thinks football = Australian Rules Football | 13:22 | ||
[particle] | fc barcelona played here last week, i went to the game. they're stunning. | ||
jnthn usually watches the world cup and the european cup. | |||
That tends to be about it in terms of what I actively seek to watch. Of course, sometimes I'll end up in a pub showing a game... | 13:23 | ||
frettled | masak: Mail::SpamAssassin is the most popular one, and predates Graham's article by around five years. CRM114 is a language for describing filters (pretty cool), but that's a bit more recently developed (2003 and onwards). There's a third one I can't recall the name of also. | ||
Filtering spam is easy. Losing the false positives isn't. | 13:24 | ||
jnthn peeks at the latest p6l filename literals discussion | |||
wayland76 | Cool. I didn't know Mail::SpamAssassin predated Graham's article :) | 13:25 | |
masak | frettled: I'm no expert, but I liked the simple theory behind Graham's Bayesian filtering. that's all. | ||
frettled | jnthn: that discussino had me confused | ||
«discussino» - that almost looks Italian | |||
wayland76 | confused in what way? Considering that I wrote some of it :) | ||
moritz_ | masak: the theory is simple. The hard thing is getting the spam text to a level where you can apply the theory (decide what a word is, finding a way to efficiently store seldomly used words, transforming images into somethiing that filterable etc.) | 13:26 | |
13:26
donaldh joined
|
|||
PerlJam | so ... one of you implemented this in perl 6? :) | 13:26 | |
jnthn | The most interesting thing I see in there so far is the ideas of a different quoting construct for filenames...so we can somehow distinguish them from strings... | ||
masak | moritz_: ack. | 13:27 | |
PerlJam | (good $localtime btw) | ||
Matt-W | jnthn: yes I do quite like that idea. After all, they aren't strings... although I'm not entirely sure I agree with the poster whose name escapes me who argued that we're primarily interested in the contents of a file, because you're often also interested in the presence and permissions and state of a file too | ||
moritz_ wonders how we'll solve the problem that most OSs store file names as bufs, not Str | |||
frettled | wayland76: Well, it's not entirely your fault, but the discussion immediately forked into differences between Unix and Windows, wheter to use an URL-like scheme, backslashes vs. slashes, and a meta-something about how «most people» don't need to know the filenames. | 13:28 | |
13:28
EDevil_ joined,
EDevil_ left
|
|||
frettled | Is that «explosive bikeshedding»? | 13:28 | |
PerlJam is reading the IO thread now | |||
jnthn | It'd help if people could remember that there *is* no root of the filesystem on Windows. | ||
frettled | jnthn: I also thought that the idea about a different quoting construct was interesting. | 13:29 | |
jnthn | Well, other than the empty string.. | ||
frettled | jnthn: mm | ||
jnthn | ;-) | ||
masak | Matt-W: I haven't heard anything about Form in quite a while. have you stopped hacking on it? | ||
frettled | I've refrained from commenting on the mails because I don't know where to start. | ||
Six mails, and we're already at warp 6. | 13:30 | ||
wayland76 | I completely disagree with the person who commented that we're mostly interested in the contents of a file | ||
Matt-W | masak: I haven't done anything for some time. I've sort of got a plan for the next stage, I just need to find some tuits. | ||
wayland76 | (please await my withering reply to the IO thread :) ) | 13:31 | |
frettled | wayland76: so it's not just me, then :D | ||
moritz_ | if we stopped painting bikesheds and sold all the paint we saved that way, we'd have enough money to hire a few full time programmers | ||
Matt-W | jnthn: yes that would be a helpful remembering | ||
masak | Matt-W: will it help if I alternately encourage you and prod you with something sharp? :P | ||
Matt-W might write a reply to it later if he can think of a useful contribution | |||
masak: I'm not sure about the prodding me with something sharp | |||
wayland76 | masak: Use a carrot -- it can be used for both :) | ||
moritz_ | ... or retribution ;-) | ||
masak | I'm getting a Null PMC access when running t/spec/S03-operators/autoincrement-range.rakudo | ||
frettled | I'm thinking that too much syntax is _bad_ for this IO stuff. | 13:32 | |
masak | anyone else also get that? | ||
I'm getting it after test 33. | |||
frettled | Adding URL classes should be avoided unless we want things to be fetched by something other than fopen()-like methods, IMO. | ||
moritz_ rebuilds Test.pir to run it | |||
wayland76 | frettled: Agree, but the special quoting construct solves the main problem in the Draft IO specs as they currently stand | ||
moritz_ | masak: works fine here. | ||
Matt-W | it might be nice to have a binary operator for concatenating paths | ||
but that could go in with pretty much any other solution | 13:33 | ||
moritz_ wanders off for a weekend without internet access | |||
PerlJam | moritz_: have fun! | ||
frettled | moritz_: enjoy! | ||
moritz_ | thanks, you too ;-) | ||
masak | moritz_: have a nice weekend! | ||
Matt-W | bye moritz_ | ||
frettled | wayland76: in what way? | 13:34 | |
wayland76 | frettled: To me, the current problem was that creating an IO::FSNode is currently ugly. Separate quoting syntax would fix that. | 13:37 | |
frettled | Aha. | ||
wayland76 | It would also make it reasonable to put things like :e on FSNode instead of Str | 13:38 | |
(Which was an area in which the draft IO spec wasn't very consistent with the rest of the specs) | 13:39 | ||
frettled | I agree that filenames could reasonably be a subclass of Str, with methods that are irrelevant to Str. | ||
Then again, the methods could be role-based. | |||
wayland76 | I'm not sure whether it should be a subclass, or a role, or a "has Str $.name" or something | ||
And since I'm not sure, I'll leave that to be answered by someone more intelligent | 13:40 | ||
frettled | Heh | ||
You could raise the issue, though. | |||
There are good arguments to be made for several of the solutions. | |||
Matt-W | It's not a subclass of Str | 13:41 | |
13:41
payload left
|
|||
Matt-W | at least not as far as I see it | 13:41 | |
wayland76 | Oh, it's already been raised by people who sound like they know what they're talking about. I haven't heard the role idea yet, but it's your idea, so I'll leave it to you :) | ||
frettled | As long as I can do tricks on lists/arrays of strings/filehandles/whatnot, I don't mind. | ||
wayland76: It's easy to seem to know what one's talking about. | |||
13:42
sri_kraih joined
|
|||
frettled | I was accused of knowing stuff about parametrized roles back at the NPW hackathon; apparently I came with some input that proved to be useful. | 13:42 | |
wayland76 | frettled: Yeah, I'm aware of that, but since I don't, I'll stick with your position (being able to join strings and filenames and stuff :) ) | ||
frettled | :D | ||
wayland76 | Interesting. I thought they were just for greeting people in Slovak and LOLCat :) | 13:43 | |
frettled | In Unix, filenames as strings is really easy, you just have to avoid the slash and the null byte. ; | ||
wayland76 | jnthn: My current Rakudo (head of the ins2 branch I think) does a beautiful job of locating which line the error is on, but it doesn't tell me which file it's in. Is changing this something that is relatively easy? | 13:44 | |
13:44
zamolxes left
|
|||
jnthn | wayland76: That's odd, it normally tells if it knows. :-S | 13:44 | |
wayland76 | frettled: But how do you know which locale to apply? | ||
jnthn: Ok, I'll keep that in mind as I hunt a particular bug. | 13:45 | ||
13:45
EDevil left
|
|||
jnthn | wayland76: If you can reduce to a small test case where it's missing, I'd be interested to see it and work out why it's missing a filename. | 13:45 | |
wayland76: One thought - is it inside an eval? | 13:46 | ||
wayland76 | jnthn: Have I asked you about role predeclarations yet? | ||
jnthn | wayland76: Moze byt. ;-) | ||
wayland76 | jnthn: Not sure -- I stopped working on the project a week or two ago for various reasons | ||
Moses bites? | |||
jnthn | wayland76: I know role Foo { ... } doesn't work yet. But if there's more than that... | ||
wayland76 | No, that's the one | ||
jnthn | Ah, OK. Then you probably did. :-) | 13:47 | |
wayland76 | Actually, it's all coming back. I asked. Sorry. | ||
Let me ask a different question -- what part of Rakudo deals with predeclared subs? | |||
(ie. matches them up with the real thing?) | |||
masak | ah, my bug in autoincrement-range.rakudo was related to try blocks and not having ICU installed. | ||
masak submits rakudobug | |||
frettled | what else is new? :) | ||
wayland76: locale? huh? I think I must have fallen off the wagon back there. | 13:48 | ||
13:48
Guest62163 left,
carlin joined
|
|||
wayland76 | frettled: It's impossible to determine how to display a non-ASCII filename correctly unless you know the encoding/locale stuff | 13:48 | |
Because some are not UTF-8 :) | 13:49 | ||
I don't know stuff about filenames, I just read part of a Tom Christiansen post on it :) | |||
Matt-W | filenames are far more confusing than they have any right to be | ||
we should certainly provide as much ease of use for them as we can | |||
PerlJam | wayland76: Is that's like staying at a Holiday Inn Express? | ||
frettled | wayland76: ah, displaying them, yes. | 13:50 | |
Matt-W works in the same building as a holiday inn express | |||
wayland76 | frettled: you see it mentioned above wheremoritz said: moritz_ wonders how we'll solve the problem that most OSs store file names as bufs, not Str | ||
13:50
Front_slash joined
|
|||
PerlJam | "I'm not a doctor, but I read a diatribe about doctors by Tom Christiansen" | 13:50 | |
wayland76 | PerlJam: It might be, if I knew what the significant features of a Holiday Express Inn were :) | ||
PerlJam | wayland76: there's these commercials where non-expert people are in expert situations, but everything is okay because they stayed at a Holiday Inn Express last night. | 13:51 | |
wayland76 | PerlJam: I'm merely pointing out that if it appears like I know stuff and have thought through the issues, it simply means that I've skimmed something by someone who has, and can parrot (pun now intended :) ) back a few phrases that I remember | 13:52 | |
frettled | wayland76: Well, «buf» isn't exactly a type in itself. But that goes back to what I said about the null byte. The null byte acts as a string terminator and thus ends the filename. Slashes (in Windows: backslashes) are semantically ingrained as directory separators, and no amount of escaping will allow them. | ||
wayland76 | PerlJam: Well, if I had a TV and lived in the USA, I guess I'd know these things :) | ||
PerlJam | wayland76++ way to use the laziness! | ||
wayland76 | "Most people get good Karma for knowing things. I get it for being ignorant!" -- wayland76 | 13:53 | |
:) | |||
frettled | wayland76++ | 13:54 | |
wayland76 | Please don't make me laugh wile drinking :) | ||
s/wile/while/ :) | |||
PerlJam | wayland76: perl steals all the good ideas from other languages; you steal all the good ideas from other people. Use what works. | ||
wayland76 | Yeah, that's where my good jokes come from too :). But the puns are my own :) | 13:55 | |
frettled | Okay, Windows is a bit more complicated than Unix for filenames, since the set of prohibited characters is greater. This is why you'll see some rather interesting solutions for handling filenames with e.g. Samba. | ||
masak | ok, next spectest issue: the following two files cause failed Parrot assertions for me: t/spec/S12-attributes/class.rakudo t/spec/S14-roles/basic.rakudo | ||
anyone else? | |||
frettled | Yup, I'm pretty sure those failed for me. | ||
I asked about this tonight, and I was told that they were known. | 13:56 | ||
That goes for the three cases of pre-declared variables as well. | 13:57 | ||
The computer I built rakudo on is 2.5 km away and in suspend mode, so I can't really check right now. :) | |||
PerlJam | frettled: those are the same I asked about yesterday or the day before. Pm said they were known. | 13:58 | |
frettled | yup | ||
PerlJam | frettled: the predeclared variables are on purpose because that's what the test is testing IIRC | 13:59 | |
frettled | «Yes, it's known, but it's not fixed yet. *submit*» - Bastard Submitter From Hell | ||
13:59
JimmyZ joined
|
|||
frettled | PerlJam: two different tests testing that? hm. | 13:59 | |
frettled attempts to go home. :) | 14:01 | ||
wayland76 attempts to go to bed, although it is but two minutes past midnight :) | 14:02 | ||
Matt-W has to wait 56 minutes to go home | 14:04 | ||
masak | *cough*Form.pm*cough* | 14:05 | |
Matt-W | if I worked on that now, it would belong to my employer | ||
masak | oh noes! | ||
Matt-W | quite | 14:07 | |
so I can't | |||
PerlJam | Matt-W: definitely do *NOT* work on Form.pm then. | ||
Matt-W | besides, I'm trying to figure out how to write a nasty test | 14:08 | |
PerlJam: indeed, they wouldn't know what to do with it | |||
not to mention that git is unauthorised open source software | |||
which I could be fired for using | |||
PerlJam | Matt-W: does that also mean that any code you write on #perl6 right now also belongs to your employer? :) | ||
Matt-W | theoretically, yes | ||
PerlJam | "fired for using git" ... /me boggles | ||
Matt-W | it's unlikely | 14:09 | |
but it's in the IT policy | |||
so they could if they were feeling particularly mean | 14:10 | ||
same goes for parrot and rakudo | |||
last week we got approval for... drumroll please | |||
GNU Make | |||
once the legal department realised that the GPL doesn't mean anything you build with the assistance of GNU Make becomes GPLed | |||
which is that old FUD | |||
[particle] | rakudo: my %h = 1 => 3; my $x = %h.delete(1); say $x | 14:14 | |
p6eval | rakudo 0d4fe0: OUTPUT«3» | ||
14:14
icwiener joined
|
|||
wayland76 actually starts heading for bed :) | 14:14 | ||
PerlJam | Matt-W: I don't think I want to see you on #perl6 during your work hours if there's a chance they'll screw you or perl6 | 14:15 | |
[particle] | rakudo: my %h = 1 => 3; my $x = %h.delete(1); my $y = $x; say $y.WHAT, $x.WHAT; | ||
p6eval | rakudo 0d4fe0: OUTPUT«Array()Array()» | ||
14:17
_jaldhar joined
14:18
PacoLinux joined
14:24
RonOreck joined
14:30
jaldhar left
14:35
finanalyst left
14:37
tak11 joined
14:46
xomas_ joined
14:48
Psyche^ joined
14:51
pmurias_ joined
|
|||
pmurias_ | ruoso: do you think we could get away with loading the smop stuff by a different way the linking it in at build time? | 14:53 | |
14:55
iblechbot left
14:56
JimmyZ left
14:59
nihiliad joined
15:05
Patterner left,
Psyche^ is now known as Patterner,
jan_ joined
15:16
rdice left
15:20
donaldh left,
donaldh joined
|
|||
arthur-_ | rakudo: my @a = (1,2,3); my @b = map { $_++ } @a; @b.perl.say | 15:21 | |
p6eval | rakudo 0d4fe0: OUTPUT«Statement not terminated properly at line 2, near "@a; @b.per"in Main (src/gen_setting.pm:3369)» | ||
arthur-_ | map does not work ? | ||
jnthn | arthur-_: Yes, but not with Perl 5 syntax. | 15:22 | |
std: my @a = (1,2,3); my @b = map { $_++ } @a; @b.perl.say | 15:23 | ||
p6eval | std 27988: OUTPUT«===SORRY!===Statements must be separated with semicolon at /tmp/fVJWhL4dtz line 1:------> my @a = (1,2,3); my @b = map { $_++ } ⏏@a; @b.perl.say expecting any of: bracketed infix infix stopper standard stopper statement | ||
..statement modi… | |||
jnthn | rakudo: my @a = (1,2,3); my @b = @a.map: { $_++ }; @b.perl.say | ||
or | |||
p6eval | rakudo 0d4fe0: OUTPUT«[1, 2, 3]» | ||
jnthn | rakudo: my @a = (1,2,3); my @b = @a.map({ $_++ }); @b.perl.say | ||
p6eval | rakudo 0d4fe0: OUTPUT«[1, 2, 3]» | ||
jnthn | rakudo: my @a = (1,2,3); my @b = @a.map({ $_ + 1 }); @b.perl.say | 15:24 | |
mofino | hey I was looking at some p6 the other night, what would does the colon in :my do? | ||
p6eval | rakudo 0d4fe0: OUTPUT«[2, 3, 4]» | ||
mofino | s/would// | ||
jnthn | mofino: Did you see that inside a regex? | ||
arthur-_ | jnthn: thx a lot | ||
jnthn | In that case, it's just the way to make a variable declaration inside a regex. | ||
mofino | ohh, umm, I don't think so... I'm not sure now | ||
jnthn | Outside of them, it's just "my $foo" | ||
mofino | ok | ||
PerlJam | mofino: I bet you did. | ||
mofino | yeah I had to have if that's the case :) | 15:25 | |
jnthn | If you read STD.pm, you'll have seen lots of cases of :my | ||
mofino | ahh, that was exactly it | ||
jnthn | :-) | ||
mofino | so that's what was going on! | ||
frettled | Hmm, isn't there a quick wy around this particular example without using map? | 15:27 | |
masak | rakudo: say ((1,2,3) >>+>> 1).perl | 15:29 | |
p6eval | rakudo 0d4fe0: OUTPUT«[2, 3, 4]» | ||
jnthn attempts to re-write and fix up .*, .+ and .? and eliminate a chunk of code in the process. | |||
15:33
_jaldhar left,
_jaldhar joined
|
|||
takadonet | can you pass an action object to method parsefile? i .e Grammar.parsefile("filename",:action(Action.new)) | 15:34 | |
15:34
morensel joined
|
|||
alester | perlbuzz.com/2009/08/help-perl101or...omers.html | 15:34 | |
masak | phenny: tell mberends t/01-simple.t in the HTTP::Daemon repo says `undef( $daemon )`, but that's a perl5ism, and Rakudo dies on it. | 15:35 | |
phenny | masak: I'll pass that on when mberends is around. | ||
alester | One of the things I very much would like to have in perl101.org is to have each solution show both Perl 5 and Perl 6. | ||
masak | takadonet: I don't see why not. | ||
15:35
KyleHa joined
|
|||
takadonet | nevermind my mistake. I misspelled the new of the Action class ..... | 15:36 | |
15:36
rbuels left
|
|||
takadonet | s /new/name/ | 15:36 | |
PerlJam | takadonet: and rakudo didn't complain? | ||
KyleHa | Mornin' #perl6. | ||
takadonet | PerlJam:It did but I was not listening | 15:37 | |
alester | So what's the Perl 6 equivalent to | ||
my @stooges = qw( Larry Curly Moe Iggy ); | |||
jnthn | takadonet: Would it help if we uppercases all error messages, so they're REALLY LOUD? | ||
alester | It's my @stooges = <Larry Curly Moe Iggy>; | ||
right? | |||
PerlJam | alester: yes | ||
jnthn | alester: Yes. | ||
15:37
rbuels joined
|
|||
takadonet | jnthn: NO that's fine :) | 15:37 | |
jnthn | ;-) | 15:38 | |
alester | So <> must no longer be glob? | ||
masak | KyleHa: mornin' | ||
alester: correct. | |||
KyleHa | alester: No, I don't think Iggy was a Stooge. Perhaps you're thinking of Shemp. | ||
PerlJam | KyleHa: Iggy Pop *was* a stooge, just not the ones you're thinking of. | 15:39 | |
alester | KyleHa: I think your definition of "stooge" is a little small. | ||
15:39
donaldh left
|
|||
KyleHa | Nyuck nyuck nyuck! | 15:39 | |
alester | KyleHa: en.wikipedia.org/wiki/The_Stooges | 15:40 | |
15:41
zloyrusskiy left
15:44
xomas_ is now known as lolpurple,
lolpurple is now known as xomas
15:50
JimmyZ joined
|
|||
JimmyZ | masak: Maigao, there is a book <<The TIBET Code>>. | 15:51 | |
masak | JimmyZ: what's it about? | ||
KyleHa | @seen pmichaud | 15:52 | |
lambdabot | pmichaud is in #perl6. I last heard pmichaud speak 18h 56m 52s ago. | ||
JimmyZ | masak: The secret of Tibet | ||
15:53
SmokeMachine joined
|
|||
JimmyZ | masak: a novel. | 15:53 | |
masak | JimmyZ: ah. | ||
JimmyZ | my classmate bought it. there were 7 books. | 15:54 | |
I think that agree with you. | 15:55 | ||
masak | thanks for the tip. | ||
I'll look into it. | |||
ruoso | pmurias_, I think we only need to make the s0native, nagc and s1native statically into the p5 lib | 15:59 | |
the rest can be loaded later as any other p5 lib | |||
15:59
tann joined
16:00
iblechbot joined
16:01
__ash__ joined
|
|||
__ash__ | if you add something to actions.pm you need to add a grammar rule right? | 16:02 | |
masak | phenny: tell mberends HTTP::Daemon crashes when trying to GET /favicon.ico -- gist.github.com/167912 -- apparently Parrot has gotten stricter of late with decoding UTF-8. | ||
phenny | masak: I'll pass that on when mberends is around. | ||
masak | __ash__: not necessarily, but since you ask, probably yes. | ||
__ash__ | and the grammar page is top down? should i add it at the bottom if i want to add something? | 16:03 | |
JimmyZ | masak: www.kw2007.com/news-GBC32316FAE664C...1CC8E5.htm | ||
__ash__ | (i am trying to find instances of 'self.Foo::bar()' or $a.Foo::bar() | ||
jnthn | __ash__: We're generally trying to stay in line with STD.pm. | 16:04 | |
rakudo: my $x; $x.Foo::bar() | |||
p6eval | rakudo 0d4fe0: OUTPUT«Method 'Foo::bar' not found for invocant of class 'Failure'» | ||
jnthn | __ash__: We're already parsing it fine. | ||
__ash__: Or close enough. We just need to do something smarter with it inside actions.pm | |||
__ash__ | oh okay | 16:05 | |
i wasn't sure if i needed to add a grammar rule for that | |||
jnthn: so, the dotty method in actions.pm is what is handling that? | 16:07 | ||
jnthn | Yes, those and the ones it calls. | 16:08 | |
See also methodop | |||
__ash__ | kk, thanks | ||
16:13
tann left
16:14
PacoLinux left
|
|||
jnthn | __ash__: I'm actually about to commit (provided tests pass) a small patch in that area...basically, to get $foo.*@cands and friends to work. | 16:14 | |
__ash__ | jnthn: when it's up, i'll take a look at it, so hopefully i can understand this a bit better | 16:15 | |
so the grammar parser regex rules are linked to actions right? generally anyway, then it translates that into perl6 code, right? | 16:17 | ||
jnthn | Where you see a {*} in a grammar rule, we call the method in actions.pm with the same name. | ||
16:18
PacoLinux joined
|
|||
jnthn | The actions method will generally build some AST and then use make to store it. | 16:18 | |
The .ast method gets the AST built for part of the sub-tree. | |||
So we're building up the AST as we parse. | |||
Hmm. Since the ins2 merge, it seems the "do we have icu" detection is broken, and so Rakudo is running tests that depend on it for me. | 16:20 | ||
16:21
riffraff joined
|
|||
__ash__ | make takes an AST ? so a PAST object? | 16:22 | |
jnthn | Correct. | ||
I wish I had an up to date version of my talk on implementing Perl 6 to point you at, alas I've not given it for almost a year so it's kinda out of date... | 16:23 | ||
16:29
masak left
|
|||
__ash__ | thats fine | 16:29 | |
i am sure i can figure it out, i am just a bit slow at times at connecting the dots | 16:30 | ||
jnthn | Method invocation in Perl 6 is decidedly non-trivial once you dig into it. | 16:32 | |
16:32
rfordinal joined
16:34
carlin left
16:41
payload joined
|
|||
alester | whoo, the first Perl 6 content for Perl101. perl101.org/arrays.html | 16:41 | |
PerlJam | alester: this is starting to feel like Joseph Hall's version of perlfaq.com | 16:47 | |
alester | ok | ||
16:48
riffraff left
16:50
JimmyZ left
|
|||
alester | Not sure where you're going with that, PerlJam. | 16:50 | |
16:53
KatrinaTheLamia left
16:57
kane_ joined
17:00
tann_ joined
17:04
KatrinaTheLamia joined
17:07
kane_ left
17:12
rbuels left
|
|||
PerlJam | sorry, work stuff. | 17:16 | |
I wasn't really going much of anywhere other than to make that observation and if you ever used the old perlfaq.com, it's probably a good thing | 17:17 | ||
Your version of editorial control seems much better though :) | 17:18 | ||
pugs_svn | r27989 | jnthn++ | [t/spec] Correct and unfudge tests for dispatches of the form $obj.*@cand. | ||
17:20
PacoLinux left
|
|||
dalek | kudo: 58bef37 | jnthn++ | src/pmc/p6invocation.pmc: Detect a Null PMC Access condition that could occur and throw a more meaningful exception. |
17:21 | |
kudo: 4a22048 | jnthn++ | src/ (2 files): Refactor method dispatch code generation so that .*@foo and other similar things are no longer an error, which passes us some more tests. Also refactor .?, .+ and .* to work in terms of primitives provided by existing dispatchers, so we can rip out a dispatch helper, which duplicated the functionality they provided. |
|||
pugs_svn | r27990 | jnthn++ | [t/spec] Some corrections to lastcall.t (currently NYI in Rakudo). | 17:24 | |
17:32
kane_ joined
|
|||
jnthn | Hmm....actually I think lastcall.t doesn't mean what the spec does. Or the spec doesn't meant what lastcall.t does. Hmm. | 17:32 | |
TimToady: About? | 17:33 | ||
TimToady | vaguely | 17:36 | |
jnthn | TimToady: Does lastcall only apply to dispatches of the form $obj.*@cands? | 17:37 | |
Or $obj.*foo | |||
TimToady | it applies anywhere you could say nextsame | ||
jnthn | That is, where we are working our way through a list of methods to dispatch to? | ||
17:37
kane_ left
|
|||
jnthn | Oh, so it interacts with nextsame rather than with .* ? | 17:37 | |
TimToady | it means to throw away the rest of the candidates | ||
jnthn | Since $obj.*@cands and $obj.@cands are quite different. | 17:38 | |
OK, so is S12-methods/lastcall.t correct? | |||
TimToady | it's useful for anywhere .* semantics would keep oing | ||
*going | |||
looking | 17:39 | ||
jnthn | OK, but $x.*@foo does not provide a candidate list in the same sense that $x.@foo does. | ||
In the first, we're specifying a list of methods to loop through, and building a list of captures. | |||
In the second, we're using it as the candidate list in place of the one that the dispatcher would construct. | |||
That is, the first case will normally call everything in @foo | 17:40 | ||
Whereas the second only calls more if there's an explicit nextsame/callsame/nextwith/callwith. | |||
I'm trying to work out how lastcall interacts with both of these. | |||
Or which one it interacts with. | |||
TimToady | the doit methods must be declared multi | 17:42 | |
but the doit Int should not go to the doit () since it cannot bind | |||
jnthn | Yes, I fixed that locally. | ||
Oh, committed a few moments ago.. | |||
TimToady | only candidates that bind can be run | ||
jnthn | Heh. | ||
That's a separate problem. | |||
(The one I never got to asking you about at YAPC.) | 17:43 | ||
TimToady | in any case, lastcall is meaningless if that would be the last method anyway, which is ordinarily the case for . dispatch | ||
lastcall is implied at the end of such methods | |||
jnthn | So it only applies to .* and .+ dispatches? | 17:44 | |
TimToady | unless a next/call is issued | ||
yes, or maybe some hypers | |||
not sure | |||
probably not hypers | |||
since order is not guaranteed there anyway | |||
jnthn | OK, you say "unless a next/call is issued"... | ||
PerlJam | TimToady: what happens when I call nextsame at the end of the method that was invoked as $obj.meth()? | ||
jnthn | What are the semantics of nextsame/callsame etc when there are no more candidates? | ||
PerlJam: It will defer to the next candidate. | 17:45 | ||
TimToady | failure of some sort | ||
jnthn | PerlJam: And whatever that next candidate returns will be the resturn value. | ||
TimToady: Failure as in, a failure object, not an exception? | |||
TimToady | just as if .* found no applicable methods | ||
jnthn | Well, that's only sort of applicable, since .* if it found nothing returns an empty list. | 17:46 | |
TimToady | we always, always try to return failure inline unless we are instructed otherwise | ||
okay, .? then | |||
though maybe that just returns Nil | |||
jnthn | .? currently hands back a failure. | ||
(If there's nothing to call) | 17:47 | ||
TimToady | anyway, can't chat, hafta go away for a while | ||
jnthn | OK, so a lastcall followed by a nextsame or similar will always fail? | 17:48 | |
OK, catch you later. :-) | |||
TimToady | yes, I would think | ||
it's sort of a don'tcallsame :) | |||
jnthn | OK, but if a previous thingy callsame'd into us, we'd still return to it? It doesn't affect candidates that have already deferred to us? | ||
TimToady | callsame should also trim the list | ||
correct | 17:49 | ||
later & | |||
jnthn | OK, so the test is incorrect in that sense. | ||
Thanks. :-) | |||
jnthn was wondering how on earth he'd implement the semantics the test seems to call for :-) | |||
17:51
cdarroch joined
17:52
gigabo joined
18:01
PacoLinux joined
18:05
kane_ joined
18:06
araujo joined
18:30
Chillance joined
18:41
__ash__ left
18:45
masak joined
|
|||
masak | I'm getting untracked files in my rakudo local checkout. they're called things like dynext/perl6_group.bundle and perl6_group.c. can I go ahead an .gitignore them? | 18:46 | |
there's six of them in total, three of each kind. | |||
18:49
__ash__ joined
|
|||
[particle] | masak: yes, those are generated | 18:49 | |
masak | [particle]: I've already pushed a .gitignore fix, relying on the forgiveness principle. | 18:50 | |
(aye, I assumed they were generated, since I didn't create them) | |||
dalek | kudo: d50cabc | masak++ | .gitignore: [.gitignore] ignore some new generated files |
||
masak | tonight's quiz: Temporal::DateTime (as presently specced) or Temporal::Instant (as originally specced)? | 18:52 | |
lay your votes. | |||
colomon_ | masak: Pointer to the Temporal source? | 18:53 | |
masak | colomon_: src/setting/Temporal.pm | ||
colomon_ | Oh! | ||
masak | colomon_: I'm currently editing Rakudo in a local branch, and the spec in a github fork, to something I believe will be a better Temporal spec. | 18:54 | |
colomon_ | Ah. | ||
masak | oh, and the quiz question was to be read "what do people prefer?" (and perhaps "why?") | ||
colomon_ | Sneakily I was mostly hoping to find a good example of a Perl 6 module with tests, to see how you set it up. | ||
masak | the s/DateTime/Instant/ substitution was done in a slightly overwhelming bikeshed-avoiding global change, much like the one I'm attempting now. | 18:55 | |
colomon_ | And perhaps that distracted me when I should have said, pointer to the Temporal specs. | ||
18:55
takadonet left
|
|||
masak | colomon_: is you want an example of such a module, do check out Druid. | 18:56 | |
colomon_ | Okay, I believe I can find that one. :) | ||
masak | colomon_: oh. S32/Temporal | ||
colomon_: but as I said, I believe the spec can be better than it is today. | |||
colomon_ | Is your Temporal::Instant visible someplace, or is the question mainly which name is better? | 19:00 | |
19:00
gigabo left
|
|||
masak | colomon_: my question is whether I should rename Temporal::DateTime back to Temporal::Instant. | 19:01 | |
pugs_svn | r27991 | jnthn++ | [t/spec] Tests for $obj.+@foo and $obj.?@foo. | ||
masak | here's an argument for that: it rhymes better with Temporal::Duration. | ||
here's an argument against: Perl 5 has prior art with DateTime. people will recognize it. | |||
pugs_svn | r27992 | jnthn++ | [t/spec] Test for a bug Rakudo used to have that I just fixed; not sure anybody ever hit upon it until now. | 19:02 | |
masak | another argument against: there's already Temporal::Date and Temporal::Time, and T::DateTime better highlights what this is (even though it also wraps a Temporal::Timezone::Observance) | ||
dalek | kudo: 62f6082 | jnthn++ | src/classes/Object.pir: Fix incorrect semantics in interaction of .? and multis. |
19:03 | |
kudo: bae2cfa | jnthn++ | src/ (2 files): A very first-cut implementation of lastcall, which just trims the candidate list such that nextsame and friends will find nothing else to defer to. |
|||
colomon_ | gotcha. | ||
masak | jnthn: (re r27992) looks similar to what you showed me at YAPC::EU. | ||
jnthn | masak: Related-ish, but not same. | 19:04 | |
masak | right. | ||
jnthn | masak: We were obviously wrong in a place where there was an obvious answer here. | ||
masak | I certainly haven't run into that bug. | ||
jnthn | No, but how often do you use C<.?>? :-) | 19:05 | |
19:05
szabgab joined
|
|||
masak | until now, not very often. | 19:05 | |
I mainly see it as a replacement for the Null Object Pattern. | 19:06 | ||
(weaving design patterns into the language)++ | |||
jnthn | :-) | ||
szbalint | I'd go for Temporal::Instant, I want to subclass it as Temporal::Instant::Paradox | 19:07 | |
jnthn | masak: You'll be glad to know I removed another place that could give a Null PMC Access earlier too. ;-) | ||
masak | that's one vote for Instant. :) | ||
jnthn: that makes me very glad indeed. | |||
jnthn | I want to subclass it as Temporal::Instance::Coffee. | ||
erm, Instant | |||
;-) | |||
masak | jnthn: is that another vote for Instant? :) | ||
szbalint | masak: you'd make a good auctioneer :) | 19:08 | |
jnthn | Well, instant coffee kinda sucks compared to the fresh stuff, so I'm not sure. | ||
masak | szbalint: as long as it's over IRC, I think I'd do pretty well. :) | ||
colomon_ | masak: I'm not wowed by DateTime, but Instant strikes me as equally vague, so I'd stick with DateTime. Besides, I think I've typed "Instance" instead of "Instant" about three times now, and I can see I'm not the only one.... | ||
19:09
Front_slash left
|
|||
masak | colomon_: good point. | 19:09 | |
szbalint | I liked your rl presentation in Lisbon too, you were doing okay :) | ||
jnthn | masak: In the .Net world they call them DateTime and TimeSpan, to give you a data point. | ||
masak | szbalint: thanks. :) | ||
frettled | DateTime is used in (sorry to mention it, really am) Python, too. | ||
masak | jnthn: I think I prefer Duration over TimeSpan, though. | ||
frettled | I don't know how it's used, or why, but … :D | 19:10 | |
masak | jnthn: something about TimeSpan makes it seem it only refers to Time and not Date. | ||
frettled: did you know that #perl6 is a hate-free zone? :) you're free to mention Python here. | |||
frettled | masak: if the methods and classes are similar to what the DateTime packages offer today, then using the same naming convention seems sane. | ||
szbalint | yeah, in all seriousness DateTime is probably better | ||
masak | ok, sticking with DateTime. | ||
frettled | masak: Is pity okay? | 19:11 | |
masak | frettled: as long as it's sincere. | ||
jnthn | masak: Yes, I agree. | ||
masak: I prefer Duration over TimeSpan. | |||
DateTime vs Instant though is a more...hmm. | 19:12 | ||
Are Instant objects meant to be mutable or not? | |||
masak | frettled: but really, collaboration is what really distinguishes us. so if someone comes in saying "I've made a Perl 6 highlighter in Python!", we'd probably celebrate that person, instead of shunning her. | ||
frettled | masak: yup | ||
masak | jnthn: dunno. | ||
frettled | masak: I'm actually quite glad to see so many things being implemented from other languages. | 19:13 | |
jnthn | ooh, my chilli is cooked | ||
jnthn -> nom | |||
masak | jnthn: the current Rakudo implementation does not have mutable objects. | ||
frettled: it's a survival mechanism, for one thing. | |||
19:14
frew left
|
|||
frettled | masak: not just that, but it's about Cool Things (well, to me) | 19:14 | |
With my computer science background (I suppose that's it, or I'm just wired that way), programming languages are in general fun. | |||
PerlJam | frettled: I'm wired that way too :) | 19:15 | |
frettled | But I've never gotten myself to learn lisp, for instance. | ||
Tene | From what I've seen, for many people, the process of learning lisp is more about learning to generalize existing rules than about learning new rules. | 19:16 | |
19:16
PacoLinux left
|
|||
masak | yes, I've also grown to love the minutia of programming languages. Perl 6 has been part in shaping me in that form, I think. | 19:17 | |
19:17
PacoLinux joined
|
|||
mkelly32 | hrm. so, undef isa 'Failure', which is apparently just an unthrown exception ? | 19:18 | |
so, 'throw undef' is a way of just throwing a generic error? | 19:19 | ||
masak | mkelly32: no, that'd be 'fail()', I think. | 19:20 | |
Perl 6 doesn't really have a 'throw' function. | |||
mkelly32 | oh, dev.perl.org/perl6/rfc/63.html is just an rfc, i guess | 19:21 | |
masak | says there in the URL. :) | 19:22 | |
mkelly32 | yes. but i didn't read that. just was the first google hit.. | ||
hrm. so undef is a value. but, it's also the "Use of an undefined value" exception? | 19:23 | ||
masak | good question. | 19:24 | |
we had one of the implementors with us just now, but he's gone nomming. | |||
so I guess the rest of us will just have to take a stab in the dark in the meantime. | 19:25 | ||
rakudo: my $a = undef; say $a | 19:26 | ||
p6eval | rakudo 0d4fe0: OUTPUT«Use of uninitialized value» | ||
masak | rakudo: my $a = undef; say $a + 5 | ||
p6eval | rakudo 0d4fe0: OUTPUT«Use of uninitialized value5» | ||
masak | rakudo: my $a = undef; $a++ | ||
p6eval | rakudo 0d4fe0: ( no output ) | ||
mkelly32 | rakudo: sub foo { fail undef } | ||
p6eval | rakudo 0d4fe0: ( no output ) | ||
mkelly32 | rakudo: sub foo { fail undef }; foo(); | ||
p6eval | rakudo 0d4fe0: OUTPUT«Use of uninitialized value» | ||
masak | rakudo: sub foo { fail "This warning will only be shown when evaluated" }; foo; say "here:"; say foo | 19:27 | |
p6eval | rakudo 0d4fe0: OUTPUT«here:This warning will only be shown when evaluated» | ||
masak | I hope that last example makes things clear. | ||
mkelly32 | so, that's for returning a "failure" value? hrm. interesting. | 19:28 | |
masak | yes, it's meant to be an orthogonal return channel. | 19:29 | |
making possible both many interesting ways of success, and many interesting ways of failure. | |||
instead of only one (like Perl 5), or the other (like Unix shells). | 19:30 | ||
mkelly32 | yes. interesting. | ||
so, the way to just throw an exception is still die? | |||
masak | aye. | 19:31 | |
mkelly32 | so, i can do something like: eval { something_that_might_die() }; if ($@) { given $@ { when FilesystemError { ... } } } | 19:34 | |
to handle specific error types? | |||
where FilesystemError is something that isa Failure, i guess | |||
masak | mkelly32: no, eval {} is spelled try {} in Perl 6. | 19:35 | |
mkelly32: and if you want to be semantically precise, there's a CATCH block you can use. but I think your way works too. | 19:36 | ||
mkelly32 | ok. cool. | ||
masak | the CATCH block has the advantage that it does both the 'if' and the 'given' for you by default. | ||
mkelly32 | ok. so, it's about the same, semantics-wise, as c++? | ||
masak | don't know about that. | 19:37 | |
one difference, I think, is that here you'll find the CATCH block inside of the try block. | |||
see S04 for details. | |||
jnthn back from nom | |||
19:38
gigabo joined
|
|||
jnthn | masak: I think I'd like to see them be immutable. | 19:38 | |
masak | jnthn: oh hai. is undef, in any sense, an exception? | ||
jnthn: ok. | |||
jnthn | rakudo: say undef ~~ Exception | ||
p6eval | rakudo 0d4fe0: OUTPUT«0» | ||
jnthn | I agree with Rakudo here. :-) | ||
mkelly32 | masak: ok. thanks. | ||
rakudo: say undef ~~ Failure | 19:39 | ||
p6eval | rakudo 0d4fe0: OUTPUT«1» | ||
jnthn | A failure as I see it has potential to cause an exception to be thrown if you try and use it. | ||
19:39
pyrimidine joined
|
|||
jnthn | (In an inapproriate way.) | 19:39 | |
masak | jnthn: so, when people say "unthrown exception", they are not referring to a kind of exception, but rather the potential for one? | ||
s/for/of/ | |||
19:40
pyrimidine left
|
|||
masak | er, or 'for'. I don't know. | 19:40 | |
jnthn | I think so. I think Failure is more of a role that gets mixed into something rather than the thingy itself. | ||
19:41
d4l3k_ joined,
pyrimidine joined
|
|||
jnthn | I would not expect Failure ~~ Exception. | 19:41 | |
masak | in software, failure is the rule, not the exception. :P | 19:42 | |
19:43
simcop2387 left,
pjcj_ left,
dalek left,
athomason left,
colomon_ left,
leedo left,
Khisanth left,
jiing left,
broquaint left,
Avada left,
solarion left,
kolibrie left,
andreasg_ left,
d4l3k_ is now known as dalek
19:44
leedo joined,
andreasg_ joined,
broquaint joined,
kolibrie joined
19:45
pjcj joined
|
|||
__ash__ | if you want to add debug information to actions.pm how would you go about that? | 19:47 | |
19:48
justatheory joined
|
|||
masak | __ash__: so, you want to print things from NQP, is that the question? | 19:50 | |
__ash__ | yeah, basically, that would be useful, that or put a breakpoint in at compile time to figure out how its parsing a string | 19:51 | |
jnthn | Probably use Q:PIR and inside is say "foo" | ||
*it | |||
(using say("foo") from actions.pm won't end well...) | |||
masak | no? | ||
jnthn | No, which is kinda irksome at times. | 19:52 | |
masak | why not? | ||
jnthn | IO.say is in the setting. | ||
But we use the actions.pm to compile the setting. | |||
__ash__ | is there no way we could put a breakpoint in so at parse time on a test file it will halt possibly? | ||
jnthn | Not unless you can work out how to get parrot_debugger to do that, but I'm afraid I've really not much idea on that. | 19:53 | |
masak | jnthn: I thought NQP had its own say. | ||
jnthn | Do you want to see the structure of a Match object? | ||
masak: NQP doesn't have any built-in functions. Any that you see are supplied by Rakudo. | |||
__ash__: For now best way is to print some stuff. | 19:54 | ||
masak | jnthn: oh! | ||
__ash__ | whats the right way to do that? | ||
and yes i do want to see the structure of a match object | |||
masak | jnthn: even the ones in the NQP test suite? | ||
__ash__: say $/.perl | 19:55 | ||
__ash__ | k | ||
jnthn | __ash__: Also don't forget --target=parse | ||
__ash__ | is that why i keep getting Statement not terminated properly at line 1378, near "$/.perl; ? | 19:56 | |
jnthn | ? | ||
Oh | |||
No, --target=parse is a command line option you can give to Rakudo. | |||
Instead of compiling code, it will dump the parse tree. | |||
Also there's --target=past | 19:57 | ||
__ash__ | okay, but when i try to compile actions.pm with the say $/.perl; in it using make it gives me that error | ||
jnthn | Statement not terminated - is that in NQP? If so, note calls there require parens. | ||
masak | __ash__: actually, forget my 'say $/.perl' tip, since you seem to be doing Rakudo internals and not a Perl 6 application. | ||
I think jnthn's advice applies better than mine. | 19:58 | ||
jnthn | Also as mentioned before, say in actions.pm is likely going to explode when compiling the setting unless you put it somewhere obscure enough. :-) | ||
__ash__ | okay, i think the right thing in my case is --target=parse not a say in the action.pm | ||
Tene | you could always use 'warn' instead. | 19:59 | |
that should print to STDERR | |||
__ash__ | do those calls work in the parse phase? | ||
jnthn | warn may well work fine | ||
__ash__: Also note that you can do --target=past which will show you the PAST nodes that got built. | 20:00 | ||
__ash__ | okay, is there a list of all the targets somewhere i can reference and read up on? | ||
jnthn | docs/running.pod probably offers some info | 20:02 | |
Thhough the only other really useful one is --target=pir | |||
There is a --target=post, but you almost certainly never want it. | |||
__ash__ | k, thanks | ||
--target=parse didn't work when i had a $b::Foo.bar(); call method in it, it gives Null PMC access in find_method() | 20:04 | ||
but --target=past worked | |||
jnthn | Odd. | 20:05 | |
I guess you wanted $b.Foo::Bar(); | 20:06 | ||
Hmm, if I try and --target=parse just that, it works here. | |||
oh hmm, seems class declarations when doing --target=parse cause upset. | 20:07 | ||
__ash__ | yeah i just commented out that line and it still gave me the error, so class definitions are causing that problem? | 20:09 | |
masak | so, Hash[Int] gives me a Hash with Int values, right? what if I want to type the keys, too? | 20:10 | |
masak too lazy to read the spec today | |||
mkelly32 | i think hash keys are always Str() | ||
at least, if i do %foo{1}, a later look at %foo.keys tells me that that's been stringified. | 20:11 | ||
masak | mkelly32: yes, but that's a limitation of current Rakudo. | 20:12 | |
mkelly32 | ah, ok. | ||
masak | one I haven't seen mentioned in the ROADMAP, now that I think about it. | 20:13 | |
frettled | Real associative arrays allow any key value, of course. ;) | ||
masak | my sentiments exactly. | ||
frettled | That goes for real switch-case control blocks too. | ||
masak | oh yes. | 20:14 | |
jnthn | masak: Hash[Int] will when implemetned mean th evalues are Ints yes. | 20:15 | |
masak | and if I want to type the keys as well? | 20:16 | |
jnthn | Actually Str as the default key type really means "the keys are coerced to strings". | ||
Hash[Int, :key(Foo)] I suspect. | |||
But syntactic sugar iirc is | |||
my Int %hash{Foo}; | |||
masak | nice. | 20:17 | |
makes visual sense. | |||
jnthn | But you'd better be darn careful when making hash entries if doing this. | ||
masak | because they'll get coerced? | ||
jnthn | %hash<42> # oops | ||
gah, bad example | |||
masak | ah, so it wasn't just me. :) | 20:18 | |
jnthn | my Int %hash{Int}; # better example here :-) | ||
So then | |||
%hash<42> = 42; # oh noes, fail, because <42> = quoted string | |||
Of course | |||
%hash{42} = 42; # is fine | |||
masak | I don't really see that as a problem. | 20:19 | |
jnthn | I'm guessing if you declare a key type it's more a "I want this type enforced" rather than "try and coerce to this". | ||
masak | that could even be caught at compile time, methinks. | ||
jnthn | Which is fine, because multi-dispatch means we can declare multiple versions of a role with different signatures. :-) | ||
Heh. If somebody wrote a compile-time type analyzer/optimizer/checker. ;-) | 20:20 | ||
masak | I've been toying with the idea. | ||
I need something to do with my copious spare time. :P | 20:21 | ||
20:22
ruoso left
|
|||
jnthn | Well, you could always blog how to do it, and hope somebody else does it. ;-) | 20:22 | |
20:23
molaf left
|
|||
masak | jnthn: that's true. | 20:23 | |
I've experimented around enough to know how to do it. and I have a whole list of nice things to check against statically. | 20:24 | ||
I just need tuits, or somebody with tuits. | |||
20:24
simcop2387 joined
20:25
justatheory left
|
|||
jnthn hides | 20:26 | ||
masak | :) | 20:27 | |
I wouldn't think of burdening you with more things before April. | |||
well, besides submitting bugs, of course. there doesn't seem to be a way to stop that. | |||
__ash__ | jnthn: should i post a bug about the --target=parse issue? | 20:31 | |
jnthn | __ash__: You can if it bothers you; I suspect it'll go away when we move to STD though. | 20:33 | |
Or maybe even in the upcoming lexicals handling refactor. | 20:34 | ||
__ash__ | if you think its doesn't need attention thats fine, i just don't want to forget about it if its an issue | ||
jnthn | Which also involves us doing some things in a more STD-ish way. | ||
__ash__: I've no strong feelings either way. A ticket doesn't harm. | 20:35 | ||
__ash__ | i'll put a ticket it, just so someone might remember to test it after the up coming changes (cuase i know i'll forget) | 20:36 | |
jnthn | Sure, sounds good. :-) | ||
__ash__ | oh, a tickets in there already | 20:37 | |
rt.perl.org/rt3/Public/Bug/Display.html?id=66546 | |||
jnthn | Ah | 20:38 | |
Thanks for checking before submitting. :-) | |||
jnthn is happy that we didn't just get a dupe. | |||
I should really do a Rakudo Day next week and try and clear up a few tickets. | 20:39 | ||
frettled | Remember: Thursdays are smiley-free, so Wednesday can be Rakudo Day! | ||
masak | Thursdays are smiley-free? I must have missed that memo. | 20:40 | |
jnthn | Since when were Thursdays smiley-free? :-O | ||
masak | how can you go a whole say without smileys? that sounds horrible. | ||
frettled | adasociety.wordpress.com/about/ | 20:41 | |
jnthn | say "I don't know :-|" | ||
Woo. Now nextsame and friends fail softly. | 20:42 | ||
masak | jnthn++ | ||
jnthn | TimToady++ for telling me they should. :-) | ||
frettled | Failing me softly with this bong ... | ||
jnthn | ...what bong? | ||
frettled | the one mst is bound to be smoking | 20:43 | |
jnthn | Win! | ||
__ash__ | what is the value of $/ in methodop? | 20:45 | |
the name of the method? | |||
[particle] | the Match object | ||
__ash__ | okay | ||
masak | rakudo: multi foo(:$a!, *%_) {}; multi foo(:$b, *%_) {}; my %h = :a, :b; foo(|%h) | ||
p6eval | rakudo 0d4fe0: OUTPUT«Ambiguous dispatch to multi 'foo'. Ambiguous candidates had signatures::(Any :$a, Object *%_):(Any :$b?, Object *%_)in Main (/tmp/2oNxN8pfHS:2)» | 20:46 | |
masak submits rakudobug | |||
jnthn | masak: is the flattening important to making the bug happen? | 20:47 | |
rakudo: multi foo(:$a!, *%_) {}; multi foo(:$b, *%_) {}; foo(:a, :b) | |||
p6eval | rakudo 0d4fe0: OUTPUT«Ambiguous dispatch to multi 'foo'. Ambiguous candidates had signatures::(Any :$a, Object *%_):(Any :$b?, Object *%_)in Main (/tmp/1JICUeh8sD:2)» | 20:48 | |
masak | jnthn: no, it isn't. | ||
jnthn | No | ||
OK, good. | |||
masak | I wasn't minimal, sorry. :) | ||
jnthn | If it were, it'd suck harder. | ||
masak | aye. | ||
jnthn: I'm curious, do you see the bug? | |||
I missed it at first. | |||
jnthn | They both can individually accept the parameters that are being passed. | 20:49 | |
So they are in some sense both valid candidates. | |||
masak | yes, that's why there's a tie. nothing strange there. | 20:50 | |
jnthn | But IIRC named params act as constraint at some level, and when we have multiple of those I think last spec updated said first wins. | ||
Additionally, in the signature output :$a! has lost something. | |||
masak | here it is, shortened: | 20:51 | |
rakudo: sub foo(:$a!) {}; say &foo.signature.perl | |||
p6eval | rakudo 0d4fe0: OUTPUT«:(Any :$a)» | ||
jnthn | heh | ||
masak | jnthn: yes, you got it. | ||
jnthn | two bugs for the price of one. ;-) | ||
masak | the first bug you mentioned, I can't really relate to. :) | ||
jnthn | Unfortunately, they're two different fixes. :-) | ||
jnthn does spectest and hacks on some tests for the fail soft semantics. | 20:52 | ||
masak | does the spec really say first candidate wins among tied named-param variants? | ||
jnthn | Oh, and lastcall. | ||
masak: Let me check. | |||
masak | I'd dislike-ish that. | ||
masak prefers ties | |||
frettled wants his lazy lists and sparse arrays. O:-) | |||
Tene | frettled: patches accepted. we'll even help you write them. :) | 20:53 | |
frettled | hee-hee | ||
Somehow I knew someone would say something like that. | |||
masak | frettled: if you knew, does that mean that you volunteered? | 20:54 | |
I think it does. | |||
jnthn | So for tiebreaker | ||
A the candidates are simply called in the order they were declared, | |||
and the first one that successfully binds (and completes without | |||
calling nextsame or nextwith) is considered the winner, and all the | |||
other tied candidates are ignored. | |||
masak | o_O | 20:55 | |
is this S06? | |||
ah, S12. | |||
masak reads the whole thing about tie-breaking | 20:56 | ||
frettled | masak: $@*&% | ||
jnthn | Plus laso | ||
Likewise an ordinary named parameter does not participate as a tiebreaker, | |||
but you can mark named parameters as required to effectively make | |||
a switch based on named binding: | |||
Those both from S12 | 20:57 | ||
=head1 Multisubs and Multimethods | |||
Under that heading | |||
masak | jnthn: ah, the latter one seems to apply to our bug. | ||
jnthn | Right, it shoulda let the first one that wins, well, win. :-) | ||
masak | yes, already found it. ack++ | ||
jnthn | It should be an easy enough fix. | ||
masak | urgh. | ||
but it destroys a nice property of my slides software. :/ | 20:58 | ||
jnthn | I was a little surprised when TimToady decided that they'd not tie though. | ||
Oh? | |||
You have a use case that this hurts? | |||
masak | unless the latter quote is meant to imply that adding a '!' makes nameds participate in tiebreaking... yes. | 20:59 | |
Tene | Wasn't someone here going to write to the list about .?method and .*method being harmful? | ||
I don't see it on the list... did I miss it? | |||
masak | Tene: you didn't miss it. I'm also waiting for it. | ||
jnthn would be curious to see that one. | |||
masak: It means that you can add a ! to a named in order to require it. | 21:00 | ||
masak | jnthn: well yes, that's immediate. :) | ||
that's what '!' does. | |||
jnthn | And if that wasn't passed, that candidate wouldn't be bindable, so would be passed over. | ||
masak | hm. | ||
jnthn | We use this in traits.pm for example. | 21:01 | |
masak | but I'm not interested in the first-one-wins scenario in my application. I want ties to blow up. | ||
by the way, a t-shirt with "I want ties to blow up" on it would be kinda nice. | 21:02 | ||
21:05
jrtayloriv joined
|
|||
jnthn | A tie with it on would be even classier. ;-) | 21:06 | |
jrtayloriv | What is the status of GUI development libraries in Perl 6? I've been trying to Google with things like "Perl6 tk" and haven't had any luck ... | ||
jnthn | masak: Well, I guess you can always raise it with TimToady and point out your use-case/expectations. | ||
That bit of the spec was only revised recently, after all. | 21:07 | ||
masak | jrtayloriv: it's a bit earlier than the stage where you'd find it on Google. | ||
jnthn: ok. sounds good. | |||
I haven't processed the whole section in S12 yet, so I don't know if I'm affected. | |||
21:10
iblechbot left
|
|||
jnthn | If I understand S12 correctly, then by the spec the tie you got earlier is a bug. | 21:10 | |
And the first candidate that appeared textually in your program shoulda won. | |||
masak | yes. | 21:11 | |
I agree, though I didn't know that when I typed in that program. | |||
jnthn | If you wanted them to tie, then I think that's not what is currently spec'd, but I think the spec indicated otherwise previously. | ||
masak | but that has almost nothing to do with the use case in my slides software. | ||
there, I have only multies with required nameds. | |||
jnthn | Is "first wins" a problem there? | 21:12 | |
That is, first that has its signature satisfied? | |||
masak | that's my question, essentially. | ||
if it isn't then, I'm happy. | |||
s/ then,/, then/ | |||
jnthn | rakudo: multi foo(:$a!) { say 1 }; multi foo(:$b!) { say 2 }; foo(:a); foo(:b); | 21:13 | |
p6eval | rakudo 0d4fe0: OUTPUT«12» | ||
masak | \o/ | ||
jnthn | Does that example capture what you want? | ||
masak | aye. | ||
well, | |||
rakudo: multi foo(:$a!) { say 1 }; multi foo(:$b!) { say 2 }; foo(:a, :b) | |||
p6eval | rakudo 0d4fe0: OUTPUT«No applicable candidates found to dispatch to for 'foo'in Main (/tmp/WAUvtLCP7e:2)» | ||
jnthn | OK, that example is correct by Rakudo and the sepc. | ||
masak | that one does. | ||
jnthn | That is also correct by the spec. | ||
masak | excellent. | 21:14 | |
jnthn | However, note that if they had been multi-methods it'd have been a different story. | ||
Because they can an implicit *%_ | |||
masak | oh noes! :) | ||
how do I get rid of the implicit *%_ ? | |||
jnthn | rakudo: class C { multi method foo(:$a!) { say 1 }; multi method foo(:$b!) { say 2 }; }; C.foo(:a, :b) | ||
p6eval | rakudo 0d4fe0: OUTPUT«1» | ||
jnthn | huh, Rakudo gets that one right... | 21:15 | |
masak | ok, then I'm in trouble again. | ||
jnthn | Get rid of it like... | ||
(this should work...) | |||
rakudo: class C { multi method foo(:$a!) is hidden { say 1 }; multi method foo(:$b!) is hidden { say 2 }; }; C.foo(:a, :b) | |||
p6eval | rakudo 0d4fe0: OUTPUT«No applicable candidates found to dispatch to for 'trait_mod:is'in Main (/tmp/ICAqe1ZgZ5:2)» | ||
jnthn | oh, wait a moment | ||
masak | 'is hidden'? :) | ||
jnthn | rakudo: class C is hidden { multi method foo(:$a!) { say 1 }; multi method foo(:$b!) { say 2 }; }; C.foo(:a, :b) | ||
p6eval | rakudo 0d4fe0: OUTPUT«No candidates found to invokein Main (/tmp/3bPRKQjxQ7:2)» | ||
jnthn | That one. | 21:16 | |
masak | great. | ||
jnthn | is hidden = hide this class from being deferred into. | ||
But as a side-effect, do not add the *%_ | |||
See S12 under Interface Consistency. | |||
masak | yep, found it. | ||
jnthn | Rakudo doesn't (yet) do all of that. | 21:17 | |
Working on it. | |||
masak | ah, I think I glean the connection between *%_ and C<nextsame> semantics. | ||
jnthn++ | |||
21:18
justatheory joined
21:19
justatheory left
|
|||
jnthn | oh gah, one of my shiny new lastcall.t tests fails. | 21:21 | |
21:22
Whiteknight joined
|
|||
jnthn | masak: Answer to earlier question: | 21:23 | |
$P0 = root_new ['parrot';'Exception'] | |||
$P0['message'] = message | |||
$P1 = new ['Failure'] | |||
setattribute $P1, '$!exception', $P0 | |||
21:23
Chillance left
|
|||
masak | jnthn: a, so has-a, not is-a. | 21:24 | |
jnthn | masak: Right. | ||
pugs_svn | r27993 | jnthn++ | [t/spec] Correct and extend lastcall tests. | 21:32 | |
jnthn | std: is foo($obj:), 'method', 'method with colon notation'; | 21:34 | |
p6eval | std 27992: OUTPUT«Potential difficulties: Variable $obj is not predeclared at /tmp/j8VwR19zTq line 1:------> is foo($obj⏏:), 'method', 'method with colon notatiUndeclared routine: is used at 1 ok 00:03 39m» | ||
jnthn | std: my $obj; foo($obj:); | 21:35 | |
p6eval | std 27992: OUTPUT«ok 00:02 39m» | ||
jnthn | std: my $obj; foo($obj); | ||
p6eval | std 27992: OUTPUT«Undeclared routine: foo used at 1 ok 00:02 37m» | ||
jnthn | Heh. So you can make a method call that way, huh. | ||
21:36
nihiliad left
21:37
nihiliad joined
|
|||
jnthn | Ah, that gets a bunch easier to fix for Rakudo once we have contextuals supported in grammars. | 21:39 | |
21:39
synth joined
|
|||
pugs_svn | r27994 | kyle++ | [t/spec] More revisions of past tests | 21:42 | |
dalek | kudo: 4245753 | jnthn++ | src/ (3 files): Make deferal failures into a kind of soft fail rather than an exception. |
||
kudo: a0082a8 | jnthn++ | t/spectest.data: Add lastcall.t to spectest.data. |
|||
21:42
eMaX joined
|
|||
Tene | Mmm, tests. | 21:43 | |
szbalint | hm, an euler problem solution is about 13500 times slower in rakudo than in p5. PIR is about 15 times slower. What are the biggest points of slowness in rakudo if anyone would have time to enlighten me :) | ||
? | |||
21:44
colomon joined
|
|||
jnthn | szbalint: Signature binding is very slow in Rakudo. | 21:45 | |
colomon | masak: Thanks for the tip to look at Druid. I now have a crude but working test script going. | ||
alester | szbalint: Without seeing your code, we can't tell for sure. It could be that your code is done incorrectly fro Perl 6. | ||
masak | colomon: glad to have been of help. | ||
colomon | masak++ | 21:46 | |
jnthn | szbalint: Another thing is, did you use int or num registers in Parrot? Rakudo doesn't know how to use those yet. | ||
21:46
icwiener left
|
|||
szbalint | alester: github.com/perl6/perl6-examples/blo...4-unobe.pl # with the first reverse switched to flip | 21:46 | |
jnthn | Beyond that, I'd want to see the Perl 6 code, but also - in a couploe of weeks I guess - to run it under the profiler than chromatic++ and cotto++ are currently beavering away at. | ||
szbalint | jnthn: yeah, int in the PIR version | 21:47 | |
21:47
__ash__ left
|
|||
jnthn | Hmm | 21:48 | |
It isn't calling too much though.. | |||
Well, I guess the grep block. | |||
21:52
KyleHa left
|
|||
jnthn | szbalint: Anyway, best is to hold on for us to have good profiling support. | 21:52 | |
Which is being actively worked on a the moment. | |||
Then we'll really know, rather than guessing. :-) | |||
szbalint | a profiler is good news :) | 21:53 | |
21:53
Whiteknight left
|
|||
alester | do we still need testing on ins2 branch? | 21:54 | |
jnthn | alester: No - it's been merged to trunk. | 21:55 | |
alester | yay | ||
AND we build from an installed Parrot now | 21:56 | ||
jnthn | Yup. :-) | ||
alester | POD is going to be deifferent in Perl 6 enough that I should probably start pod6.vim, eh? | 21:58 | |
I'm adding pod.vim to the vim-perl project | 21:59 | ||
22:00
jrtayloriv left
|
|||
cotto | "beavering"? | 22:00 | |
jnthn | cotto: British English slang for something like "busily working" | 22:01 | |
szbalint | labouring? | ||
jnthn | As in, lots of effort going in to it. :-) | 22:02 | |
I guess that bit of slang doesn't cross the pond. :-) | |||
There's a chance it could just be Yorkshire slang too, I guess... | |||
cotto | I figured, but it sounds like it could mean something different. | 22:03 | |
like making hats | |||
masak | I think those two meanings can be distinguished easily by context. | 22:04 | |
jnthn wasn't aware of the "making hats" meaning of it | |||
cotto | Sorry. I forgot to set the sarcasm bit on that. | ||
masak | :) | ||
cotto gets back to beavering | 22:05 | ||
jnthn tries to get a bit further along with hides Foo and is hidden | 22:07 | ||
22:08
M_o_C joined
22:13
eMaX left
|
|||
mikehh | rakudo (a0082a8) builds on parrot r40549 - make test/make spectest (up to 27994) PASS - Ubuntu 9.04 amd64 | 22:14 | |
22:20
masak left
22:23
jferrero joined
22:28
pyrimidine left
22:29
TimToady left
22:30
diakopte1 joined,
TimToady joined
22:31
diakopter left
|
|||
dalek | kudo: e5d0a37 | jnthn++ | src/parser/actions.pm: Fix up code generation for hides trait_mod. |
22:35 | |
kudo: 1a5c5f3 | jnthn++ | src/ (2 files): Implement trait_mod:<hides> and a trait_mod:<is> for is hidden, plus add some attributes in ClassHOW that we'll use to track these. |
|||
kudo: 637d803 | jnthn++ | src/ (2 files): Make sure we also emit a call to trait_mod:<is>($class, :hidden), even though it also has some compiler side-effects (like suppressing *%_). |
|||
22:35
alester left
|
|||
22:36
diakopte1 is now known as diakopter
|
|||
jnthn | OK, that's all for today folks. Hopefully, will finish up hides and is hidden tomorrow, plus some blogging, maybe some traits hacking... :-) | 22:38 | |
22:40
KyleHa joined
22:42
jferrero left
22:47
cdarroch left
23:00
Avada joined
23:04
tak11 left
23:07
unitxt_ joined
23:12
nihiliad left
23:19
unitxt left
23:21
avi2702 joined
23:29
wknight8111 joined
23:45
M_o_C left
|
|||
cognominal | augment is the new "is also"? | 23:48 | |
23:49
morensel left
23:52
tak11 joined
|
|||
cognominal | apparently it is to be able to distinguish between "augment" and "supersede" | 23:54 | |
23:55
frew joined
23:57
synth left
|