pugscode.org/ planetsix.perl.org/ | nopaste: sial.org/pbot/perl6 | evalbot: perl6: say 3; (or rakudo:, pugs:, elf:, etc) | irclog: irc.pugscode.org/ | ~340 days 'til Xmas
Set by mncharity on 16 January 2009.
s1n so i'm still looking to see what the :by() method is technically classified as 00:04
is it an attribute, a circumfix method?
does anyone know what this is?
and does anyone know of another such feature in p6? 00:05
TimToady it's just a named parameter
lambdabot TimToady: You have 1 new message. '/msg lambdabot @messages' to read it.
s1n TimToady: named parameter huh? to the "constructor"? 00:08
TimToady well, it's a named argument. the parameter is the other end
to the operator
multi infix:<..> ($left, $right, :$by) {...} 00:09
or some such
s1n hmm, i'm still not familiar with p6 to get what that says really :(
TimToady it expects two positional arguments and one named argument
which is what is supplied when you say 1 .. 10 :by(2) 00:10
s1n how does a multi-dispatch method differ from a regular method?
TimToady multi infix:<..> ($left, $right, :$by = 1) {...} actually
00:10 stephenlb left
TimToady a regular method sends the call to the object and lets it decide what it means 00:11
a multi dispatch is decided by the language, not by the objects
s1n ah, thanks
are all named parameters specified as :param? 00:12
TimToady can also use by => 1 notation, but only when in an argument list, not as an operator adverb
but generally people use :foo 00:13
less cumbersome, and defaults to "true"
00:14 [particle]1 joined, araujo left
s1n TimToady: i'm sorry, my language vocab isn't too advanced, what do you mean by an operator adverb? 00:14
TimToady the operator precedence parse works by alternately expecting a term and an infix 00:15
if the parser sees an adverb where a term is expected
it's just a pair, or a named argument, or some such
when it sees :foo where an infix is expected however 00:16
it applies it to whatever the most recent operator was
(looking back to the left)
00:16 hercynium left
TimToady so you don't mess up the syntax of an operator like .. when you say 1..10 00:17
but it's easy to give a different "step" when you want it
s1n i am humbled by how well other people, namely you, understand this, because i'm lost :) 00:19
TimToady an adverb is just a word that modifies a verb, and we're considering .. to be a verb there
in English we might say "Count from 1 to 10 quickly"
the quickly is the adverb 00:20
s1n yes, but i don't yet understand what are verbs and what are adjectives in languages, such as p6
00:20 meppl left
TimToady literals and variables and types are nouns. pretty much everything else is some action to perform on those nouns, so those are the verbs 00:22
s1n so in this example, :by would be an adverb?
TimToady in 1..10:by(10) it is 00:23
but in $x = :by(2) it's just a Pair object. 00:24
s1n what does that statement mean?
what would the value of $x be?
TimToady can also be written $x = 'by' => 2;
s1n like a hash slice?
TimToady it's a Pair object whose key is 'by' and whose value is 2
it's like one element of a hash 00:25
s1n is $x = :by(3), :by(4); valid?
TimToady no, because assignment to a scalar value would stop at the comma
$x = (:by(3), :by(4)) is okay though 00:26
s1n an error or just stop there?
TimToady it would assign a list of two pairs
s1n ahh okay, that's neat
TimToady just stop that term
00:26 nihiliad left
TimToady as in C-style for loop: 00:26
loop ($a = 1, $b = 2; foo($b); $a++, $b++) {...}
the assignments may be separated by comma there 00:27
since they're scalar assignments
if you assign to an array, though, it eats the comma and the rest of the list
@a = :by(3), :by(4) would put two pairs into the array 00:28
lambdabot Maybe you meant: activity activity-full admin all-dicts arr ask . ? @ v
s1n okay, that makes sense
i'm getting curious because i'm studying statistical nlp, and #1 thing to know is grammers 00:29
TimToady well, don't forget to study the nlp part of it as well as the statistics :) 00:30
00:30 [particle] left
s1n TimToady: that statistics is the easy part, i need a grounding in grammars first, and i'm sifting through rakudo to see how things work 00:31
i'll likely use p5 when i do my thesis impl :) 00:32
TimToady My point is that nlp hasn't got a lot to do with either statistics or compilers, but a lot to do with how people think, so don't forget to think about how people think
s1n nlp is all about statistics now 00:33
00:33 legis joined
s1n compilers are much simplier grammar interpreters 00:33
TimToady I understand that
s1n so to get the basics, understand kinda how compilers work a little
then move on to mixing machine learning (which is mostly stats nowadays) and grammars 00:34
TimToady: i don't want to be the ass who tries to correct the great lwall. i may not know compilers at all, but i do know machine learning :) 00:36
TimToady I'm just saying that part of nlp is nl, and nl is a different beast than most computer people seem to think it is 00:37
s1n i've dabbled with nl before, it's a bloody mess to understand
TimToady indeed, but people do it that way for various reasons :) 00:38
s1n heh yes, it's a fascinating field
TimToady the use of statistics is an improvement over old-school parsers, but it's also a trap of its own 00:39
s1n most ml techniques seem to be centered around statistics of some form
you can wrap most semi-brute force techniques with probability estimators, and nl is a perfect candidate because the problem search space is so large 00:40
nl is a new field to me, so we'll see how it turns out after i'm published heh 00:41
TimToady at some point, the human desires to *mean* something, not just put out some correlated utterances, so it's hard for computers to jump the gap to pragmatics, because that's about causation, not just correlation 00:42
00:42 donaldh left, donaldh joined
TimToady humans have figured out how to "do things with words" 00:43
00:43 legis left
TimToady so far, computers have little sense of what their words will do 00:43
s1n yeah, the correlated utterances can be grammatically correct, but nonsense
the famous example is chomsky's "colorless green ideas sleep furiously" 00:44
snlp aims to understand what is being done
TimToady well, even that can be made to mean something sensical in context :)
s1n i'm finding languages are more fun than i originally thought 00:45
TimToady it's gonna be a long time before snlp will tell you what is being done when a minister says "I now pronounce you man and wife" 00:47
see also Charles Fillmore's paper entitled "May we come in?" 00:48
(As a linguist, I love pragmatics and phonetics, and put up with everything in between. :) 00:50
00:51 DemoFreak left
s1n well, i'm speaking your language then huh? 00:52
bad pun, i know
is that paper available anywhere? 00:53
TimToady not sure 00:54
well, at least, not sure for "anywhere" defined as the Web :)
I'm quite sure it's in at least one library somewhere :) 00:55
s1n heh, yeah i'm looking at my uni and i don't see it
was it in a book?
00:57 araujo joined
TimToady looks like www.google.com/url?sa=t&source=...G8V9sMmzMA is about that 00:58
s1n yeah i saw that and immediately thought "i can get that for free from the uni probably"
TimToady anyway, he was one of my teachers :) 00:59
s1n fillmore? 01:00
did you actually study linguistics?
(that's not doubt, just curiosity)
TimToady yes, I've officially had more linguistics training than computer training 01:02
s1n interesting
TimToady my wife once reduced George Lakoff to a state of mumbling once when we chanced upon him on campus, and she said, "Just look at you" 01:04
several days later we got a lecture on why it wasn't "Just look at yourself"
araujo TimToady, ok, that explains why perl is like this 01:05
TimToady I also got to take phonology from Peter Ladefoged when we were visiting UCLA
01:06 |jedai| left
TimToady indeed, I optimize for "How to do things with words" rather than orthogonality, because that's what natural languages do 01:06
now certainly, a computer language cannot take context into account to the extent that a human can 01:07
01:07 |jedai| joined
TimToady but within those limits, computers can do a lot better than they have historically 01:07
in particular, the notion of discourse analysis corresponds rather closely to our notions of lexical scoping, and "all is fair if you predeclare" 01:09
for instance, I can set up a lexical context in which it makes perfect sense for colorless green ideas to sleep furiously.
first of all, we define "green" to mean "fresh" rather than plant colored... 01:10
ayrnieu 'colorless' is a kind of economic theory about interest, 'green ideas' can be environmental ideas, a sleeping idea can be politically ineffective -- and furious because of this. 01:11
TimToady and we postulate that ideas that have not been born yet are sleeping in your brain
your subconscious knows about them, however, and thinks hard about them, so they're sleeping furiously
but until they are actually born, they are colorless
ayrnieu: that would be another approach, and probably a better one :) 01:12
but basically your lexicon (as in lexical scoping) is defined by nearby utterances as well as distant dictionaries 01:13
s1n TimToady: but chomsky did not "predeclare" anything :)
TimToady I did not attend a school that held chomsky in high regard :) 01:14
s1n TimToady: i can tell
where did you attend?
TimToady SPU, UCB, UCLA
s1n in that order? 01:15
ayrnieu (better: a furiously sleeping idea is one that is presently ineffective but that is gaining currency in a population, so that it'll become very effective in a short time. Which is a useful way to speak about conditions at the end of the USSR.)
TimToady and the Summer Institute of Linguistics
now SIL International
s1n that is, do you hold a phd from ucla?
01:15 rob___ left
TimToady nope, dropped out :) 01:15
had to pay for a family 01:16
s1n heh
TimToady but the training was much more valuable than the sheepskin
s1n TimToady: well, if i have any stupidly simple questions about perl6, it's a good thing you're here to throw my head in a tailspin :) 01:20
TimToady I was never cut out to be an academic in any case; we were planning to be field linguists and analyze unwritten languages before health issues came up
what, can't I just stick to vague generalities? :) 01:21
heh 01:24
en.wikipedia.org/wiki/Perlocutionary_act
01:26 riffraff joined
TimToady (speaking of How To Do Things With Words) 01:28
01:30 |jedai| left, |jedai| joined
s1n i originally read that as perl-ocutionary 01:31
TimToady I was intending for you to read it that way. :) 01:35
the funny thing is that the subject matter is exactly what we were talking about earlier 01:36
but my using it as a joke was a perlocutionary act, apparently
s1n heh, clever 01:38
speaking of adverbs, i'm reading moritz_'s testing rfd 01:40
moritz_: i agree with ruoso, :test is a bit more readable
01:50 mncharity joined
TimToady "test" is too common, as is "ok". see my reply 01:52
(coming soon to a mailing list near you) 01:53
01:54 hercynium joined 01:55 |jedai| left 01:56 |jedai| joined
s1n yes, but why would the namespace be cluttered? 01:57
can't we put something like :ok or :test in a separate namespace?
is :Test::ok not possible (especially if hard-wired)? 01:58
TimToady doesn't really fit into adverb syntax, and a bit unwieldy for multiple uses in the same file 01:59
:TEST isn't much harder to type than :OK 02:00
I think this would be a good place for all caps just for the visual thwack between the eyes
mncharity hmm... perl6.wikia.com/wiki/Perl6_Wiki ... /me wonders if it should be in the /topic... 02:01
eeep. lots of information about flat stomachs. err... maybe not. 02:02
TimToady flattery will get you nowhere... 02:05
mncharity @tell avar Re your elf status inquiry (days ago), my focus is getting elf to run TimToady's STD.pm grammar, enroute to a bootstrapped front-end. The CL elf is kept unrotted, but being off that critical path, isn't getting much love. Volunteers encouraged. cspencer expressed interest. There are other ways, many pure-p6, to help as well. 02:17
lambdabot Consider it noted.
mncharity @tell avar Progress along the path is steady - no obstacles, or planning puzzles, just puttering along - but rather slow. My tuits tend to go where there are collaborators or cheerleaders, and other than TT's vital STD work, there's not been much of that for elf. Collaborators or cheerleaders encouraged. 02:20
lambdabot Consider it noted.
02:26 riffraff left
pugs_svn r24981 | putter++ | [elf_h] Added a primitive for runtime symbol lookup. IR analysis bugfix (incorrect notes<crnt_package> after block-less package decls). 02:26
r24981 | putter++ | [elfparse] Dusted rx post actions. Added rx return type coercion using post actions. PrecOp enabled and working with infix. Accept non-Match objects in Match trees. STD_blue_run/STD_green_run sym bugfix. Tweaked Makefile dependencies. Modified std.pm comment convention.
02:27 buubot left
mncharity roadsign: [ tribulations -> EXPR -> say 3 > travel time and distance unclear. 02:31
02:34 [particle] joined
mncharity but nice to see ./elfgreenstd -v -e 'say /<STD::infix>/.match("a+").match_describe' give a match with STD's $m<O> precedence info. even if it has a bogus $m[0] :/ . 02:34
02:37 wknight8111 left
TimToady if you actually call Cursor's .list method it's supposed to translate .<0> to .[0] 02:39
mncharity TimToady: random observation: I found it curious that %additive showed up both in 'is defequiv' and PrecOp's Additive.
TimToady but it doesn't attempt to prepopulate an array
mncharity re Cursor, err no, it's a bug with the rx_on_re engine. 02:40
TimToady ah.
defequiv is just the default for if you don't give "is equiv" in your operator macro. It's not implemented yet...
mncharity <sym> is converted to $<sym>=(foo) , but none of the test cases caught that the alias implementation leaves a false $0 behind. 02:41
TimToady note also that the precedence info is coming via letter O, not number 0 02:42
but I see you typed it that way already 02:43
mncharity it's come up before, but I note that rx tests should really do "dump resulting Match tree in a cannonical string form, and compare that against a full correct string", rather than doing spot checks of this property or that. it will be hard enough to write enough test cases without disregarding most of there info.
s/their
:O :0 "A treatise on the emotional content of emoticons rendered in different typefaces". 02:44
TimToady :O :0 :| 02:45
:O :o :. 02:46
mncharity lOl
02:46 |jedai| left, |jedai| joined
mncharity re 'I can ignore defequiv for now', thanks :) 02:48
TimToady :āš¬
mncharity resists the temptation to search unicode tables... 02:49
though it would be nice to have a "show me characters "like" this one (or these)". image search across unicode glyphs. 02:50
02:51 [particle]1 left
mncharity /me toys with the idea of writing an elf_quickstart.txt - every step needed, software and cpan, to take a bare debian, and getting all of elf running on it. hmm...? 02:54
02:55 |jedai| left
mncharity end of day. goodnight all. "Xmas '09 or bust" 02:55
02:55 |jedai| joined 02:56 mncharity left 03:04 alester_ joined
alester_ HI EVERYONE 03:13
pmichaud alester_: pong :-)
alester_ I'm working on my kenote for FP2009
and I got this big idea
well,
let me show you what I have so far first
pasteling "Andy" at 64.81.227.163 pasted "FP2009 keynote thoughts" (33 lines, 1.4K) at sial.org/pbot/34610 03:14
alester_ I want us to start talking about Rakudo like it's here today 03:15
03:15 kid51 joined
pmichaud I think that's fine; we have to be careful not to overpromise. 03:16
alester_ but it exists today
and I want to tell people to work on it 03:17
because it exists today
Part of that is a good working rakudo.org
pmichaud sure, but if someone comes in wanting wholesome crunchy Perl 6 goodness with all of the wonderful Synopsis features, they may get turned off. That said, we _can_ point to people who are using it.
alester_ and helping with rakudo
pmichaud I'm not saying I disagree -- I'm just saying we need to be careful not to overpromise :-)
alester_ Sure 03:18
and part of that promise is documentation
of what we want people to do
pmichaud agreed fully.
alester_ For example, as far as I know we have no toolchain
no way to install modules
no LWP
no DBI
etc etc etc
pmichaud are you saying we should write those soon, or are you inviting others to start writing them? 03:19
alester_ yes
Also, here's the 2nd part of my notes
pmichaud from a rakudo perspective: if you want that toolchain to be in existence by FP2009, it ain't gonna happen. 03:20
pasteling "Andy" at 64.81.227.163 pasted "# All that matters is maintaining Perl 5" (28 lines, 1K) at sial.org/pbot/34611
alester_ no, I know
Anyway, a big part of this is having things to communicate 03:22
and a place to do it. 03:23
pmichaud in general, I already make a point of explicitly adding the 5 or 6 behind "Perl", unless talking about a community or "Perlish features" or the like.
alester_ That's good for you.
Rest of us, no. :-0
and it's all about mass communciation
if we all start saying "Perl 5" and "Perl 6" it'll mean something.
pmichaud personally I think that meme will catch on as more people start playing with Perl 6. But I have no objection to getting people to say it sooner. :-) 03:24
overall I like the threads of your keynote so far :-) 03:26
alester_ the thrid one is about community but not relevant here
Anyway
let's think about what we need as far as rakudo.org
Blog
What else?
pmichaud documentation
a wiki would be nice, but we could grab one somewhere else. 03:27
if we can get svn.rakudo.org or git.rakudo.org or whatever we choose to use to work, that's a bonus.
I don't think we need a mailing list beyond the existing perl6-* lists.
at least, notyet. 03:28
alester_ "documentation" menaing what
pmichaud how to obtain rakudo
how to build rakudo
where to report bugs
how to know if something is a bug
where to get more information about perl 6
alester_ About perl 6 or about Rakudo?
pmichaud how to become a developer
alester_ ok.
pmichaud about perl 6 03:29
alester_ who's gonna write this stuff?
pmichaud to much of the community, "Perl 6" and "Rakudo" are still synonymous.
alester_ Who's gonna admin it?
I don't mind adminning
pmichaud I'll write a lot. I'll also be happy to admin, or co-admin.
I know that a lot of the rakudo devs are eager to see a central rakudo site.
alester_ of course
pmichaud (where "eager" translates into "willing to write content") 03:30
personally I'd like to be liberal in granting write privileges to the site, to encourage content creation.
at least at first.
alester_ agreed
mind you , i don't know squat abotu drupal
but I'm assured it's simple
and I know many folks who do 03:31
pmichaud neither do I, but I'm pretty sure we have people who can help :-)
diakopter has suggested that we use WebGUI instead, though.
(and has also offered to host things, on perlsix.(com|org|net)
alester_ I don't know who diakopter is 03:32
and I'd rather not use WebGUI
JT is a good friend, and I know it's in Perl, but I just don't like it.
pmichaud I'm not familiar with WebGUI either, so I'm going based on others' opinions. 03:34
anyway, for the next couple of days I have to focus on rakudo repository issues, immediately after that will be website issues. 03:35
alester_ I'm gonna see if I can crnak a lot of Drupal goodness tonite
pmichaud that would be very helpful.
alester_ Risking the wrath of my Cruel But Fair editor
03:36 _jedai_ joined, |jedai| left
alester_ is there anything else you as Rakudo manager want to get out ther? 03:38
pmichaud for the keynote, or for the site?
alester_ yes 03:39
what yo uwant me to exhort folks to do.
Other ideas of things we need:
Who is who
What is the diff between Perl 6 and Rakudo
What is Parrot and why do I care
Will the repo split be done by FP? 03:40
03:40 SamB left
pmichaud in all likelihood, yes. 03:40
03:40 km3 joined
pmichaud parrot has a pretty firm deadline to be moved by Feb 6. 03:40
03:40 hercynium left
pmichaud whatever we do with rakudo we likely need to do by August 26. 03:40
my expectation at this point is that people who don't want to know about parrot won't need to be bothered with it. 03:41
at least, not as far as "download, install, test" is concerned.
alester_ how are they going to get Parrot?
what's the link to your plan on this?
I saw it andlost it
pmichaud it'll be part of the rakudo repo 03:42
all the planning I have thus far is on the perl6-compiler mailing list.
anyway, my plan is that downloading rakudo also gives you the appropriate version of parrot
alester_ So there will be a clone of Parrot in the Rakudo repo?
ok
pmichaud and the rakudo build process will build parrot (unless you supply the magic options that say to use some other copy of parrot) 03:43
03:43 eternaleye joined
pmichaud it kinda reverses things from the way we've been doing them, but I think it makes more sense for people who want to play with rakudo perl 6. 03:43
it also means that the average user doesn't have to worry about mapping versions of rakudo with versions of parrot.
alester_ sure
pmichaud i.e., we do that for you :-) 03:44
to your earlier question (what do I want to get out there)
three things
(1) rakudo exists
(2) please play with it and report bugs
(3) please help us improve the Perl 6 test suite
those are, by far, the biggest helps at this point. 03:45
alester_ ok
so one page we need is: How to improve the Perl 6 test suite
pmichaud we're also interested in people who can help develop Rakudo itself (of course), but if I had a choice between a rakudo devel or someone writing tests, I'd almost prefer the tests
alester_ One thing I want on the rakduo.org site
if I may be so imposing
is that we need defined responsibilties.
"You there, you are in charge of these pages." 03:46
pmichaud that can work.
but yes, we do end up with lots of "frequently asked questions" sorts of pages. 03:47
03:48 km2 left
pmichaud anyway, part of our current problem is that we don't really have a good place to put this information now, except for the perl6 wiki (which for some reason annoys me to great end) 03:49
I think that if we had a place on rakudo.org, more such information would be forthcoming. 03:50
alester_ are we thinking wiki on rakduo.org? 03:51
I'm not
pmichaud drupal has some sort of limited wiki extension.
but that's not what I'm aiming at 03:52
I'm simply saying we haven't had a central place for such information -at all- other than the perl6 wiki
I'm not saying the central place has to be a wiki.
alester_ ok
03:52 SamB joined
pmichaud I just want a central place where we can make it possible for multiple authors to easily be adding and updating content in an organized fashion. :-) 03:53
having a blog is great, but I see that as being of only equal importance to the other information. we really need both.
alester_ yup 03:54
agreed
I need a subdomain for rakudo.org while I work on it
I guess dru will do
aside: How tough is it to set up a git repo? 03:55
I want one that's not github
my own 03:56
private
pmichaud I don't know how difficult it is.
alester_ ok, just a stab
pmichaud I was planning to use something like github unless/until we can easily put one on perl.org or equivalent.
alester_ ok, anything else we need?
03:56 SamB left
pmichaud (if we use git, that is) 03:56
03:57 SamB joined
pmichaud however, Robrt says that it would be very easy to move a repo from github onto a perl.org server at some point in the future. 03:57
I presume that means it would be easy to do elsewhere also.
alester_ sure
s1n pmichaud: success, i finally got that laptop, installing arch on a vm, and will start taking it to work on thursday 03:59
pmichaud s1n: yay! 04:00
okay, 10:00 -- I need to go spend some time with my wife
bbl
alester_ kthx
give her smoochies for us for your time.
appreciate it.
04:00 _jedai_ left, |jedai| joined 04:13 buubot joined 04:22 gravity left 04:32 justatheory left
alester_ pmichaud: I do enjoy the feel of drupal.org/ 04:47
04:50 kid51 left 04:54 [particle]1 joined 04:57 [particle] left 05:01 jhuni joined 05:09 REPLeffect joined, mj41_ joined 05:26 mj41 left 05:28 iblechbot joined, meppl joined 05:37 aindilis` left 05:38 aindilis` joined
alester_ nslookup dru.rakudo.org 05:46
05:46 agentzh left 05:47 agentzh joined 06:00 donaldh left, donaldh joined 06:11 _jedai_ joined 06:13 |jedai| left 06:17 On joined 06:28 iblechbot left 06:53 ashizawa joined 06:55 justatheory joined 06:56 km3 left 07:03 justatheory left, DemoFreak joined 07:05 [particle] joined 07:07 xinming joined 07:13 DemoPhreak joined, alester_ left 07:14 meppl left 07:20 xinming_ left 07:21 [particle]1 left 07:27 DemoFreak left 07:37 agentzh left, agentzh joined 07:46 |jedai| joined 07:48 _jedai_ left 07:50 meppl joined 08:14 schmalbe joined 08:16 PZt left 08:21 mberends joined 08:26 pbuetow joined
mberends r35840 'make perl6' works on Debian amd-64, r35841 and later fail: perl6_ops_switch.c: In function 'Parrot_DynOp_perl6_switch_0_8_2': 08:27
perl6_ops_switch.c:462: error: 'core_switch_op_lib' undeclared (first use in this function)
perl6_ops_switch.c:462: error: (Each undeclared identifier is reported only once
perl6_ops_switch.c:462: error: for each function it appears in.)
08:28 Traveler joined
moritz_ mberends: svn up please, chromatic++ fixed things like this a few hours ago (at least I think so) 08:32
08:33 pbuetow left
mberends moritz_: did svn up 5 mins ago, now running make, thanks 08:33
08:36 aindilis` left
mberends moritz_: r35856 after realclean fails: Could not find non-existent sub !keyword_role 08:37
$work & #sorry, gotta go... 08:38
08:38 mberends left 09:00 Traveler left 09:08 mberends joined 09:15 zamolxes left 09:17 iblechbot joined 09:26 [particle]1 joined 09:37 jhuni left 09:38 masak joined, lsyx joined 09:41 lsyx left 09:44 [particle] left
masak moritz_++ # rogue prelude 09:49
moritz_ masak: want commit access? :)
masak sure, why not? :)
you have my email address, I'm sure.
09:51 [particle] joined 09:55 jferrero joined 10:02 [particle]1 left
rakudo_svn r35858 | jonathan++ | [rakudo] Move a =cut that broke stuff. 10:10
10:33 kane_ left, kane_ joined 10:34 kane_ left 10:35 ejs joined 10:37 vixey joined 10:44 ejs left, ejs joined 10:46 braceta joined 10:48 lisppaste3 left 10:54 ejs left
mberends masak: ping 11:03
11:07 agentzh left, agentzh joined 11:10 pmurias joined 11:14 DemoPhreak left 11:39 PZt joined 11:44 pmurias left 11:46 [particle]1 joined 12:03 schmalbe left 12:04 [particle] left 12:10 ashizawa left 12:20 mvitor joined
mberends masak: unping & # (lunch) 12:23
masak oh, I was pinged. sorry, didn't backlog.
I'll be here for the rest of the afternoon.
12:25 estrabd left 12:33 hudnix left 12:34 hudnix joined
masak moritz_: my semi-complaint posted to p6l. putting it into words only served to further convince me that a great mistake is being made. :/ 12:36
jnthn mwaha...handles with regex is the works. 12:46
masak jnthn: I'm sorry? 12:48
12:48 PZt left
jnthn masak: So am I... 12:54
class ReFrontend { has $.backend is rw handles /^hi/ };
masak ooh!
convenient.
haven't had use for that yet, but good to know it's there.
12:56 ejs joined
jnthn will be once the spectests pass ;-) 12:56
the handles ClassName case also works. 12:57
masak woot.
13:08 km2 joined 13:13 ludan joined 13:16 mvitor left
rakudo_svn r35861 | jonathan++ | [rakudo] Make 'handles' trait verb handle pairs, classes, roles and smartmatching on anything else. 13:20
masak jnthn++ 13:23
13:24 ejs left
jnthn Now to track down why handles * doesn't work... 13:26
mberends masak: reping # come on out, I know you're in there! 13:27
masak jumps out
ta-daa!
mberends: pong
mberends wifi @work is much better, but my attention span is fragmented 13:28
13:29 mvitor joined
mberends re: u4l, you have my full support and commitment to write 13:29
masak mberends: goodie. I will now lay out my very brief plan. 13:32
1. make a simple 'psi' tool work for all the individual search cases. i.e. write satisfactory documentation for each type of construct, and have psi find it when asked. 13:33
2. hack, hack, hack. write, write, write. 13:34
3. profit!
13:34 kanru joined
masak mberends: I imagine your Pod parser figures in there somehow. I want to use the Pod format for documentation. 13:34
13:35 khatar joined
khatar hello 13:35
jnthn hi
masak greetings.
mberends btw, why 'psi' ? pounds per square inch = pressure ? 13:36
khatar "Synopses" are the "perl6 reference", yes ? 13:38
masak mberends: it's parallel to Ruby's 'ri', which I like.
khatar: aye.
khatar ok... i'm searching for the equivalent of perl5 file globbing in it
does it desapear ?
masak mberends: also, 'psi' is often connected with ESP, mind-reading and stuff. a connotation I like. 13:39
13:39 ejs1 joined
masak mberends: that's what I'd like a documentation tool to do. read my mind. (In a good way) 13:39
mberends super! dwimmy pod6!
masak buubot: spack glob
buubot masak: S02-bits.pod:16 S03-operators.pod:1 S04-control.pod:4 S05-regex.pod:2 S06-routines.pod:8 S10-packages.pod:2 S11-modules.pod:2 S12-objects.pod:10 S16-io.pod:3 S26-documentation.pod:1 S29-functions.pod:4
13:40 ejs1 left
masak khatar: I think file globbing is still in Perl 6, but I don't remember with which syntax. 13:40
khatar: might I direct you to the tests? they might give further enlightenment.
khatar oh 13:41
good idea! i don't have the reflex to see tests as a doc
masak svn.pugscode.org/pugs/t/
khatar: some tests are obsolete, but even then they provide historical clues :)
khatar: the tests in t/spec are normative. 13:42
those outside aren't.
(but they might still be right, of course)
khatar thx for clues masak 13:43
masak mberends: yes, dwimmy. but I see it as a worthy and interesting challenge to use as much of 'standard' Pod as possible to acheive this aim.
khatar: good luck on your quest. be sure to come back and report later.
mberends if rakudo has a glob() it's recent, I had to write a workaround for myself a few weeks ago
masak mberends: Rakudo doesn't have it.
jnthn I don't remember seeing glob spec'd. 13:44
masak but that was not the question, the question was "does Perl 6 have globbing?"
jnthn Depends what you take something not currently being in the spec (if it indeed isn't) to mean. :-P
khatar ok. I explain: 13:45
masak oh, that last part was directed at mberends.
jnthn masak: Oh.
khatar i begin to think that perl6 could kill shell programming if it has:
- a configurable and powerfull line edition system (ZLE is the reference) 13:46
mberends understood. it seemed as if khatar was hoping to actually use glob(), not just read about it
khatar - a cool system to pipe objects ( powershell is the reference) 13:47
mberends, no: glob('**/*') is too long:
in perl5, just <**/*> works!
13:47 Exodist joined
masak khatar: sounds like you want a module for this. 13:48
one that gives you a new quoting construct.
khatar for <**/*[ch]> { for $=<$_> { print if /^#include/ }}
pugs_svn r24982 | jnthn++ | [t/spec] Some new tests for handles, and unfudge most of the existing ones, plus use dies_ok where appropriate.
khatar this would be used by shell scripters for sure 13:49
rakudo_svn r35862 | jonathan++ | [rakudo] Fix whatever. 13:50
13:50 km2 left
khatar and what was wondering before joinning is: as zsh as a very powerfull globbing system , is it possible to define what comes into <> 13:50
to add zsh-like globbing to perl6 13:51
masak khatar: all is fair if you predeclare 13:52
moritz_ khatar: <> has enough semantics already... but you could think about the builtin function "glob" 13:53
khatar masak, predeclare what ? 13:54
masak khatar: that you want to change the semantics of <> 13:55
khatar moritz_, you have to admit that glob('foo') is not as attractive than <foo> for the shell scripter :)
moritz_ khatar: yes, but shell scripters... well... use the shell.
jnthn Yeah, the thing is that <foo> already means something in Perl 6.
khatar arhhhh ... yes! it's an array :-( 13:56
moritz_ khatar: but you can define something along the lines of Q:g<...> where the :g adverb stands for glob
khatar yeaaahhh! ok 13:57
this is what i'm searching for
masak Perl 6 delivers. 13:58
but I doubt any of the implementations allow you to define that yet.
moritz_ STD.pm does, I guess 13:59
masak moritz_: unfortunately, STD.pm doesn't actually _run_ the program :)
14:05 spx2 left, spx2 joined
masak mberends: still there? 14:05
mberends intermittently, yes 14:06
masak mberends: ...which brings me to my second point. I'm still enormously impressed with the Pod parser work you've done, so...
...I've decided to review it and blog about it. if that's ok with you.
it'll be like a book review.
14:07 [particle] joined
masak the point of which will be to (1) increase awareness of the Pod parser suite, and (2) increase awareness about literate programming and its habits of treating programs as literature. 14:07
I'm aware it sounds a little funny. it's an experiment. :) 14:08
mberends yes, that's very ok. there is still some bitrot, so I should stabili[sz]e it in time for your publication. we share the goal of clear writing, beautiful code etc.
masak good. 14:09
I can wait a few days, if that's what you need.
mberends can never tell how much time will be needed :)
masak curse you, Hofstadter! 14:10
PerlJam publish early, publish often :-)
masak PerlJam: are you saying I should just go ahead and do the review?
mberends M$ mo : if it compiles, ship it!
PerlJam I am.
masak PerlJam: you have a point. 14:11
PerlJam and mberends shouldn't mind a little bitrot as that happens when things are in flux.
masak PerlJam++
but let's make it Saturday, as I tend to foolishly schedule a lot of work during the work week.
mberends accepts the pressure (psi) of maintaining Pod::Parser bitrot free 14:12
masak: thanks, it will be good to have more eyes looking for bugs etc. 14:14
masak mberends: looking forward to providing the eyes.
PerlJam mberends: just don't be a slave to perfection. 14:15
masak code trumps talk, aye. 14:16
jnthn realizes that the case where you have a class nested within a role is nasty. 14:19
masak jnthn: what does that even mean? 14:22
jnthn role Foo[::T] { class Bar is T { ... } method x { say Bar.new.is(T) } }
erm, .sa 14:23
.isa # argh
I guess (42 but Foo[Int]).x should always give true...
But it means having a separate class per role type-instantiation.
14:24 [particle]1 left
masak jnthn: Java has something similar for when you don't declare inner classes 'static'. 14:24
jnthn *nod*
14:25 braceta_ joined
mberends if I can unbreak Pod::Parser for rakudo r{latest}, there is an xhtml emitter in the pipeline, partial support for pod5<->pod6, additions test suite... 14:25
jnthn mberends: The paresr is written in Perl 6? :-) 14:26
mberends si
jnthn Nice!
masak incredibly nice. I'm eager to review it. 14:27
PerlJam mberends: did you independently create it, or hack the pod parsing from STD a little, or use Damian's perl5 prototype? 14:28
mberends it declares grammar Pod6 { .... }; hence the $x ~~ / <Pod6::whatever> / a day or two ago
moritz_ Pod6.parse($x) 14:29
mberends new from the ground up
masak mberends: does it conform to STD.pm?
there's a big fat warning in S26 about S26 being obsolete.
and people are directed to STD.pm. 14:30
viklund masak: I know how to make november run on the server (I think)
14:30 braceta_ left 14:31 braceta_ joined
masak viklund: don't sneak up on me like that! o_O 14:31
viklund as soon as the mother of my child gets home I'll do it
masak viklund: sounds very good.
14:31 PZt joined
masak viklund++ 14:31
we had a mergefest yesterday at the November HQ.
it was the most fun I've had in a long time. 14:32
mberends masak: which instance of STD.pm? When I last looked, it specified only the outer =begin pod and =end pod markers and little else. S26 is only spec for the innards afaik. 14:36
masak mberends: ok. I realize that I will have to delve into these issues myself anyway, when I do the review.
14:36 PZt left
masak mberends: it seems strange to me that S26 would defer to STD.pm if the latter doesn't actually contain more recent information. 14:37
14:42 braceta left
jnthn is about done with handles 14:43
Still have the s/a/b/ case to do but waiting on having that implemented first.
And also the case where we write it on a method to delegate on the return value. 14:44
Want to ask pmichaud about that one...
mberends masak: try grep -i pod ~/pugs/src/perl6/STD.pm 14:50
masak mberends: you're making that assumption again. :P 14:51
mberends the directory one? you didn't format your hard drive?
masak actually, yes. 14:52
but I liked the old way of arranging things. it's far superior.
mberends now has 7 parrot revision directories 14:53
masak oy, why?
mberends: I did the grep and I see what you mean now. this is something that we should collaborate with TimToady on. maybe he'll accept patches to STD.pm that parse Pod. 14:55
pugs_svn r24983 | jnthn++ | [t/spec] Tests for handles @foo ... 14:56
mberends why = regression. when something breaks, not knowing whether rakudo or my code is the problem. (usually it's me of course, but even parrot wobbles sometimes :P ) 14:58
rakudo_svn r35864 | jonathan++ | [rakudo] Implement use of has @array handles ... and also give an error if has %x handles ... is used (the synopses reserve the syntax for now but don't specify it). 15:00
masak mberends: I am aware of that problem. just haven't solved it that way. 15:04
jnthn std: my Array of Int $x; 15:12
p6eval std 24983: OUTPUTĀ«00:05 83mā¤Ā»
15:15 pmurias joined 15:21 kisu_ left
viklund masak: come on over to november-wiki 15:21
15:21 estrabd joined 15:25 kisu joined 15:30 ruoso joined
ruoso Hello! 15:30
lambdabot ruoso: You have 2 new messages. '/msg lambdabot @messages' to read them.
15:37 pmurias left 15:38 kanru left 15:40 kanru joined 15:48 braceta joined 15:49 vixey left, jhorwitz joined 15:51 nihiliad joined 15:52 ruoso left 15:54 ruoso joined
ruoso hmpf... my uplink is cutting my connections again... 15:55
rakudo_svn r35866 | jonathan++ | [rakudo] Parse and implement 'of' keywrod, and switch s/typename/fulltypename/ in a place where STD.pm has it. 16:00
16:02 justatheory joined 16:07 eternaleye left, braceta_ left
pugs_svn r24984 | jnthn++ | [t/spec] Add some tests for using parametric roles, including the of syntax form, as type constraints. 16:16
rakudo_svn r35867 | jonathan++ | [rakudo] Add S12-role/parameterized-type.t to spectest.data. 16:20
16:26 stephenlb joined 16:28 [particle]1 joined 16:29 kanru left, pmurias joined
pmurias ruoso: hi 16:30
ruoso hi pmurias
16:30 masak left
pmurias do you think changing PurePrototypeHOW to lookup methods in ^!instanceof if they are not found in ^!methods is a good idea? 16:31
(done it just wandering if i should commit it ;)
ruoso: i also changed the br instruction in mold to treat everything other than native false as true 16:34
ruoso pmurias, I think diakopter's problem building smop probably tells us that it's time to split up smop sources into different packges 16:37
pmurias, that would turn it into a DelegatedPrototypeHOW 16:39
pmurias the PurePrototypeHOW is more like SingletonHOW now 16:40
rakudo_svn r35868 | jonathan++ | [rakudo] Roles need to know how to .WHICH (if nothing else so we can recursively parameterize them).
pmurias ruoso: how much work would the split be? 16:41
ruoso pmurias, I'm not sure yet.. but it's likely to be a lot
specially splitting the build system
pmurias, knowhows can be clonned 16:42
pmurias, it is PurePrototype because it doesn't delegate
that's what I meant... 16:43
pmurias what's the advantage of not delegating?
ruoso being protected against changes in the delegated object
16:44 [particle] left 16:47 kanru joined 16:48 alanhaggai joined
pmurias ruoso: re the split i'm unsure if it's worth doing it now instead of implementing basic features 16:48
pugs_svn r24985 | jnthn++ | [t/spec] Some harder tests for parameterized types, when we parameterize the role with itself. All passing.
ruoso but I think we could have PurePrototypeHOW simply named PrototypeHOW 16:52
and make it the way you did
but the problem with that is that the handling of attributes become much more complex
pmurias, take a look how pureprototypehow handles add_attribute now
when you define an attribute in a pureprototype it already initializes the instance storage
which is not a problem considering you're going to clone the object when you want a different instance
pmurias, and that's actually the reason that makes it interesting for bootstrapping purposes
pmurias, that's the reason I'm also unsure 16:53
pmurias well if instance_storage autovivied the problem would be largly gone right? 16:55
ruoso not at all
16:55 PZt joined
ruoso because in the intialization of the instance storage you have the bind a container as the attribute was declared 16:56
pmurias so we need some sort of a BUILDALL method right? 16:58
ruoso which is basically what ClassHOW do 16:59
pugs_svn r24986 | pmurias++ | [smop] PurePrototypeHow does delegated to .^!instanceof 17:03
17:05 hercynium joined
rakudo_svn r35869 | coke++ | Add a basic version of .pick() for Range and hopefully not break anything. 17:10
pugs_svn r24987 | pmurias++ | [smop] rename PurePrototypeHOW to PrototypeHOW 17:13
17:19 duke_leto joined 17:22 spx2 left 17:23 duke_leto left, spx2 joined 17:27 pmurias left
ruoso pmurias, remember you need to change mildew to use that for "knowhow"s 17:29
pmurias, but the way it is now, it is going to fail on the use of attributes
I think implementing .^!clone in p6opaque is probably going to work better 17:30
17:35 jferrero left 17:42 duke_leto joined 17:43 duke_leto left 17:44 ejs1 joined 17:48 donaldh left 17:53 pbuetow joined 17:55 mberends left 17:56 mberends joined 17:59 ejs2 joined 18:01 ejs1 left, vixey joined
pugs_svn r24988 | jnthn++ | [t/spec] If we're testing that a type-check allows good things, we also need to check it won't accept wrong things. 18:02
rakudo_svn r35870 | jonathan++ | [rakudo] If we take a type as a parameter, we should just bind the parameter directly do that name, not treat it as if it's a type capture. Otherwise, we get wrong answers in various cases, such as when parametric roles are parameterized with other roles. 18:10
18:12 ludan left
TimToady jnthn: why isn't type capture treated that way too? 18:12
jnthn TimToady: There's a difference between (I think):
sub foo(::T $x) { ... }
and
sub foo(::T) { ... } 18:13
One takes a parameter $x and captures it's type into T
18:13 ruoso_ joined
jnthn The second would I believe just expect something to be passed that does Abstraction 18:13
Which would be bound to T.
Right? Wrong?
TimToady how is "capture its type into T" different from binding?
jnthn In the first case the parameter that is passed goes into $x itself. And then we put the type of that parameter into T 18:14
In the second case, the parameter that gets passed ends up in T.
TimToady in either case, you make sure ::T has the proto-object of whatever the parameter was
whether or not the argument was a protoobjet
jnthn Ah. 18:15
TimToady protoobjƩt, pardon...
jnthn That's exactly the behavior I just got rid of.
ruoso_ TimToady, have you had some time to take a look at yesterday's backlog?
jnthn Oh, hmm. The alternative is that a Role always returns itself when asked .WHAT.
ruoso_ or I should say backlong
jnthn, I always thought a Role returns itself in the .WHAT 18:16
jnthn Heh, OK.
ruoso_ as well as any protoobject
jnthn In that case I'll do it that way.
erm?
"as well as any protoobject"?
ruoso_ Object.WHAT returns Object
[particle]1 any other
18:17 [particle]1 is now known as [particle]
jnthn Yes. 18:17
And for a role it returns the role itself?
jnthn does it that way 18:18
ruoso_ consider Foo to be a protoobject for role Foo { }
I don't see a difference between a protoobject of a class or of a role
TimToady makes me wonder if roles and protoobjects can be unified somehow...
jnthn TimToady: Plesae stop wondering. :-S 18:19
ruoso_ I always thougth there isn't really a role type
TimToady I will let ruoso_ wonder on my behalf then... :P
ruoso_ as well as there isn't really a class type
in fact... the difference between a Role and a Class is the thing that responds for its HOW, in my understanding 18:20
18:20 tux300181 left
ruoso_ in the meanwhile, TimToady, I hate to be annoying (ok, I don't hate it), but we would need some resolution in the capture issue soon... 18:20
jnthn There isn't really a class type apart from the one mentioned in S12. ;-) 18:21
ruoso_ S12 mention it to say it isn't ;)
jnthn (In the traits section)
Yeah, I know that quote too.
class MyBase {
multi trait_auxiliary:is(MyBase $base, Class $class; $arg?) {...}
What is Class here? 18:22
ruoso_ an inconsistency in S12?
;)
maybe there is a Class Role
and a Role Role
so you can differentiate them in the signature matching
jnthn Perhaps. ;-) 18:23
ruoso_ but maybe
subset Class of Object where { .HOW === ClassHOW }
subset Role of Object where {.HOW === RoleHOW } 18:24
jnthn .HOW gives the particular instance of he metaclass for $_ though?
So === wouldn't work?
18:25 riffraff joined
jnthn .HOW.isa(ClassHOW) ? 18:25
18:25 tux300181 joined
ruoso_ when class-based, yes... 18:25
jnthn But subset type could well be the way to go.
ruoso_ SMOP is prototype based, so you have just ClassHOW
and the methods are registered in the protoobject 18:26
jnthn Ah, OK. 18:27
Thus why you just have ClassHOW.
Fair enough.
*one ClassHOW
ruoso_ yes... it looked simpler to implement arbitrary mixins
any object can become its own prototype
you just have to add a method to it, or compose a role to it
pugs_svn r24989 | moritz++ | [irclog] try to log /quit's via evil monkey-patching, rg++ 18:28
ruoso_ $foo.^add_method('bar', sub { say "Hello" }); $foo.bar
18:28 rhr joined
ruoso_ the same way as... 18:29
$foo.^compose_role(Bar)
and I guess
$foo.^compose_role(Bar, \($role, $parameters)) 18:30
in fact, that backslash is wrong there...
it is already a single positional argument, right?
jnthn It's only allowed to take one positional there. 18:31
Though the parser IIRC doesn't promise you that, you need to check it.
ruoso_ there where?
khatar does rakudo lives in a different svn than parrot ?
jnthn $x does Foo($one_thingy_here)
moritz_ khatar: no, it's in languages/perl6/ in the parrot repo
khatar well
ruoso_ jnthn, why only one positional? 18:32
khatar i update like this : rsync -av --delete svn.perl.org::parrot-HEAD parrot
jnthn ruoso_: Because the spec says so.
khatar less parrot/languages/perl6/t/spectest.data gives me a long list of files
ruoso_ hmm... interersting...
khatar i can't find in my fs
jnthn ruoso_: Also you are only allowed to have one attribute in any role you mix in this way.
ruoso_ any special reason to that?
jnthn And the value is used to initialize that one attribute.
It's for property initilization really.
moritz_ khatar: do you have a svn client installed?
jnthn ruoso_: It's just The Design. 18:33
I'd imagine S12 doesn't have it that way for no reason. ;-)
18:33 ruoso left
ruoso_ jnthn, but the spec does use named attributes in role attributes 18:34
khatar moritz_, i don't use svn but i can install
ruoso_ named arguments, that is
khatar (i'm confortable with git in fact)
jnthn ruoso_: Where?
moritz_ khatar: 'make spectest' tries to pull in the test files from the pugs svn repository
khatar: so without an svn client that's bound to fail
jnthn A role applied with C<does> may be parameterized with an initializer 18:35
in parentheses, but only if the role supplies exactly one attribute
to the mixin class:
$fido does Wag($tail); $line does taint($istainted);
khatar ok
i install
ruoso_ jnthn, it uses Array[:of(Int)] later in the same section 18:36
khatar but the next rsync will erase those files, right ? it's much better to use svn averywhere ?
pugs_svn r24990 | moritz++ | [irclog] better nick change messages, rg++ again
moritz_ khatar: that's what I do (use svn for parrot and the tests)
jnthn ruoso_: That's a parameter to the role.
Also, that should now I think just be Array[Int]
ruoso_ ok, I think I'm confussing the thing between [ ] and ( ) 18:37
jnthn (Because we don't multi-dispatch on named parameters, so it's a bit awkward having of resulting in a named parameter...)
Yes.
khatar so i'll do either
jnthn (...) is the bit I'm talking about.
The [...] is part of the longname of the role.
Well, supplies values for it...or something like that. :-)
jnthn really needs to work on S14. 18:38
While the roles stuff is fresh in my head. 18:39
ruoso_ jnthn, alright... so to use Array($foo) it needs only a single positional argument
jnthn ruoso_: Right.
ruoso_ but does the same apply to Array[$foo]?
jnthn No 18:40
ruoso_ ah....
18:40 rhr_ left
ruoso_ right.. 18:40
rakudo_svn r35872 | jonathan++ | [rakudo] Revert last patch - foo(::T) should act like a type capture after all, according to TimToady++. And then a Role hands back itself in response to .WHAT.
jnthn That'd be a curious thing to supply there though.
Array[Int] would be a better example.
ruoso_ jnthn, not if $foo is a protottype
;)
jnthn ruoso_: True
It *would* work. 18:41
ruoso_ but I guess you can send named arguments to Array( ) as if they were arguments to .new
1 but Dog(:name('Fido'), :color('black') 18:42
)
jnthn I think S12 says otherwise.
(OK, we could choose to make it say that...)
ruoso_ it actually agrees with you 18:43
"Note that the parenthesized form is not a subroutine or method call. It's just special initializing syntax for roles that contain a single property"
jnthn Right.
18:43 Psyche^ joined
ruoso_ but it would be cool to support the named parameters ;) 18:44
jnthn We handle it specially in Rakudo and we even give a compile time error about it.
18:44 Patterner left, Psyche^ is now known as Patterner
ruoso_ not that "1 but Dog" is a sane example... but .... 18:44
jnthn (If you supply more than one positional there). 18:45
moritz_ if you think sufficiently abstract...
jnthn Yeah, I wouldn't object if the named ones became spec.
18:46 ejs1 joined
ruoso_ still trying to think what "1 but Dog" could mean ;) 18:46
18:46 ilbot2 left 18:47 ilbot2 joined
moritz_ ruoso_: one object, but it's a dog ;-) 18:47
18:47 DemoFreak joined
khatar moritz_, it works ! thanks 18:48
ruoso_ jnthn, actually the quote I took was talking about "but", not about the arguments to the role
18:48 [particle]1 joined
TimToady the special syntax predates the WHENCE syntax, so maybe those could be combined 18:49
1 but Dog{:name<Fido>, :color<black>}
18:50 |jedai| left
PerlJam ruoso_: 1 but Dog is my #1 pooch. 18:50
18:50 |jedai| joined
TimToady your life is a bitch? 18:50
ruoso_ TimToady, the later syntax really does make sense, since BUILD needs to be called for the protoobject with the given object as invocant 18:51
jnthn Aye. 18:52
TimToady the special syntax is still useful for 1 positional arg though
jnthn TimToady: We could say you *either* have one positional *or* many named.
ruoso_ yes, since BUILD doesn't expect a positional argument
TimToady or maybe we special case a positional for roles with one attr 18:53
ruoso_ the special syntax is supposed to turn that into a named argument
TimToady sounds like a plan
ruoso_ 1 but answer(42) is really: 1 but answer{ :answer(42) }
jnthn Well, or whatever the one attr that answer has is called.
ruoso_ yes yes... 18:54
that is a misleading example
jnthn (Right now there's no requirement that the attr and the role name match)
TimToady 1 but answer{ :*(42) } :)
jnthn worreva
ruoso_ can you really send "whatever" as the key to a named argument?
TimToady no, hence the smiley 18:55
ruoso_ *phew*
TimToady meanwhile, I've broken STD entirely by trying to add unary associativity for mtnviewmark++ 18:57
my EXPR was assuming that lack of associativity means unary, sigh
18:57 ejs2 left
ruoso_ TimToady, in a unrelated matter... as writing code for the SMOP prelude, I realised that "for"'s ability to leak out as the implicit return is probably going to be a FAQ... 18:59
people is really used to for as a control statement 19:00
not as a sub call
in the sense that control statements are transparent to implicit return
as in if/eles
*if/else
19:02 |jedai| left, |jedai| joined
ruoso_ Q: why the for block doesn't execute sometimes? A: because you might be using the function that contains it in a lazy context... 19:03
jnthn I didn't realize it could do that.
19:04 [particle] left
jnthn I know it's meant to collect the results of the iteration and can return that. 19:04
Or will implicitly return that.
ruoso_ that *and* it is lazy
jnthn Oh?
Where's that spec'd?
ruoso_ as map
jnthn for is not map
ruoso_ it kinda is
jnthn (or shouldn't be anyway...)
*kinda* but not exactly.
I'd really really not want for to be so map-ish as it can do that. 19:05
TimToady no, they're essentially identical
jnthn It's just too surprising.
TimToady: OK, then I'd argue that's a mistake. :-)
TimToady that's how it's specced
jnthn Map - sure, being lazy there ain't surprising.
But having for suddently turn into something that doesn't execute..
ruoso_ yeah... "for" is a imperative keyword 19:06
"map" is a functional keyword
jnthn sub foo { for 1..100 { .say }
}
foo();
Doesn't use the return value, but I'd really like that to print 100 lines of output!
ruoso_ jnthn, in that case, it will, because in void context, it should be exausted
the same for map
jnthn Ah. 19:07
OK, maybe that's not quite so bad then..
TimToady basically, the situation doesn't arise unless you've screwed up what the function is supposed to be returning anyway
PerlJam and aas long as we still encourage people to use "return" ...
jnthn Hmm.
ruoso_ TimToady, my point is that this is somewhat fragile
PerlJam s/aa/a/ 19:08
jnthn Yeah, it's maybe not as serious as I first thought.
I'd rather for were just simple though.
TimToady if you're using for for its side effects, and you always want to return something, it'll be a separate statement anyway
it is simple
it's just a map
ruoso_ the problem is that the definition of the context might be far away from the end of the function
jnthn Programmer expections simple, not implementation simple. :-)
19:09 duke_leto joined, duke_leto left
ruoso_ sub foo (*@args) { say @args[0] }; sub bar { for 1..100 { .say } }; bar(foo); 19:09
TimToady lists are lazy in Perl 6, so people who want side effects have to keep track of that.
ruoso_ *I*'m fine with that... 19:10
but it will probably become a FAQ
TimToady at least it's a different FAQ than for Perl 5 :)
ruoso_ heh
TimToady and they're learning FP rather than idiosyncratic syntax 19:11
ruoso_ Perl 6: lisp with a syntax ;)
khatar any other good news from pugs ? like perl6 modules ? 19:12
TimToady syntax with a lisp
khatar moritz_, i'm ashamed: make spectest was on the readme 19:13
i didn't noticed it the first time i read
ruoso_ that remembers me mildew still doesn't notice Void context 19:14
19:19 ejs1 left, ejs1 joined
ruoso_ TimToady, in yet another unrelated matter, re-opening an issue open yesterday... if every built-in type is a Role, is Object a Role? 19:21
19:22 PZt left
khatar good night perl6 people 19:22
mberends g'night khatar, hope you will enjoy coming back often 19:24
19:35 pmurias joined 19:36 |jedai| left, |jedai| joined 19:43 ejs1 left 19:45 |jedai| left, |jedai| joined 19:47 jferrero joined 19:48 lisppaste3 joined
ruoso_ jhorwitz, hi... did you talk with ambs? 19:52
jhorwitz ruoso_: no, been sick and extremely busy. but thanks for reminding me. 19:53
TimToady ruoso_: why not? Object just puns to a class that has no attributes 19:55
pugs_svn r24991 | moritz++ | [S29] changed outdated notice about document location, noticed by Coke++
ruoso_ TimToady, cool... as I stated yesterday, it also solves the "making undef defined" problem
and allows different implementations of Object
moritz_ if Object is a role, am I still allowed to write 'class Object is also { ... }'? 19:56
jnthn Hmm.
TimToady yes, but it applies only to the punned class
jnthn Not do anything that otherwise does Object.
TimToady roles are immutable
ruoso_ is the punned class a singleton?
I mean 19:57
jnthn Each role gets one punned class (per parameterization)
Is I think the best way to have it.
TimToady why not?
ruoso_ do every already instantiated objcet of that class see the new version? or only the new instances?
jnthn for is also I think all the existing instances would. 19:58
At least, that's how it works in Rakudo ATM.
19:58 braceta left, iblechbot left
ruoso_ this basically goes to... 19:59
should a role store a punned class that might be changed?
jnthn The role holding onto the pun is the obvious implementation, I think.
TimToady I suspect people would expect it to work that way 20:00
ruoso_ the other option would be that to be an optimization only
and the pun to happen everytime the Role is used as a class
jnthn That'd create a whole _bunch_ of punned classes.
ruoso_ (which could be optimized away, for the common case)
jnthn That'd be very sub-optimal.
ruoso_ but would protect older instances from action-at-a-distance 20:01
jnthn I think just going with the role storing its punned class (where we understand the role meaning the role with a given set of arguments to its parameters) is the easiest and clearest way to go.
If people are doing is also, they probably want existing instances affected. Otherwise they could make a subclass and create new instances out of that. 20:02
ruoso_ but maybe it's just my twisted mind to think that's relevant ;)
jnthn, that's a point
jnthn Action at a distance is bad generally. But I don't expect is also to be something used regularly. 20:03
ruoso_ we can assume that "is also" *is* action-at-a-distance
moritz_ agrees with jnthn
jnthn *nod*
ruoso_ and therefore discourage it
jnthn I hadn't ever thought of it as a construct I would encourage. ;-) 20:04
ruoso_ explaining that they can make a lexical bind to a subclass replacing the original class visibility
moritz_ I mostly think of it as a construct to build a prelude ;)
jnthn ruoso, Yes, that's exactly the right way to handle this kind of situation. 20:05
ruoso_ one could even think of a keyword to huffmanize it
jnthn Take advantage of scope.
my class Foo is locally { ... }
(declares lexical class Foo and then makes it derive from the outer Foo) 20:06
Or something.
I'm not good at naming stuff.
ruoso_ that looks like a solution
jnthn Aye. I'll delegate the choice of name to someone else.
20:06 mvitor left
jnthn gotta head to the airport, bbl 20:07
ruoso_ anyway... the "my" there is options
optional
because it will only declare that name *in the current package* 20:08
not in the GLOBAL:: package
one could even think that "is also" should behave like that by default and let monkey-patch to something more de-huffmanized 20:09
TimToady, what do you think?
TimToady is ALSO maybe 20:10
but grep can find "is also" pretty easily
20:10 jferrero left 20:11 jferrero joined
ruoso_ TimToady, is ALSO being the mokey-patch? 20:14
TimToady presumably 20:15
I like shouting on things the boss should frown at :)
learned it from Ada, kinda
with UNCHECKED_TYPE_CONVERSION 20:16
ruoso_ class Foo is MONKEY_PATCHED { ... }
:)
20:16 |jedai| left 20:17 pmurias left
TimToady I'm looking for a monkey-faced smiley... 20:17
ruoso_ monkey Foo {... }
20:18 |jedai| joined, ejs1 joined, riffraff left
TimToady (:-) 20:19
(8-)
maybe "is also" and "is instead" are only available if there's a "use MONKEY_PATCHING" at the top 20:20
ruoso_ they can be available 20:21
the question is the visibility of the change
20:21 pmurias joined
TimToady well, can depend on the scope of the declaration, I think 20:21
pmurias ruoso_: what will the directory structure after the split refactor be? 20:22
ruoso_ pmurias, I was thinking in smop-???? inside smop
TimToady, the idea I'm throwing is that "is also" replaces the "name" not changes the class itself 20:23
TimToady which you can do with my but not our
ruoso_ where "is also" creates a subclass, and "is instead" creates an unrelated class"
our only means that it is registered in the *current* package
not in the original package where the class was defined 20:24
TimToady but why would you do that instead of derivation?
ruoso_ to steal the name
making localized custom versions of classes the code in the inner scope will expect
TimToady my class Foo is OUTER::Foo {...}
20:25 spx2_ joined
ruoso_ I was arguing that in the current scheme, monkey-patch is more huffmanized than scoped customizations 20:25
pugs_svn r24992 | moritz++ | [irclog] monkey-patch with less noise, rg++
TimToady not if we require a use
ruoso_ right... 20:26
ok...
ruoso_ commute &
20:26 ruoso_ left
moritz_ I need a small example for a case where 'is copy' is useful on a positional argument - any ideas? 20:28
pmurias fixing the argument 20:31
20:32 spx2 left 20:35 jan__ left 20:38 jan_ joined 20:44 __felix__ joined, __felix__ left
pugs_svn r24993 | lwall++ | [S03] more alignment with STD 20:49
r24993 | lwall++ | [S12] monkey patching now requires a special "use MONKEY_PATCHING" at the top
moritz_ TimToady: S02 mentions .pos, maybe you want to remove that? 20:53
20:55 SamB left 21:08 meppl left, [particle] joined 21:10 |jedai| left 21:11 |jedai| joined, bahaa2008 joined
bahaa2008 moritz_, hi 21:12
moritz_ hi
bahaa2008 moritz_, i have promlem with search.ph in your ircbot
pl **
moritz_ you're not the only one
bahaa2008 is it work with mysql ? 21:13
this is the line with problem
my $q0 = $dbh->prepare("SELECT COUNT(DISTINCT day) FROM irclog $sql_cond");
moritz_ I wanted to redo it with KinoSearch, but that still doesn't contain the features I need (although I've been told they are being worked on)
bahaa2008 i cann't apply this query on mysql
moritz_ what's the error message? 21:14
bahaa2008 how You have to choose at least one column to display
moritz_ uhm, do you try that with the mysql command line client? 21:15
bahaa2008 no
with phpmyadmin
moritz_ $sql_cond is a variable, so you have to replace it with something useful 21:16
bahaa2008 the problem only occurs when search by text
i know
i replaced it
the problem only occurs when search by text
moritz_ so what does the replaced query look like? 21:17
bahaa2008 but with nickname it works fine
my query --> SELECT COUNT(DISTINCT day) FROM irclog WHERE AND MATCH(line) AGAINST(modem) 21:19
modem is the word i search for for example
moritz_ ah, the AND shouldn't be there
bahaa2008 same problem 21:20
what database are you used to test the code ? 21:21
moritz_ somehow I get a very different error message
because modem needs to be quoted 21:22
bahaa2008 how
moritz_ with double quotes
I use mysql-5.0.32-7etch8
bahaa2008 same error
moritz_ then you have problem with phpmyadmin, not with mysql
afk 21:23
bahaa2008 mine is 4.1.22
ok let me try command line
21:24 explorer__ joined, |jedai| left, |jedai| joined 21:25 [particle]1 left
bahaa2008 error Can't find FULLTEXT index matching the column list 21:26
moritz_ CREATE TEXT KEY `message_index` (`line`) 21:28
or something like that should help
but we're getting more and more off-topic => /msg please 21:29
21:31 jhorwitz left 21:33 jferrero left
mberends moritz_: on broken $*ERR topic, any idea what (and who) is involved in fixing rt.perl.org/rt3/Public/Bug/Display.html?id=62540 ? 21:34
moritz_ mberends: no idea. You might bug pmichaud or jnthn 21:35
mberends ok, thanx
21:37 c9s_ joined
bahaa2008 moritz_, thanks 21:46
21:53 c9s left 21:56 kcwu left 21:58 Whiteknight joined 22:01 _jedai_ joined 22:03 |jedai| left 22:06 cognominal left 22:10 DemoFreak left, DemoFreak joined 22:13 cognominal joined 22:26 ruoso joined, _jedai_ left, |jedai| joined 22:27 pmurias left 22:28 bahaa2008 left 22:33 DemoFreak left, icwiener joined, DemoFreak joined 22:46 |jedai| left 22:47 |jedai| joined 22:52 maerzhase joined 22:56 |jedai| left 22:58 |jedai| joined 23:04 bahaa2008 joined 23:13 Exodist left, pbuetow left, ejs1 left 23:15 hercynium left 23:29 [particle]1 joined 23:31 _jedai_ joined 23:32 |jedai| left 23:33 [particle] left
pugs_svn r24994 | lwall++ | [S02,S03] delete some .pos fossils 23:35
TimToady moritz++ too 23:36
23:45 km2 joined 23:46 vixey left 23:48 Limbic_Region joined 23:52 justatheory left
ruoso TimToady, one thing has been bugging me... I already understood that infix are subs, and it looks like postcircumfix are methods... are postfix and prefix methods also? 23:56
or am I misunderstanding everything?
because =$foo sure looks like a method 23:57
as well as $foo\i
but $i++ can't be a method
nor can ++$i 23:58
or is 23:59
23:59 Patterner left, Psyche^ joined, Psyche^ is now known as Patterner
ruoso or are they all subs that somehow end up calling a method? (which would make it considerably more complicated 23:59