»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: irc.perl6.org/ | UTF-8 is our friend!
Set by diakopter on 6 April 2013.
00:10 Targen left 00:38 BenGoldberg joined
xilo does perl6 have protected attributes? 00:40
tried looking
only saw private/public
00:40 sftp_ joined
BenGoldberg p5eval: print qq[Test\n]; 00:46
p5eval BenGoldberg: Test1
cognominal xilo, I think protected attributes have been found problematic. I think Stroustrup said so somewhere and explains why so
Perl 6 is not C++ but Stroustrup's explanation may still apply 00:47
xilo cognominal: but almost every OOP language has protected 00:48
stroustrup complains about a lot of things in c++. i had him for a few classes :|
00:48 obra joined
cognominal good languages tends not to repeat the mistake of their predecessor 00:48
* mistakes (plural) 00:49
00:50 obra left
flussence What problems do protected attributes solve? 00:50
cognominal but maybe it takes to design bad languages or have been burnt by them to understand why other are good
xilo i'm sure if they were truly bad 00:51
almost every OOP language released since wouldn't have them
:|
flussence herd mentality has a strong influence on the popularity-minded 00:52
xilo well 00:53
cognominal xilo, I think the big lesson to draw from C++ is that it has been originally designed as a premature optimisation and that leaves little place for growth. But that does not answer your question
xilo it's like goto and such
it's not always the best, and can lead to problems
but sometimes is necessary and fine if used correctly 00:54
cognominal flussence, herd mentality is not popular, but hive mentality is. probably hive mentality is the popular version of the former. :) 00:56
xilo so the answer is
perl6 only has private and public?
flussence the answer is that perl6 doesn't need workarounds like half-private half-public.
cognominal xilo: the important part about Perl 6 is that it has roles 00:57
* about Perl 6 an OO
xilo flussence: i didn't ask for personal opinions 00:58
it was a yes/no question :|
cognominal the answer is no 00:59
flussence the language being designed free from legacy cruft from the start isn't a personal opinion
xilo flussence: that's an opinion
flussence you still haven't answered my question. 01:00
cognominal xiolo, you learn much more from open questions than closes one so here we often tend to frame yes and no question in a more general frame.
xilo: the answer is "Perl 6 has no protected attributes" 01:01
xilo cognominal: yes sometimes, but interjecting personal opinions instead of answering isn't the way to discuss
cognominal but that does not answer the why or here the why not.
xilo personal opinions don't either 01:02
valid examples do
which no one has given
so this conversation has gotten no where other than answering my original questin lol
flussence what we have here is an XY problem 01:03
cognominal xilo, I think Stroustrup had a valid argument about his mistake about the 'protected' as a mis designed. So I suggest to read Stroustrup (on that point, at least). 01:04
* misdesign
japhb xilo: Let's try this -- what do you want to do, that Perl 6 as currently designed is not allowing you to do? 01:05
(By which I don't mean "protected attributes", I mean, an actual use case.)
cognominal I am searching a web page where Stroustrub explains his mistake. But maybe it is in one of his books. 01:07
xilo japhb: i'm converting some c++ code to perl6 01:09
01:12 FROGGS_ joined
japhb xilo, OK, fair enough -- but those are fairly different languages, so it's going to be less than optimal to try to do an exact port. 01:12
xilo i realize that
japhb Usually it works out better to make use of the features of the target language. :-)
xilo japhb: which is why i asked if it supports it 01:13
japhb OK, so then -- what did the C++ code *need* to use protected attributes for, that you would miss?
xilo it doesn't
hence
cognominal xilo: perlgeek.de/blog-en/perl-6/protecte...sense.html
japhb Or was it just using protected attributes because that's C++ idiom?
xilo i need to really change things around
it's a windowing library of sorts
there's the base window that always exists, and you can spawn other windows 01:14
01:14 anuby joined 01:16 FROGGS left
japhb I think we're collectively talking past each other a bit. 01:16
xilo it uses the protected member to set some pointers to the root window because certain functions act only on the root window
japhb But why is that "protected" instead of public?
xilo let me post on pastebin the gist of what it's doing 01:17
japhb xilo, also, the page linked by cognominal just above is short and worth reading so we're all on the same page in this discussion.
xilo, OK, sounds like a good idea.
cognominal japhb, the comments are worth reading too 01:19
xilo pastebin.com/9TChSMMX 01:23
01:24 Psyche^ joined 01:27 Patterner left, Psyche^ is now known as Patterner
xilo pastebin.com/QxCCDnq9 noticed i typed something wrong 01:27
gtodd hmm does .WHY work?
flussence the tests for it seem to pass 01:28
r: #= foo ␤ class Foo { } ␤ say Foo.WHY 01:29
p6eval rakudo 460c2a: OUTPUT«Ambiguous call to 'gist'; these signatures all match:␤:(Pod::Block:D : Mu *%_)␤:(Pod::Block:D : Mu *%_)␤ in method gist at src/gen/CORE.setting:902␤ in sub say at src/gen/CORE.setting:7788␤ in block at /tmp/lafrbeyeHI:3␤␤»
flussence r: #= foo ␤ class Foo { } ␤ say ~Foo.WHY
p6eval rakudo 460c2a: OUTPUT«foo␤»
flussence there you go
cognominal Apparently Pod-To-HTML does not use .WHY 01:31
flussence it was written when that was NYI :)
japhb xilo, so essentially you're trying to hide *data from non-child classes? 01:32
Are you trying to hide it because you don't want non-child classes to muck with it (alter the value, thus breaking things)? 01:34
For that use case, Perl 6 would use a read-only public attribute.
Visible, but not changeable.
xilo i didn't write the c++
one sec
japhb Well, instead of saying "you" and "you're", perhaps I should be saying "the code" 01:35
cognominal data is written as a void* because a subclass will probably cast it to a specific struct type
japhb cognominal, *data really is an opaque pointer; see the comment at the end of line 15 01:36
cognominal Some how it is too much (specifying the existence of that variable) or not enough (being incapable of specifying the exact type)
japhb: that's my point
a void* is a design smell of something that will be precised in a derived class. 01:37
japhb I don't see (honestly) how we are saying the same thing. I'm saying that subclasses won't do anything but continue to treat it as a void*, because they're only using it as essentially a handle to hand to the wrapped library.
xilo japhb: root window has some special methods that only are operated on by root, hence the static Console root. instead of having to declare a root window and your other windows, data was made protected so the whole Console class can take care of it
01:38 kurahaupo left
cognominal ok 01:38
01:38 kurahaupo joined
xilo cognominal: you can't do anything with a void * if you don't know what it is besides corrupting it which you can do to anything 01:38
there is some retardedness in there 01:40
cognominal It can be opaque or it can acessed safely in subclasses
xilo but that's how the c++ was made
i'm just trying to convert into sensible p6 code :3
cognominal xilo, one advice. Read about roles and read rakudo sources how uses them. It often recast (no pun intended) how one think about OO 01:41
japhb xilo, I guess I'm saying that when converting to Perl 6, if you don't want to restructure the code in terms of e.g. roles, it *sounds* like you want to declare 'class Console { has $.data; has $.root; BUILD { self!initRoot } }' or so 01:42
But yes, I'd seriously suggest reading up on roles. They are just a way better way to do complex OO than a lot of older designs. 01:43
xilo i know what they are
cognominal * to see how rakudo uses them
japhb xilo, I meant no offense ... 01:44
xilo this C library i'm wrapping doesn't really require much in the way of complex OO
japhb xilo, then I think my suggestion of 3 minutes ago applies. 01:45
xilo of what
japhb -- 'class Console { has $.data; has $.root; BUILD { self!initRoot } }' or so
By not declaring them 'is rw', those become read-only outside the Console class, but still visible. 01:46
xilo ha
ah
thought they were rw by default 01:47
gtodd flussence: I get things like:
use of uninitialized value of type Mu in string context
Ambiguous call to 'gist'; these signatures all match:
:(Pod::Block:D : Mu *%_)
flussence yes, those are Pod objects, you need to call .Str on them if you just want plaintext 01:48
gtodd ah ok 01:49
01:50 Ben_Goldberg joined
xilo r: class Foo { has $.bar; }; Foo $foo = Foo.new($bar=>2); say $foo.bar; 01:50
p6eval rakudo 460c2a: OUTPUT«===SORRY!===␤Two terms in a row␤at /tmp/iRg7GRt87m:1␤------> class Foo { has $.bar; }; Foo ⏏$foo = Foo.new($bar=>2); say $foo.bar;␤ expecting any of:␤ postfix␤ infix stopper␤ infix or meta-infix␤ s…
BenGoldberg Can anyone recommend an irc client for windows which translates those escape- type sequences into colors? 01:59
I'm currently using webchat.freenode.net, with which they show up as-is... which is basically linenoise :) 02:00
Or at least, a client with which I could strip them out entirely.
xilo mirc? 02:01
japhb r: class Foo { has $.bar; }; my Foo $foo .= new(:bar(2)); say $foo.bar;
xilo or if you cool use irssi lol
p6eval rakudo 460c2a: OUTPUT«2␤»
japhb xilo: that's ^^ what you wanted, I think.
xilo yeah 02:02
japhb BenGoldberg, or xchat
xilo so stuff is rw by default
japhb r: class Foo { has $.bar; }; my Foo $foo .= new(:bar(2)); $foo.bar = 3;
p6eval rakudo 460c2a: OUTPUT«Cannot assign to a readonly variable or a value␤ in block at /tmp/tdRSqdI0pm:1␤␤»
japhb xilo: nope, just can be set on instantiation.
xilo ah
japhb r: class Foo { has $.bar is rw; }; my Foo $foo .= new(:bar(2)); $foo.bar = 3; say $foo.bar;
p6eval rakudo 460c2a: OUTPUT«3␤»
japhb But the 'is rw' changes that. 02:03
or 'has $!bar' would make it not visible outside the class.
xilo yeah
02:05 prammer left 02:07 rhinux joined 02:08 erkan left, prammer joined 02:15 tgt left 02:16 tgt joined 02:18 lustlife joined 02:19 tgt left
cognominal r: my %a = ( 'a' => sub { 'ha!' }); %a<a>.?() 02:37
p6eval rakudo 460c2a: OUTPUT«===SORRY!===␤Cannot use .? on a non-identifier method call␤at /tmp/Qq8Pcs7v11:1␤------> %a = ( 'a' => sub { 'ha!' }); %a<a>.?()⏏<EOL>␤»
BenGoldberg r: my %a = ( 'a' => sub { say 'ha!' }); %a<a>() 02:43
p6eval rakudo 460c2a: OUTPUT«ha!␤»
BenGoldberg I forget, what does .? do? 02:44
r: my %a = ( 'a' => sub { say 'ha!' }); %a<a>.()
p6eval rakudo 460c2a: OUTPUT«ha!␤»
02:46 orafu left 02:47 orafu joined 02:49 Ben_Goldberg left 02:50 preflex_ joined
cognominal I was supposing that it would execute only if %a<a> ~~ Code 02:50
02:51 preflex left, preflex_ is now known as preflex
cognominal I was infering it could exist because .? works with a named method 02:51
I would even say it should exist 02:52
02:55 awwaiid joined 03:17 tgt joined 03:19 odoacre joined
diakopter seen kid51 03:19
.seen kid51 03:20
yoleaux I haven't seen kid51 around.
japhb diakopter, isn't he usually over on MAGnet in #parrot?
diakopter mmm
03:20 awwaiid left 03:21 awwaiid joined 03:22 Ben_Goldberg joined 03:26 tgt left
Ben_Goldberg .ping 03:27
yoleaux There is no ping command; nor can this be construed as a response.
diakopter .construe this
Ben_Goldberg .ud perl 03:35
yoleaux pur'-el (n) 1. Computer programming language used mostly by male virgins, between the ages of 17 and 35, who are also well versed in the Lord Of The Rings stories.Pratical Extraction and Reporting La
labster That can't be true. We never talk about Manwë and Varda in here. 03:37
03:37 Ben_Goldberg left 03:39 Ben_Goldberg joined
japhb .ask jnthn It looks like the next most common pir:: is pir::perl6_current_args_rpa__P. Is that just replaceable with nqp::usecapture and friends? If so, it seems like a good LHF. 03:43
yoleaux japhb: I'll pass your message to jnthn.
japhb .ask jnthn I see an "odd man out" in the use of pir::const:: instead of nqp::const:: for CCLASS_PRINTING. Was that just a missed conversion from some time ago, or is there a reason it wasn't converted? 03:45
yoleaux japhb: I'll pass your message to jnthn.
japhb .ask jnthn Once all the pir:: is out of the Rakudo code, will you also be removing pir:: and Q:PIR from the Rakudo grammar? 03:47
yoleaux japhb: I'll pass your message to jnthn.
03:53 rindolf joined 04:00 arlinius left, BenGoldberg left 04:02 Ben_Goldberg left 04:16 fgomez left 04:24 awwaiid left, awwaiid joined
xilo damn... wish NativeCall and CStructs would be finished... just spent all this time trying to write wrapper only to find out can't because it's bugged ;_; 04:29
japhb xilo: What is not working for you? 04:30
04:30 fgomez joined
xilo japhb: c struct that has 3 uint8. so made my cstruct. whatever is getting interpreted and past to the C calls ends up screwy 04:31
japhb xilo, ah, you should talk to arnsholt then, he's the current maintainer of that stuff 04:34
xilo ah
kk 04:35
seems like no one is really maintaining or anything for all the C binding stuff 04:38
had to use this nasty hack gist.github.com/skids/2771728 lol
japhb xilo, your interpretation is incorrect. Work on C binding is continuing -- it's unfinished, not unmaintained -- but the next big piece has been somewhat delayed. 04:42
xilo different words same result lol 04:43
japhb xilo, except that the original words could be considered hurtful to those working on the problem. While you may end up in the same situation -- having to use a workaround for functionality that is not yet up to spec -- we try hard here to be supportive of our volunteers. :-) 04:45
xilo i know 04:46
just kinda sucks scrapping entire project idea cause things aren't finished :/ 04:47
labster Why do you give up so easily? 04:48
japhb Sure, I understand. But the best response to that is to pitch in and help finish it! :-)
labster Just wait around and it will get done eventually.
Or help out, like japhb says.
xilo labster: eventually could be 1 month or 2 years from now 04:49
japhb: i don't have the skills to work on core language features
labster xilo: You'd be surprised. I submitted my first module 4 months ago and now I'm working on core language features. 04:50
don't undersell yourself.
diakopter humility is kinda foreign. delusions of grandeur, I mean, hubris, is preferred. :) 04:51
japhb xilo, we do try to help people get up to speed -- and trust me, if your native language is C++, you've nothing to fear. :-)
04:52 zby_home_ joined
xilo i do C kernel programming at work 04:52
and before that was perl5 lol
diakopter xilo: I'm kidding, of course. Humility is a breath of fresh air.
xilo well not kernel, but OS stuff
labster The issue is right now that our project leaders are working on porting rakudo the the JVM (read: making everything faster). Once that work is done, I'm sure we'll be working on more features.
japhb xilo, just start small and work your way up here then. If you know a Perl, and you do C kernel programming, you're more experienced than many people who have contributed. 04:53
.oO( "Come on in, the water's fine!" )
diakopter also insa ane other
urp
stupid p hone
xilo porting from parrot to jvm?
diakopter among other things 04:54
japhb xilo, well, more precisely, adding the jvm as another supported VM.
xilo i see
diakopter xilo: I'm curious what led you to try rakudo/NativeCall? 04:55
japhb But since JVM is the first added VM after the first, jnthn and various helpers have been hard at work making the NQP and Rakudo code more portable, replacing stuff that requires or assumes Parrot is the only VM.
diakopter blog?
xilo diakopter: i like perl5, wanted to learn perl6, so found a library i wanted to make a wrapper for 04:56
diakopter wonders hos you dodged the FUD (justified and spurious)
*how 04:57
04:59 frdmn left
diakopter oops... 04:59
xilo oh and niecza doesn't have support for a native call type of thing 05:01
so yeah
diakopter actually it's possible, just not ohvious
you'd have to do some IL generation... ;) 05:02
japhb xilo, it uses the normal .net methods of accessing libraries -- someone got gtk working in Niecza.
xilo yeah... no thanks lol
diakopter oh oops
but you can do it my way too, it's just stupid 05:03
xilo: yes the gtk example comes sith niecza 05:04
now that japhb remindsme...
xilo that's not really hard when .net libraries are (mostly) interopperable 05:05
just use gtk#
seems like that's what they are doing
ah 05:06
which is what japhb said
japhb ;-)
05:10 lizmat joined
diakopter lizmat: howdy 05:10
lizmat morning 05:13
breakfast&
05:15 SamuraiJack joined 05:26 _daniel-s__ left 05:27 daniel-s joined 05:40 eternaleye_ joined
japhb Failing panda with new rebuild of Rakudo uncovers two problems: 05:41
1. The new nqp::copy, which powers IO.copy, does not seem to work -- it's got a comment that IO.copy is unspec'ed, so probably no failing test to notice the problem. 05:42
2. When the last line of a for loop results in a Failure, the Failure may not trigger properly. (moritz -- sink problem?) 05:44
05:48 dmol joined 05:53 rindolf left, rindolf joined 06:00 rindolf left, rindolf joined 06:01 eternaleye_ is now known as eternaleye 06:08 shachaf_ joined, shachaf_ left, shachaf_ joined, shachaf left, shachaf_ is now known as shachaf 06:09 lizmat left 06:12 zby_home_ left, rindolf left, rindolf joined, domidumont joined, domidumont left 06:13 domidumont joined, frdmn joined 06:25 telex left 06:27 telex joined, rindolf left, rindolf joined 06:30 dmol left
moritz r: sub f { fail "foo" }; for 1 { f() }; say 42 06:31
p6eval rakudo 460c2a: OUTPUT«42␤»
moritz aye, sink problem
06:35 FROGGS_ left 06:43 domidumont left 06:45 domidumont joined 06:47 Heather joined
Heather hey 06:47
diakopter YO 06:48
Heather were trying to become Clementine user 06:49
labster hi
Heather labster hi
but all I need is groobeshark and hotkeys now I've got own script (Script) to listen it: heather.cynede.net/2013/04/f-openshark.html \o/ 06:50
06:51 domidumont left 06:55 sivoais joined 07:03 domidumont joined 07:08 FROGGS joined 07:10 domidumont left 07:18 fgomez left 07:31 snearch joined, kurahaupo left 07:33 Celelibi left, robinsmidsrod joined 07:39 Celelibi joined, tgt joined 07:42 domidumont joined 07:46 fgomez joined, snearch left 07:51 pjcj left 07:53 arlinius joined 07:56 kresike joined
kresike hello all you happy perl6 people 07:56
yoleaux 10 Apr 2013 15:55Z <isBEKaml> kresike: thanks for all the "happy"s. :-)
kresike :)
FROGGS .tell lizmat that v5's spectest fudging works now, FROGGS the prat had local changes to the fudge script and hasn't seen it because of about hundred changed testfiles -.- 07:57
yoleaux FROGGS: I'll pass your message to lizmat.
FROGGS hi kresike
kresike FROGGS o/
07:58 pjcj joined 08:00 berekuk joined
FROGGS .tell lizmat you need to update nqp/rakudo to make it work though (jnthn is refactoring stuff, and I needed to pull in his changes) 08:01
yoleaux FROGGS: I'll pass your message to lizmat.
08:06 daxim joined
jnthn morning, #perl6 08:15
yoleaux 03:43Z <japhb> jnthn: It looks like the next most common pir:: is pir::perl6_current_args_rpa__P. Is that just replaceable with nqp::usecapture and friends? If so, it seems like a good LHF.
03:45Z <japhb> jnthn: I see an "odd man out" in the use of pir::const:: instead of nqp::const:: for CCLASS_PRINTING. Was that just a missed conversion from some time ago, or is there a reason it wasn't converted?
03:47Z <japhb> jnthn: Once all the pir:: is out of the Rakudo code, will you also be removing pir:: and Q:PIR from the Rakudo grammar?
diakopter .tell jnthn yes.
yoleaux diakopter: I'll pass your message to jnthn.
cognominal r: my $now = now; sub a(*@a) { BEGIN { my $now = now; }; say( now - $now, ' ') }; a(|(1..2**$_)) for 0..15 08:16
p6eval rakudo 460c2a: OUTPUT«0.02479915 ␤0.0578670 ␤0.0752480 ␤0.0955463 ␤0.1228598 ␤0.1466741 ␤0.1671509 ␤0.1969555 ␤0.2210602 ␤0.2436307 ␤0.2748047 ␤0.2955496 ␤0.3227044 ␤0.3864262 ␤0.53831108 ␤1.5823045 ␤»
jnthn .tell japhb it's not so simple as nqp::usecapture 'cus it hllize's arguments and handles natives too. I suspect it may stay as an op and we just implement it in the set of extra ops we'll add for JVM, so it'll get an nqp::p6arglist op or so (should not say RPA in nqp:: op names). 08:20
yoleaux jnthn: I'll pass your message to japhb.
08:15Z <diakopter> jnthn: yes.
jnthn .tell japhb CCLASS_PRINTING being missing is just an oversight; should be converted too
yoleaux jnthn: I'll pass your message to japhb.
jnthn .tell japhb other things may use Q:PIR and pir:: outside of Rakudo, so that can live a bit longer, but we may want to make it require a pragma and spend a while warning if the pragma ain't there. 08:21
yoleaux jnthn: I'll pass your message to japhb.
FROGGS morning jnthn 08:23
08:26 berekuk left 08:30 tgt left
Heather hi krunen jnthn FROGGS 08:31
08:32 berekuk joined, domidumont left 08:33 domidumont joined
jnthn o/ Heather 08:34
oh, and FROGGS :)
jnthn thought the int8 stuff worked in structs, fwiw... 08:35
FROGGS ya, thought that too, but never tested it... (even my SDL module would benefit from using it) 08:38
08:39 renormalist joined, dakkar joined 08:42 tgt joined 08:44 isBEKaml joined 08:47 isBEKaml` joined, isBEKaml` left 08:48 isBEKaml` joined 08:50 isBEKaml is now known as Guest45330, Guest45330 left 08:51 isBEKaml` left, isBEKaml` joined 08:56 pjcj left 08:57 pjcj joined 09:00 domidumont left, amit_zero joined 09:01 domidumont joined 09:03 tgt left 09:04 isBEKaml` is now known as isBEKaml, isBEKaml left, isBEKaml joined 09:08 sqirrel joined, tgt joined 09:09 Pleiades` joined 09:10 fhelmberger joined 09:11 berekuk left 09:14 berekuk joined 09:15 Pleiades` left 09:19 berekuk left 09:29 erkan joined, erkan left, erkan joined 09:32 domidumont left 09:33 domidumont joined 09:34 Pleiades` joined 09:35 isBEKaml` joined 09:36 isBEKaml left, isBEKaml` is now known as isBEKaml, isBEKaml left, isBEKaml joined
FROGGS .u ⏏ 09:39
yoleaux U+23CF EJECT SYMBOL [So] (⏏)
09:40 amit_zero left
dalek : e31c030 | (Tobias Leich)++ | STATUS.md:
test to see how that works
09:49
daxim what. 09:50
p5 grammar? for real?
dalek : aa1276e | (Tobias Leich)++ | README.md:
perl syntax highlighting
09:53
isBEKaml FROGGS: Nice, I never thought this could be a module. :) 09:54
dalek : 863436a | (Tobias Leich)++ | STATUS.md:
text alignment
09:57
FROGGS daxim: yes :o)
isBEKaml: well, I believe nothing is impossible with the current implementation 09:58
isBEKaml FROGGS: ehh, is the STATUS.md doc right?
FROGGS: I see a rakudo error message about TTIAR in there. :)
FROGGS isBEKaml: it is just a test 09:59
isBEKaml FROGGS: well, I didn't say impossible. :)
jnthn Even the debugger is able to be module-esque rather than being tied into Rakudo itself. :)
FROGGS that is what I want to generate
jnthn Generally, the aim is that the architecture doesn't demand such things be core.
FROGGS isBEKaml: but what you see within the table are actually real values 10:00
isBEKaml jnthn: Nice things are nice. :)
jnthn The fun bit will be seeing if an alternative frontend (like the debugger) and alternative backend (like the JVM) can compose nicely. :)
isBEKaml FROGGS: are you taking the tests from somewhere or are you generating them as you go? (roast, perlito)?
FROGGS isBEKaml: I took the tests from perl5 source, and we have perlitos tests 10:01
... and made a roast5 repo out of that 10:02
isBEKaml jnthn: definitely, fun things are to come to perl6 land! 10:03
FROGGS: I was nodding off asleep in the day when I saw your commit message to jolt me awake in interest. :D
arnsholt jnthn: Did you merge nqp/hll?
My internet supply has been really spotty the last few days 10:04
jnthn arnsholt: yes
arnsholt: And the corresponding rakudo/hll
arnsholt: Both branches are gone now.
arnsholt Yeah, I went looking for the branch and couldn't find it =)
jnthn ah :)
isBEKaml arnsholt: heh, my internet supply has always be spotty. It's literally dotted with useless packets. :P 10:05
*been 10:06
arnsholt For some reason my laptop flat out refused to connect to the wifi at the hotel I was at (for a work seminar)
Which was annoying, especially when I needed to be online >.< 10:07
jnthn :( 10:11
10:14 rking1 joined
timotimo hello, people. what's new? :) 10:14
10:14 rking left, rking1 is now known as rking, anuby left
isBEKaml hey, timotimo 10:14
jnthn r: class This { }; This.new # this is new, timotimo :) 10:15
p6eval rakudo 460c2a: ( no output )
jnthn timotimo: Also from backlog, seems something didn't work out with nqp::copy 10:16
timotimo oh. the rakudo tests didn't catch it, sadly 10:18
jnthn No, turns out copy is not spec'd and so not tested :( 10:19
10:20 Heather left
jnthn Alas, it is used by Panda... 10:20
timotimo how many hours ago is the message regarding that? 10:22
jnthn 4.5
timotimo ah, i was hoping there would be a better explanation than just "doesn't work" 10:23
i'll look into it
jnthn imho, we can spec it and add a spectest... 10:24
timotimo i need to do a few errands first
jnthn np 10:25
jnthn is busy $dayjobbin' too
10:33 fhelmberger left 10:36 fhelmberger joined 10:43 stevan_ left 10:48 isBEKaml left 11:04 anant joined
anant S02:1940 says "$:foo self-declared formal named parameter" ... shouldn't it be ":$foo"? 11:14
jnthn No 11:15
That's in a parameter list
This is the named equivalent of $^foo parameters.
r: my $x = -> :$greeting { say "$greeting, anant" }; $x(:greeting('Привет')) 11:16
p6eval rakudo 460c2a: OUTPUT«Привет, anant␤»
timotimo that's neat! 11:17
jnthn r: my $x = { say "$:greeting, anant" }; $x(:greeting('Привет'))
p6eval rakudo 460c2a: OUTPUT«Привет, anant␤»
timotimo i wonder for how much longer perl6 will surprise me with cool stuff
11:19 snuffles left
anant jnthn: oh, so that's why the "self-declared" thingy in that sentence (S02:1940)? 11:21
jnthn anant: Yes
$^foo and $:bar are both declarations (as parameters)
anant jnthn: wow, this is head-spinning! Another question, is ":$foo" an example of twigil ? 11:24
jnthn No, but $:foo is :) 11:25
The pattern is <sigil> <twigil> <name>
$.foo # $ sigil, . twigil, name foo
The twigil pretty much always tells you something about scope or lifetime. 11:26
anant jnthn: which synopsis will enlighten me about :$foo :) 11:27
moritz S06 I think 11:28
or maybe S02
cognominal :$foo is a pair 11:29
r: my $foo; say :$foo
p6eval rakudo 460c2a: OUTPUT«␤»
cognominal r: my $foo; say :$foo.perl
p6eval rakudo 460c2a: OUTPUT«"foo" => Any␤»
moritz r: my $foo = 42; say (:$foo).perl
p6eval rakudo 460c2a: OUTPUT«"foo" => 42␤»
jnthn :$foo in a signature, S06. :$foo as colon pair syntax, S02. 11:30
cognominal by design, very often a :$foo pair is an argument passed to bind an parameter of the same name 11:35
r: sub foo(:$foo) { say $foo }; my $foo = 42; say $foo.perl; foo(:$foo) 11:36
p6eval rakudo 460c2a: OUTPUT«42␤42␤»
cognominal this usage explains why the same syntactical construct has two different meanings in different context. They are indeed very related. 11:38
11:39 isBEKaml joined 11:44 rhinux left 11:56 domidumont left 12:08 domidumont joined 12:14 skids left 12:18 tgt left 12:25 tgt joined 12:31 arlinius left 12:34 dayangkun joined 12:37 anant left, crab2313 joined 12:38 stevan_ joined 12:49 sqirrel left 12:59 chinaXing joined 13:00 stevan_ left 13:02 tgt left 13:10 kaare_ joined 13:11 drbean left 13:12 PacoAir joined 13:13 drbean joined 13:25 bluescreen10 joined 13:27 avar joined, avar left, avar joined 13:29 jfried joined 13:31 gtodd joined
gtodd pmichaud: tadzik: how are doc.perl6.org p6doc and all those sorts of things doing? 13:34
moritz occasionally somebody improves them :-) 13:35
gtodd p6doc Str seems fairly errm slow compared to perldoc :)
moritz as does pretty much everythiing that builds on rakudo instead of p5 13:36
which is why doc.perl6.org hosts static sites :-) 13:38
13:39 bluescreen100 joined
hoelzro I think the best next step for Perl 6 web dev is site generators =) 13:39
gtodd heh yeah but that will automagically improve some day :) p6doc seems very picky about where it is run from and where the index should be located etc. I can't see anyway to change that except hardcoded strings inside the script?
moritz huh? p6doc should look into @*INC
which means it should look for .pod files anywhere that rakudo looks for modules 13:40
if that's not the case, please submit a bug report
13:42 skids joined 13:43 bluescreen10 left
FROGGS r: say @*INC 13:44
p6eval rakudo 460c2a: OUTPUT«/home/p6eval/nom-inst/lib/parrot/5.2.0-devel/languages/perl6/site/lib /home/p6eval/nom-inst/lib/parrot/5.2.0-devel/languages/perl6/vendor/lib /home/p6eval/nom-inst/lib/parrot/5.2.0-devel/languages/perl6/lib /home/p6eval/.perl6/2013.03-81-g460c2ad/lib␤»
FROGGS r: say %*CUSTOM_LIB
p6eval rakudo 460c2a: OUTPUT«("perl" => "/home/p6eval/nom-inst/lib/parrot/5.2.0-devel/languages/perl6", "vendor" => "/home/p6eval/nom-inst/lib/parrot/5.2.0-devel/languages/perl6/vendor", "site" => "/home/p6eval/nom-inst/lib/parrot/5.2.0-devel/languages/perl6/site", "home" => "/home/p6eval/.per…
gtodd moritz: actually it finds the docs but it seems not to be able to find itself or the index.data file unless I run it from bin/p6doc inside the cloned doc repo ... I thought I might have done something bad to ENV or config settings but can't really find any :-)
FROGGS moritz: custom lib is always in INC too, right?
ahh, so it wants its own bin-dir in path? 13:45
moritz gtodd: oh, I've never looked at the index.data file stuff 13:46
I'm not even sure if it's installed
but yes, that needs fixing
gtodd moritz: I like static html pages for documentation especially when the idea seems to be dynamic updates, etc. Along with his /package hierarchy djb of tinydns/qmail fame had and idea for /doc/packages.html (an autogenerated set of links to /package/category/name/doc/index.html) ... it worked well but wasn't used widely
13:47 colomon left 13:49 domidumont left 13:50 domidumont joined 13:55 rking left 13:56 rking joined 13:57 rking left
gtodd moritz: there seems to be some attempt made to "serve" the p6doc pages locally with a Mojolicious app .. but the routing doesn't seem to work ... perhaps something simpler to set up for local use that excercised some perl6 modules (HTTP::Easy?) would be a good idea (do we like dogfood ?) ... 13:57
moritz we like dogfood, yes
13:58 colomon joined
gtodd of course the doc.perl6.org site should be static and use massively optimized approaches in anticipation of the deluge to come 13:58
13:59 rking joined
moritz well, doc.perl6.org is static, and will remain that way (though maybe a dynamic search backend would be OK) 13:59
gtodd oops I just typed "p6doc HTTP::Easy" to take a quick look at how that might work (if I'm patient panda tells me it is installed) 14:00
14:00 BigBear joined 14:02 crab2313 left 14:03 groky left
dalek : 2d51ec5 | (Tobias Leich)++ | t/test_summary:
add script which produces STATUS.md
14:03
: c3d49d8 | (Tobias Leich)++ | STATUS.md:
smoke the whole testsuite!
14:03 domidumont left
gtodd there's no docs but p6doc found the "placeholder" /home/gtodd/perl6/lib/parrot/5.2.0-devel/languages/perl6/site/lib/HTTP/Easy.pm6 without problems 14:04
14:04 domidumont joined, groky joined 14:05 rking left, stevan_ joined, rking joined
FROGGS moritz: if someone wants to know v5's status, just point him to this: github.com/rakudo-p5/v5/blob/master/STATUS.md :P 14:06
timotimo could you sort that by number of spec-(fails+skips)?
FROGGS hmmm, I coudl... 14:07
*could
then I'd add a summary too
nwc10 wonders where Perlito stands on that metric
FROGGS nwc10: maybe a bit better then v5
nwc10 and anything else that is intending to parse or run Perl 5
timotimo i think perl5 beats v5 by a big margin 14:08
FROGGS hehe
gtodd moritz: I then did "panda install HTTP::Server::Simple" ... then "p6doc HTTP::Easy::PSGI" and it found everything .. it was empty but it found it "No Pod found in /home/gtodd/perl6/lib/parrot/5.2.0-devel/languages/perl6/site/lib/HTTP/Easy/PSGI.pm6" so well I'm surprised because all that's missing is the documentation :)
jnthn timotimo: i1.kym-cdn.com/entries/icons/origin...58202f.png :)
gtodd which folks will write eventually (perl6's pod format is different?) 14:09
FROGGS *g*
gtodd a bunch of nascent pods are probably incubating as README.md's on github 14:11
14:17 drbean left, fgomez left, Celelibi left, labster left, moritz left, nyuszika7h left, sjohnson left, gtodd left, hoelzro left, raiph left, wolverian left, jferrero left, kaare_ left, charsbar______ left, cxreg left, PerlJam left, mtk left, felher left, nwc10 left, simcop2387 left, markov left, stevan_ left, domidumont left, jfried left, dakkar left, frdmn left, SamuraiJack left, loops left, daxim left, prammer left, xilo left, crazedpsyc left, erkan left, shachaf left, cognominal left, SHODAN left, TimToady_ left, mattp__ left, bluescreen100 left, avar left, kst left, Yappo______ left, ggoebel left, pjcj left, jtpalmer left, rvchangue left, kresike left, odoacre left, araujo left, zamolxes_ left, bruges left, kingbeast left, BigBear left, skids left, PacoAir left, dayangkun left, awwaiid left, xinming_ left, groky left, chinaXing left, rindolf left, ironcamel left, mls left, Maddingue left, ingy left, preflex left, Patterner left, jerome left, p6eval left, tadzik left, eternaleye left, GlitchMr left, risou left, daniel-s left, rking left, fhelmberger left, Pleiades` left, FROGGS left, orafu left, pib1908 left, isBEKaml left, renormalist left, robinsmidsrod left, sivoais left, telex left, sftp_ left 14:19 rking joined, stevan_ joined, groky joined, domidumont joined, BigBear joined, skids joined, bluescreen100 joined, gtodd joined, jfried joined, avar joined, drbean joined, PacoAir joined, kaare_ joined, chinaXing joined, dayangkun joined, isBEKaml joined, fhelmberger joined, Pleiades` joined, erkan joined, pjcj joined, dakkar joined, renormalist joined, daxim joined, kresike joined, fgomez joined, Celelibi joined, robinsmidsrod joined, FROGGS joined, sivoais joined, rindolf joined, telex joined, frdmn joined, shachaf joined, eternaleye joined, daniel-s joined, SamuraiJack joined, awwaiid joined, odoacre joined, preflex joined, orafu joined, prammer joined, Patterner joined, sftp_ joined, cognominal joined, loops joined, GlitchMr joined, labster joined, PerlJam joined, jtpalmer joined, mtk joined, xinming_ joined, kst joined, kingbeast joined, araujo joined, Yappo______ joined, felher joined, hoelzro joined, nwc10 joined, zamolxes_ joined, ironcamel joined, raiph joined, nyuszika7h joined, wolverian joined, rvchangue joined, jerome joined, jferrero joined, mls joined, pib1908 joined, bruges joined, ggoebel joined, wtw joined, cibs joined, dalek joined, Khisanth joined, lue joined, Timbus joined, toddr_ joined, mikemol joined, LoRe joined, Tene joined, djanatyn joined, perigrin joined, hypolin joined, Util joined, kshannon joined, diakopter joined, xorp joined, scottp joined, cotto joined, tomaw joined, kcwu joined, Juerd joined, rhr_ joined, felipe joined, [Coke] joined, ivan`` joined, szbalint joined, chee joined, [particle] joined, bakedb_ joined, broquaint joined, ruoso joined, dpk joined, timotimo joined, yoleaux joined, _sri joined, rom1504 joined, breinbaas joined, Exodist joined, BinGOs joined, atrodo joined, mj41 joined, sorear joined, pmichaud joined, takesako___ joined, betterwo1ld joined, yves_ joined, _ilbot joined, jlaire joined, yx joined, flussence joined, cooper joined, jnthn joined, swarley joined, japhb joined, nebuchadnezzar joined, Rix joined, sjohnson joined, mathw_ joined, SHODAN joined, krunen joined, Vlavv joined, huf joined, vaelxon joined, dvj joined, Bucciarati joined, Gothmog_ joined, lestrrat joined, sdgvf_ joined, pnu_ joined, autumn joined, arnsholt joined, rafl joined, genehack joined, dbr joined, salv0 joined, anocelot joined, BooK_ joined, rurban joined, cosimo joined, p5eval joined, bonsaikitten joined, geekosaur joined, apejens joined, gfldex joined, revdiablo joined, mikec__ joined, sergot joined, ponbiki joined, Ayiko joined, clkao joined, integral_ joined, LordV joined, sitaktif1 joined, Hor|zon joined, patspam joined, nemesys joined, mst joined, eiro joined, c1sung joined, baest joined, Grrrr joined, yeltzooo joined, charsbar______ joined, TimToady_ joined, Maddingue joined, cxreg joined, mattp__ joined, simcop2387 joined, ingy joined, markov joined, crazedpsyc joined, tadzik joined, p6eval joined, risou joined, mikess joined, lee_ joined, sjn joined, sendak.freenode.net sets mode: +v p6eval, moritz joined 14:27 rurban left 14:30 census joined
isBEKaml .u arch 14:35
yoleaux U+032B COMBINING INVERTED DOUBLE ARCH BELOW [Mn] (◌̫)
U+0372 GREEK CAPITAL LETTER ARCHAIC SAMPI [Lu] (Ͳ)
U+0373 GREEK SMALL LETTER ARCHAIC SAMPI [Ll] (ͳ)
14:36 PacoAir left
FROGGS .u ankh 14:36
yoleaux U+2625 ANKH [So] (☥)
FROGGS .u klingon 14:37
yoleaux No characters found
FROGGS -.-
gtodd moritz: pmichaud: tadzik: so for p6doc any local HTTP served version of a site's docs would need to behave like doc.perl6.org i.e. if I'm looking at lang.html it should be accessible at locahost:8080/lang/ and where the page says --> "lang' is a method from type X::Eval::NoSuchLang" ... those terms should link like this: 14:38
<a href="X::Eval::NoSuchLang">X::Eval::NoSuchLang</a> and the server/plackapp/whatever should be able to present X::Eval::NoSuchLang.html without the extension appearing.
14:39 xilo joined
gtodd so that it's sort of RESTful ... in a Perl::Package::Kindof::Way 14:39
14:39 xilo_ joined, xilo_ left 14:41 frdmn left 14:43 arlinius joined 14:47 colomon left 14:53 tgt joined 14:54 colomon joined
moritz RESTful doesn't have much to do with URL layouts 14:58
15:00 tgt left, tgt joined
jnthn REST done Really Right (following the hypermedia constraint) treats URLs as opaque 15:01
With the outside world coupling only to the entry point. 15:02
Just like humans only couple to amazon.com, then follow links for the rest of the business process.
15:02 isBEKaml left
jnthn bbiab 15:05
FROGGS .oO( bbwab - be back with a beer ) 15:07
census FROGGS ++ 15:10
xilo mm beer 15:25
15:28 GlitchMr left 15:29 GlitchMr joined 15:33 spider-mario joined, kbenson joined 15:35 chinaXing left 15:37 SamuraiJack_ joined
xilo wish i could drink beer at work 15:38
would make the day go by better
15:38 rurban joined
kresike bye folks 15:38
15:38 kresike left
xilo g'day sir 15:39
15:40 SamuraiJack left
FROGGS coffee is my beer 15:40
15:56 census left 16:00 stevan_ left 16:01 spike joined
spike hello. 16:01
xilo hola
spike Quick question to anyone that's there from a Perl 5 user.
Will perl 6 replace perl 5 at some stage?
I always thought that Perl 6 was a rewrite of the base language but I've a feeling that might not be the case? 16:02
16:02 daxim left
xilo no, they are different entities 16:02
spike Fair enough.
So they are existing as two separate languages now?
xilo yes 16:03
spike In that case what the reasoning behind Perl 6? I couldn't find anything obvious on the website about history or that sort of thing?
16:04 pmurias joined
xilo en.wikipedia.org/wiki/Perl_6 has a good description of the background 16:04
geekosaur I suppose you could say it's intended to be a clean break from some design choices in perl 5 that it's pretty much stuck with for compatibility reasons 16:05
xilo basically get rid of the nonsense cruft that's in perl5, make the language cleaner, and formally implement OOP
spike Ahh wikipedia.. don't know why I didn't hit that to begin with!
Thanks xilo and geekosaur for the info.
xilo perl5 has some really wtf stuff in it 16:06
welcome
timotimo spike: if you're interested in more thorough history digging, you can read the original "apocalypses" where each part of the specification is explained (but it contains lots of outdated informations)
16:06 colomon left
timotimo perlcabal.org/syn/ <- here in the "justification" column 16:06
spike Cheers timotimo. High level is enough for me.
The goals make sense.. be interesting to see if Perl 5 every dies! 16:07
xilo i doubt it...
hell cobol/pascal/etc still are used lol
FROGGS spike: after decades it was just time to create an up-to-date language 16:09
you'll see what I mean when trying/reading more and more
spike We're just implementing a CICS based system in cobol. I don't know why the business have bought it but there you go!
xilo ouch
16:10 spike left
timotimo sometimes i wonder if it would be a good idea to learn cobol to make mad amounts of money 16:10
gtodd jnthn: well I meant more that the URLs for web served documentation would be built up out of the ops functions variables etc. in a way that looks more like perl than html and web ...
timotimo if you look at it like it's a "puzzle", then maybe it could even be enjoyable?
xilo timotimo: it's getting harder finding people that know cobol to maintain those huge ancient systems 16:11
geekosaur ...and are willing to
16:12 ggoebel left
timotimo xilo: that's why there would be crazy amounts of money! 16:12
16:12 ggoebel joined
xilo indeed 16:13
gtodd moritz: so I guess the URLs are opaque compared to typical web_pages.html :) ... but the web served part of docs repo I checked seems broken now ... is doc.perl6.org simply apache and static pages and a bit of javascript ? 16:14
it seems mostly to work that way if I adjust the root ... but is the idea to have an optional localhost:6666/doc/ "viewer" something like the R console's "web docs" (it will spit out text like "p6doc Str" does but will launch webserver and a browser window to browse the docs if you want). 16:33
so maybe p6doc -w Str would launch the (very small efficient) local webserver and point a browser ... p6doc -www Str would spit the url for the docs at doc.perl6.org and launch or point a browser window at it via --remote etc etc that kind of thing ? 16:36
16:37 Chillance joined
[Coke] Looks like TPF is not on the list of accepted groups for GSOC 2013. Neither is Pafo 16:42
nwc10 Did TPF apply? 16:43
(I know that Pafo did)
[Coke] I thought they did. 16:44
gtodd moritz: and maybe a configurable setting for a behind firewall server part of the web address could be used instead of 127 .. would also be useful 16:45
mattp__ [Coke]: what is pafo?
gtodd moritz: just wondering if there's some way I can help but it looks like things are almost done :)
[Coke] mattp__: The Parrot Foundation 16:46
gtodd parrot advancement foundation
[Coke] TPF == The Perl Foundation
mattp__ [Coke]: ah gotcha
gtodd does PAFO still get money from MoFo
(MoFo == Mozilla Foundation)
[Coke] I don't think so, but you'd have to ask the very quiet board members. 16:48
(I *really* don't think so)
gtodd to me it would seem parrot and perl6 would be very good for HTML5 because (insert reasons ____) and ... The Moz wants HTML5 ...
hmm parrot.org/sponsors ActiveState BBC MozFo 16:49
[Coke] gtodd: one time donors.
gtodd NLNet ... but possibly a dated page
yeah 16:50
Someone should tell them about "3rd time lucky"
[Coke] discussion about PaFo is better held on #parrot @ irc.perl.org
FROGGS "dukeleto Happy to announce that @parrotvm will be mentoring students in #gsoc again this year! If you know awesome CS students, send them to me :) "
gtodd :) 16:51
\o/
[Coke] FROGGS: when is that from?
gtodd hehe "this year!"
FROGGS [Coke]: two days ago
according to parrot.org/sponsors (blue box on the right)
[Coke] ok. parrot is not in the list of accepted organizations. perhaps he needs to click on something to make it show up.
FROGGS ya, complete the profile or something 16:52
gtodd hmm that would be important to do :)
[Coke] also, parrot.org/ is horribly broken. 16:53
whoops, ww.
FROGGS they say they accepted 177 projects, but only 169 projects are shown... 16:54
16:55 dakkar left
masak oh hai, #perl6 16:55
16:55 PacoAir joined
FROGGS hi masak 16:56
masak tags irclog.perlgeek.de/perl6/2013-04-10#i_6687602 as an autopun 16:58
jnthn o/ masak
16:58 TimToady_ is now known as TimToady 16:59 BigBear left
TimToady starts to fuzz back into existence... 16:59
yoleaux 31 Mar 2013 08:49Z <diakopter> TimToady: welcome back! :) \o/
jnthn TimToady! \o/
nwc10 TimToady: can I ask a not Perl *6* question, that you might be able to quickly answer with "I don't remember" ? 17:00
TimToady well, all but the bits they removed...
nwc10: you can try :)
FROGGS TimToady: \o/ 17:03
nwc10 in Perl 3, toke.c added code which seems to be written to avoid using explicit constants. Did the C compilers of that era (or the machines) generate better code if they could (re)load a value from memory (or figure out that they already had it in a register) than if you gave them an immedate constant (eg '-') that it would take a smart optimiser to realise was already in a register?
masak TimToady! \o/
nwc10 see, said it wasn't Perl 6. :-)
TimToady nwc10: can you point me to a diff? 17:04
dalek rl6-roast-data: ca9cf2d | coke++ | / (4 files):
today (automated commit)
rl6-roast-data: 5bc7bf9 | coke++ | / (4 files):
today (automated commit)
pmichaud TimToady: wb! o/
[Coke] ~~~ at TimeyWimeyTimmyToady 17:05
[Coke] notes that rakudo has been failing S32-io/IO-Socket-INET.t 20 - successful read binary data for 2 days. 17:06
TimToady I don't know if anyone relayed my pathology reports, but the basic gist of it is that the tumor was more agressive/widespread than they thought, but they still think they probably got it all. won't know more for three months, but then the PSA test is a really good indicator, since there's not supposed to be anything producing PSA anymore... 17:07
17:07 FROGGS[mobile] joined
[Coke] (today's run is in progress.) 17:07
TimToady *aggressive
[Coke] TimToady: best of luck.
TimToady thanks
pmichaud TimToady: yes, that's essentially the news we heard. I'll remain very hopeful for a good outcome. 17:09
jnthn also
nwc10 had not heard it, but is glad that they think that they have it all
also, I suspect that I might have my era of toke.c wrong. Trying to get a diff revealed older things... 17:10
17:15 FROGGS left
masak hugs TimToady 17:16
17:18 frdmn joined
[Coke] r: PRE ; 17:18
p6eval rakudo 460c2a: OUTPUT«===SORRY!===␤Missing block or statement␤at /tmp/6CTUNIVzyN:1␤------> PRE ⏏;␤ expecting any of:␤ statement list␤ prefix or term␤ prefix or meta-prefix␤»
[Coke] FROGGS++
nwc10 TimToady: it's actually from perl 1.0. It's things like this part of perly.y: perl5.git.perl.org/perl.git/blob/pe...rly.c#l333
where it's doing tmp = *s++; 17:19
OPERATOR(tmp);
which makes sense if OPERATOR() is a macro that evaluates its arguments more than once
and the "diff" I suspect is that the relevant code in 3.0 was copied from other parts
so I might have answered my own question sort of 17:20
sorry for the interruption.
[Coke] nwc10: hey! this is #perl6, not #perl1. :P 17:21
;)
nwc10 the diff in question *would* have been this one perl5.git.perl.org/perl.git/blobdif...a8:/toke.c
which is the diff from 2.0 p1 to 3.0
for the code changes after `case '+':` for example 17:22
17:22 frdmn left
nwc10 actually, there *is* still a question. 17:23
17:23 frdmn joined
nwc10 crap. *I* need more coffee. I've jsut answered it. 17:23
I'm spamming the channel and i'm not even an eval bot
FROGGS[mobile] nwc10: .commands 17:27
nwc10 to return you to your regularly scheduled topic, having just looked at Perl 1's tokeniser, and recently had the fun of looking at what it has turned into, I think that it's an *excellent* idea to write the tokeniser in something other-than-C 17:28
(now that machines are powerful enough to make that a sane choice)
FROGGS[mobile] hmmm, must be faulty
nwc10 :-)
jnthn nwc10: We can't actually be bothered to write one for Perl 6, so we just write this Perl 6 grammar thing and then generate the lexer automagically :P
17:30 colomon joined
nwc10 so after a lot of time to figure out how to write the code to do that, it looks after itself. That's very long term laziness. 17:30
arnsholt nwc10: Do you consider (f)lex to still be C? =) 17:33
nwc10 if one doesn't have to write C, it's not C. But unfortunately Perl 1 to 5 were not using flex. It's C code. 12,000 lines of it now: perl5.git.perl.org/perl.git/blame/H...toke.c#l12 17:35
pmichaud thinks the above sequence should be saved as a "Perl 6" quote somewhere.
afk, lunch 17:36
17:37 FROGGS joined 17:38 ggoebel left
diakopter dpk: ping 17:39
17:41 ggoebel joined 17:46 PacoAir left
diakopter .. if you have to think in C semantics even though you're not writing C, it's C imho 17:48
dpk diakopter, pong
Tene C's better anyway, because 99 is much higher than 6
although Perl 6 is catching up quite a bit in recent years, with C11 17:49
diakopter dpk: hi :) feature request, or ignorant question if it's already got the feature
dpk fire away
arnsholt nwc10: Oh. Right. For some reason I thought Perl used flex
In that case, I agree =)
I was just a bit curious about flex, since it's kinda sorta C, but mostly not
17:49 PacoAir joined
arnsholt I have a fond memory of doing a simple data munging flex. My friend did it using Common Lisp and spent way much more time, writing lots more code and ending up with a program that was dog slow =D 17:51
I had 10 lines of flex \o/
diakopter channel-specific definitions - .? Foo is blah blah blah .? Foo <-- to retrieve definition and a way to append multiple [or expanded] definitions instead of replace existing - also with particular syntax for replace [as opposed to default append] you don't need a "confirm" on replace. Also, a way to enable one-way inherit of definitions, with transitivity. So this channel could share/modify the same set of definitions if *both* ... 17:52
... trusted/inherited each others'
dpk: ^ 17:54
enabling the trust is admin-only command obviously...
dpk hmm. i'll make a note. i can see why that might be useful (channel rules and stuff) 17:55
diakopter er, "... the same set of definitions *[as another channel] ..."
it's used a lot on help channels for shortcuts to FAQ answers 17:56
dpk nods
diakopter or acronym explanations
dpk .acronym AAAAA 17:57
yoleaux AAAAA could stand for: American Association Against Acronym Abuse; Association Amicale des Amateurs d'Andouillettes Authentiques; AHo's Amazing Atlas of Antibody Anatomy; American Association Against Alliteration Abuse
diakopter .acronym A
17:57 shinobicl joined
diakopter .acronym AA 17:57
yoleaux A could stand for: About; To; Adult; Are; Amateur; Year; Area; Ass; Account; Action; Advanced; Individual; Advanced Digital Audio; First in Series; Away; Author; Association; Ask; Blood Type; Active; Excellent; American Bank Note Company; Anna; Answer; Article; Accept
AA could stand for: Automobile Association; Ana; Battery Size; Associate in Arts; As Above; Architectural Association; Athletic Association; Asian American; Bra Size; Administrative Assistant; Anti-Aircraft; Aruba; Amino Acid; Atomic Absorption
diakopter *sigh
well, these would be channel-specific acronyms. :) 17:58
dpk ok, i'll think about it. if you want that functionality right now though, Bucket (github.com/zigdon/xkcd-Bucket) provides some of that functionality … i don't think it does channel-specific keyword associations, though … 17:59
diakopter wow, a 2100-line subroutine 18:00
nice.
jnthn: ^ example of extreme programming 18:01
xilo diakopter: all my whys
diakopter (bucket.pl)
personally, I don't see anything wrong with it... it doesn't indent horribly much; it's just a very long inlined command-pattern 18:02
but I know others would disagree 18:03
18:03 BigBear joined
japhb timotimo: Sorry for bad error report re: nqp::copy (I was bleary tired after finding the two problems in the first place, since one was hiding the other). Did you get it figured out yet? 18:03
yoleaux 08:20Z <jnthn> japhb: it's not so simple as nqp::usecapture 'cus it hllize's arguments and handles natives too. I suspect it may stay as an op and we just implement it in the set of extra ops we'll add for JVM, so it'll get an nqp::p6arglist op or so (should not say RPA in nqp:: op names).
08:20Z <jnthn> japhb: CCLASS_PRINTING being missing is just an oversight; should be converted too
08:21Z <jnthn> japhb: other things may use Q:PIR and pir:: outside of Rakudo, so that can live a bit longer, but we may want to make it require a pragma and spend a while warning if the pragma ain't there.
japhb jnthn, understood on all three. #2 (CCLASS_PRINTING) is a good LHF for someone with tuits in the next few hours .... 18:04
dpk diakopter: i have to go now, but, so i remember, could you file a feature request at github.com/dpk/yoleaux/issues ? thanks
diakopter sure
japhb moritz, I see you confirmed the sink problem with fail at the end of a for loop -- did you manage to figure why the bug is happening? 18:06
FROGGS [Coke]: that network stuff might be because of the newer parrot-revision we use :/ 18:08
dalek rl6-roast-data: 31398bf | coke++ | / (4 files):
today (automated commit)
18:09
[Coke] FROGGS: you're off the hook:
niecza has been dirty for 268 days. pugs has been dirty for 7 days. rakudo has been clean for 1 day.
18:09 japhb_ left
FROGGS * [Coke] notes that rakudo has been failing S32-io/IO-Socket-INET.t 20 - successful read binary data for 2 days. 18:10
18:10 colomon left
FROGGS so S32-io/IO-Socket-INET.t fails? 18:10
18:10 colomon joined
FROGGS ohh, not anymore as it seems 18:10
[Coke]: nvm
18:11 cognominal left
FROGGS [Coke]: btw, got my own pass rates now :o) github.com/rakudo-p5/v5/blob/master/STATUS.md 18:12
18:12 cognominal joined
FROGGS though you don't actually see a rate 18:12
18:12 cognominal__ joined
FROGGS but it will help me pretty much picking my tasks 18:13
18:18 [particle] left 18:20 [particle] joined
[Coke] FROGGS++ 18:26
18:34 [particle] left
gtodd moritz: correction to all of the above ... Mojolcious updated some syntax .. and the htmlify.pl script broke because my graphviz was too old ;-) 18:35
18:37 [particle] joined
gtodd pmichaud: tadzik: the p6doc app.pl from github.com/perl6/doc.git needs this tiny change for latest mojolicious : 18:37
-app->static->root('html');
+app->static->paths(['html']);
18:39 japhb_ joined
[Coke] regarding sixification of modules - can we either get more memory alloted to that instance (if needed) or setup an rsync for updating perl6 builds on that instance? 18:45
18:54 sqirrel joined 18:56 leprevost joined 19:01 SamuraiJack_ left 19:03 cognominal_ joined 19:05 cognominal__ left 19:06 cognominal left, cognominal__ joined 19:15 tgt left 19:16 grondilu joined, domidumont left
moritz gtodd: what's your github ID? 19:17
19:17 snearch joined 19:18 cognominal_ left 19:22 tgt joined
xilo hmm need something to do 19:23
gtodd moritz: opendev I think 19:24
moritz: not really mine :-) ... it's sort of a leftover from opendevelopment.net not sure I have a password for it 19:25
_sri wonders if perl6 has something like nested exceptions bugs.ruby-lang.org/issues/8257 19:26
raiph i'm thinking it would be nice to be able to declare variables without sigils. this is interpreted to mean because of that i'm wondering what would it take to create a slang in which one could omit the sigil when declaring (and referencing) variables? is it even possible? 19:27
s/this is interpreted to mean.// 19:28
FROGGS r: my \hello = 42; say hello
p6eval rakudo 460c2a: OUTPUT«42␤»
masak IAI (It's Already Implemented)
gtodd moritz: this is not me --> github.com/gtodd :) 19:29
FROGGS masak: nevar evar seen that :o)
raiph FROGGS: masak: i think i mean something else (more)
19:30 dmol joined 19:34 Chillance left
labster masak: I took up your challenge and wrote some more character classes. blog.brentlaabs.com/2013/04/perl-6-...-pack.html 19:36
raiph i like sigils, for a few reasons. i liked the feature FROGGS demo'd when Larry introduced it. not just because it was a sop to those calling for "sigilless (sp?) variables". but that too. 19:39
jnthn labster++
masak labster: nice! \o/ 19:40
it's really been three years? oh man.
labster: minor nit: s/The interpreter/The compiler/ 19:41
tadzik labster: s/prophesy/prophecy/? 19:42
FROGGS labster++
*g*
arnsholt _sri: I think moritz++ is the one who's most familiar with the exception stuff
tadzik labster: this is awesome! 19:43
labster++
FROGGS raiph: what did I demo? I can't follow somehow 19:44
masak is more than fine with being Mäsak the Pretty Cool Guy :)
19:44 snearch_ joined
FROGGS raiph: and yes, it would be possible to omit sigils in a slang, like C or so 19:44
raiph 15:28 <FROGGS> r: my \hello = 42; say hello 19:45
is what i meant
FROGGS ahh, okay
raiph i was thinking about something else
19:45 snearch left
FROGGS raiph: you would just need to convince the grammar that you can declare a variable without a sigil and without a backslash, and you're (almost done) 19:46
raiph: so tell us :o)
raiph r: my \hello = 42; say hello; $hello = 4; say hello # would dwim 19:47
p6eval rakudo 460c2a: OUTPUT«===SORRY!===␤Variable '$hello' is not declared␤at /tmp/QIkMNdxUIM:1␤------> my \hello = 42; say hello; $hello⏏ = 4; say hello # would dwim␤ expecting any of:␤ postfix␤»
FROGGS raiph: what exactly is $hello? a reference to hello ? 19:49
raiph btw, i hadn't worked that out when i started typing in to irc so i just had to make that up because it was time to try. :)
labster thanks guys. I should really join the blog planet.
19:50 larks joined
diakopter masak++ nice abstract OO O_O 19:50
labster I like sigilless variables too, but sometimes I just confuse myself when I use them. It's like those sigils are serving as topic markers, which makes it easier for me to read. 19:52
FROGGS I only like sigilless thing in C 19:54
not in Peril
19:55 colomon left
masak diakopter: oh, you noticed? glad you like it ;) 19:56
raiph labster: yes, i agree. i like topic markers. so i would write $foo.
not only a topic marker, but a scalar container topic too. 19:57
that $ packs a lot of punch
but someone else could write foo 19:58
and if they needed to specify the context to make foo work (which is prolly a lot of the time) they'd write $foo
unless they really meant @foo 19:59
FROGGS EBUGDETECTED: that reify_method is not defined: github.com/perl6/nqp/blob/master/s...OW.pm#L151
masak raiph: that seems like it would lose a lot of the benefits of the noun/verb namespace separation, though. 20:00
raiph only if someone chose to do that
20:00 colomon joined
raiph as i said, i (and it sounds you) would type $foo 20:00
others would type foo 20:01
including, perhaps, myself when i wasn't myself
20:02 kaare_ left
diakopter Peril indeed 20:04
masak: HAHA 20:06
20:07 FROGGS[mobile] left
diakopter masak: but you don't say *which way* it removes all doubts: "This talk aims to remove all doubts." 20:07
the ambiguity is hilarious.
masak diakopter: glad you liked that one too ;) 20:08
diakopter: (it's an old joke. I don't know who originated it.) 20:09
diakopter ah. I didn't know that 20:10
japhb_ .tell timotimo Here's the actual error message from the failing copy operation: Failed to copy '/home/geoff/git/panda/ext/File__Tools/README' to '/home/geoff/git/rakudo/install/lib/parrot/5.2.0-devel/languages/perl6/site/panda/src/File__Tools/README': No such method 'copy' for invocant of type 'OS'
yoleaux japhb_: I'll pass your message to timotimo.
larks question about the byte code,perl6 compiles stuff to parrot byte right? So if I wanted to do some sort of operation on the byte code, I'd need to looking to parrot, right? 20:12
jnthn larks: Rakudo compiles to Parrot bytecode at the moment, yes.
japhb_ .tell timotimo (You'll only see that error if you work around the fail/for/sink bug by putting something after the copy operation in the loop near the end of .../panda/lib/Panda/Fetcher.pm ($_.IO.copy("$where/{$_.name}"); )
yoleaux japhb_: I'll pass your message to timotimo.
jnthn (Will also do JVM bytecode sometime in the next couple of months...) 20:13
larks jnthn: do you think that Rakudo will change anytime soon?
jnthn larks: Rakudo changes every day... :)
larks: Change what, specifically?
larks what it compilesbyte code too
will it switch to jvm, or just have that option
jnthn Have the option. 20:14
The architecture is the typical frontend/backend compiler one.
Perl 6 -> AST -> (some backend that targets a particular VM)
With the backend bit being selectable.
masak diakopter: there. all three talk abstracts written, and all three talks confirmed.
diakopter \o/ masak++ 20:15
larks cool, I'm thinking about starting a project that is dependent on the bytecode and if it were to change it would change haha
thanks for the help jnthn
jnthn larks: What are you thinking of doing, out of curiosity? 20:16
diakopter perks up
larks well, I'm a CompE grad student, that's all I'm saying `-`
larks wouldn't mind talking but doesn't know about his advisor 20:18
jnthn OK. May be worth knowing that there's already a mostly-complete NQP that runs on the JVM and produces JVM bytecode. And I probably don't have to tell you the toolchain for manipulating JVM bytecode is much richer, so you may have an easier time there.
larks: Feel free to privmsg me if there's stuff you want to ask but don't want to or can't in public 20:19
larks noted =]
diakopter larks: plus there are hundreds of times more languages that run on the JVM than parrot...
larks: I assume you're optimizing at the bytecode level (what else would you do with just bytecode?) .. or translate to another VM, I guess, or JIT to some CPU... okay. 20:21
20:21 shinobicl left
lee_ jnthn: i hate to waste your time, but... I looked at optimizing the reduce metaop for Ranges. but it looks like the Range is converted to a Parcel before being passed in 20:21
so the implementation does not have access to .min or .max directly 20:22
raiph labster++ # blog post
lee_ probably in over my head :P
raiph labster: cf www.oreillynet.com/onlamp/blog/2005/10/ofun.html
jnthn lee_: Which thing gets passed the Parcel out of curiosity?
lee_ jnthn: the subroutine returned by METAOP_REDUCE_LEFT 20:23
raiph labster: 16 roles within Perl 6 community
jnthn lee_: Well, it does *@values, which is a slurpy... 20:24
20:24 fhelmberger left
lee_ jnthn: yeah, i was just playing around with making that not slurpy 20:24
jnthn Yeah, trouble is that slurpy will flatten the range I guess.
Hmmm.
diakopter wrap in capture?
jnthn Well, the other thing is to refactor a bit, to declare a couple of multi candidates and return that. 20:25
raiph labster: all, wrong URL above. should be www.perl.com/pub/2005/09/22/onion.html
jnthn multi reduce_it(Range $r) { }; multi reduce_it(*@values) { ...what we do today... }; &reduce_it
Or so.
Would need to turn the ?? !! into an if/else but that's no biggie. 20:26
lee_ what if it simply called $vals.reduce and the implmentation lived in Range/Array/etc?
20:27 berekuk joined
jnthn Trouble is that it's sensitive to left/right assoc and those things, and it'd be preferable not to spread that stuff out. 20:27
20:27 rindolf left 20:28 rindolf joined
jnthn It's almost certainly better to factor the optimization so it falls out of something like multi-dispatch, rather than doing introspection, though. 20:28
20:29 rindolf left
lee_ jnthn: would that Range multi candidate get called if it is being passed a Parcel? 20:32
timotimo r: my @map; @map[3][3] = "X"; @map.perl.say; @map = Any, map({ when Positional { (Any, @($_)).item }; default { Any } }, @map); @map.perl.say; # why does it get flattened? :(
yoleaux 20:10Z <japhb_> timotimo: Here's the actual error message from the failing copy operation: Failed to copy '/home/geoff/git/panda/ext/File__Tools/README' to '/home/geoff/git/rakudo/install/lib/parrot/5.2.0-devel/languages/perl6/site/panda/src/File__Tools/README': No such method 'copy' for invocant of type 'OS'
p6eval rakudo 460c2a: OUTPUT«Array.new(Any, Any, Any, [Any, Any, Any, "X"])␤Array.new(Any, Any, Any, Any, Any, Any, Any, Any, "X")␤»
yoleaux 20:12Z <japhb_> timotimo: (You'll only see that error if you work around the fail/for/sink bug by putting something after the copy operation in the loop near the end of .../panda/lib/Panda/Fetcher.pm ($_.IO.copy("$where/{$_.name}"); )
jnthn lee_: Hm, maybe not, but even then you can write (Parcel (Range)) or so
lee_ ah ok 20:33
20:38 spider-mario left 20:39 dj joined
dj hi everyone 20:39
20:40 dj is now known as Guest87564
Guest87564 i just figured out perl6 20:40
dalek : cfff2db | (Tobias Leich)++ | lib/Perl6/P5Grammar.pm:
lookup %*ENV for %ENV
FROGGS hi Guest87564 20:41
(aka dj)
Guest87564 i have a problem with perl 5 with making a class which would be dynamically extendable, read add attribute in runtime
that is how i discovered perl 6
can someone tell me how convenient this is in perl 6, if its possible at all 20:42
FROGGS well, then welcome :o)
you can define roles and mix then in at runtime for example
masak yeah, I'd just keep doing 'but' with more roles. 20:43
japhb_ Guest87564, also, you can use the metamodel to directly manipulate OO structures (classes, roles, instances, etc.) if the standard syntax like runtime role mixin is not enough for you. 20:44
xilo you can do that at runtime?
FROGGS r: class A { }; role B { method hello { say "hello" } }; my $a = A.new; $a does B; $a.hello
p6eval rakudo 460c2a: OUTPUT«hello␤»
xilo that's really neato
masak \o/
yeah, it's nice.
and that's 'does'.
japhb_ jnthn: he can haz awesome sauce.
xilo makes component programming ez sauce
masak with 'but', you get to keep the original object, too.
Guest87564 yap, that´s what i figured out from here rosettacode.org/wiki/Add_a_variable...ntime#Perl 20:45
2 more questions: i guess that there is get_all_attributes? 20:46
but thats only a guess
masak Guest87564: yeah, just ask the meta layer.
Guest87564 another question is if win7 64bit is supported? 20:47
masak r: class C { has $.foo; has $.bar }; say C.^attributes
p6eval rakudo 460c2a: OUTPUT«$!foo $!bar␤»
masak Guest87564: yes, win7 64bit is supported.
japhb_ r: class A { has $.foo; has $.bar; }; my A $a .= new; DUMP($a);
p6eval rakudo 460c2a: ( no output )
xilo Guest87564: yeah i have rakudo running on my windows 7 box
masak japhb_: 'say'
japhb_ r: class A { has $.foo; has $.bar; }; my A $a .= new; .say for $a.^attributes;
p6eval rakudo 460c2a: OUTPUT«$!foo␤$!bar␤» 20:48
FROGGS r: say Str.^methods
p6eval rakudo 460c2a: OUTPUT«BUILD Int Num chomp chop substr pred succ match ords lines samecase samespace trim-leading trim-trailing trim words encode capitalize wordcase trans indent codes tclc path WHICH Bool Str DUMP ACCEPTS Numeric gist perl comb subst split␤»
japhb_ masak, I know. :-)
FROGGS Guest87564: see, everything is there, and pretty easy too
20:48 sqirrel left
Guest87564 ok, great 20:49
i also hope that there is LWP
FROGGS r: class A { has $.foo; has $.bar; }; my A $a .= new; say $a.DUMP; # that looks nice
p6eval rakudo 460c2a: OUTPUT«A<1>(␤ :foo(▶Any),␤ :bar(▶Any)␤)␤»
Guest87564 search.cpan.org/~gaas/libwww-perl-6...lib/LWP.pm cause that is basically why I started perl 20:50
xilo LWP is on the most wanted list
Guest87564 xilo: which means it´s there, i guess? 20:51
xilo Guest87564: which means it's a WIP/doesn't exist and is something that people really want
Guest87564 aha, i hope it come soon. i am not very familiar with perl 20:52
but what i have compared perl 5 vs 6
i found 6 much easier to use
japhb_ FROGGS, glad you like it. ;-) 20:53
FROGGS :o)
yepp
japhb_: you did that?
japhb_ yup
FROGGS japhb++
the <1> after the name is the definedness?
Guest87564 i mean, this add_attribute via a_role i figured out in perl 6 just from the code, while in perl 5 i still cannt get it running properly 20:54
japhb_ Actually, it's the ordinal of the object as it was found in the (possibly circular or aliased) object graph. That way it can show you when you have two things that are bound to the same object, and which one it is.
FROGGS that is because perl5 was not made for these things... 20:55
Guest87564 i guessed so
FROGGS japhb: ahh, thanks
dalek : 2d7dcbb | (Tobias Leich)++ | STATUS.md:
(I wish it would be an automatic-) smoke test update
20:56
Guest87564 so, is there any easy to use devel environment for perl 6 as e.g. eclipse with EPIC?
FROGGS hmmm, no
japhb_ The right pointing triangle means 'held in a scalar container', a leading infinity symbol means 'is marked infinite', and a leading = sign means 'same as an already seen object' 20:57
FROGGS Guest87564: you have to install rakudo (or rakudo star) and use your editor of your choice
Guest87564 okey dokey, but some integration package, that when you hit play it executes the script does not exist 20:58
20:58 frdmn left 21:01 dmol left
xilo Guest87564: you could use vim and setup a shortcut :3 21:02
Guest87564 yap, but i do like eclipse, and its svn. :-) 21:03
ok guys, i am gone for now
gotta sleep
21:03 skids left
Guest87564 wish u luck 21:03
ciao
masak o/
xilo g'night sir
japhb_ I love friendly, curious guests. 21:04
21:04 dmol joined, dmol left 21:05 FROGGS left
masak 'night, #perl6 21:12
japhb_ o/ 21:13
21:13 snearch_ left, bluescreen100 left 21:17 bruges_ joined 21:18 bruges left 21:22 kurahaupo joined 21:24 colomon left 21:31 FROGGS joined, toddr_ left 21:32 toddr joined 21:35 colomon joined 21:40 PacoAir left 22:00 kshannon left 22:02 lustlife left 22:03 stevan_ joined, stevan_ left 22:04 stevan_ joined 22:05 xilo left 22:06 leprevost left 22:07 kshannon joined 22:19 lizmat joined 22:26 xilo joined 22:33 skids joined, frdmn joined 22:36 grondilu left 22:54 M_o_C joined, Guest87564 left, M_o_C left 22:58 BenGoldberg joined 23:03 BenGoldberg left 23:04 BenGoldberg joined
labster r: my $t = now; my $a = "a"; $a ne '' for ^50000; say now - $t; 23:08
p6eval rakudo 460c2a: OUTPUT«2.2234445␤»
labster r: my $t = now; my $a = "a"; ($a eq '').not for ^50000; say now - $t; 23:09
p6eval rakudo 460c2a: OUTPUT«0.8715064␤»
labster Why does ne take twice as long here?
r: my $t = now; my $a = "a"; $a eq '' for ^50000; say now - $t; 23:10
p6eval rakudo 460c2a: OUTPUT«0.6334043␤»
labster eq takes even less time.
23:11 lizmat left 23:17 gdey joined
japhb_ labster: because ne is defined in terms of a metaop on eq. 23:17
src/core/Stringy.pm:multi infix:<ne>(Mu \a, Mu \b) { a !eq b } 23:18
23:21 pmurias left, BigBear left 23:24 rafl left 23:27 rafl joined
labster Parrot defines isne as a counterpart to iseq, but we're not using it. I'd imagine that we're not in the mood to add opcodes, though. 23:30
japhb_ labster, if the opcode already exists in the nqp:: space, you can always add more str and Str:D multis to src/core/Str.pm 23:55
(next to all the places that nqp::iseq_s() is used) 23:56