perl6-projects.org/ | nopaste: sial.org/pbot/perl6 | evalbot: 'perl6: say 3;' | irclog: irc.pugscode.org/ | ~290 days 'til Xmas
Set by mncharity on 6 March 2009.
szabgab thanks 00:00
but wait, here TOP is a special word, isn't it ? 00:02
wayland76 Shouldn't be any more
rakudo: grammar example { rule fred { ^ \d+ $ } }; say example.parse("12") 00:03
p6eval rakudo 95ce39: OUTPUT«The grammar has no TOP rule to invoke.␤current instr.: 'die' pc 16039 (src/builtins/control.pir:204)␤»
wayland76 ok, in rakudo it is, in the Spec, no longer
szabgab rakudo: grammar example { rule fred { ^ \d+ $ } }; say example.fred.parse("12")
p6eval rakudo 95ce39: OUTPUT«Null PMC access in get_integer()␤current instr.: 'parrot;PGE;Match;new' pc 75 (compilers/pge/PGE/Match.pir:75)␤»
00:07 DemoFreak left 00:15 orafu joined 00:22 armagad joined 00:28 japhb joined 00:31 bacek_ left 00:44 PerlJam left, PerlJam joined 00:49 eternaleye joined 00:51 wknight8111 left
pmichaud afaik, TOP is still "special" in a grammar. If it's been taken out of the spec, then that's by accident. 00:54
We still need some way to indicate the "default" rule for a grammar; I think TOP is it.
The part that the spec was supposed to clarify was that matching against a grammar would be done with .parse instead of with ~~ 00:55
TimToady because a grammar is a class, and ~~ class does isa
I suppose there's something to be said for just calling the first rule in the grammar 00:58
unclear how that works with derived grammars though 00:59
wayland76 Well, the word TOP doesn't appear in the specs any more 01:03
TimToady well, .parse can do whatever it likes, and can be overridden; in fact, in STD, it calls comp_unit rather than TOP, as it happens 01:04
frooh Hey all 01:08
how can I make (with git?) and submit a patch
pmichaud I'm not entirely sure yet what the process is for creating a patch. 01:20
frooh pmichaud: it's really simple; like, three commits, 6 lines of code 01:21
I can send you a pull request?
or is that kindav a mess?
pmichaud it's a mess if the request involves a lot of separate commits.
frooh hrm
pmichaud where "a lot" == "more than one"
frooh right
and this *is* three
pmichaud what we're really wanting to have happen is for people to do --squash to convert multiple commits into a single commit to facilitate review. 01:22
but I'm not exactly sure how to do that.
frooh pmichaud: ok
pmichaud reading now.
frooh I'll figure out how to squash it into one commit
you can do more important things :-)
01:25 viklund left, viklund joined 01:26 diakopter left, diakopter joined, nihiliad joined 01:28 frooh_ joined
frooh_ so fyi 01:29
doing git rebase -i (supposed to make it easy to squash) can't be easily done if you push your changes to any repo 01:30
am I still here, or did I lose connection to freenode again? 01:33
wayland76 I think I am, therefore I may be :)
frooh_ apparently so
TimToady you sound here to me
frooh_ excellent
TimToady or there, as the case may be 01:34
I'm just quite because I don't "git" it yet
frooh_ close enough to me
yeah
me neither apparently
TimToady *quiet
frooh_ and I am the git admin at work :-)
great
wayland76 Did you see the link that masak sent out about git?
The one that explains about index?
frooh_ don't think so 01:35
one sec
wayland76 (although, if you're the git admin, you probably know about index)
frooh_ I rarely read the list during the week
wayland76: not really
my team still uses svn
so I can't get the nitty gritty stuff very often
wayland76 Google "git from the bottom up"
frooh_ I think I've read that 01:36
wayland76 That's the one masak said helped him understand git
ok. The one that helped me the most was tomayko.com/writings/the-thing-about-git
frooh_ I should read this, but I think git format-patch will get me going too
wayland76 But that was only after reading "git from the bottom up"
good :) 01:37
frooh_ well, I understand the concepts of git
and I know what I did wrong
etc
I just wish I had known not to do it first
er 01:38
rather
wayland76 oh :)
frooh_ I wish I knew how to fix it
very funny
wayland76 "The thing about git" talks about that, but not in the way you want, I think
(what's funny?)
frooh_ yeah, I noticed
well
that article says this: 01:39
Git means never having to say, “you should have”
and I said
20:37 < frooh_> I just wish I had known not to do it first
so you know
clearly I am wrong
wayland76 ok :)
I see the funniness now :)
I wonder what they'd say to that on #git?
01:40 Khisanth joined
frooh_ good question wayland76 01:43
I'll find out
got it 01:54
so what exactly do I do with the patch?
wayland76 I presume you've read wiki.github.com/rakudo/rakudo/steps...te-a-patch 01:59
frooh_ I did
wayland76 ...and that it's rakudo you're patching
frooh_ it actually only says how to make a branch
ah, phone 02:00
wayland76 No, it tells you how to send the diff
Unlike svn, et. al., you don't e-mail these things
02:00 agentzh joined
wayland76 oh, wait, you're right 02:01
frooh_ yeah, it's kinda weird
ok, I have to take this call
wayland76 but I know the answer
frooh_ I plan on adding it to the wiki when I am done
wayland76 When I submitted a patch for masak the other day for november, he said 'commit, push and then do a "pull request" through the web interface.'
So you commit back to your own fork in the repo (commit+push) 02:02
and then you go to the web interface and do a "pull request"
HTH
02:07 junzi joined 02:11 hercynium joined
diakopter here goes nuthin 02:17
frooh_ back 02:18
well shucks
since I modified history it won't let me push
02:18 alc joined
wayland76 ouch. 02:19
frooh_ I'll figure it ot
wayland76 Good :)
pugs_svn r25778 | diakopter++ | [ironperl] - initial checkin 02:20
r25778 | diakopter++ | new/amateur experimental backend for STD/viv
r25778 | diakopter++ | written in C# on the tycho VM on the Mono VM
r25778 | diakopter++ | see v6/ironperl for details. It currently
r25778 | diakopter++ | doesn't build :D; watch this space for updates
frooh_ huttah! 02:21
who should I send the pill request to? 02:25
everyone?
nm
rakudo probably
wayland76 pmichaud I'd imagine 02:26
frooh_ he's not on the list
so I suppose he is rakudo
wayland76 ok
probably 02:27
pugs_svn r25779 | diakopter++ | [ironperl] modified v6/README; added AL2 license to IronPerl src 02:28
frooh_ btw 02:33
HAPPY PURIM EVERYONE!
not that that's exciting for many people 02:34
but still :-)
wayland76 ...and boo to Haman :)
Maybe for Purim we should make a poly-Esther Parrot build 02:35
frooh_ exactly
wayland76 (if you'll excuse the double pun :) )
frooh_ I dug it
TimToady I wonder if we could work out an imperial decree that all Perl people are allowed to kill their enemies on a certain day...
frooh_ doubtful
wayland76 only one drawback...
frooh_ we'd have to be attempted to be killed first
wayland76 ...Perl people don't have enemies
frooh_ probably by Java AND php people
TimToady trooh
diakopter TimToady: wouldn't that be mass suicide? 02:36
frooh_ and I think there are more of them
wayland76 oh yeah, forgot them
SamB what about #python?
frooh_ I didn't know they hated perl
SamB though nowadays those people might be the enemies of #twisted even ...
wayland76 Isn't the python motto "There's only one way to do it"?
SamB #python is in the toilet
frooh_ that's a good point 02:37
SamB wayland76: it's not true
frooh_ TOOTDI
02:37 kjwcode joined
frooh_ haha 02:37
wayland76 Seems I was misinformed
SamB but they don't usually create two ways to do exactly the same thing
frooh_ I thought they were like that too
SamB wayland76: I didn't say it wasn't a motto
just that there IS more than one way to do it
diakopter "there's not always a better way to do it" 02:38
frooh_ There should be only one way to do it
tsboowtdi
...
weird
Taz Booty?
SamB diakopter: too bad it's undecidable whether or not there is one!
wayland76 tish-booty?
Hmm :)
frooh_ is tish a general term down ther? or is it just a name like here?
wait 02:39
is tish a name?
I am thinking trish
SamB it could be a shell for calculators ?
frooh_ nice!
wait
tish-booty?
hmmm
wayland76 tish is the noise you get when someone goes "boom-tish"
SamB tish, I mean
wayland76 (as in, drum-roll)
diakopter SamB: :)
frooh_ SamB: I got it, I just think it doesn't go with booty 02:40
SamB oh, sure ;-)
frooh_ is that like, when you impress a girl with your calculator?
wayland76 which booty, though :)
frooh_ because I am pretty sure that never happens
I've tried
diakopter SamB: I don't know, I thought it was undecidable whether or not it was undecidable.
wayland76 Actually, I read an article about a guy who impressed a girl with Excel :)
SamB frooh_: that's only because it can't play Ocarina of Time yet
frooh_ mmm 02:41
indeed
02:41 orafu left
wayland76 I'd kind of assumed that tish-booty would be a "friendly slap", or something like that 02:42
frooh_ I like that
that works
frooh_ goes to announce the news to #python
wayland76 (ie. "tish", a drum-like noise, "booty", slang for "body")
:)
frooh_ (hah, not really)
SamB what news ? 02:43
wayland76 I was just about to go there and see what their response would be :)
SamB anyway, don't go in there
frooh_ that their slogan is now Tish Booty
diakopter I thought "tish" was nick for "Morticia [Adaams]"
frooh_ I won't
SamB I like Python okay, and I *still* don't want to go in there
frooh_ they'll make my indent all my code their way
and that scares me
plus: snakes
SamB the whole place just seems to reek of idiocy these days :-( 02:44
s1n wayland76: what was the reasoning for shortening real to re and imaginary to im?
TimToady and #perl is the pinnacle of enlightenment?
s1n i mean, what the hell does $number.im mean?
TimToady it's standard 02:45
SamB TimToady: I mean, compared to the #python I used to know
wayland76 s1n: See IRC backlog
s1n what day?
wayland76 Basically, it's the way maths people do it
s1n: today
I think
I'll find it for you
SamB the community just fell to pieces at some point, I guess
TimToady I was about to suggest changing to .re and .im when they beat me to it :)
kjwcode Is it .real and .imag in Perl 6? 02:46
TimToady it's .re and .im like it is in a lot of other languages :)
wayland76 I remember when comp.lang.perl.misc started going downhill too
SamB all the cool kids just up and moved to other channels
s1n TimToady: perl6 isn't like a lot of other languages usually though :)
TimToady it is when they got the huffman coding right
SamB is glad #haskell is still doing okay 02:47
wayland76 s1n: yesterday's log, apparently
TimToady like changing -> to . for instance
wayland76 The problem is, once it's popular enough that stupid people can use it, they do. I mean, I'm the stupid people here, which is an unusual but pleasant experience for me :) 02:48
SamB hmm, where I am we use Re[] and Im[] ... I think
(of course, that's my DSP class, not a programming language ...)
wayland76 s1n: Discussion at 21:43 yesterday
search for "Complex"
frooh_ #perl on perl.org or whatever is pretty bad 02:50
they never talk about perl
and their topic says no questions
it's awesome?
we should do that
just talk about python
and no one can ask questions about anything related to perl6
TimToady python in intrinsically questionable
wayland76 No questions? What's the point?
TimToady why do you ask? 02:51
frooh_ wayland76: I dunno...so we can be like perl on perl.org?
haha, clever
TimToady you lose, we were playing the question game
you question authority, I just authorize questions 02:53
frooh_ yeah, I got it
TimToady speaking of R&G, I was the one who flipped heads ten times in a row when we were studying probablility in high school... 02:54
s1n eh, i don't really buy the reasoning (i prefer clarity over huffmanization), but then again what do i know
TimToady: you should've bought a lotto ticket, at least you'd win your money back :) 02:55
frooh_ I agree with s1n in this case...huffman should be for often used things. I think im is awesome, but I doubt I'll use it once in real code
TimToady if you do use it, you use it a lot
frooh_ well, I am sure you know better than I do
s1n i'd be willing to bet that more often than not people will mistake .re for a regex or something
TimToady if you don't, it's just a method on Complex
if you've got Complex declarations all over your code, I don't think so. 02:56
pugs_svn r25780 | diakopter++ | [ironperl] updated TODO
r25780 | diakopter++ | - forking the source of the NPEG project, a PEG
r25780 | diakopter++ | (Parsing Expression Grammar) builder that
r25780 | diakopter++ | implements packrat parsing and allows defining
r25780 | diakopter++ | a grammar incrementally, perhaps with callbacks.
r25780 | diakopter++ | Might be useful for an RE-ish engine; we'll see.
TimToady especially when it says things like $x.re == 0
frooh_ in other news, I just updated wiki.github.com/rakudo/rakudo/steps...te-a-patch to actually include how to send the patch and how to make it a single commit
pugs_svn r25780 | diakopter++ | NPEG is MIT-ish licensed.
frooh_ the name needs to be changed, but I can't figure out how 02:57
wayland76 name of what?
frooh_ Steps To Create a Patch
wayland76 Ok
frooh_ it's not really ever a patch
s1n frooh_: oh thank god! someone finally put instructions to create a single commit!
wayland76 I know, but it's what people will be looking for :) 02:58
frooh_ s1n: welcome :-)
wayland76 oh, yeah, frooh_++ :)
frooh_ wayland76: that's true. and I'm cool with that. I'm just saying
s1n rebase -i, man i had wasted a week trying to maintain my fork
frooh_ s1n: if you've already done a push to your own repo it's kindav a big hassle, but can still be taken care of
s1n frooh_: so basically, anytime i want to update my fork to the master upstream, do i need to do the rebase? 02:59
frooh_ I should make a note of that
uh
well, that's kindav a hard question
because it will pollute the single commit a lot
s1n frooh_: it's kinda something i want to do frequently
frooh_ sooh 03:00
er
03:00 Limbic_Region left
frooh_ sorry 03:00
s1n i want to say up to date without having commit access
frooh_ I'd say, update the fork
s1n frooh_: how?
frooh_ just don't merge into the brnach for whatever the feature
03:00 junzi left, aindilis left, oskie joined
s1n hmm, not sure i followed, specific directions would be nice :) 03:00
frooh_ s1n: git pull origin (or whatever you named the rakudo origin)
s1n: maybe I should add another page...
I'll do that
03:01 aindilis joined
frooh_ I'll call it: "Frew's Recommended Workflow" 03:01
and if it's good you can promote it to The
:-)
s1n frooh_: yes, for those of us who want to do development but don't have commit access, it's nice to still be able to pick up upstream changes so i can get bugfixes and other highly useful things :)
frooh_ s1n: of course 03:02
s1n great because i basically had my commits ignored doing it the old way
frooh_: can you put it on the rakudo page? 03:03
frooh_ uh, I was gonna put it in the github rakudo wiki
I don't have a rakudo.org login yet 03:04
can someone else just copy paste or link or something?
03:04 teban joined
wayland76 Did you rename it? 03:04
What's the new link? 03:05
frooh_ wayland76: no, but I am making a new article now
for a workflow
well, it's not done
I started like, 2 minutes ago
wayland76 Ok, I can add the link for that when it's useful (not done, but useful :) )
frooh_ haha, k
s1n frooh_: i can repost on the rakudo site if you want
frooh_ either is fine
I'll let you know when it's done
pugs_svn r25781 | diakopter++ | [ironperl] adding C# command-line options library (styled/modeled from Getopt::Long) 03:06
s1n desperate to know a good workflow so commits will be noticed
wayland76 But I'd advise you to sign up for a rakudo account, and ask alester for write access
frooh_ wayland76: sure, lemme finish this firs
wayland76 because we want rakudo.org to be the central clearing place
frooh_ s1n: I haven't been noticed, but I've only done one thing
wayland76 frooh_: sure, I mean over the next day or two
03:06 SamB left
frooh_ no problem 03:07
03:07 SamB joined
s1n frooh_: i haven't been noticed and i've kinda been trying for almost a year :( 03:08
frooh_ s1n: that's discouraging
for more than just you 03:09
s1n well, i'm determined... i mean i'm on year three of my master's and still have another year, so i definitely have patience 03:10
frooh_ hahaha, well, if you have the endurance for it I am sure you can pull it off
s1n i hope my determination to help doesn't run dry though
frooh_ I think that things are going to get easier for committing
s1n we'll see, i've been hearing that for a year :) 03:11
frooh_ a bunch of random people got added in the past couple days
see the commit log in rakudo
so I think it's going to happen more often
s1n those random people probably already had parrot access
frooh_ nope
s1n i read the RSS commit feed :)
frooh_ pmichaud did the commits
then you should have seen it
03:11 teban left
frooh_ lemme find it 03:11
s1n didn't see it...
frooh_ I could be wrong...
it happens 03:12
wayland76 I'm interested in seeing too :)
frooh_ ah shucks
that was just doc
s1n ah 03:13
frooh_ sorry
s1n yeah, pugs repo access is handed out like candy
but rakudo is basically just people who already had parrot
frooh_ I know
well, pmichaud said that it would be a lot easier to add stuff if they were squashed into one commit, as then he could easily review them 03:14
s1n i don't think i'd be any good at designing the language, just implementing it
great, then that's how i'm doing to do things :)
frooh_ I don't know if I will be good at either
but it can't hurt to try!
03:15 Jackk joined
wayland76 Well, I'm no good at designing the language, but I do it anyway :) 03:16
Jackk what language is perl6 coded in 03:17
wayland76 Perl6 is a spec, not a language
kjwcode Jackk: Depends on the implementation.
wayland76 people are writing 4 different implementations in 4 languages
rakudo rides on parrot, and is a combo of PIR and perl6 03:18
I think SMOP might be in C? Anyone?
pugs is in Haskell
kjwcode C or C++, IIRC.
wayland76 I forget what elf is in -- perl 6 again? 03:19
frooh_ yeah
kjwcode SMOP is in C, according to the wiki.
wayland76 And ironperl is in F# or something
but ironperl is very new
diakopter elf is in Perl 6 on an alphabet of bootstrappers, ruby in the mix somewheres
wayland76 ok.
diakopter ironperl is C#, though F# libraries welcome too... it's barely in its infancy.
wayland76 does that answer your question, Jackk? 03:20
And did you have a specific reason for wanting to know?
Jackk Just curious
and yes
I'm just surprised it's coded in more than one language 03:21
wayland76 oh, and there's an official parser/lexer implemented in Perl6
rakudo, and maybe the others, will adopt the official parser/lexer as soon as they can
Well, in many ways, there's more chance of success that way 03:22
s1n rakudo is a mix of many pieces, PIR, perl6, NQP, and some C
wayland76 s1n will be right -- ignore what I said about rakudo :)
s1n wayland76: will? i am currently, go look :)
wayland76 s1n: figure of speech :) 03:23
s1n wayland76: heh okay
pugs_svn r25782 | diakopter++ | [ironperl] updated TODO, again
s1n what's the saying, it takes a village to raise an idiot? no that's not it... it takes a hodge-podge of languages to create a new language? something like that 03:24
wayland76 I like the first one better :)
But after Perl6 is done, it'll be more like "One language to rule them all..." :) 03:25
kjwcode wayland76: No language has pulled that off yet, and I don't expect it soon. :)
s1n not a good idea, something was said like that for java and look how that worked out 03:26
kjwcode (And it's not for lack of trying, either. Java, I'm looking at you!)
pugs_svn r25783 | diakopter++ | [ironperl] added a bunch of object extensions
SamB kjwcode: I thought it was more like "one JVM to run all languages"
frooh_ which is closer to true than any other attempts at it
kjwcode SamB: Practically, it's "write once, debug everywhere".
s1n SamB: that was the .Net vm
SamB s1n: well, yes, .NET was made that way intentionally -- but Java is sorta that way too ... 03:27
wayland76 s1n: Yeah, i was more thinking of for writing languages, though. Perl6 combines the appropriate features of lex, yacc, and of course backend.
frooh_ perl first took a bunch of unix stuff
now it's taking even more! 03:28
(but more prettily :-)
kjwcode When it comes to writing language implementations, O'Caml is pretty sweet as well.
SamB ocaml would be sweeter if it weren't so damn ugly :-(
frooh_ but perl6 isn't for lang implementations. Extensions of perl will be languages
SamB: agreed
03:28 nihiliad left
kjwcode Definitely, SamB. I'm no good at O'Caml -- I just play with it occasionally. 03:29
SamB isn't sure he likes the mutation either
s1n perl5 does one thing and does it well: process text and automate tasks
hopefully perl6 will do much more :)
SamB I think most of the caml code I've seen was in Coq
kjwcode s1n: Perl 5 does a heck of a lot more than that. For example, the BioPerl people would probably like a word with you. ;) 03:30
s1n SamB: caml coq?
kjwcode s1n: It's about as appealing. ;)
SamB that is, part of the Coq theorem prover
s1n kjwcode: i know about bioperl (i wrote the new mummer module), it's still mostly text processing :)
SamB s1n: I think it meens, er, Rooster or something ...
frooh_ thinks that the most important part of computers is text 03:31
kjwcode s1n: Very true, but many problems can be reduced to text processing.
03:31 Tene_ joined
Jackk kjwcode: problem: the moon is going to crash into the earth 03:31
apply the necessary text processing to solve
frooh_ Jackk: doubtful that any coding period will help :-) 03:32
s1n kjwcode: true, there are algorithms in bioperl, but it does plenty of website automation and a lot of format processing
SamB s1n: coq.inria.fr/V8.2/doc/html/faq.html#htoc4
kjwcode Jackk: My sister-in-law is a journalist. I'm sure she could handle it. ;)
wayland76 well, but it could be for lang impls.
03:32 wayland76 left 03:33 wayland76 joined
s1n Jackk: i'd just do feed processing of the news event to determine when the proper time to &kissAssGoodbye; 03:33
crickets... 03:35
frooh_ haha
it's that what, every 20 minutes in a conversation that has the weird pause 03:36
just happened to be after s1n said that :-)
wayland76 Well, I got a disconnect/reconnect
s1n simultaneously everyone decided to pick their nose and keep quite to make me the one feel like an idiot
frooh_ wayland76: see you soon?
s1n: exactly 03:37
wayland76 no, I had one.
frooh_ had one what?
ooh
wayland76 had a disconnect
frooh_ got it
nevermind
wayland76 or maybe it was a network split
:)
frooh_ yeah
wayland76 backlogs ... :)
frooh_ it was just me and s1n in here
it was weird
everyone else got split onto some other network 03:38
frooh_ displays his ignorance of how IRC works
s1n frooh_: normally there's a bunch of disconnects
frooh_ I disabled my join/part messages
s1n wayland was the only one to get dropped 03:39
frooh_ there were so many (especially in this channel) that it was impossible to page up and read everything
frooh_ wonders if there may be a way to make a theme that would summarize that data in the timestamp or something 03:40
kjwcode frooh_: ircdiff?
frooh_ uhh, what/ 03:41
frooh_ googles
kjwcode Just a concept, not code. :)
frooh_ oh
well
I was thinking that when someone speaks next it could put like, J10/P15
or maybe just 10|15
for 10 joins, 15 parts 03:42
03:42 finanalyst left
kjwcode I was thinking of "+user1 +user2 -user3", and that made me think of a diff. 03:42
frooh_ so that if I said, "Hello?" and it said 0|50 I know something's happened
03:42 Tene left
frooh_ that could be good too, but you'd have to have it at an interval or after messages or something 03:42
kjwcode An interval would be a good start. I need to get XChat up and going again -- I've never gotten used to OS X IRC clients. 03:43
s1n pidgin colors the channel name according to the last (most important) action
i.e. red when someone has talked since i looked, blue when my name was used, grey for part/joins, etc... 03:44
frooh_ s1n: I prefer irssi
and pidgin for 1 on 1 chats
SamB s1n: sounds just like x-chat
wayland76 I'm using Konversation
s1n frooh_: i loathe the idea of having multiple programs for talking
wayland76 But I'm client-agnostic :)
frooh_ s1n: I used to, but I just really like having irssi in a screen session on the console 03:45
it works surprisingly well for me
but everything else is in pidgin
wayland76 Konversation happened to be already installed on my system, and not crash
frooh_ gmail, aim, yim
wayland76 I think I liked Xchat better, though :)
frooh_ I liked konv a lot
it had pretty animations
but I use pidgin at work
so I might as well use it here
s1n: was it you who is an emacs user, or was that skids? 03:46
kjwcode I'm waiting on a Fedora 10 install, so I'm about an hour from XChat.
s1n frooh_: i'm insulted you'd think of me as an emacs user 03:47
my public image needs work :(
frooh_ s1n: your names both have s and i (kindav) in them!
I'd never assume anyone was an emacs user
because they are so rare 03:48
well
I put vi in the workflow guide for skids then
but he's afk or something
so oh well
s1n needs no vi workflow help
i spend 9 hours a day at work using it 03:49
frooh_ haha, do you use vim or just vi?
s1n vim
the one and true editor :)
frooh_ any plugins I should know about?
s1n vim.org :) 03:50
frooh_ does perl, js, and html work
s1n perlide is useful
frooh_ perlide?
never heard of that one
I tried out perl-support
s1n yeah, it's like a perl IDE
frooh_ but it hates windows
s1n i can't remember the name of the ctag browser i use
frooh_ dang, perl-support = perlide apparently
wayland76 thoughts on eclipse? 03:51
frooh_ great for java
I couldn't use it for much else 03:52
I tried it for c/c++
wayland76 (with the Perl plugins of course :) )
s1n taglist, that's the one, it's pretty alright, omnicppcomplete is okay
kjwcode I like Eclipse with the Perl plugins. I'm in between IDEs right now, though.
wayland76 I think a parrot-ide would be cool -- works with any parrot-based language
frooh_ my roomie is using an eclipse deriv. at work for perl and it's not very good
with EPIC
wayland76: agreed
wayland76 I'm still using nano :)
frooh_ s1n: omni could use a little help 03:53
s1n wayland76: can you explain to me what the heck eclipse is?
frooh_ s1n: eclipse is the modern emacs :-)
wayland76 www.eclipse.org/
s1n frooh_: i don't usually use omni, it needs work like you said
kjwcode s1n: It's an IDE framework, more than an IDE.
s1n wayland76: i tried reading their site a dozen times and it doesn't say anything
frooh_ it's too vague
wayland76 It's an IDE written in Java (IIRC) that lets you use any language you want 03:54
s1n it's just meaningless management rambling about development
kjwcode But look at all the pretty pictures!
wayland76 ok :)
Basically, it's an IDE.
frooh_ It's a java ide that wants to be an ide for other things
s1n wow, they have a convention!
i'd rather just stick to vim :)
frooh_ yeah, you would
wayland76 The guy who said "Modern Emacs" should've said "Emacs, but with Java instead of Lisp, and a GUI" :)
s1n don't break what isn't broken, eclipse :)
kjwcode Yeah, there are a number of companies that make a fair amount of money making Eclipse-based IDEs.
frooh_ do you use surround?
I use that every day
s1n i don't do much xml 03:55
wayland76 I'd like something that better integrates an editor and a shell
s1n i do mostly c/c++ at work
wayland76 And has better doco than emacs :)
frooh_ s1n: it's still good for adding parens and quotes and stuff
kjwcode wayland76: Komodo is pretty good for editor + shell.
frooh_ my roomie was using komodo, and it was alright
no one seems to love it though 03:56
s1n i want a plugin that will auto-complete based on nearby ctags
kjwcode I don't know of a ctags plugin for Komodo. There might be one listed on the plugin site, though.
frooh_ one day I want to figure out omnicomplete and make some good defaults for perl
alright 03:57
wiki.github.com/rakudo/rakudo/frews...d-workflow
feel free to look through that and fix it up
s1n i want a plugin that will properly autogenerate doxygen comments for classes/functions for me to fill in
frooh_ I probaly forgot something
kjwcode s1n: If I could get the level of support for Doxygen in an editor that NetBeans has for Javadoc, I'd be a happy cat. 03:58
s1n frooh_: is it just outright not recommended to keep both remotes in sync (origin to upstream)?
frooh_ no, you can
and do
s1n kjwcode: i fully agree
frooh_ I just think you should do it with a feature branch
s1n huh?
03:59 hercynium left
frooh_ well, you have your fork 03:59
which is like your own rep
o
and then you have a branch per feature
you merge the upstream stuff into your_repo/master
so your master branch
which you make new branches off of
s1n how do i keep my master and feature branch in sync? 04:00
is that what the rebase -i does?
frooh_ well, theoretically the feature branch is so small that you don't have to
well, yes, but I think you shouldonly make that freature branch a single commit sized bite so pmichaud can review it easily 04:01
so do rebase -i rakudo_origin
s1n okay well, here's an example: i get time at the end of the week to work on it, but i may not have finished something in the feature branch
that's a long time to go without updating
frooh_ that's true
but I'd just check to see if they are working on the same thing
s1n i just want to make sure i have appropriate fixes for other things, but just want to squash my changes down to a single commit for pmichaud
frooh_ right 04:02
well, are you woring on pir stuff?
s1n so do i do a rebase -i upstream?
frooh_ working*
s1n: yes
s1n i have, how does that matter?
frooh_ well, for the setting stuff its easy to have things that aren't affected by other stuff
but I presume the pir is a lot more tangly
(because I have no idea about any of that :-) 04:03
s1n frooh_: well, PIR isn't hard, i have trouble with managing the repo
frooh_ I am not sure how that will change things 04:04
I am just afraid to make anything hard at all for pmichaud
s1n akk i don't want to be the lab rat on this 04:05
frooh_ as that will make it harder to accept and review commits
well
I just did it
but he didn't answer yet
s1n frooh_: i completely agree, the more difficult it is to review, the more likely they _dont_ review
wayland76 I suspect pmichaud is is Europe, which presumably means he's asleep now 04:06
s1n and some of the things i want to work on aren't just replacing the setting code
frooh_ s1n: right
s1n nordic perl in oslo?
frooh_ I'd just reccommend trying to keep features as atomic as possible
but that's maybe not reasonable 04:07
s1n easier said than done when working on things other people are working on
and what about doing multiple features?
frooh_ should be separate branches
that's common git knowledge
s1n every little thing?
frooh_ well 04:08
depends on thing
s1n that sounds like there needs to be _lots_ of reviewing going on
which i'm guessing isn't happening
if i want to do 2 features, they have to be distinct, otherwise i then have to manage that mess too
unless you know a way to hang on to multiple features while waiting for review 04:09
frooh_ uhh
well
you could have feature 1
and do my deal
and have feature 2
which is a branch of feature 1
s1n you branch the branch?
frooh_ but then you can't pull from upstream
s1n heh
frooh_ sure
s1n that doesn't seem helpful
frooh_ yo dawg
well
I am no expert in rakudo *or* git 04:10
s1n the squashing is highly useful, but branching constantly is going to be tough when the devs are reviewing patches frequently
frooh_ but no one had even mentioned how to do this stuff, so I figured I'd give it a shot
s1n frooh_: oh i did too, which is why i gre frustrated 04:11
frooh_ it shouldn't make it harder
it should make it easier
so pmichaud emails you and says change x in you patch
s1n s/are/arent/ sorry
frooh_ if you made it it's own branch you just git co feature
and make your changes
and your good
go back to work on what you were doing
wayland76 my good what?
:)
frooh_ you're* 04:12
sorry
it's late here
s1n well i wasn't getting that feedback, which indicates there was no review
wayland76 :)
frooh_ s1n: that's true
and there should probably be something done about htat
s1n so if there's no review, git's model breaks down?
frooh_ no
OSS model breaks down
s1n well hell 04:13
frooh_ branches don't require review
wayland76 Late tonight AU time, I'll try to remember to push the reviewing idea at pmichaud when he's up again
s1n wayland76: i'm meeting up with him on TR, i'm going to push it then too
frooh_ ok, well, I hope that article helps
wayland76 TR?
frooh_ feel free to link to it and whatnot
s1n frooh_: it does, thank you for helping
frooh_ I have to get to bed
s1n wayland76: thursday 04:14
wayland76 frooh_: Good starting point if nothing else
s1n: Thanks :)
frooh_ no prob bob.
s1n frooh_: i've got some work on thursday, i'll try it out then
wayland76 'night 04:15
04:16 meppuru joined 04:17 meppl left, meppuru is now known as meppl
wayland76 Updated www.rakudo.org/developers-guide to link to Frew's recommended workflow 04:19
frooh_ s1n: you still here? 04:21
because I have an idea that I think will work
s1n frooh_: yes i am (working on thesis), what's up?
do tell
frooh_ so the squash part
you choose one first one and then squash the rest into it
04:21 pidus left
frooh_ just choose not to squash in the merge 04:21
so you can merge upstream stuff into your branches
and even merge other branches in 04:22
just don't squash those in when they are done
so that it still just looks like one tiny commit to pmichaud
s1n i don't know enough about git to know how to do that, but it sounds alright
frooh_ well
when you do git rebase -i <foo> it helps you with that
s1n that will keep the merges from other squashes out of the new squash?
frooh_ but I'll put more details on that when I am not dripping wet from the shower :-) 04:23
yeah
ok
back into the shower
s1n eww okay, i'd like to see that
err the write up
wayland76 I'm not so sure
oh :)
s1n should just stop typing now
wayland76 Well, it's probably less embarassing than some of the stuff on the Return of the King movie appendicies 04:25
s1n permission for a flyby?
wayland76 What's a flyby? 04:26
s1n uhh wow, backfired, lemme rephrase: what are you talking about in reference to the RotK? 04:27
04:28 alc left
wayland76 Well, some of the stuff in the interviews and stuff that are attached to the extended edition seems like it could be embarassing for the actors :) 04:30
s1n never seen it 04:31
but i will say this
Text::Sentence, Text::Autoformat, Text::ExtractWords all rock (as do many of the Lingua::EN packages)
a godsend, save me countless hours of painstaking work 04:32
wayland76 I had something to do with Lingua::EN::Inflect at one point, I think
Cool. I'll investigate those :)
s1n conway's module? seems overly ambitious
Lingua::Stem and Lingua::Syllable are highly useful too 04:33
wayland76 Not Conway's -- maybe something else then
s1n err Lingua::EN::Syllable
Inflect is damian's 04:34
wayland76 I forget what it's called then :)
s1n though Inflect has some very useful features too 04:35
i just wanted to mention that because #perl seems determined to not discuss anything perl :) 04:37
wayland76 I'm going to join #perl and see if it's as bad as people say :) 04:38
s1n wayland76: while you're there, ask a simple question too, something easy 04:39
wayland76 No thanks :)
araujo just don't mention perl6
wayland76 jerkface03 has just done that :)
araujo and you will be fine
frooh_ ok
I added more details on what I mentioned before 04:40
so s1n you should be able to pull as much as you want
I couldn't test the merge part (the last snipppet) becasue I can't get wrapped up in this this late 04:41
wayland76 I just answered a simple question :)
frooh_ but I assure you I will be the guinne pick tomorrow
er
guinnee?
wayland76 guinea
frooh_ guinea
yea
that
sorry
it's late 04:42
anyway, hope that helps
I'll test it tomorrow
s1n wayland76: #perl on irc.perl.org?
frooh_ and hopefully all will be well
now, goodnight for real!
wayland76 oh, no, freenode #perl
s1n frooh_: i greatly appreciate the help
wayland76 Ah, I see -- I tried the channel you recommended. 04:44
s1n i saw 04:45
wayland76 :)
s1n i dare you to ask when perl6 will be released, lol
wayland76 "Every step you take, I'll be watching you"
No thanks. I don't think my rep can handle it yet :)
s1n given your name is in the spec, i'm sure it'll be fine 04:48
wayland76 Well, I've got rep *here*, but I might need rep over there someday too :) 04:50
s1n ugh, it's late 04:52
bed&
wayland76 'night :) 04:53
karma fix; C and its OO successor are good, but not that good :) c/c-- c/c-- c/c-- c/c-- c/c-- c/c-- c/c-- c/c-- c/c-- c/c-- c/c-- c/c-- c/c-- c/c-- c/c-- c/c-- c/c-- c/c-- c/c-- c/c-- 04:54
NoirSoldats What about D?
wayland76 D doesn't have as good karma, so it doesn't need minusing :) 04:55
NoirSoldats D++ D++!
NoirSoldats ducks.
wayland76 @karma D 04:56
lambdabot D has a karma of 2
wayland76 See
@karma c/c
lambdabot c/c has a karma of 44
NoirSoldats Awww, I love lambdabot!
lol
wow
@karma perl6
lambdabot perl6 has a karma of 3
NoirSoldats ROFLMAO
wayland76 And that's after all those minuses I gave it too
It was 65 before :) 04:57
NoirSoldats Scary, from a perl channel..
@karma perl
lambdabot perl has a karma of 1
wayland76 @karma haskell
lambdabot haskell has a karma of 49
NoirSoldats :(
perl++ 'cause I <3 perl
@karma php
lambdabot php has a karma of 0
NoirSoldats php--
wayland76 php-- :)
NoirSoldats cheers! 04:58
wayland76 @karma php
lambdabot php has a karma of -2
NoirSoldats Atleast something is in the right.
wayland76 There's only one thing in favour of PHP
It doesn't have 5 different competing templating systems :)
NoirSoldats Yes it does...
But even worse, it has 500000 different competing frameworks. 04:59
wayland76 Well, in a way, but not at the lowest level :)
NoirSoldats Well, that's true.
wayland76 But thanks for restoring my perspective on templating :)
NoirSoldats *snickers*
Apollo and Sheba kissed! 05:00
*coughs* I now return you to your regularly scheduled perl6 chat..
wayland76 ?
Is that a TV show? 05:01
NoirSoldats wayland76: Watching the last episode of the original BSG.
Battlestar Galactica.
wayland76 I grew up without TV :)
Oh, ok :)
@slap NoirSoldats 05:02
lambdabot secretly deletes NoirSoldats' source code
NoirSoldats They sure were boring in 1978, not a single sex scene (not even a fade to black) in the entire series! 05:03
wayland76 Sorry, just wanted to try that :)
NoirSoldats *wimpers*.
Oh.. *rechecks out his source from the git repo*
Only a total of about 5-7 kisses in the whole series too.
wayland76 Well, so put a modern film in your DVD player, and just switch back and forth whenever you want to see kissing :) 05:04
NoirSoldats *giggles* I have Dark Knight here.. don't think there' smuch fussy stuff in it either.
wayland76 @todo 05:05
lambdabot 0. SamB: A way to get multiple results from a google search
1. dons: improve formatting of @dict
2. dons: write Haskell Manifesto
3. lispy: don't let lambdabot's prettyprinter split the sequence @foo across lines
4. TheHunter: priviledged users should get priviledged listcommands.
[29 @more lines]
wayland76 ? 05:06
NoirSoldats lol
wayland76 @girl19 05:07
lambdabot I'm in Moscow, Russia
wayland76 hi @girl19
hi girl19
Sorry, trying to get a response from the bot :) 05:08
NoirSoldats Talk to purl, she's cuter.
And with more spunk.
wayland76 @palomar
lambdabot That's nuts!
wayland76 @palomer
lambdabot Blargh!
wayland76 @palomer
lambdabot They're telling you lies!
wayland76 Anyway... :) 05:09
(parrot compiles aren't very exciting the 20th time through :) ) 05:12
05:14 kjwcode left 05:15 finanalyst joined 05:19 finanalyst left 05:21 sri_kraih_ joined 05:27 pidus joined 05:38 sri_kraih left 05:39 alc joined
diakopter stares at the scrollback 05:45
05:47 kate21de joined
wayland76 well, admittedly, it is kinda amazing :) 05:51
05:58 kate21de left 06:17 kate21de joined 06:31 pidus left 06:34 zamolxes joined 06:36 justatheory left 06:38 PZt left 06:43 |jedai| left 06:45 wayland76 left 06:47 |jedai| joined, Jackk left 07:04 kate21de left, kate21de joined 07:08 pmurias joined
moritz_ good morning 07:14
07:16 Psyche^ joined, PZt joined
pmurias moritz_: good morning 07:19
pugs_svn r25784 | moritz++ | [v6/README] link to tycho 07:28
07:31 jferrero joined 07:32 Patterner left, Psyche^ is now known as Patterner 07:34 wayland76 joined
diakopter pmurias: hi 07:36
moritz_: howdy
moritz_ tries to build mono to be able to build ironperl 07:38
diakopter heh; see my commit note; it doesn't build currently... lots of work-in-progress
though if you comment out a bunch of stuff, it builds :P
moritz_ I need mono and mcs from svn, right? 07:39
diakopter I heartily recommend it, yes
2.4 will soon be released
and when it is, 2.4 will be good enough for a long while
in fact, there might be a 2.4 branch...
moritz_ but it will also take a long while until there are debian packages for it 07:40
so I can just as webuild it from souce
diakopter right.. one of the TODO is to create a --gen-mono option (like rakudo's --gen-parrot)
diakopter hacks in command-line options and stdin slurping 07:41
pmurias diakopter: hi 07:44
diakopter It's cool how fast gmcs (mono) compiles to bytecode (CIL).... it's speedy. for lots of files, too. in a vmware vm. on a notebook. 07:45
like, less than 2 seconds to entirely rebuild
all of tycho and everything
moritz_ it's a bit frustrating here 07:46
diakopter building mono?
moritz_ I've svn co'd mono and mcs
diakopter oh, I should've mentioned
you don't want everything
moritz_ and mcs tells me "look in mono's INSTALL file"
diakopter you don't want mcs
moritz_ and in mono there's no INSTALL file
diakopter sec
moritz_ I don't?
diakopter www.mono-project.com/Compiling_Mono_From_SVN 07:47
oh, ok
moritz_ so what do I compiler ironperl with, if not with mcs? 07:48
diakopter gmcs
g(enerics)mcs
which is in that mcs dir, I'm sure 07:49
see I wrongly checked out all of trunk
b/c I hadn't found that url above yet
and built way too much stuff 07:50
so I don't know what came from where :)
moritz_ do I have to check out the mcs tree below mono?
it doesn't look like from the docs, but ./autogen.sh doesn't compile mcs if I check them out into the same dir
diakopter you mean below trunk? 07:51
oh, no, sibling
definitely not same dir
there are tons of dirs under trunk 07:52
moritz_ that's wrong on the web page then
diakopter they're not independent, but I don't think they can coexist in the same dir...
moritz_ I mean I checked them out to ~/tmp/mono and ~/tmp/mcs
pmurias diakopter: why do you depend on svn mono?
moritz_ and went to ~/tmp/mono and did a ./autogen.sh there 07:53
and that didn't seem to build mcs
diakopter oh
moritz_ which is why I thought maybe mcs should go to ~/tmp/mono/mcs instead
I'm trying that now
diakopter no, I think the problem is you don't have a 2.2 mono installed already 07:54
since it uses gmcs to build mono/gmcs
moritz_ so ~/tmp/mono/ and ~/tmp/mcs/ *are* right?
diakopter I'd go with the webpage, yes
moritz_ I do have a system gmcs installed 07:55
diakopter pmurias: I think b/c 2.4 has C# string eval
moritz_: oh, good
moritz_ it's just not that fresh
ii mono-gmcs 1.9.1+dfsg-6 Mono C# 2.0 and C# 3.0 compiler for CLI 2.0
diakopter ah 07:56
pmurias ruoso: i'm doing the capture refactoring now
moritz_ it feels *so* weird to compile to .dlls on linux :/ 07:59
07:59 aindilis` joined
diakopter you can actually add the PE bin format with a kernel extension so they're "executable" without invoking mono first 08:00
.exe I mean
well, it doesn't need .exe even
08:05 aindilis left 08:07 Kimtaro left
diakopter so, --gen-mono can do: ironperldir=`pwd`; mkdir bin ; mkdir monosrc ; cd monosrc ; (foreach mono, gmcs, I don't think gtklib is needed?? maybe it is): svn co ... ; cd mono ; ./autogen.sh --prefix=$ironperldir/bin ; make ; make install ; 08:09
moritz_ so mono build fails 08:11
MCS [default] convert.exe
Cannot open assembly '../../mcs/class/lib/default/mcs.exe': No such file or directory.
diakopter hm, I guess it wants mcs dir built first?
moritz_ I thought ./autogen.sh takes care of that? 08:12
diakopter though, I thought that bootstrapping binaries were included in the svn co
well, bytecodearies
obviously it's not finding your mcs dir...
or not looking for it anymore
who knows.
moritz_ anyway, I've gotta run, maybe I'll try again later today 08:13
diakopter either way, sounds like something to report to #mono on gimpnet
08:13 ujwalic joined
pugs_svn r25785 | pmurias++ | [smop] native capture .positional(0) treats the invocant as a positional 08:15
08:16 aindilis` left
pmurias diakopter: i looked a bit at ironperl/Tycho and i'm not sure it 08:17
diakopter not sure it...? 08:18
pmurias 's a good idea to modify them rather then writing the Perl 6 runtime from scratch
diakopter why might it be better to start from scratch?
pmurias the have a vasty different iterface for a start 08:19
diakopter they=what? There is a lot that I kept in those dirs that won't be used directly. Mostly the Tycho.Runtime namespace is what will be useful. 08:20
which interface do you mean? 08:21
pmurias they have a different method set from their Perl 6 counterparts 08:23
and the stuff in Tycho/Runtime seems to consist of rather thin wrappers
diakopter an example of a method set that's different? I'm not doubting what you're saying; I just want to know the specifics. 08:24
pmurias compare Hash with DictionaryObject the methods are named differently, Hash has a lot more and postcircumfix:<{ }> returns a bvalue 08:28
and the actuall work seems to be done by Dictionary 08:30
diakopter I guess I'm not seeing the disadvantages here... to me it sounds like you're saying "it hasn't already implemented Perl 6, so it would be easier not to use it"...?
the wrappers are there to provide the contextual conversions 08:32
pmurias the wrappers don't seem to be any closer to Perl 6 than the things they wrap 08:33
diakopter pmurias: it's b/c the objects have to extend AnyObject 08:34
for all the auto-casting to work elegantly
afaict
(I suspect)
pmurias does tycho use C#'s method dispatch or use it's own? 08:35
08:35 Kimtaro joined 08:36 DemoFreak joined
diakopter depends on what binds to what. for operations that it detects can be "native", it downcasts to the underlying native types 08:36
08:36 pidus joined
diakopter which then of course don't need to pass through the custom dispatcher 08:36
the custom dispatcher at the language level is part of Tycho.Language, I think, so I won't be using it 08:37
(we'll have to write it)
pmurias like using AnyObject.foo instead of AnyObject.InvokeMethod(..."foo"...) if AnyObject has a foo method
diakopter right, for the Tycho.Native types (mostly numerics and strings), when it compiles to bytecode it compiles to the native C# operations. but yes for anything that's not built into C# primitives or Tycho.Native, it uses InvokeMethod and kin 08:38
pmurias re "would it be easier not to use it" - you will have to rewrite all of it, and you will just end up inheriting a lot of (potentially strange) design decisions from Tycho 08:41
diakopter okay, and I don't see a problem with having to rewrite [all/much of] it. I think it's a great basis from which to start. I've studied the constraints and barriers in the system, and I don't see any that might be a hindrance (a potentially strange/inappropriate design decision). 08:44
08:45 ejs joined, masak joined
diakopter Besides, I'm going to be essentially doing code-generation from mildew/STD->tychoAPI, so why do the method names need to match? such substitutions are just part of the mapping/translation. 08:50
pmurias we have $foo."$bar" 08:52
masak good morning, Perl 6 world!
lambdabot masak: You have 1 new message. '/msg lambdabot @messages' to read it.
masak ooh!
@messages
lambdabot wayland76 said 10h 55m 21s ago: in regards to CPAN6, see cpan6.org/ and S22 :)
masak wayland76: I know about both. why do you want me to look at them now?
diakopter pmurias: what do you mean? 08:55
(what about $foo."$bar"
)
moritz_ if you have different names in your backend, you need to keep the translation tables around at run time 08:56
because users can generate method calls at run timie
diakopter erm 08:57
Matt-W Morning
masak Matt-W: hiya.
wayland76 masak: I forget now :). It was something from the backlog, I think. I think the point was, the CPAN6 guy things CPAN6 will replace CPAN 08:58
diakopter erm; this is a compiler for a runtime. none of this corresponds at all to the Perl 6 object/system model
masak wayland76: with all due respect to that guy, until there's something I can push to, I don't feel it affects me much.
wayland76 Does anyone know how I revert my git changes?
masak: Agreed :)
masak wayland76: yes. you already committed? 08:59
moritz_ wayland76: did you push them yet to anywhere?
wayland76 No, I made changes, but then found better changes attached to a ticket
diakopter I'm very confused why both moritz and pmurias are saying that Tycho is a bad choice for a VM since it doesn't already implement Perl 6. The author of Tycho couldn't have cared less about Perl or Perl 6, let alone knew about Perl 6... What's wrong with building on top of someone else's VM?
masak wayland76: git checkout
wayland76 So I want to get rid of mine, and then patch from diffs
moritz_ non-commite changes can be reverted with 'git-checkout .'
wayland76 ok, I'll try it
moritz_ diakopter: I never said that Tycho was a bad choice, I don't know enough about it to judge it. 09:00
wayland76 Ah, with -f. Thanks
moritz_ diakopter: and maybe I completely umisunderstood your and pmurias' point abotu names
diakopter that's like saying b/c Parrot's method names for its PMCs don't correspond to Perl 6's method names.
I mean, so what? 09:01
it's a VM
of course there is translation
if it does the compilation well, then there is less lookup.
if not, so what?
Matt-W Depends how fast the lookups are 09:02
you don't want to lock yourself out of performance right from the start
moritz_ diakopter: I think the point was mostly that Tycho is an indirection layer on top of the vm, and that you'll need another one (lookups) to get the names right... 09:03
pmurias it's more of a premature optimalisation sort of thing as all you need is InvokeMethod
diakopter I'm sure I'm being overly defensive, and perhaps you mean well in our advice, but I think it's somewhat presumptuous to prophesy failure just because there is a virtual machine (or two, or eight, or a googol). 09:04
moritz_ diakopter: and that in an ideal world the layer on top (which is now Tycho) could be replaced by something that gets the names "right" from the start
but I don't think it's really necessary
diakopter of course, I did already state above (I thought several times) that I wasn't going to use a lot of what I committed. 09:05
moritz_ anyway, please don't be discouraged by our critique, we're just trying to be helpful, in our own way 09:06
09:06 ejs1 joined
diakopter I am not discouraged in the least; I'm trying very hard not to take offense. 09:07
Matt-W: that kind of statement "you don't want to lock yourself out of performance right from the start"... has no qualifications. Without any specifics of magnitude or even how to measure it, that statement is totally unhelpful, because someone could spend forever trying to optimize the system from the start (horribly prematurely). Prototyping language implementations is not about writing the optimized version. Most of the academic papers I've read o 09:12
At no time (EVER!) did I claim that I was writing THE Perl 6 runtime, as pmurias put it above ("... writing the Perl runtime ..."). I was very careful to state in my commit message that this is an experimental, AMATEURISH attempt. 09:13
masak diakopter: your message was cut off at "I've read o".
diakopter Most of the academic papers I've read on language implementations started out the prototyping on a (slower) higher level language because it was much faster to implement, to see how it goes.
wayland76 Matt-W: He won't lock himself out, he just might have to write a few things to replace other things
09:19 ejs left 09:20 diakopter left
pmurias brb 09:24
09:24 pmurias left, drbean_ joined
masak rakudo: my $a = "ABC"; $a R~= "DEF"; say $a 09:27
p6eval rakudo 95ce39: OUTPUT«ABC␤»
masak :/
bacek good evening 09:29
masak bacek: privet.
Matt-W hi bacek
bacek backlogged about Tycho. 09:31
09:32 ejs2 joined
bacek Guys, I modern VM you can write as many levels of abstractions as you can. It really doesn't matter. All of them will be optimised out. 09:32
masak once again writes loop { ... } while $cond 09:33
bacek Even JVM will replace stupid enclosed "for"s with hash or merge joins.
masak argh! why doesn't the compiler stop me from being stupid?
wayland76 Too big a task :)
(almost as big as stopping me from being stupid :) ) 09:34
masak wayland76: in this particular case, though... there's really no reason, _ever_, to write that.
bacek To stop being stupid someone have to write compiler which understand stupidity... It's almost impossible.
masak and when I do, I'm surprised it doesn't do what I want.
bacek: but in this particular case.
bacek masak: even in this one :) 09:35
masak I'd at least like a warning.
bacek: no, it's really, really easy.
just detect whether the 'loop' construct has a 'while' or 'until'.
because they won't ever do what the programmer means.
wayland76 which compiler are we talking about here? Rakudo? 09:36
masak wayland76: for example, yes.
I don't know any compiler that warns about this.
wayland76 Address it to TimToady :) 09:37
bacek wishes to have telepathic compiler...
masak wayland76: well, it's not necessarily a spec thing.
wayland76: it's just a service an individual compiler could do the user. 09:38
'You wrote loop { ... } while ... -- did you mean repeat { ... } while ... ?'
wayland76 Wouldn't it be in STD?
masak "Cuz the latter one ACTUALLY CHECKS the condition.'
wayland76: I guess it could. 09:39
wayland76 loop { ... } while (condition) { somethingelse }
?
masak wayland76: lose the paren. no, just loop { ... } while $condition.
wayland76 And doesn't TimToady control STD? :)
masak wayland76: I'm not saying STD necessarily has to check for this.
but I think compilers could, as a service.
oh well.
moritz_ but if it does, all other compilers will eventually :-) 09:40
wayland76 bacek: Why stop at a telepathic compiler. I'd like a telepathic editor
Matt-W I thought loop {} while $cond was illegal
bacek wayland76: why bother with editing code???
wayland76 With a telepathic display, so I can carry it in my pocket, and work on it while I'm driving :)
moritz_ std: loop { ... } while 1 09:41
p6eval std 25785: OUTPUT«##### PARSE FAILED #####␤Malformed block at /tmp/RQH24JJprc line 0:␤------> ␤ expecting any of:␤ infix or meta-infix␤ infix stopper␤ parameterized block␤ standard stopper␤FAILED 00:02 34m␤»
wayland76 bacek: Well, but then we'd all be out of a job :)
masak rakudo: loop { ... } while 1
p6eval rakudo 95ce39: OUTPUT«No exception handler and no message␤current instr.: 'return' pc 15706 (src/builtins/control.pir:39)␤»
masak eh?
rakudo: loop { ... } while 1; say "Alive"
bacek wayland76: it depends what kind of mind do you have :)
p6eval rakudo 95ce39: OUTPUT«No exception handler and no message␤current instr.: 'return' pc 15706 (src/builtins/control.pir:39)␤»
masak surely that's a bug?
09:42 drbean left
Matt-W masak: looks like rakudo got confused 09:42
wayland76 rakudo: loop { say "hi"; $count++; } while $wayland < 10; 09:43
p6eval rakudo 95ce39: OUTPUT«Scope not found for PAST::Var '$count' in ␤current instr.: 'parrot;PCT;HLLCompiler;panic' pc 146 (src/PCT/HLLCompiler.pir:102)␤»
wayland76 rakudo: my($count);loop { say "hi"; $count++; } while $wayland < 10;
p6eval rakudo 95ce39: OUTPUT«Scope not found for PAST::Var '$wayland' in ␤current instr.: 'parrot;PCT;HLLCompiler;panic' pc 146 (src/PCT/HLLCompiler.pir:102)␤»
09:43 ejs1 left
masak (duh) 09:43
wayland76 rakudo: my($count);loop { say "hi"; $count++; } while $count < 10;
moritz_ my($count) is a sub call.
wayland76 rakudo: my $count ;loop { say "hi"; $count++; } while $count < 10; 09:44
moritz_ (or at least it should be)
masak moritz_: yet it didn't complain.
wayland76 thanks :)
It didn't respond in any way
@slap rakudo
lambdabot places her fist firmly on rakudo's jaw
masak wayland76: it's looping.
wayland76: see why I think this is bad?
bacek std: my $count ;loop { say "hi"; $count++; } while $count < 10;
09:44 p6eval left 09:45 p6eval joined
wayland76 rakudo: my $count ;loop { say "hi"; $count++; $count > 10 and last; } while $count < 10; 09:45
p6eval rakudo 95ce39: OUTPUT«hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤Could not find non-existent sub while␤current instr.: '_block14' pc 137 (EVAL_18:68)␤»
wayland76 masak: Of course :)
bacek std: my $count ;loop { say "hi"; $count++; } while $count < 10;
p6eval std 25785: OUTPUT«##### PARSE FAILED #####␤Malformed block at /tmp/A8YlGqSy7h line 1:␤------> say "hi"; $count++; } while $count < 10;␤ expecting any of:␤ parameterized block␤ standard stopper␤ terminator␤ whitespace␤FAILED 00:04 35m␤»
wayland76 @karma $count 09:46
lambdabot $count has a karma of 0
bacek std: my $count; loop { say "hi"; $count++; } while $count < 10;
wayland76 @karma count
lambdabot count has a karma of 0
p6eval std 25785: OUTPUT«##### PARSE FAILED #####␤Malformed block at /tmp/HGNsCdZDaS line 1:␤------> say "hi"; $count++; } while $count < 10;␤ expecting any of:␤ parameterized block␤ standard stopper␤ terminator␤ whitespace␤FAILED 00:04 35m␤»
wayland76 good :)
masak feels that something ought to be submitted to rakudobug here
I just don't know exactly what. 09:47
wayland76 Well, we could be looping 10 times to put a delay in, so it won't run to fast :)
bacek looks like "loop { } while" isn't legal syntax :)
Matt-W looks like it is
it just thinks 'while' is a new statement
masak Matt-W: no.
wayland76 std: my $count ;loop { say "hi"; $count++; $count > 10 and last; } while $count < 10;
p6eval std 25785: OUTPUT«##### PARSE FAILED #####␤Malformed block at /tmp/i058fwol2d line 1:␤------> count > 10 and last; } while $count < 10;␤ expecting any of:␤ parameterized block␤ standard stopper␤ terminator␤ whitespace␤FAILED 00:04 35m␤»
masak Matt-W: it interprets the 'while' as a statement modifier.
bacek masak: it tries to. 09:48
wayland76 rakudo doesn't catch it, but std does
so when rakudo adopts std, this problem will go away :)
masak bacek: Rakudo doesn't just try to, it succeeds (and loops infinitely as a consequence)
Matt-W masak: but loopy statement modifiers on loop { } are completely useless, so it needs to be smarter about that?
masak wayland76: if I thought like that, not many bugs would be submitted. :P
Matt-W: yes, definitely. 09:49
Matt-W: that's what we're talking about, that Rakudo does this wrong.
for one thing, it doesn't adhere to STD on this point.
09:49 zamolxes left
masak maybe that's actually the bug. 09:50
Matt-W deviation from STD is usually a bug, isn't it?
masak Matt-W: aye
rakudo: loop { say "OH HAI"; last } while 1
p6eval rakudo 95ce39: OUTPUT«OH HAI␤Could not find non-existent sub while␤current instr.: '_block14' pc 119 (EVAL_17:63)␤»
masak WTF? 09:51
moritz_: why does it do that?
moritz_ I thinks that the statemetn is ended after the } 09:52
Matt-W that's what made me think it wasn't seeing a statement modifier
because it's clearly going hunting for a sub called while
moritz_ then tries to parse the while as a loop
09:52 ejs2 left
moritz_ fails 09:52
then parses it as a sub call
masak moritz_: that's just wrong.
wayland76 rakudo: loop { say "OH HAI"; last } while 1 == 1;
moritz_ it is.
p6eval rakudo 95ce39: OUTPUT«OH HAI␤Could not find non-existent sub while␤current instr.: '_block14' pc 137 (EVAL_17:67)␤»
09:52 mberends joined
masak submits rakudobug 09:52
wayland76 rakudo: loop { say "OH HAI"; last } while my $count < 10; 09:53
moritz_ rakudo: loop { say "OH HAI"; last } while 0 { say "in while" }
p6eval rakudo 95ce39: OUTPUT«Redeclaration of variable $count␤OH HAI␤Lexical '$count' not found␤current instr.: '_block14' pc 110 (EVAL_18:61)␤»
rakudo 95ce39: OUTPUT«OH HAI␤»
moritz_ there you go
masak moritz_: thanks
moritz_ it treats like there was a ; after the }
rakudo: loop { say "OH HAI"; last } while 1 { say "in while"; last }
p6eval rakudo 95ce39: OUTPUT«OH HAI␤in while␤»
09:53 pidus left
moritz_ how sick must I be to know in which way Rakudo mis-parsed some input? *g* 09:55
(without looking at the parse tree, that is)
wayland76 @karma-all
lambdabot "moritz" 418
"pmichaud" 292
"lwall" 222
"pmurias" 216
"azawawi" 124
[937 @more lines]
wayland76 There's your sickness rating :)
moritz_ thanks :-) 09:56
@karma TimToady
lambdabot TimToady has a karma of 20
moritz_ @karma moritz_
lambdabot You have a karma of 34
wayland76 @karma larry 09:58
lambdabot larry has a karma of 26
wayland76 The only one in the top 10 whose karma is out of place is jonathan, I think
@karma c/c haskell perl perl6 php 09:59
lambdabot c/c has a karma of 44
wayland76 @karma haskell perl perl6 php
lambdabot haskell has a karma of 49
moritz_ @karma jnthn
lambdabot jnthn has a karma of 74
wayland76 @karma perl perl6 php
lambdabot perl has a karma of 2
wayland76 @karma perl6 php
lambdabot perl6 has a karma of 3
moritz_ @karma jonathan
lambdabot jonathan has a karma of 65
wayland76 @karma php
lambdabot php has a karma of -2
wayland76 perl6++ :)
bacek @karma bacek 10:02
lambdabot You have a karma of 35
bacek I have to check karma on #parrot 10:03
10:03 alc left 10:05 krunen joined
bacek moritz_: (about karma :) can you review nopaste.snit.ch/15832? 10:10
moritz_ bacek: it looks fine to me... 10:17
could you submit it to rt?
I'm kinda busy right now :(
bacek moritz_: easy
lemme few seconds to squash all commits. 10:18
10:23 wayland76 left 10:24 wayland76 joined
pugs_svn r25786 | masak++ | [u4x/TODO] s/word/ww/ 10:26
masak did someone reply to poor Stephen Schoenberger who seems to think that p6l is a forum for Perl 5 questions? 10:34
wayland76 I did 10:35
moritz_ good
masak wayland76++
wayland76 Told him to go elsewhere, and answered his question :)
(but more politely :) )
Is there a good forum for basic perl5 questions?
moritz_ perlmonks.org 10:36
masak #perl on this server.
wayland76 Ah, of course
I'll tell him those
masak great.
moritz_ masak: isn't #perl more of a bashing channel?
masak moritz_: I think that's #perl on irc.perl.org
moritz_ ah
masak but I'm not sure, I'm seldom on either.
#bash is a bashing channel, though. :) 10:37
the guys there are good, but very sharp-tongued.
10:38 pmurias joined
pmurias rehi 10:38
moritz_ well, there are also sharp-tongued people on perlmonks
but usually some of the replies are friendly as well
masak sharp tongues have their uses.
moritz_ aye
they encourage you to read the docs 10:39
10:39 rkendall joined
wayland76 I have a sharp tongue with those who won't help themselves 10:39
I checked out the #perl channels today, and my experiences aligned closely with what masak described 10:40
masak rakudo: &map.assuming({}
p6eval rakudo 95ce39: OUTPUT«Statement not terminated properly at line 1, near "({}"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤»
masak rakudo: &map.assuming({})
p6eval rakudo 95ce39: OUTPUT«Null PMC access in find_method()␤current instr.: '_block14' pc 85 (EVAL_16:42)␤»
masak submits rakudobug 10:41
moritz_ rakudo: &map.assuming({}); say "alive"
p6eval rakudo 95ce39: OUTPUT«Null PMC access in find_method()␤current instr.: '_block14' pc 84 (EVAL_17:42)␤»
masak aye, that's more informative.
10:43 ejs joined 10:44 ihrd joined
bacek moritz_: github.com/bacek/rakudo/commit/cc75...96cae9bbde I've send it to [email@hidden.address] But I'm not sure about my git-send-emailf-u 10:45
ouch. git-send-email-fu
pugs_svn r25787 | pmurias++ | [smop] revert previous naive commit 10:49
r25787 | pmurias++ | [mildew] fixe to work with the HEAD STD
r25787 | pmurias++ | t/our_sub.t fails due to a ref-counting issue
bacek moritz_: ok, I broke RT... Can you merge #63764, #63762 and #63698 please :-/ 10:50
moritz_ merged. 10:52
but you should comment which one is the best 10:53
bacek moritz_: ok. I'll do it in "old good way via RT" :) 10:55
ihrd hi there! C<is context>, C<< CALLER::<$var> >> and other scope managment not implemented yet in Rakudo? 10:59
moritz_ CALLER is not 11:00
is context - dunno
lunch & 11:01
masak has never seen 'is context' in live Perl 6 code
bacek "is context" some kind of zombie anyway :) 11:02
ihrd rakudo: my $var is context<rw> = 'Boo!';
p6eval rakudo 95ce39: RESULT«"Boo!"»
ihrd bingo!
;)
masak ihrd: that doesn't necessarily mean anything :)
ihrd yes :)
masak normal variables can do that too.
ihrd yes, and I ask my question becasue of this 11:03
I found I can use set this trait 11:04
but OUTER::<>, CALLER::<>, CONTEXT::<> do not work 11:05
and do not parse
masak no.
patches welcome :)
ihrd I know :) 11:06
Matt-W When I was looking at form, it seemed that 'is context' is gone 11:07
although it was unclear if there was any sort of replacement to let you do something similar
masak Matt-W: what does it do? 11:08
bacek moritz_: #63712 can be closed now.
ihrd I still see it in S02 and S06, but mb it is out of date
bacek moritz_: #63714 and #63716 should be merged...
ihrd masak: see S06:2661 11:09
masak ok.
Matt-W masak: E07 talks about sub format(*@args is context(Scalar)), which would cause @arrays passed as arguments to not be flattened into the argument lists
so you can say format("picture", @data, $other_data)
masak Matt-W: I think that's '*@args as Scalar' nowadays. 11:10
Matt-W ooh
I shall have to remember that :)
ruoso moritz_, re "promoting Complex to Num"... I insist that we should do it like Math... and now that every built-in type is a Role... that should be fairly easy 11:13
i.e: 1 ~~ Complex should be true 11:14
masak that sounds like a Good Idea, yes.
I believe Math is here to stay. :)
and we should standardize on its API.
ruoso but 1i ~~ Int should be false 11:15
masak of course.
that'd be 1i ~~ Gaussian::Int or something. :)
wayland76 1i.im ~~ Int 11:17
:)
bacek wayland76: it will not match. 1i.im ~~ Num will :) 11:18
wayland76 Oh, of course :) 11:23
11:26 ejs left 11:33 alexn_org joined
wayland76 masak: Have you seen osteele.com/archives/2008/05/my-git-workflow 11:37
?
It's got the diagram I've been looking for :) 11:38
pmurias ruoso: do you think we should keep the invocant slot in native capture and treat the invocant as a positional in the positional method? 11:43
ruoso no... it wouldn't work... because if you call foo(1,2,3) and &foo happens to expect for an invocant, 1 should be that invocant
pmurias Perl6 code will always look for the invocant using .positional(0) 11:44
ruoso I see, but I don't think there's much where to run 11:45
the invocant slot no longer exists
semantically
so, it's better to just remove it
I think we could even remove the .invocant method in Capture as well, 11:46
pmurias should we also change SMOP__NATIVE__capture_create? 11:48
what i mean do we change the way captures are treate internally or only the methods they expose 11:50
11:53 alexn_or1 joined
wayland76 'night all :) 11:54
ruoso pmurias, yes 12:01
we need to change the way captures are treated internally 12:02
since capture is the type that comes from the lowest level and will be seen in the highest level 12:03
12:03 alexn_org left, frioux_ joined 12:04 frioux left
pmurias doing refactoring with search & replace is tedious :( 12:10
12:19 skids left 12:31 drbean_ is now known as drbean 12:33 rmt_ joined
masak bacek: why wouldn't 1i.im ~~ Int match? 12:34
wayland76: no, hadn't seen. nice.
reminds me of audreyt's diagram about svk. 12:35
wayland76: definitely a good diagram to have when learning git, I can tell.
ruoso masak, do you think rakudo has the features the sketched code I wrote uses? 12:39
masak ruoso: I don't know, but I can review it and get back to you in a couple of minutes. 12:40
masak reviews github.com/masak/web/blob/master/do...work-roles 12:44
ruoso: first question: why do you prefer $.begin-closure.(self) to $.begin-closure(self)? this ain't Perl 5. 12:45
ruoso I don't know, really
actually 12:46
masak ok, just asking. I think those are equivalent here.
ruoso I do know
they aren't
masak no?
ruoso $.begin-closure.(self)
is the same as
($.begin-closure).(self)
while
$.begin-closure(self)
is just that
masak huh? 12:47
ruoso $.begin-closure($a)
calls method begin-closure with ($a) as argument
masak rakudo: my $a = { say "OH HAI" }; $a(); $a.()
p6eval rakudo 95ce39: OUTPUT«OH HAI␤OH HAI␤»
SamB perl6: my $a = { say "OH HAI" }; $a(); $a.() 12:48
masak ruoso: there's no method involved. just an attribute with a Calleable in it.
p6eval elf 25787: OUTPUT«Can't use string ("1") as a subroutine ref while "strict refs" in use at (eval 124) line 4.␤ at ./elf_h line 4377␤OH HAI␤»
..pugs, rakudo 95ce39: OUTPUT«OH HAI␤OH HAI␤»
ruoso rakudo: class A { has $.a; method foo { $.a(1); $.a.(2) } }; my $a = A.new(:a({ .say }); $a.foo
p6eval rakudo 95ce39: OUTPUT«Statement not terminated properly at line 1, near "(:a({ .say"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤»
ruoso rakudo: class A { has $.a; method foo { $.a(1); $.a.(2) } }; my $a = A.new(:a({ .say })); $a.foo
p6eval rakudo 95ce39: OUTPUT«1␤2␤»
masak is right
ruoso hmm
something's wrong there 12:49
masak if you say so.
SamB perl6: class A { has $.a; method foo { $.a(1); $.a.(2) } }; my $a = A.new(:a({ .say })); $a.foo
masak my explanation of things holds, so I'm happy.
p6eval pugs: OUTPUT«*** No compatible multi variant found: "&a"␤ at /tmp/ilgdwGtcpb line 1, column 33-39␤»
..rakudo 95ce39: OUTPUT«1␤2␤»
..elf 25787: OUTPUT«Bareword found where operator expected at (eval 126) line 7, near "$.a"␤ (Missing operator before a?)␤syntax error at (eval 126) line 7, near "$.a"␤ at ./elf_h line 4377␤»
12:49 mberends left
ruoso rakudo: class A { method a { { .say } }; method foo { $.a(1); $.a.(2) } }; my $a = A.new; $a.foo 12:49
p6eval rakudo 95ce39: OUTPUT«Use of uninitialized value␤␤invoke() not implemented in class 'Integer'␤current instr.: 'parrot;A;foo' pc 421 (EVAL_22:165)␤»
ruoso there it is... 12:50
rakudo is making something wrong
masak what just happened? :)
moritz_ uhm
masak how can that even dispatch?
ruoso rakudo is probably assuming something because of "has $.a"
moritz_ method a { { .say } }
that's supposed to return a closure, right?
ruoso yes 12:51
masak submits rakudobug
ruoso $.a(1) sends (1) as argument to method a
$.a.(1) expects the return of a to be a callable, and then send 1 as an argument to that
SamB pretends not to understand the difference ;-P 12:52
ruoso masak, and btw...
there is *always* a method involved 12:53
masak ruoso: no, $.a.(1) is the same as $.a(1)
ruoso unless you use $!a
masak ruoso: right.
ruoso masak, so, if method a accepts an argument, how do you send it? 12:54
masak ruoso: you're assuming that $.a.(1) makes two calls, one to a and one to its returned closure. I don't see why you assume that.
ruoso because of the two dots
masak ruoso: but .() and () are equivalent, no? 12:55
moritz_ unless where they are not :-)
SamB masak: isn't that what the entire discussion has been about ?
masak SamB: yes.
we're starting in on the second lap round the circle now. 12:56
ruoso masak, .() and () are equivalent when you're dealing with variables
moritz_ I think it would DWIM to make $.a.() being the same as $.a().a()
ruoso $foo() and $foo.() are the same
moritz_ but I have no idea if it's specced that way
masak gives up
we're evidently on uncharted territory here
I'm pasting this whole discussion into the rakudobug
ruoso masak, $.a is not a variable 12:57
$.a is a method call
masak ruoso: I know.
ruoso even when you have "has $.a"
masak I know that.
ruoso so I'd say 12:58
masak it's some sort of syntactic sugar for an accessor.
ruoso masak, no
it's no syntatic sugar
it's plain method call
the same as self.a
you can use $.foo independent of that being declared with "has" or not
masak ruoso: yes.
'has $.a' is syntactic sugar for method calls to the metaclass, no?
ruoso right... yes... it's a "declarator" 12:59
but I meant
moritz_ $.a is syntactic sugar for $(self.a)
ruoso not really 13:00
because $.a(1)
is not $(self.a)(1)
moritz_ ruoso: I talked about $.a, not $.a(1)
masak 's head explodes
moritz_ moritz.faui2k3.org/tmp/out.html this is how STD.pm parses both
and to the best of my humble knowledge they are parsed differently indeed 13:01
ruoso rakudo is making a special case because of the previous "has $.a" 13:02
masak I look forward to an explanation to all of this, using only short words.
ruoso and that is wrong
$.a is the same as self.a
in the sense
that
$.a(1) is the same as self.a(1)
std: class Foo { has $.a; method foo { $.a()() } } 13:03
p6eval std 25787: OUTPUT«ok 00:02 34m␤»
ruoso std: class Foo { has $.a; method foo { $.a().() } }
p6eval std 25787: OUTPUT«ok 00:02 34m␤»
ruoso masak, that's the point
$.a.() is equivalent to $.a().() 13:04
which is equivalent to $.a()()
masak ruoso: ok.
I buy that.
I just don't see why .() and () aren't equivalent in this particular case. 13:05
ruoso they are
but you're missing that $.a is a method call
not a variable
masak ah.
ruoso so, the full version of $.a is $.a() 13:06
masak sees now
ruoso then $.a()() and $.a().() are the same
masak ruoso: thank you for your patience with me.
ruoso masak, so, for the rakudobug 13:07
"rakudo is making an exception in the parse of $.a when the class defines "has $.a""
and it shouldn't
masak thanks. :)
pasted.
13:17 pmurias left
masak perl6: my @a = 1,2,3; @a[2] := []; say @a.perl 13:24
p6eval elf 25787: OUTPUT«[1,2,3]␤»
..rakudo 95ce39: OUTPUT«rtype not set␤current instr.: 'parrot;PCT;HLLCompiler;panic' pc 146 (src/PCT/HLLCompiler.pir:102)␤»
..pugs: OUTPUT«\(1, 2, ())␤»
masak submits rakudobug
moritz_ masak: array item binding is a known regression 13:29
masak moritz_: if you have another RT ticket, I can merge the one I just submitted. 13:30
moritz_ masak: I don't know if there's a ticket for that, I just know that there are comments in t/spectest.data about tests we've regressed on 13:33
masak moritz_: ok.
I have no qualms about turning known regressions into tickets. :)
it might be part masak-rakudobug vanity, but it's part good accounting, too. 13:34
moritz_ I won't disagree with you here
13:34 skids joined 13:40 ejs joined
masak arrgh, and binding of array elements is hard to work around, it turns out... 13:46
probably not impossible, though. an idea involving recursion is forming in my mind. good thing that #28396 got fixed... 13:48
13:55 mberends joined 13:58 mikehh joined 14:10 [particle] joined 14:30 diakopter joined
pmichaud $.a(1) is syntactically special, and rakudo doesn't implement it yet. 14:30
$.a(1) is equivalent to self.a(1)
as ruoso said :-)
14:33 nihiliad joined, skids left
diakopter 14:35
14:40 skids joined
NoirSoldats php-- 14:43
@karma php
lambdabot php has a karma of -3
diakopter :|
14:43 ChanServ sets mode: +o diakopter 14:46 ihrd left
pmichaud std: loop { say "hello"; last } while 1 14:56
p6eval std 25787: OUTPUT«##### PARSE FAILED #####␤Malformed block at /tmp/XhEex3M4b9 line 0:␤------> ␤ expecting any of:␤ infix or meta-infix␤ infix stopper␤ parameterized block␤ standard stopper␤FAILED 00:04 34m␤»
15:00 eternaleye left
TimToady it's possible, of course, that it's parsefailing the wrong way... :) 15:01
diakopter the while is tighter than the loop? 15:02
TimToady I don't know what it's thinking, offhand. might even be thinking several different thinks if it's doing unwarranted backtracking 15:03
std: loop { say "hello"; last } while 1 { say "boo" }
p6eval std 25787: OUTPUT«ok 00:04 34m␤» 15:04
TimToady ohh, bug
*ooh
pmichaud right.
TimToady so it's actually parsefailing because it's assuming a ; wrongly 15:05
diakopter we need a way to pass in linebreaks to p6eval so we can test that synchronously/publicly :P
TimToady std: loop { say "hello"; last }␤ while 1 { say "boo" } 15:06
moritz_ diakopter: aye. If you can come up with a good idea, please tell me :-)
p6eval std 25787: OUTPUT«##### PARSE FAILED #####␤Syntax error at /tmp/16TZaPlwP7 line 1:␤------> loop { say "hello"; last }␤ while 1 { say "boo" }␤ expecting any of:␤ blockoid␤ terminator␤ whitespace␤FAILED 00:03 34m␤»
moritz_ I could s/␤/\n/g 15:07
TimToady works for me
diakopter heh
TimToady 'course I had to copy/paste the ␤ 15:08
diakopter restarts irssi for unicodeness
15:08 diakopter left
pugs_svn r25788 | moritz++ | [evalbot] transliterate newline symbols to actual line breaks 15:10
15:10 p6eval left 15:11 p6eval joined
moritz_ std: loop { say "hello"; last }␤ while 1 { say "boo" } 15:11
rakudo: say "alive"
p6eval rakudo 95ce39: OUTPUT«alive␤»
moritz_ rakudo: say ord("␤") 15:12
rakudo: say "wtf?" 15:13
p6eval rakudo 95ce39: OUTPUT«wtf?␤»
moritz_ ah
15:13 diakopter joined
TimToady unicodity? unicodicity? unicodification? unicoditarianism? 15:13
pugs_svn r25789 | moritz++ | [evalbot] forget a few /s modifiers 15:14
moritz_ no, \n and /s
15:14 p6eval left 15:15 p6eval joined
moritz_ rakudo: say ord("␤") 15:15
rakudo: say "please"
p6eval rakudo 95ce39: OUTPUT«please␤»
masak :)
TimToady rakudo: say ord("x") 15:16
pugs_svn r25790 | moritz++ | [evalbot] one more /s modifier
p6eval rakudo 95ce39: OUTPUT«120␤»
15:16 p6eval left, p6eval joined
moritz_ rakudo: say ord("␤") 15:16
p6eval rakudo 95ce39: OUTPUT«10␤»
moritz_ there you go.
TimToady rakudo: say ord("«")
p6eval rakudo 95ce39: OUTPUT«171␤»
moritz_ std: loop { say "hello"; last }# while 1 { say "boo" } 15:17
TimToady diakopter: how's your unicoditarianism?
p6eval std 25790: OUTPUT«ok 00:03 34m␤»
moritz_ std: loop { say "hello"; last }␤ while 1 { say "boo" }
p6eval std 25790: OUTPUT«ok 00:04 34m␤»
diakopter I think it's still trinicoditarian
brb
15:17 diakopter left 15:23 diakopter joined
diakopter nope 15:24
15:24 diakopter left
moritz_ do you use screen? 15:25
15:26 diakopter joined
diakopter «␤ 15:27
TimToady looks good to me
diakopter hrm. I see the << but the NL is ?P? 15:28
pmichaud rakudo: .say for (1,2,3).item;
p6eval rakudo 95ce39: OUTPUT«1␤2␤3␤»
TimToady you see big << or little <<?
diakopter little
TimToady font issue, perhaps? 15:29
do you see ☻? 15:30
masak ooh!
TimToady should be a smiley
15:30 Tene joined 15:31 justatheory joined
diakopter nope. hrm. can /nick have those? 15:31
moritz_ don't think so
15:34 wayland76 left
diakopter lame: www.fileformat.info/info/unicode/fo...s/grid.htm 15:34
15:41 mberends left 15:42 Tene_ left 15:44 PacoLinux left 15:59 [particle] left 16:04 alexn_or1 left, alexn_org joined
pugs_svn r25791 | pmichaud++ | [t/spec]: Update List.item test to match spec (RT #63350), unfudge for Rakudo 16:09
masak rakudo: my @a = 1,2,3; say @a min 4 16:31
p6eval rakudo 531ca2: OUTPUT«Multiple Dispatch: No suitable candidate found for 'cmp', with signature 'PP->I'␤current instr.: 'infix:cmp' pc 15527 (src/builtins/cmp.pir:146)␤»
masak question is, is this a new one, or the same as the undef one?
I should probably file it under the same ticket.
pmichaud it's not the same as the undef one 16:32
I'm curious about the correct behavior there, though. 16:33
dalek kudo: 531ca2c | pmichaud++ | docs/spectest-progress.csv:
spectest-progress.csv update: 317 files, 7015 passing, 140 failing

   S32-num/complex.rakudo aborted 140 test(s)
masak pmichaud: I'd think that min numifies, so 3. 16:34
pmichaud so, "3" min "13" is "13" ?
er, 13 ?
masak no, why?
numification implies numeric sorting.
pmichaud oh, it's 3.
okay.
masak submits rakudobug
moritz_ uhm, did I forget to push the implementation of .re and .im?
masak moritz_: I saw something about it by wayland in the commit mails on p6l. 16:35
pmichaud moritz_: I didn't see it.
16:35 riffraff joined
moritz_ then I really did, sorry for the breakage 16:35
pmichaud S03 says that min has "cmp" semantics. 16:36
moritz_ that's one thing I'm still not sure about... how do I know if all of my local changes are also in the repo?
pmichaud 'git status' tells me that, I think. 16:37
masak moritz_: push and see if something goes through the pipe :)
moritz_ that tells me about non-commited changes
but not about commited-but-not-pushed changes
pmichaud git status also tells me "local copy is 1 commit ahead of master" or something like that
masak moritz_: it does in my git version.
moritz_: what pmichaud said.
moritz_ ah, maybe I need to read the output more carefully next time 16:38
dalek kudo: d8f59ef | (Moritz Lenz)++ | src/classes/Complex.pir:
implement .re and .im in Complex
pmichaud anyway, S03 says that "By default C<min> and C<max> use C<cmp> semantics." I don't think that implies numification of the arguments. 16:39
masak oh. 16:40
but what happens when you cmp a Num and a List?
pmichaud I don't know. 16:41
Neither does Parrot, which is why we get "No suitable candidate found ... " :-)
masak pasting this addendum to the ticket.
pugs_svn r25792 | lwall++ | [STD] require semicolon between same-line statements more rigorously 16:42
16:49 wayland76 joined
TimToady std: loop { ... } foo 16:49
p6eval std 25792: OUTPUT«##### PARSE FAILED #####␤Syntax error at /tmp/PGx7LM8FBh line 1:␤------> loop { ... } foo␤ expecting terminator␤FAILED 00:02 34m␤»
TimToady std: loop { ... } while 16:50
p6eval std 25792: OUTPUT«Undeclared routine:␤ while used at 1 ␤ok 00:02 34m␤»
TimToady bot lag...
moritz_: you have any idea why it says std 25792 but still has old semantics? is lex removal async with version update? 16:51
moritz_ it might be
TimToady: I'll update the server, just a sec... 16:52
Matt-W rakudo: grammar A { }; A::parse() 16:53
moritz_ std: loop { ... } while
p6eval rakudo d8f59e: OUTPUT«Null PMC access in invoke()␤current instr.: '_block14' pc 60 (EVAL_20:39)␤»
std 25792: OUTPUT«##### PARSE FAILED #####␤Statements must be separated with semicolon at /tmp/HWFluPrLfH line 1:␤------> loop { ... } while␤ expecting checksep␤FAILED 00:02 34m␤»
TimToady yay
moritz_ std: loop { ... } while 3 < 4
p6eval std 25792: OUTPUT«##### PARSE FAILED #####␤Statements must be separated with semicolon at /tmp/v3KqhFSYQ8 line 1:␤------> loop { ... } while 3 < 4␤ expecting checksep␤FAILED 00:02 34m␤»
TimToady std: loop { ... } foo
p6eval std 25792: OUTPUT«##### PARSE FAILED #####␤Statements must be separated with semicolon at /tmp/YPuTmFFgbI line 1:␤------> loop { ... } foo␤ expecting checksep␤FAILED 00:02 34m␤» 16:54
TimToady std: loop { ... } 1
p6eval std 25792: OUTPUT«##### PARSE FAILED #####␤Statements must be separated with semicolon at /tmp/ajYfci455A line 1:␤------> loop { ... } 1␤ expecting checksep␤FAILED 00:02 34m␤»
TimToady std: if { ... } 1
p6eval std 25792: OUTPUT«##### PARSE FAILED #####␤Malformed block at /tmp/BrwY2sin4D line 1:␤------> if { ... } 1␤ expecting any of:␤ infix or meta-infix␤ infix stopper␤ parameterized block␤ standard stopper␤ terminator␤FAILED 00:02 34m␤» 16:55
TimToady std: if 42 { ... } 1
p6eval std 25792: OUTPUT«##### PARSE FAILED #####␤Statements must be separated with semicolon at /tmp/bhhMyNVFuf line 1:␤------> if 42 { ... } 1␤ expecting checksep␤FAILED 00:02 34m␤»
TimToady is happy
pmichaud 16:56
masak 也很高兴 16:57
TimToady found one buglet 17:00
std: if do {...} {...}
p6eval std 25792: OUTPUT«##### PARSE FAILED #####␤Statements must be separated with semicolon at /tmp/Eg2IljSc6s line 1:␤------> if do {...} {...}␤ expecting any of:␤ checksep␤ infix stopper␤ standard stopper␤ statement modifier loop␤ terminator␤FAILED 00:02 34m␤» 17:01
pmichaud I think I'll wait until STD.pm has been run against the test suite again before updating Rakudo. :-)
TimToady need to allow { if goal is appropriate
it's the test suite that found that one :)
pmichaud oh, goodie.
TimToady seems to be the only glitch so far 17:02
17:05 alexn_org left
pugs_svn r25793 | pmichaud++ | [t/spec]: Fix up diagnostic message to match test. 17:12
17:14 rkendall left, rindolf joined
rindolf rakudo: my $v = 0; if (0) { $v = 500; } [$v] 17:15
p6eval rakudo d8f59e: OUTPUT«Statement not terminated properly at line 1, near "[$v]"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤»
rindolf rakudo: my $v = 0; if (0) { $v = 500; } [$v];
p6eval rakudo d8f59e: OUTPUT«Statement not terminated properly at line 1, near "[$v];"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤»
rindolf rakudo: my $v = 0; if (0) { $v = 500; } ; [$v];
p6eval rakudo d8f59e: RESULT«[0]»
rindolf rakudo: my $v = "Default"; if (0) { $v = "0 is true"; } ; [$v]; 17:16
p6eval rakudo d8f59e: RESULT«["Default"]»
pugs_svn r25794 | lwall++ | [STD] tweak previous fix to not require semi at infixstopper
TimToady std: if do {...} {...} 17:17
p6eval std 25793: OUTPUT«##### PARSE FAILED #####␤Statements must be separated with semicolon at /tmp/LTD0bW5zJU line 1:␤------> if do {...} {...}␤ expecting any of:␤ checksep␤ infix stopper␤ standard stopper␤ statement modifier loop␤ terminator␤FAILED 00:02 34m␤»
TimToady std: if do {...} {...} 17:21
p6eval std 25794: OUTPUT«##### PARSE FAILED #####␤Statements must be separated with semicolon at /tmp/dYtKwVx0GS line 1:␤------> if do {...} {...}␤ expecting any of:␤ checksep␤ infix stopper␤ standard stopper␤ statement modifier loop␤ terminator␤FAILED 00:02 34m␤» 17:22
TimToady still lags for some reason
std: 42 ?? do {...} !! 43 17:23
p6eval std 25794: OUTPUT«##### PARSE FAILED #####␤Statements must be separated with semicolon at /tmp/qin7Qb7EJ0 line 1:␤------> 42 ?? do {...} !! 43␤ expecting any of:␤ checksep␤ standard stopper␤ statement modifier loop␤ terminator␤FAILED 00:02 34m␤»
17:23 masak left
TimToady std: 42 ?? do {...} !! 43 17:24
p6eval std 25794: OUTPUT«##### PARSE FAILED #####␤Statements must be separated with semicolon at /tmp/qrdO7iNMnl line 1:␤------> 42 ?? do {...} !! 43␤ expecting any of:␤ checksep␤ standard stopper␤ statement modifier loop␤ terminator␤FAILED 00:02 34m␤»
TimToady std: 42 ?? do {...} !! 43 17:32
p6eval std 25794: OUTPUT«##### PARSE FAILED #####␤Statements must be separated with semicolon at /tmp/uUM2WA517P line 1:␤------> 42 ?? do {...} !! 43␤ expecting any of:␤ checksep␤ standard stopper␤ statement modifier loop␤ terminator␤FAILED 00:02 34m␤»
17:33 M_o_C joined
TimToady std: 42 ?? do {...} !! 43 17:40
p6eval std 25794: OUTPUT«ok 00:02 34m␤»
TimToady std: if do {...} {...}
p6eval std 25794: OUTPUT«ok 00:02 34m␤»
TimToady finally...
pmichaud: passes all tests now 17:41
std: do {...} {...}
p6eval std 25794: OUTPUT«##### PARSE FAILED #####␤Unexpected block in infix position (two terms in a row, or previous statement missing semicolon?) at /tmp/6cMWvIs6MQ line 1:␤------> do {...} {...}␤ expecting any of:␤ infix or meta-infix␤ infix stopper␤ standard stopper␤ 17:42
..terminator␤FAILE...
TimToady std: loop {...} {...}
p6eval std 25794: OUTPUT«##### PARSE FAILED #####␤Syntax error at /tmp/lC4fRyjigK line 1:␤------> loop {...} {...}␤ expecting terminator␤FAILED 00:02 34m␤»
TimToady std: loop {...} 42
p6eval std 25794: OUTPUT«##### PARSE FAILED #####␤Syntax error at /tmp/Omn9GOcA0R line 1:␤------> loop {...} 42␤ expecting terminator␤FAILED 00:02 34m␤»
TimToady hmm
still something a bit off there 17:44
17:46 PacoLinux joined
TimToady perhaps <!infixstopper> is overkill... 17:46
well, more tweaking later 17:47
17:51 [particle] joined 18:08 barney joined
mikehh t/spec/S32-list/reduce.rakudo - TODO passed: 14 18:25
moritz_ rakudo doesn't like throwing of exceptions in CATCH blocks 18:27
18:30 alester joined
mikehh rakudo (d8f59ef) All tests successful. at parrot r37268 for make spectest 18:30
om Linux i386
on
18:31 Psyche^ joined
pmichaud except for syntax, what's what's the essential difference between a private method and a submethod? 18:37
TimToady you can call a submethod from outside the class 18:38
moritz_ that a submethod can be called from outside the class
ah, TT beat me
pmichaud does the synopsis indicate "inside the class" anywhere?
or is that just assumed by "private"? 18:39
ruoso pmichaud, a submethod is part of the regular dispatch 18:40
er
quite
a submethod is part of the dispatch when the invocant is of that exact type
but the dispatch doesn't see submethods declared in superclasses
pmichaud ruoso: but the same could be said of private methods.
ruoso for instance
pmichaud, no 18:41
submethod BUILD
during BUILDALL
pmichaud I understand what submethods are, yes.
ruoso you get $prototype.BUILD($candidate, |%args)
if that $prototype implements it's own submethod
it will get called
but if it doesn't
pmichaud btw, moritz++ says that $candidate should not be part of the signature to BUILD :-)
ruoso it needs to 18:42
it's the only way of it actually being called
you call $protoobject.BUILD($candidate)
for that specific $protoobject
s/for that/for each/ 18:43
moritz_ ruoso: why? in BUILD you can access self
ruoso but if you call $object.BUILD 18:44
it won't see each superclass implementation
pmichaud moritz: because self.BUILD would only be the BUILD for the class defined by self. What about the supercl... right.
ruoso and also
pmichaud ruoso: anyway, I understand how submethod dispatch works, yes -- I'm asking how private methods are different from that.
ruoso pmichaud, private methods relate to private attributes 18:45
TimToady ah, found the new bug; refactoring error
pmichaud ruoso: they don't have to.
method !foo() { ... }
ruoso pmichaud, it relates in the sense that it is not virtual
you know at compile time which piece of code will be invoked
moritz_ pmichaud: I think one difference is that if you declare that you trust your subclasses, private methods do normal dispatch 18:46
ruoso moritz_, even then... calling a foreign private method has a special syntax
it doesn't fallback to normal dispatch in any case
moritz_ ok
anyway, I don't understand the issue with BUILD and superclasses 18:47
ruoso submethods are not inherited
moritz_ say you have A is B and B is C
pugs_svn r25795 | lwall++ | [STD] previous patch moved code into statement but then "self." needed to be "$¢."
moritz_ then somebody calls A.new
then B.BUILD is called first
erm, C.BUILD
then B.BUILD
pmichaud moritz_: but how are you going to invoke C.BUILD?
ruoso yes... C.BUILD($object-buing-built)
moritz_ pmichaud: you don't, because you don't care about your subclasses 18:48
18:48 Patterner left, Psyche^ is now known as Patterner
pmichaud moritz_: when calling C.BUILD, what's the invocant? 18:48
moritz_ pmichaud: and because .new calls C.BUILD for you in the end anyway
pmichaud: an object of type C
that is then reblessed into one of type B
ruoso moritz_, the order is actually.... new -> CREATE,bless -> BUILDALL -> *BUILD
pmichaud but that object won't be the one being built
ruoso moritz_, no rebless 18:49
it is blessed as the actual type only once
moritz_, see smop/src-s1p/Object.pm / ClassHOW.pm
I've written down the instantiation sequence according to S12
moritz_ I see, I haven't fully grokked that stuff yet 18:50
TimToady std: loop {...} 42
p6eval std 25795: OUTPUT«##### PARSE FAILED #####␤Syntax error at /tmp/geNihzmxWM line 1:␤------> loop {...} 42␤ expecting terminator␤FAILED 00:02 34m␤»
moritz_ anyway, the signature of BUILD needs a good spec, and needs to be implemented that way
18:50 kane_ left
moritz_ currently what rakudo does doesn't match some examples in S12 18:50
pmichaud (the examples in S12 don't show the candidate as part of BUILD, yes)
ruoso hmmm 18:51
actually
I just realized the code I sketched in ClassHOW.pm does something that is not going to work 18:52
$prototype.?BUILD($object: |%protoargs, |%initialize);
that needs to be update 18:53
18:54 M_o_C left 18:55 Helios left
pugs_svn r25796 | ruoso++ | [smop/src-s1p] contrary to my initial ideas, sending a different invocant to a method dispatch is not allowed. changing BUILD and DESTROY to support that 18:55
TimToady std: loop {...} 42 18:56
moritz_ if you loop, it might loop ... ;-) 18:57
TimToady fails fine here... :)
18:59 riffraff left, jferrero left
p6eval std 25795: OUTPUT«##### PARSE FAILED #####␤Statements must be separated with semicolon at /tmp/QeqvrrxRNO line 1:␤------> loop {...} 42␤ expecting any of:␤ infix stopper␤ statement␤FAILED 00:02 34m␤» 18:59
19:00 Helios joined, literal left, literal joined
moritz_ rakudo: say 'a b c d e f'.split(' ', 2).perl 19:01
p6eval rakudo d8f59e: OUTPUT«["a", "b c d e f"]␤»
TimToady std: 42 19:02
p6eval std 25796: OUTPUT«ok 00:02 34m␤»
TimToady std: loop {...} 42
p6eval std 25796: OUTPUT«##### PARSE FAILED #####␤Statements must be separated with semicolon at /tmp/sy78i6Q5WD line 1:␤------> loop {...} 42␤ expecting any of:␤ infix stopper␤ statement␤FAILED 00:02 34m␤»
TimToady std: loop {...} while 1 {...}
p6eval std 25796: OUTPUT«##### PARSE FAILED #####␤Statements must be separated with semicolon at /tmp/Lzuw6FJQIp line 1:␤------> loop {...} while 1 {...}␤ expecting any of:␤ infix stopper␤ statement␤FAILED 00:02 34m␤»
TimToady std: if do {...} {...}
pmichaud (private methods): So, when we encounter something like $xyz!foo(...) -- it has to occur inside of a class declaration, and we have to verify that !foo exists in that specific class declaration?
p6eval std 25796: OUTPUT«ok 00:02 34m␤»
TimToady it's basically just a subroutine call that may or may not be permitted depending on whether the class trusts you 19:03
pmichaud where "you" is... ?
TimToady and a class naturally trusts itself
I suppose it's trusting ::?CLASS 19:04
pmichaud so, CALLER::?CLASS ? 19:05
ruoso pmichaud, yes
not for the last line I mean 19:06
but for your original question
in fact
pmichaud ruoso: what you're saying doesn't sound to me as though it's matching what TimToady is saying.
ruoso ok... $xyz!foo doesn't really makes much sense, except if $xyz if of the type of your own class 19:07
or if $xyz is actually binded to the invocant of this method
pmichaud or if $xyz's type "trusts you" -- however that's defined.
ruoso even then
TimToady call a subroutine in the exact class of $xyz that trusts CALLER::?CLASS if that's in its trusted list
ruoso you need to say $xyz!Somewhere::privmethod() 19:08
TimToady that works too
ruoso $xyz!foo should fail if $xyz !~~ ::?CLASS 19:09
but if you have a private method in your class named "foo"
and $xyz ~~ ::?CLASS
it can call the private method in your class
pmichaud ruoso: it has to be more restrictive than ~~ ::?CLASS
ruoso why? 19:10
pmichaud because $xyz could be a subclass of ::?CLASS
and it might have a !foo that is different from yours.
and are subclasses automatically trusted?
ruoso pmichaud, that's the point I'm trying to make
the private dispatch is different then the regular dispatch 19:11
private methods are not inherited
pmichaud I understand that the private dispatch is different than regular dispatch
I understand that private methods are not inherited
I'm trying to nail down private dispatch.
ruoso so $xyz!foo means "look at the private method in this class"
while $xyz!Somewhere::foo means "look at a private method there" 19:12
pmichaud ruoso: so you're saying there's not really a concept of "trusted classes"
ruoso but Somewhere needs to trust you...
pmichaud or you're saying that !foo always means !foo in the current class.
ruoso yes
!foo is always local
pmichaud okay.
ruoso if you want to call a foreign private method
you need to fully qualify it 19:13
and the foreign class needs to trust you
pmichaud and we need to figure out how to look up private methods via the Someclass::foo syntax :-)
ruoso pmichaud, that's the cool par
private dispatch is not virtual, which means that it can be solved at compile-time
19:14 rindolf left
pmichaud yes, but it might require some sort of forward reference to do so. 19:14
19:14 Patterner left
ruoso as long as that it gets consistent in the end of the compilation 19:14
pmichaud okay, I can work with that. Thanks. 19:15
19:16 [particle] left 19:21 Psyche^ joined, Psyche^ is now known as Patterner
bacek good morning 19:21
pmichaud good morning 19:26
moritz_ I've written a List.reduce that doesn't rely on any indexing or shifting of the invocant... 19:27
nopaste.snit.ch/15852 19:28
and it warns if there are trailing items that can't be bound
ruoso pmichaud, so in summary... for "$xyz!foo" it must 1) $xyz ~~ ::?CLASS 2) method !foo in this class
pmichaud ruoso: got it, thanks. 19:29
I agree.
moritz_ however it does hide exceptions from $expression()
but I think it's the best we can do for now, because we can't filter out the exception from a failed bind to the signature
and it only hides those exceptions in the last call when there are trailing items 19:30
any thoughts?
bacek moritz_: you construct list twice. 19:31
pmichaud how about if @args > 1 && @args >= $expression.arity ?
moritz_ bacek: yes, but that's not that bad, because if self is a list already, .list is a no-op
and if not, it's just a list of length 1 that's created twice
bacek moritz_: not in case of Range.
moritz_ hm 19:32
pmichaud: and then... what?
try it?
and if it's not >= .arity then warn without trying?
pmichaud moritz_: we only have a failure if @args < $expr.arity .... right 19:33
19:33 barney left
pmichaud i.e., we can check for sufficient number of arguments without having to actually call $expr 19:33
moritz_ ok
pmichaud (the dispatch might still fail... but then we'd get an appropriate exception)
bacek rakudo: multi sub foo($a, $b) { $a+$b }; multi sub foo ($a,$b,$c) { $a+$b*$c }; map &foo, 1..4;
p6eval rakudo d8f59e: OUTPUT«Null PMC access in find_method()␤current instr.: 'parrot;P6object;WHAT' pc 83 (runtime/parrot/library/P6object.pir:112)␤»
bacek Is map suppose to work with multisubs? 19:34
pmichaud it probably should, yes.
moritz_ but any mention of &multisub seems to cause Null PMC accesses
pmichaud on the other hand, it's hard to know how to handle arity/count in that case.
(another reason for needing a partial signature match operation, I suppose) 19:35
rakudo: multi sub foo() { ... }; say &foo.PARROT;
p6eval rakudo d8f59e: OUTPUT«Null PMC access in find_method()␤current instr.: '_block14' pc 79 (EVAL_21:43)␤»
pmichaud rakudo: sub foo() { ... }; say &foo.PARROT; 19:36
p6eval rakudo d8f59e: OUTPUT«Perl6Sub␤»
pmichaud is there already a rakudobug for that? 19:37
moritz_ for some form of it, yes
but I can't find it right now 19:38
ah, rt.perl.org/rt3/Ticket/Display.html?id=63568
frioux_ hey guys, you mind if I ask a perl5ish question? 19:39
I only ask here because I know you are all smart and not jerks
well, I'll just ask. Ignore me if you don't know or whatever :-)
anyway, is there a really good reason not to use mod_perl for speed boosts? 19:40
bacek frioux_: existence of fastcgi
rakudo: multi sub foo { ... }; say &foo.HOW; 19:41
p6eval rakudo d8f59e: OUTPUT«Null PMC access in find_method()␤current instr.: '_block14' pc 79 (EVAL_19:43)␤»
frioux_ bacek: we are using win32, is that an option for us?
bacek frioux_: using win32 is not an option.
frioux_ yeah, I was afraid of that 19:42
bacek frioux_: join #perl on irc.perl.org.
rakudo: multi sub foo { ... }; say &foo; 19:43
p6eval rakudo d8f59e: OUTPUT«foo␤»
frioux_ seriously? They don't even answer questions
anyway, I'll look into fastcgi and see if we can pull something off with that
moritz_ frioux_: then try perlmonks.org
frioux_ thanks bacek
moritz_: that's a good idea too; thanks
bacek++ moritz++ 19:44
bacek scratching head...
Is it possible to implement fastcgi handling in current Rakudo?
moritz_ uhm, does the fastcgi involve any more than reading from STDIN? 19:45
bacek moritz_: it's usually reading from sockets. 19:46
But I already found that it should be possible.
..if runtime/parrot/library/HTTP/Daemon.pir is alive... 19:47
pmichaud: (NULL in find_method) .'HOW' returns null for multisubs. 19:48
19:48 netsquire joined
pmichaud okay. I _really_ need to refactor method dispatch in Rakudo -- I don't like the way it's set up now. 19:51
alester pmichaud: I have a dumb error that I fixed in 7e50e6a0baa4ca2c6874ddb1f7e2a69c1b0476d0 19:52
pmichaud alester: send a patch? 19:53
alester where
pmichaud [email@hidden.address]
alester I'm surprised nobody has run into it yet.
TimToady pmichaud: latest semicolon-required patch seems to be a keepr 19:54
*keeper
pmichaud TimToady: noted. I'll take a look at it in a few days -- I'm trying to catch up on other patches/documentation things.
TimToady sure, not worried 19:55
just looking forward to the day when rakudo produces really great error messages
(realizing that a great deal of the impediment is not strictly rakudo's problem ;) 19:56
pmichaud rakudo will probably get its biggest improvement in error messages when it's using STD.pm for its parser :-)
and yes, I look forward to that day also. 19:57
I think STD.pm's error trapping and suggestions are Really Cool.
TimToady I'm wondering how close we are to writing a version of Cursor.pm in rakudoperl
pmichaud I'll be taking a look at it towards the end of the month. 19:58
I had hoped to be doing that long before now, but other items keep getting in the way.
19:58 armagad left, awarefish joined
TimToady all Things To Be Done First are created equal, but some are more equal than others... :) 19:59
20:00 [particle] joined 20:08 donaldh joined 20:16 alester left
bacek runtime/parrot/library/HTTP/Daemon.pir is dead... It even can't be parsed by imcc. 20:16
ruoso std: multi foo { }; [&foo] 1,2,3,4,5; 20:17
p6eval std 25796: OUTPUT«##### PARSE FAILED #####␤Syntax error (two terms in a row?) at /tmp/Z1oMY80FpE line 1:␤------> multi foo { }; [&foo] 1,2,3,4,5;␤ expecting any of:␤ infix or meta-infix␤ infix stopper␤ standard stopper␤ statement modifier loop␤ terminator␤FAILED 00:03
..46m␤»
bacek std: multi foo {...}; [&foo] 1,2,3,4,5; 20:19
p6eval std 25796: OUTPUT«##### PARSE FAILED #####␤Syntax error (two terms in a row?) at /tmp/OiZt2sONYH line 1:␤------> multi foo {...}; [&foo] 1,2,3,4,5;␤ expecting any of:␤ infix or meta-infix␤ infix stopper␤ standard stopper␤ statement modifier loop␤ terminator␤FAILED
..00:05 49m␤»
bacek std: multi sub foo {...}; [&foo] 1,2,3,4,5;
p6eval std 25796: OUTPUT«##### PARSE FAILED #####␤Syntax error (two terms in a row?) at /tmp/92GHeVbWso line 1:␤------> multi sub foo {...}; [&foo] 1,2,3,4,5;␤ expecting any of:␤ infix or meta-infix␤ infix stopper␤ standard stopper␤ statement modifier loop␤ terminator␤FAILED
..00:03 46m␤»
wayland76 ruoso++ for helping explain rakudobugs while working on SMOP :) 20:28
(backlogging)
ruoso TimToady, what would it take for me to define a custom multi sub that could be used in a reduce operator? 20:36
and how would I call it? since "[&foo] 1,2,3,4" means something else 20:37
pmichaud ruoso: maybe use .reduce instead? 20:38
ruoso sure, but I was wondering if I couldn't use it as the reduce operator 20:39
pmichaud you could likely do it if foo is defined as infix:<foo>
ruoso rakudo: multi a(Str $a, Num $b) { return [+] +$a, $b }; multi a(Num $a, Num $b) { return [+] $a,$b }; say (1,"2",3,3).reduce: &a; 20:41
wayland76 frioux_: Actually, the friendly channel is #perl on FreeNode
p6eval rakudo d8f59e: OUTPUT«No applicable methods.␤␤current instr.: 'parrot;P6metaclass;dispatch' pc 130 (src/classes/ClassHOW.pir:93)␤»
ruoso rakudo: multi a(Num $a, Str $b) { return [+] $a, +$b }; multi a(Num $a, Num $b) { return [+] $a,$b }; say (1,"2",3,3).reduce: &a; 20:42
p6eval rakudo d8f59e: OUTPUT«No applicable methods.␤␤current instr.: 'parrot;P6metaclass;dispatch' pc 130 (src/classes/ClassHOW.pir:93)␤»
pmichaud rakudo doesn't know how to reduce multis yet, no.
It has a problem with &a
ruoso ok...
pmichaud and I don't know that we've written .reduce to be able to handle multis yet either. 20:43
ruoso pmichaud, is it very far from that?
moritz_ the Perl 6 version that I'm working on isn't
assuming that &multi.arity returns a junction of Int's 20:44
don't know if it's supposed to be that way
ruoso moritz_, I was thinking about it...
and ideally it shouldn't ask for the arity
pmichaud yes, it's an unresolved question what to do with multi subs that have different arities
agreed, ideally it shouldn't ask for the arity -- but for that we need the partial signature matching that TimToady is working on 20:45
20:45 pjcj_ joined
ruoso yes... I'd say it's better to wait for that before implementing 20:45
moritz_ I don't like to wait for spec changes, because they sometimes take quite long 20:46
wayland76 moritz_: Shouldn't www.perl6-projects.org forward to perl6-projects.org?
moritz_ and re-writing a builtin isn't all that much work
pmichaud I don't mind if the implementation precedes the spec a bit, unless it's likely we'll end up going down a rabbit hole.
moritz_ wayland76: that would be nice, yes...
ruoso TimToady, what about Signature.ACCEPTS($capture, :allow-partial) while still setting $/ ? 20:47
pmichaud :allow-partial looks promising to me.
ruoso you can even use it as an adverb, I think
$capture ~~ $signature :allow-partial; 20:48
pasteling "wayland76" at 118.208.226.194 pasted "Error building rakudo" (6 lines, 739B) at sial.org/pbot/35445
ruoso is that it?
pmichaud I think so.
ruoso maybe just :partial actually
wayland76 Question for the rakudo guys -- I'm trying to get rakudo to build as an RPM. Can anyone help with the attached error?
pmichaud technically that's an error building parrot, I think. 20:49
ruoso if $capture ~~ $signature :partial { ... }
moritz_ wayland76: www.perl6-projects.org now works
wayland76 moritz_: Thanks
pmichaud: I'm not using the --gen-parrot option, if that helps 20:50
pmichaud wayland76: I don't know the current status of parrot's "make install" target, if that's what you're asking. 20:51
wayland76 I should have said -- I'm in the rakudo directory, and "perl Configure.pl" works fine, but I get this error doing "make" 20:52
moritz_ pmichaud: nopaste.snit.ch/15853 that passes all tests 20:53
pmichaud "make"? Or "make install"?
wayland76 just "make"
pmichaud what svn revision of parrot?
wait, let me back up a bit.
wayland76 Err, the latest, but I've turned that into an RPM as well
pmichaud you have a copy of Parrot somewhere, but not a subdirectory of rakudo? 20:54
wayland76 and the RPM-building process does strange things, and I had to modify parrot's RPM building to get this far with rakudo
yes, that's right
moritz_ there's a patch from allison sitting in RT to get that working
wayland76 moritz_: I've applied that too 20:55
pmichaud moritz_: I think it's an oldish patch, though. It was before I did a lot of other things for --gen-parrot
wayland76 It didn't work :(
ie. it helped some, especially after I manually applied the failed bits
but it still wasn't enough by itself 20:56
rodi quit
sorry :-\
20:56 rodi left
pmichaud quit: No such file or directory 20:56
bacek std: sub infix:foo($a,$b) {...}; [foo] 1..10;
p6eval std 25796: OUTPUT«##### PARSE FAILED #####␤Syntax error (two terms in a row?) at /tmp/70TRF5cLn8 line 1:␤------> sub infix:foo($a,$b) {...}; [foo] 1..10;␤ expecting any of:␤ infix or meta-infix␤ infix stopper␤ standard stopper␤ statement modifier loop␤ terminator␤FAILED 20:57
..00:02 36m␤»
wayland76 (incidentally, what's the patching process at the moment? Do we do a pull request on github?)
ruoso just sent a reply with the latest suggestion of $cap ~~ $sig :partial
moritz_ wayland76: no, we send patches to RT
pmichaud currently I'm still asking for patches to RT
bacek std: say "Hello"
p6eval std 25796: OUTPUT«ok 00:04 34m␤»
bacek std: sub infix:<foo>($a,$b) {...}; [foo] 1..10;
p6eval std 25796: OUTPUT«ok 00:03 39m␤» 20:58
pmichaud patches to RT make it easier to reply with suggestions for fixes
wayland76 ok, I'll document that. People were asking last night
ruoso later &
20:58 ruoso left, PacoLinux left
wayland76 btw, one of the current problems with 24x7 coverage on here seems to be that, in Australian time, no-one can answer questions about how to get patches accepted 20:59
20:59 pjcj left
pmichaud depends on what you mean by "get patches accepted" 20:59
wayland76 People at that time of night have created wiki.github.com/rakudo/rakudo/steps...te-a-patch
pmichaud yes, I know, and we've been needing to update that.
wayland76 But it's not in alignment with what you just said (I'll fix that)
21:00 szabgab left
pmichaud There's also: wiki.github.com/rakudo/rakudo/frews...d-workflow 21:00
which is far closer to what I'd like to see happen.
wayland76 Yes, they created that too :)
moritz_ people are busy and productive
now we need to channel that
wayland76 ie. frooh_ has been working on this, but s1n is the most put out about it
(ie. about not getting patch review) 21:01
pmichaud frew's workflow still has us doing pull requests from github, and I'd like to get to the point where we can do that, but we're still working out the process
I did review s1n's patches, I don't know if he saw the reviews.
(which is another reason why RT is better)
wayland76 Is this just today, or earlier?
pmichaud earlier. I haven't seen a patch from s1n recently.
wayland76 ok.
21:01 AzureStone_ joined
pmichaud I should say "which is another reason why RT is currently better" 21:01
wayland76 I'll try to communicate all this info back to them when they come online 21:02
pmichaud If I review a patch on github, I don't know of an easy way to communicate how to see that review. 21:04
wayland76 Ok. So you can write the review somewhere, but you need a button that says "e-mail this person", right? 21:05
dalek kudo: 0c893bc | (Moritz Lenz)++ | src/ (2 files):
Implement Any.reduce in Perl 6, bacek++, pmichaud++
bacek pmichaud: you can leave comments on patches in github
pmichaud bacek: yes, but how do people see those?
21:05 AzureStone left
pmichaud bacek: leaving comments on patches in github is what I've been doing. AFAICT nobody has even noticed my comments. 21:05
bacek pmichaud: did you commented my patches? (I'm just trying to figure out did I missed them) 21:07
pmichaud bacek: in your case there were some 40-50 commits in the fork queue -- far too many for me to figure out what was going on. I just ignored them.
wayland76 Btw, I've tracked down the make problem a little more
The error is in /usr/bin/perl -MExtUtils::Command -e cp "*.so" ../../dynext 21:08
bacek pmichaud: :)
wayland76 ...but ../../dynext is not a directory
Which means something failed somewhere earlier 21:09
Is there a way to tell it where dynext lives?
moritz_ isn't the question more "where should the .so files installed to?"? 21:11
wayland76 Good point :)
bacek noticed 140 failing tests in spectest-progress 21:12
Known issue?
moritz_ bacek: yes, I forgot to push a change
shame on me
bacek moritz_: ah, ok.
pmichaud bacek: but should be fixed now -- you need to pull latest changes probably.
ujwalic does PARROT_RUNTIME effect dynext?
pmichaud wayland76: I only have about 20 minutes left here...but here's what I know so far 21:13
(1) I don't know that anyone has gotten Rakudo to build using the latest installed parrot
(2) there were patches done a few weeks ago to build rakudo against an installed parrot, but both parrot's install sequence and rakudo's configure sequence have changed substantially since then
bacek rakudo: my @a; for @a.list or fail('BOOO') -> { say "hi" };
p6eval rakudo d8f59e: OUTPUT«No exception handler and no message␤current instr.: 'return' pc 15728 (src/builtins/control.pir:39)␤»
bacek rakudo: try { my @a; for @a.list or fail('BOOO') -> { say "hi" }; }; say "bye" 21:14
p6eval rakudo d8f59e: OUTPUT«bye␤»
wayland76 pmichaud: Ok, thanks
pmichaud there's more :-)
bacek rakudo: try { my @a; for @a.list or fail('BOOO') -> { say "hi" }; say "yak"}; say "bye"
p6eval rakudo d8f59e: OUTPUT«bye␤»
pmichaud (3) even if Parrot's "make install" step is working, I have no idea if the RPM generation stuff has been brought up-to-date with the latest make install
bacek rakudo: try { my @a = (1); for @a.list or fail('BOOO') -> { say "hi" }; say "yak"}; say "bye" 21:15
wayland76 pmichaud: I've done #3 myself :)
p6eval rakudo d8f59e: OUTPUT«hi␤yak␤bye␤»
pmichaud so, if you're trying to build from a Parrot RPM, it's very possible that the RPM is about two generations removed from the current state of building an installable version of parrot, which itself hasn't been completely proven afaik
bacek moritz_: you can squash few lines in List.reduce :)
wayland76 But I'm trying to build a Rakudo RPM which doesn't even have an install step :) 21:16
pmichaud bacek: note that fail only really works inside of a Routine. A block isn't sufficient.
wayland76: if the parrot RPM doesn't have all of the tools in it necessary for building Rakudo, or if it has some of the paths in the wrong place, then you're likely to get the error you're seeing.
bacek pmichaud: inside of List.reduce it will work, isn't it? 21:17
moritz_ bacek: I don't optimize my code for brevity, at least not primarily ;-)
pmichaud that's a Routine, yes.
wayland76 I've made it include the appropriate tools, but now the paths are all wrong :)
bacek moritz_: ya-ya. s/self./@./ :) 21:18
moritz_ ;-)
wayland76 Anyway, thanks for all this. I'll start submitting patches when I have something that works :)
pmichaud wayland76: that'll be great, I very much look forward to it.
Rakudo's next release is nine days away. :-)
bacek pmichaud: btw, can I ask for "admin" permissions in RT? 21:19
pmichaud what do "admin" permissions do?
bacek To merge/close tickets
pmichaud I don't know how to grant those. If someone else does, perhaps they can tell me how to do it (or I'm okay with someone else granting you admin perms) 21:20
bacek pmichaud: ok. I have to figure out who can grant them... 21:21
21:21 donaldh left
moritz_ Robrt said that pmichaud should have the privileges to do so ;-) 21:21
maybe Coke also has, I don't remeber that
bacek afk & $self ~~ DayJob 21:22
21:23 PacoLinux joined, szabgab joined
pmichaud bacek: I think you now are able to edit tickets in RT. 21:32
you're listed as a member of the purported group, at any rate. 21:33
21:47 PacoLinux left 21:49 netsquire left
wayland76 Btw, there's no point me submitting Rakudo fixes until the Parrot RPM build works. So hopefully I'll get things sorted out today :) 21:55
21:58 wknight8111 joined, ruoso joined 22:00 nihiliad left 22:06 donaldh joined 22:09 skids left 22:11 ejs left 22:24 DemoPhreak joined, frioux_ left 22:25 frioux joined, wayland joined 22:28 DemoFreak left, DemoPhreak is now known as DemoFreak, donaldh left 22:34 donaldh joined 22:35 Kimtaro left 22:37 Tene_ joined, donaldh left 22:41 angelixd joined, wayland76 left 22:42 Limbic_Region joined 22:43 |jedai| left 22:44 |jedai| joined 22:45 Kimtaro joined 22:48 [particle] left 22:50 nihiliad joined 22:52 Tene left, Psyche^ joined 23:05 Patterner left, Psyche^ is now known as Patterner 23:14 skids joined 23:15 PacoLinux joined 23:28 kate21de1 joined 23:30 bacek_ joined
wayland Is it reasonable to assume access to File::Spec for the rakudo Configure.pl ? 23:31
moritz_ yes 23:32
it's a core module since 5.00405
I think Configure.pl needs 5.008 at least anyway
wayland What about Cwd? And is there a place that lists which modules first came with which versions? 23:33
moritz_ Module::Corelist on CPAN 23:34
wayland Great :)
moritz_ it also installs a command line tool called `corelist'
corelist Cwd
Cwd was first released with perl 5
aka "yes" ;-)
Limbic_Region moritz_ - if you didn't know, buubot has a plugin for Module::CoreList 23:35
buubot: core Cwd 23:36
buubot Limbic_Region: Added to perl core as of 5
moritz_ Limbic_Region: ah, I tried it with 'corelist' the other day
avar buubot: core Switch
buubot avar: Added to perl core as of 5.007003
avar BLASTED 5.007003!
Limbic_Region and what a mistake that was
moritz_ ... and deprecated for 5.012
Limbic_Region buubot: define deprecate 23:37
moritz_ buubot: core CGI::Switch
buubot moritz_: Added to perl core as of 5.004
Limbic_Region hrm, that plugin must not be active
I was going to poke fun and say that the definition of deprecate in perl 5 means we will leave it around for a decade but sometimes annoy you with warnings how you can't rely on this behavior 23:38
moritz_ Limbic_Region: I know that feeling very well, but blead *is* changing, and Nicholas is working hard on the infrastructure to remove core modules 23:39
and he does make progress, so I both hope and believe that we'll *really* get rid of some cruft soon
and Karl Wiliamson (probably misspelled the name) does lots of stuff to fix The Unicode Bug 23:40
Limbic_Region oh, soon - another thing that has a different definition in perl 5 land
moritz_ soon = next release ;-) 23:41
Limbic_Region apologizes
moritz_ so while I haven't seen some whizzbang features in blead yet, I expect a very good release ... in a few years ;-)
Limbic_Region had a rough day and has a head ache and shouldn't bitch about a language he loves so much 23:42
moritz_ s/some/any/
23:42 Tene_ is now known as Tene
Limbic_Region and on that note, I think I will go lay down for a while 23:42
moritz_ no offense taken ;-)
23:42 DemoFreak left
moritz_ too 23:42
TimToady I'd like to see support for things that would make P6 integration easier :) 23:43
moritz_ for example? 23:48
TimToady real lazy lists
s1n i'd like to see Toast::Bread and Flush::Toilet features :)
moritz_ TimToady: ah, I guess that's non-trivial
TimToady Everything Is An Object, including subs and methods
lexical anything
context vars
a reentrant regex engine
wayland s1n: Note that I asked pmichaud about submitting patches, and he said that they all still also have to go in RT
TimToady with real closure callouts
23:48 kate21de left
TimToady that'll do for starters :) 23:48
moritz_ a reentrant parser for doing these lovely { use v5; ... } blocks ;-)
wayland He doesn't like the git push thing because there's no good way to send people a message saying that he's reviewed their patch
TimToady well, I know how to emulate the parser bit without help from p5 regexen :)
wayland he said he's reviewed some of yours (s1n), but not recently
TimToady but it would be nice if I could do something with use v5 in STD
23:48 wayland is now known as wayland76
moritz_ TimToady: do you even want to parse Perl 5 with anything different than perl5? 23:48
23:48 angelixd left, Kimtaro is now known as kimtaro_zzz
wayland76 (ie. Perl6 :) ? ) 23:48
TimToady well, then the p5 parser needs to know when to quit on the unmatched }
so there's another thing
moritz_
.oO( toke.c )
bacek_ perl6: 'sub foo($x is ro) { $x<foo> = "bar"; }; my %h; foo(%h); say %h.perl
p6eval elf 25796: OUTPUT«Parse error in: /tmp/Qy98KFtN9y␤panic at line 1 column 1 (pos 1): Error in quotesnabber␤WHERE: 'sub foo($x is ro) { $x<foo> = ␤WHERE: /\<-- HERE␤ STD_red/prelude.rb:99:in `panic'␤ STD_red/std.rb:1302:in `quotesnabber'␤ (eval):1:in `__quote_8191772'␤ STD_red/prelude.rb:406:in
.....
..rakudo 0c893b: OUTPUT«Syntax error at line 1, near "'sub foo($"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤»
..pugs: OUTPUT«*** ␤ Unexpected end of input␤ expecting "\\", variable name or "'"␤ at /tmp/JI0yKOQHGF line 2, column 1␤»
bacek_ perl6: sub foo($x is ro) { $x<foo> = "bar"; }; my %h; foo(%h); say %h.perl
TimToady that being said, I wouldn't be surprised if the normal parser to use for v5 was something more PPI-like
p6eval pugs: OUTPUT«\(\("foo", "bar"),)␤»
..elf 25796, rakudo 0c893b: OUTPUT«{"foo" => "bar"}␤»
bacek_ is it how it shoudl work? 23:49
23:50 awarefish left
moritz_ is there even an 'is ro' trait? 23:50
TimToady nope
there's readonly
23:50 awarefish joined
bacek_ is it 'ro' by default? 23:50
moritz_ then it should probably die outright
bacek_ perl6: sub foo($x) { $x<foo> = "bar"; }; my %h; foo(%h); say %h.perl
p6eval pugs: OUTPUT«\(\("foo", "bar"),)␤»
..elf 25796, rakudo 0c893b: OUTPUT«{"foo" => "bar"}␤»
TimToady it should die when it doesn't recognize the trait, presumably
bacek_ what about "deep readonly" containers? How I can declare them? 23:51
23:51 meppl left
diakopter Tie::STOREOnce::Deeply 23:52
bacek_ diakopter: in Perl6 :)
TimToady deep readonly isn't really a trait, it's more of an action, almost equivalent to a deep clone
pasteling "wayland76" at 121.44.209.19 pasted "Another make failure on Rakudo" (12 lines, 532B) at sial.org/pbot/35454 23:53
TimToady deep DOW semantics ("die on write" :)
bacek_ but deep clone is more expensive...
wayland76 Should I ask about that rakudo error here, or on #parrot? 23:54
bacek_ thinks about C++ style 'const' and 'non-const' versions of operators
moritz_ than... what? temporarily marking the data structure as read-only, deeply?
TimToady alternately we need references with capabilities :)
s1n wayland76: so he wanted to send a message but couldn't?
that's wholly untrue
pmichaud: github.com/guides/pull-requests
moritz_ s1n: no, he commented on commits, and suspects that nobody ever saw the comments 23:55
s1n near the bottom, it shows how you can respond to them _via github_'s message interface
ohhh
moritz_ and I believe that, because I've never ever seen a commented commit on github
s1n no, i mean, i don't want to use the commits as a blog posting
TimToady or possibly a context variable that disables all lvalue access in a dynamic scope 23:56
s1n at the least, a message could be sent to say "i've commented on the commit"
TimToady but that probably implies a degree of FP-ness that some primitives might not want to accomodate
diakopter seems like a lock
moritz_ -> bed
TimToady they're dropping like flies 23:57
diakopter: more like STM, I think :)
where the transaction is "no transaction allowed" :) 23:58
diakopter "sorry, writing into this container is taking forever. literally."
s1n wayland76: i see someone under the nick "rakudo" rejected one of my commits a week ago, i suspect that was moritz_
diakopter is not supposed to be accessing the internet during my opsmgmt final exam 23:59
s1n wayland76: yes, i see some other comments to commits, but github doesn't ever notify me when there are comments to my commits...