Time |
Nick |
Message |
00:38 |
|
BenGoldberg joined #perl6 |
00:40 |
xilo |
does perl6 have protected attributes? |
00:40 |
xilo |
tried looking |
00:40 |
xilo |
only saw private/public |
00:40 |
|
sftp_ joined #perl6 |
00:46 |
BenGoldberg |
p5eval: print qq[Test\n]; |
00:46 |
p5eval |
BenGoldberg: Test1 |
00:46 |
cognominal |
xilo, I think protected attributes have been found problematic. I think Stroustrup said so somewhere and explains why so |
00:47 |
cognominal |
Perl 6 is not C++ but Stroustrup's explanation may still apply |
00:48 |
xilo |
cognominal: but almost every OOP language has protected |
00:48 |
xilo |
stroustrup complains about a lot of things in c++. i had him for a few classes :| |
00:48 |
|
obra joined #perl6 |
00:48 |
cognominal |
good languages tends not to repeat the mistake of their predecessor |
00:49 |
cognominal |
* mistakes (plural) |
00:50 |
|
obra left #perl6 |
00:50 |
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 |
00:51 |
xilo |
i'm sure if they were truly bad |
00:51 |
xilo |
almost every OOP language released since wouldn't have them |
00:51 |
xilo |
:| |
00:52 |
flussence |
herd mentality has a strong influence on the popularity-minded |
00:53 |
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 |
00:53 |
xilo |
it's like goto and such |
00:54 |
xilo |
it's not always the best, and can lead to problems |
00:54 |
xilo |
but sometimes is necessary and fine if used correctly |
00:56 |
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 |
00:56 |
xilo |
perl6 only has private and public? |
00:56 |
flussence |
the answer is that perl6 doesn't need workarounds like half-private half-public. |
00:57 |
cognominal |
xilo: the important part about Perl 6 is that it has roles |
00:57 |
cognominal |
* about Perl 6 an OO |
00:58 |
xilo |
flussence: i didn't ask for personal opinions |
00:58 |
xilo |
it was a yes/no question :| |
00:59 |
cognominal |
the answer is no |
00:59 |
flussence |
the language being designed free from legacy cruft from the start isn't a personal opinion |
00:59 |
xilo |
flussence: that's an opinion |
01:00 |
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. |
01:01 |
cognominal |
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 |
01:01 |
cognominal |
but that does not answer the why or here the why not. |
01:02 |
xilo |
personal opinions don't either |
01:02 |
xilo |
valid examples do |
01:02 |
xilo |
which no one has given |
01:02 |
xilo |
so this conversation has gotten no where other than answering my original questin lol |
01:03 |
flussence |
what we have here is an XY problem |
01:04 |
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 |
cognominal |
* misdesign |
01:05 |
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 |
japhb |
(By which I don't mean "protected attributes", I mean, an actual use case.) |
01:07 |
cognominal |
I am searching a web page where Stroustrub explains his mistake. But maybe it is in one of his books. |
01:09 |
xilo |
japhb: i'm converting some c++ code to perl6 |
01:12 |
|
FROGGS_ joined #perl6 |
01:12 |
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 |
01:12 |
japhb |
Usually it works out better to make use of the features of the target language. :-) |
01:13 |
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? |
01:13 |
xilo |
it doesn't |
01:13 |
xilo |
hence |
01:13 |
cognominal |
xilo: http://perlgeek.de/blog-en/perl-6/protected-attributes-make-no-sense.html |
01:13 |
japhb |
Or was it just using protected attributes because that's C++ idiom? |
01:13 |
xilo |
i need to really change things around |
01:13 |
xilo |
it's a windowing library of sorts |
01:14 |
xilo |
there's the base window that always exists, and you can spawn other windows |
01:14 |
|
anuby joined #perl6 |
01:16 |
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 |
01:16 |
japhb |
But why is that "protected" instead of public? |
01:17 |
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. |
01:17 |
japhb |
xilo, OK, sounds like a good idea. |
01:19 |
cognominal |
japhb, the comments are worth reading too |
01:23 |
xilo |
http://pastebin.com/9TChSMMX |
01:24 |
|
Psyche^ joined #perl6 |
01:27 |
xilo |
http://pastebin.com/QxCCDnq9 noticed i typed something wrong |
01:27 |
gtodd |
hmm does .WHY work? |
01:28 |
flussence |
the tests for it seem to pass |
01:29 |
flussence |
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â¤â¤Â» |
01:29 |
flussence |
r: #= foo ⤠class Foo { } ⤠say ~Foo.WHY |
01:29 |
p6eval |
rakudo 460c2a: OUTPUT«fooâ¤Â» |
01:29 |
flussence |
there you go |
01:31 |
cognominal |
Apparently Pod-To-HTML does not use .WHY |
01:31 |
flussence |
it was written when that was NYI :) |
01:32 |
japhb |
xilo, so essentially you're trying to hide *data from non-child classes? |
01:34 |
japhb |
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 |
japhb |
For that use case, Perl 6 would use a read-only public attribute. |
01:34 |
japhb |
Visible, but not changeable. |
01:34 |
xilo |
i didn't write the c++ |
01:34 |
xilo |
one sec |
01:35 |
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 |
01:36 |
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) |
01:36 |
cognominal |
japhb: that's my point |
01:37 |
cognominal |
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. |
01:37 |
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 |
cognominal |
ok |
01:38 |
|
kurahaupo joined #perl6 |
01:38 |
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:40 |
xilo |
there is some retardedness in there |
01:40 |
cognominal |
It can be opaque or it can acessed safely in subclasses |
01:40 |
xilo |
but that's how the c++ was made |
01:40 |
xilo |
i'm just trying to convert into sensible p6 code :3 |
01:41 |
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:42 |
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:43 |
japhb |
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 |
01:43 |
cognominal |
* to see how rakudo uses them |
01:44 |
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 |
01:45 |
japhb |
xilo, then I think my suggestion of 3 minutes ago applies. |
01:45 |
xilo |
of what |
01:45 |
japhb |
-- 'class Console { has $.data; has $.root; BUILD { self!initRoot } }' or so |
01:46 |
japhb |
By not declaring them 'is rw', those become read-only outside the Console class, but still visible. |
01:46 |
xilo |
ha |
01:46 |
xilo |
ah |
01:47 |
xilo |
thought they were rw by default |
01:47 |
gtodd |
flussence: I get things like: |
01:47 |
gtodd |
use of uninitialized value of type Mu in string context |
01:47 |
gtodd |
Ambiguous call to 'gist'; these signatures all match: |
01:47 |
gtodd |
:(Pod::Block:D : Mu *%_) |
01:48 |
flussence |
yes, those are Pod objects, you need to call .Str on them if you just want plaintext |
01:49 |
gtodd |
ah ok |
01:50 |
|
Ben_Goldberg joined #perl6 |
01:50 |
xilo |
r: class Foo { has $.bar; }; Foo $foo = Foo.new($bar=>2); say $foo.bar; |
01:50 |
p6eval |
rakudo 460c2a: OUTPUT«[31m===[0mSORRY![31m===[0m�Two terms in a row�at /tmp/iRg7GRt87m:1�------> [32mclass Foo { has $.bar; }; Foo [33m�[31m$foo = Foo.new($bar=>2); say $foo.bar;[0m� expecting any of:� postfix� infix stopper� infix or meta-infix� s… |
01:59 |
BenGoldberg |
Can anyone recommend an irc client for windows which translates those escape-[31m type sequences into colors? |
02:00 |
BenGoldberg |
I'm currently using webchat.freenode.net, with which they show up as-is... which is basically linenoise :) |
02:00 |
BenGoldberg |
Or at least, a client with which I could strip them out entirely. |
02:01 |
xilo |
mirc? |
02:01 |
japhb |
r: class Foo { has $.bar; }; my Foo $foo .= new(:bar(2)); say $foo.bar; |
02:01 |
xilo |
or if you cool use irssi lol |
02:01 |
p6eval |
rakudo 460c2a: OUTPUT«2â¤Â» |
02:01 |
japhb |
xilo: that's ^^ what you wanted, I think. |
02:02 |
xilo |
yeah |
02:02 |
japhb |
BenGoldberg, or xchat |
02:02 |
xilo |
so stuff is rw by default |
02:02 |
japhb |
r: class Foo { has $.bar; }; my Foo $foo .= new(:bar(2)); $foo.bar = 3; |
02:02 |
p6eval |
rakudo 460c2a: OUTPUT«Cannot assign to a readonly variable or a value⤠in block at /tmp/tdRSqdI0pm:1â¤â¤Â» |
02:02 |
japhb |
xilo: nope, just can be set on instantiation. |
02:02 |
xilo |
ah |
02:02 |
japhb |
r: class Foo { has $.bar is rw; }; my Foo $foo .= new(:bar(2)); $foo.bar = 3; say $foo.bar; |
02:02 |
p6eval |
rakudo 460c2a: OUTPUT«3â¤Â» |
02:03 |
japhb |
But the 'is rw' changes that. |
02:03 |
japhb |
or 'has $!bar' would make it not visible outside the class. |
02:03 |
xilo |
yeah |
02:07 |
|
rhinux joined #perl6 |
02:08 |
|
prammer joined #perl6 |
02:16 |
|
tgt joined #perl6 |
02:18 |
|
lustlife joined #perl6 |
02:37 |
cognominal |
r: my %a = ( 'a' => sub { 'ha!' }); %a<a>.?() |
02:37 |
p6eval |
rakudo 460c2a: OUTPUT«[31m===[0mSORRY![31m===[0m�Cannot use .? on a non-identifier method call�at /tmp/Qq8Pcs7v11:1�------> [32m %a = ( 'a' => sub { 'ha!' }); %a<a>.?()[33m�[31m<EOL>[0m�» |
02:43 |
BenGoldberg |
r: my %a = ( 'a' => sub { say 'ha!' }); %a<a>() |
02:43 |
p6eval |
rakudo 460c2a: OUTPUT«ha!â¤Â» |
02:44 |
BenGoldberg |
I forget, what does .? do? |
02:44 |
BenGoldberg |
r: my %a = ( 'a' => sub { say 'ha!' }); %a<a>.() |
02:44 |
p6eval |
rakudo 460c2a: OUTPUT«ha!â¤Â» |
02:47 |
|
orafu joined #perl6 |
02:50 |
|
preflex_ joined #perl6 |
02:50 |
cognominal |
I was supposing that it would execute only if %a<a> ~~ Code |
02:51 |
cognominal |
I was infering it could exist because .? works with a named method |
02:52 |
cognominal |
I would even say it should exist |
02:55 |
|
awwaiid joined #perl6 |
03:17 |
|
tgt joined #perl6 |
03:19 |
|
odoacre joined #perl6 |
03:19 |
diakopter |
seen kid51 |
03:20 |
diakopter |
.seen kid51 |
03:20 |
yoleaux |
I haven't seen kid51 around. |
03:20 |
japhb |
diakopter, isn't he usually over on MAGnet in #parrot? |
03:20 |
diakopter |
mmm |
03:21 |
|
awwaiid joined #perl6 |
03:22 |
|
Ben_Goldberg joined #perl6 |
03:27 |
Ben_Goldberg |
.ping |
03:27 |
yoleaux |
There is no ping command; nor can this be construed as a response. |
03:27 |
diakopter |
.construe this |
03:35 |
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 |
03:37 |
labster |
That can't be true. We never talk about Manwë and Varda in here. |
03:39 |
|
Ben_Goldberg joined #perl6 |
03:43 |
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. |
03:45 |
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. |
03:47 |
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 #perl6 |
04:24 |
|
awwaiid joined #perl6 |
04:29 |
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:30 |
japhb |
xilo: What is not working for you? |
04:30 |
|
fgomez joined #perl6 |
04:31 |
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:34 |
japhb |
xilo, ah, you should talk to arnsholt then, he's the current maintainer of that stuff |
04:34 |
xilo |
ah |
04:35 |
xilo |
kk |
04:38 |
xilo |
seems like no one is really maintaining or anything for all the C binding stuff |
04:38 |
xilo |
had to use this nasty hack https://gist.github.com/skids/2771728 lol |
04:42 |
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:43 |
xilo |
different words same result lol |
04:45 |
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:46 |
xilo |
i know |
04:47 |
xilo |
just kinda sucks scrapping entire project idea cause things aren't finished :/ |
04:48 |
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! :-) |
04:48 |
labster |
Just wait around and it will get done eventually. |
04:48 |
labster |
Or help out, like japhb says. |
04:49 |
xilo |
labster: eventually could be 1 month or 2 years from now |
04:49 |
xilo |
japhb: i don't have the skills to work on core language features |
04:50 |
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 |
labster |
don't undersell yourself. |
04:51 |
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 #perl6 |
04:52 |
xilo |
i do C kernel programming at work |
04:52 |
xilo |
and before that was perl5 lol |
04:52 |
diakopter |
xilo: I'm kidding, of course. Humility is a breath of fresh air. |
04:52 |
xilo |
well not kernel, but OS stuff |
04:52 |
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. |
04:53 |
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 |
japhb |
.oO( "Come on in, the water's fine!" ) |
04:53 |
diakopter |
also insa ane other |
04:53 |
diakopter |
urp |
04:53 |
diakopter |
stupid p hone |
04:53 |
xilo |
porting from parrot to jvm? |
04:54 |
diakopter |
among other things |
04:54 |
japhb |
xilo, well, more precisely, adding the jvm as another supported VM. |
04:54 |
xilo |
i see |
04:55 |
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. |
04:55 |
diakopter |
blog? |
04:56 |
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) |
04:57 |
diakopter |
*how |
04:59 |
diakopter |
oops... |
05:01 |
xilo |
oh and niecza doesn't have support for a native call type of thing |
05:01 |
xilo |
so yeah |
05:01 |
diakopter |
actually it's possible, just not ohvious |
05:02 |
diakopter |
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. |
05:02 |
xilo |
yeah... no thanks lol |
05:02 |
diakopter |
oh oops |
05:03 |
diakopter |
but you can do it my way too, it's just stupid |
05:04 |
diakopter |
xilo: yes the gtk example comes sith niecza |
05:04 |
diakopter |
now that japhb remindsme... |
05:05 |
xilo |
that's not really hard when .net libraries are (mostly) interopperable |
05:05 |
xilo |
just use gtk# |
05:05 |
xilo |
seems like that's what they are doing |
05:06 |
xilo |
ah |
05:06 |
xilo |
which is what japhb said |
05:06 |
japhb |
;-) |
05:10 |
|
lizmat joined #perl6 |
05:10 |
diakopter |
lizmat: howdy |
05:13 |
lizmat |
morning |
05:13 |
lizmat |
breakfast& |
05:15 |
|
SamuraiJack joined #perl6 |
05:27 |
|
daniel-s joined #perl6 |
05:40 |
|
eternaleye_ joined #perl6 |
05:41 |
japhb |
Failing panda with new rebuild of Rakudo uncovers two problems: |
05:42 |
japhb |
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:44 |
japhb |
2. When the last line of a for loop results in a Failure, the Failure may not trigger properly. (moritz -- sink problem?) |
05:48 |
|
dmol joined #perl6 |
05:53 |
|
rindolf joined #perl6 |
06:00 |
|
rindolf joined #perl6 |
06:08 |
|
shachaf_ joined #perl6 |
06:08 |
|
shachaf_ joined #perl6 |
06:12 |
|
rindolf joined #perl6 |
06:12 |
|
domidumont joined #perl6 |
06:13 |
|
domidumont joined #perl6 |
06:13 |
|
frdmn joined #perl6 |
06:27 |
|
telex joined #perl6 |
06:27 |
|
rindolf joined #perl6 |
06:31 |
moritz |
r: sub f { fail "foo" }; for 1 { f() }; say 42 |
06:31 |
p6eval |
rakudo 460c2a: OUTPUT«42â¤Â» |
06:31 |
moritz |
aye, sink problem |
06:45 |
|
domidumont joined #perl6 |
06:47 |
|
Heather joined #perl6 |
06:47 |
Heather |
hey |
06:48 |
diakopter |
YO |
06:49 |
Heather |
were trying to become Clementine user |
06:49 |
labster |
hi |
06:49 |
Heather |
labster hi |
06:50 |
Heather |
but all I need is groobeshark and hotkeys now I've got own script (Script) to listen it: http://heather.cynede.net/2013/04/f-openshark.html \o/ |
06:55 |
|
sivoais joined #perl6 |
07:03 |
|
domidumont joined #perl6 |
07:08 |
|
FROGGS joined #perl6 |
07:30 |
|
snearch joined #perl6 |
07:33 |
|
robinsmidsrod joined #perl6 |
07:39 |
|
Celelibi joined #perl6 |
07:39 |
|
tgt joined #perl6 |
07:42 |
|
domidumont joined #perl6 |
07:46 |
|
fgomez joined #perl6 |
07:53 |
|
arlinius joined #perl6 |
07:56 |
|
kresike joined #perl6 |
07:56 |
kresike |
hello all you happy perl6 people |
07:56 |
yoleaux |
10 Apr 2013 15:55Z <isBEKaml> kresike: thanks for all the "happy"s. :-) |
07:56 |
kresike |
:) |
07:57 |
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. |
07:57 |
FROGGS |
hi kresike |
07:57 |
kresike |
FROGGS o/ |
07:58 |
|
pjcj joined #perl6 |
08:00 |
|
berekuk joined #perl6 |
08:01 |
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 #perl6 |
08:15 |
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. |
08:15 |
yoleaux |
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? |
08:15 |
yoleaux |
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? |
08:15 |
diakopter |
.tell jnthn yes. |
08:15 |
yoleaux |
diakopter: I'll pass your message to jnthn. |
08:16 |
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 â¤Â» |
08:20 |
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:20 |
yoleaux |
08:15Z <diakopter> jnthn: yes. |
08:20 |
jnthn |
.tell japhb CCLASS_PRINTING being missing is just an oversight; should be converted too |
08:20 |
yoleaux |
jnthn: I'll pass your message to japhb. |
08:21 |
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. |
08:23 |
FROGGS |
morning jnthn |
08:31 |
Heather |
hi krunen jnthn FROGGS |
08:32 |
|
berekuk joined #perl6 |
08:33 |
|
domidumont joined #perl6 |
08:34 |
jnthn |
o/ Heather |
08:34 |
jnthn |
oh, and FROGGS :) |
08:35 |
* jnthn |
thought the int8 stuff worked in structs, fwiw... |
08:38 |
FROGGS |
ya, thought that too, but never tested it... (even my SDL module would benefit from using it) |
08:39 |
|
renormalist joined #perl6 |
08:39 |
|
dakkar joined #perl6 |
08:42 |
|
tgt joined #perl6 |
08:44 |
|
isBEKaml joined #perl6 |
08:47 |
|
isBEKaml` joined #perl6 |
08:48 |
|
isBEKaml` joined #perl6 |
08:51 |
|
isBEKaml` joined #perl6 |
08:57 |
|
pjcj joined #perl6 |
09:00 |
|
amit_zero joined #perl6 |
09:01 |
|
domidumont joined #perl6 |
09:04 |
|
isBEKaml joined #perl6 |
09:08 |
|
sqirrel joined #perl6 |
09:08 |
|
tgt joined #perl6 |
09:09 |
|
Pleiades` joined #perl6 |
09:10 |
|
fhelmberger joined #perl6 |
09:14 |
|
berekuk joined #perl6 |
09:29 |
|
erkan joined #perl6 |
09:29 |
|
erkan joined #perl6 |
09:33 |
|
domidumont joined #perl6 |
09:34 |
|
Pleiades` joined #perl6 |
09:35 |
|
isBEKaml` joined #perl6 |
09:36 |
|
isBEKaml joined #perl6 |
09:39 |
FROGGS |
.u â |
09:39 |
yoleaux |
U+23CF EJECT SYMBOL [So] (â) |
09:49 |
dalek |
v5: e31c030 | (Tobias Leich)++ | STATUS.md: |
09:49 |
dalek |
v5: test to see how that works |
09:49 |
dalek |
v5: review: https://github.com/rakudo-p5/v5/commit/e31c030450 |
09:50 |
daxim |
what. |
09:50 |
daxim |
p5 grammar? for real? |
09:53 |
dalek |
v5: aa1276e | (Tobias Leich)++ | README.md: |
09:53 |
dalek |
v5: perl syntax highlighting |
09:53 |
dalek |
v5: review: https://github.com/rakudo-p5/v5/commit/aa1276e51e |
09:54 |
isBEKaml |
FROGGS: Nice, I never thought this could be a module. :) |
09:57 |
dalek |
v5: 863436a | (Tobias Leich)++ | STATUS.md: |
09:57 |
dalek |
v5: text alignment |
09:57 |
dalek |
v5: review: https://github.com/rakudo-p5/v5/commit/863436a0c2 |
09:57 |
FROGGS |
daxim: yes :o) |
09:58 |
FROGGS |
isBEKaml: well, I believe nothing is impossible with the current implementation |
09:58 |
isBEKaml |
FROGGS: ehh, is the STATUS.md doc right? |
09:58 |
isBEKaml |
FROGGS: I see a rakudo error message about TTIAR in there. :) |
09:59 |
FROGGS |
isBEKaml: it is just a test |
09:59 |
isBEKaml |
FROGGS: well, I didn't say impossible. :) |
09:59 |
jnthn |
Even the debugger is able to be module-esque rather than being tied into Rakudo itself. :) |
09:59 |
FROGGS |
that is what I want to generate |
09:59 |
jnthn |
Generally, the aim is that the architecture doesn't demand such things be core. |
10:00 |
FROGGS |
isBEKaml: but what you see within the table are actually real values |
10:00 |
isBEKaml |
jnthn: Nice things are nice. :) |
10:00 |
jnthn |
The fun bit will be seeing if an alternative frontend (like the debugger) and alternative backend (like the JVM) can compose nicely. :) |
10:00 |
isBEKaml |
FROGGS: are you taking the tests from somewhere or are you generating them as you go? (roast, perlito)? |
10:01 |
FROGGS |
isBEKaml: I took the tests from perl5 source, and we have perlitos tests |
10:02 |
FROGGS |
... and made a roast5 repo out of that |
10:03 |
isBEKaml |
jnthn: definitely, fun things are to come to perl6 land! |
10:03 |
isBEKaml |
FROGGS: I was nodding off asleep in the day when I saw your commit message to jolt me awake in interest. :D |
10:03 |
arnsholt |
jnthn: Did you merge nqp/hll? |
10:04 |
arnsholt |
My internet supply has been really spotty the last few days |
10:04 |
jnthn |
arnsholt: yes |
10:04 |
jnthn |
arnsholt: And the corresponding rakudo/hll |
10:04 |
jnthn |
arnsholt: Both branches are gone now. |
10:04 |
arnsholt |
Yeah, I went looking for the branch and couldn't find it =) |
10:04 |
jnthn |
ah :) |
10:05 |
isBEKaml |
arnsholt: heh, my internet supply has always be spotty. It's literally dotted with useless packets. :P |
10:06 |
isBEKaml |
*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) |
10:07 |
arnsholt |
Which was annoying, especially when I needed to be online >.< |
10:11 |
jnthn |
:( |
10:14 |
|
rking1 joined #perl6 |
10:14 |
timotimo |
hello, people. what's new? :) |
10:14 |
isBEKaml |
hey, timotimo |
10:15 |
jnthn |
r: class This { }; This.new # this is new, timotimo :) |
10:15 |
p6eval |
rakudo 460c2a: ( no output ) |
10:16 |
jnthn |
timotimo: Also from backlog, seems something didn't work out with nqp::copy |
10:18 |
timotimo |
oh. the rakudo tests didn't catch it, sadly |
10:19 |
jnthn |
No, turns out copy is not spec'd and so not tested :( |
10:20 |
|
Heather left #perl6 |
10:20 |
jnthn |
Alas, it is used by Panda... |
10:22 |
timotimo |
how many hours ago is the message regarding that? |
10:22 |
jnthn |
4.5 |
10:23 |
timotimo |
ah, i was hoping there would be a better explanation than just "doesn't work" |
10:23 |
timotimo |
i'll look into it |
10:24 |
jnthn |
imho, we can spec it and add a spectest... |
10:24 |
timotimo |
i need to do a few errands first |
10:25 |
jnthn |
np |
10:25 |
* jnthn |
is busy $dayjobbin' too |
10:36 |
|
fhelmberger joined #perl6 |
11:04 |
|
anant joined #perl6 |
11:14 |
anant |
S02:1940 says "$:foo self-declared formal named parameter" ... shouldn't it be ":$foo"? |
11:15 |
jnthn |
No |
11:15 |
jnthn |
That's in a parameter list |
11:15 |
jnthn |
This is the named equivalent of $^foo parameters. |
11:16 |
jnthn |
r: my $x = -> :$greeting { say "$greeting, anant" }; $x(:greeting('Привет')) |
11:16 |
p6eval |
rakudo 460c2a: OUTPUT«Привет, anantâ¤Â» |
11:17 |
timotimo |
that's neat! |
11:17 |
jnthn |
r: my $x = { say "$:greeting, anant" }; $x(:greeting('Привет')) |
11:17 |
p6eval |
rakudo 460c2a: OUTPUT«Привет, anantâ¤Â» |
11:17 |
timotimo |
i wonder for how much longer perl6 will surprise me with cool stuff |
11:21 |
anant |
jnthn: oh, so that's why the "self-declared" thingy in that sentence (S02:1940)? |
11:21 |
jnthn |
anant: Yes |
11:21 |
jnthn |
$^foo and $:bar are both declarations (as parameters) |
11:24 |
anant |
jnthn: wow, this is head-spinning! Another question, is ":$foo" an example of twigil ? |
11:25 |
jnthn |
No, but $:foo is :) |
11:25 |
jnthn |
The pattern is <sigil> <twigil> <name> |
11:25 |
jnthn |
$.foo # $ sigil, . twigil, name foo |
11:26 |
jnthn |
The twigil pretty much always tells you something about scope or lifetime. |
11:27 |
anant |
jnthn: which synopsis will enlighten me about :$foo :) |
11:28 |
moritz |
S06 I think |
11:28 |
moritz |
or maybe S02 |
11:29 |
cognominal |
:$foo is a pair |
11:29 |
cognominal |
r: my $foo; say :$foo |
11:29 |
p6eval |
rakudo 460c2a: OUTPUT«â¤Â» |
11:29 |
cognominal |
r: my $foo; say :$foo.perl |
11:29 |
p6eval |
rakudo 460c2a: OUTPUT«"foo" => Anyâ¤Â» |
11:29 |
moritz |
r: my $foo = 42; say (:$foo).perl |
11:29 |
p6eval |
rakudo 460c2a: OUTPUT«"foo" => 42â¤Â» |
11:30 |
jnthn |
:$foo in a signature, S06. :$foo as colon pair syntax, S02. |
11:35 |
cognominal |
by design, very often a :$foo pair is an argument passed to bind an parameter of the same name |
11:36 |
cognominal |
r: sub foo(:$foo) { say $foo }; my $foo = 42; say $foo.perl; foo(:$foo) |
11:36 |
p6eval |
rakudo 460c2a: OUTPUT«42â¤42â¤Â» |
11:38 |
cognominal |
this usage explains why the same syntactical construct has two different meanings in different context. They are indeed very related. |
11:39 |
|
isBEKaml joined #perl6 |
12:08 |
|
domidumont joined #perl6 |
12:25 |
|
tgt joined #perl6 |
12:34 |
|
dayangkun joined #perl6 |
12:37 |
|
crab2313 joined #perl6 |
12:38 |
|
stevan_ joined #perl6 |
12:59 |
|
chinaXing joined #perl6 |
13:10 |
|
kaare_ joined #perl6 |
13:12 |
|
PacoAir joined #perl6 |
13:13 |
|
drbean joined #perl6 |
13:21 |
|
gtodd left #perl6 |
13:25 |
|
bluescreen10 joined #perl6 |
13:27 |
|
avar joined #perl6 |
13:27 |
|
avar joined #perl6 |
13:29 |
|
jfried joined #perl6 |
13:31 |
|
gtodd joined #perl6 |
13:34 |
gtodd |
pmichaud: tadzik: how are doc.perl6.org p6doc and all those sorts of things doing? |
13:35 |
moritz |
occasionally somebody improves them :-) |
13:35 |
gtodd |
p6doc Str seems fairly errm slow compared to perldoc :) |
13:36 |
moritz |
as does pretty much everythiing that builds on rakudo instead of p5 |
13:38 |
moritz |
which is why doc.perl6.org hosts static sites :-) |
13:39 |
|
bluescreen100 joined #perl6 |
13:39 |
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? |
13:39 |
moritz |
huh? p6doc should look into @*INC |
13:40 |
moritz |
which means it should look for .pod files anywhere that rakudo looks for modules |
13:40 |
moritz |
if that's not the case, please submit a bug report |
13:42 |
|
skids joined #perl6 |
13:44 |
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â¤Â» |
13:44 |
FROGGS |
r: say %*CUSTOM_LIB |
13:44 |
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… |
13:44 |
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 :-) |
13:44 |
FROGGS |
moritz: custom lib is always in INC too, right? |
13:45 |
FROGGS |
ahh, so it wants its own bin-dir in path? |
13:46 |
moritz |
gtodd: oh, I've never looked at the index.data file stuff |
13:46 |
moritz |
I'm not even sure if it's installed |
13:46 |
moritz |
but yes, that needs fixing |
13:46 |
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:50 |
|
domidumont joined #perl6 |
13:56 |
|
rking joined #perl6 |
13:57 |
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 #perl6 |
13:58 |
gtodd |
of course the doc.perl6.org site should be static and use massively optimized approaches in anticipation of the deluge to come |
13:59 |
|
rking joined #perl6 |
13:59 |
moritz |
well, doc.perl6.org is static, and will remain that way (though maybe a dynamic search backend would be OK) |
14:00 |
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 |
|
BigBear joined #perl6 |
14:03 |
dalek |
v5: 2d51ec5 | (Tobias Leich)++ | t/test_summary: |
14:03 |
dalek |
v5: add script which produces STATUS.md |
14:03 |
dalek |
v5: review: https://github.com/rakudo-p5/v5/commit/2d51ec57b7 |
14:03 |
dalek |
v5: c3d49d8 | (Tobias Leich)++ | STATUS.md: |
14:03 |
dalek |
v5: smoke the whole testsuite! |
14:03 |
dalek |
v5: review: https://github.com/rakudo-p5/v5/commit/c3d49d8b78 |
14:04 |
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 |
|
domidumont joined #perl6 |
14:04 |
|
groky joined #perl6 |
14:05 |
|
stevan_ joined #perl6 |
14:05 |
|
rking joined #perl6 |
14:06 |
FROGGS |
moritz: if someone wants to know v5's status, just point him to this: https://github.com/rakudo-p5/v5/blob/master/STATUS.md :P |
14:06 |
timotimo |
could you sort that by number of spec-(fails+skips)? |
14:07 |
FROGGS |
hmmm, I coudl... |
14:07 |
FROGGS |
*could |
14:07 |
FROGGS |
then I'd add a summary too |
14:07 |
* nwc10 |
wonders where Perlito stands on that metric |
14:07 |
FROGGS |
nwc10: maybe a bit better then v5 |
14:07 |
nwc10 |
and anything else that is intending to parse or run Perl 5 |
14:08 |
timotimo |
i think perl5 beats v5 by a big margin |
14:08 |
FROGGS |
hehe |
14:08 |
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 :) |
14:08 |
jnthn |
timotimo: http://i1.kym-cdn.com/entries/icons/original/000/007/666/_57c8a1a431a592af806925e57258202f.png :) |
14:09 |
gtodd |
which folks will write eventually (perl6's pod format is different?) |
14:09 |
FROGGS |
*g* |
14:11 |
gtodd |
a bunch of nascent pods are probably incubating as README.md's on github |
14:16 |
nwc10 |
timotimo: I know that it was a joke, but that's part of the problem. perl 5 is very compatible with itself. Anyone else has a massive deficit to catch up with. |
14:16 |
nwc10 |
else they have a hard time selling a use case. |
14:18 |
timotimo |
indeed. |
14:19 |
|
colomon joined #perl6 |
14:19 |
|
lustlife joined #perl6 |
14:19 |
|
japhb_ joined #perl6 |
14:19 |
|
hugme joined #perl6 |
14:19 |
|
gabriel_ joined #perl6 |
14:19 |
|
ilogger2_ joined #perl6 |
14:19 |
|
tokuhirom joined #perl6 |
14:19 |
|
Woodi joined #perl6 |
14:19 |
|
masak joined #perl6 |
14:19 |
|
`patch` joined #perl6 |
14:19 |
|
sunnavy joined #perl6 |
14:19 |
|
moritz joined #perl6 |
14:30 |
|
census joined #perl6 |
14:35 |
isBEKaml |
.u arch |
14:35 |
yoleaux |
U+032B COMBINING INVERTED DOUBLE ARCH BELOW [Mn] (◌̫) |
14:35 |
yoleaux |
U+0372 GREEK CAPITAL LETTER ARCHAIC SAMPI [Lu] (Ͳ) |
14:35 |
yoleaux |
U+0373 GREEK SMALL LETTER ARCHAIC SAMPI [Ll] (ͳ) |
14:36 |
FROGGS |
.u ankh |
14:36 |
yoleaux |
U+2625 ANKH [So] (☥) |
14:37 |
FROGGS |
.u klingon |
14:37 |
yoleaux |
No characters found |
14:37 |
FROGGS |
-.- |
14:38 |
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 |
gtodd |
<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 #perl6 |
14:39 |
gtodd |
so that it's sort of RESTful ... in a Perl::Package::Kindof::Way |
14:39 |
|
xilo_ joined #perl6 |
14:43 |
|
arlinius joined #perl6 |
14:53 |
|
tgt joined #perl6 |
14:54 |
|
colomon joined #perl6 |
14:58 |
moritz |
RESTful doesn't have much to do with URL layouts |
15:00 |
|
tgt joined #perl6 |
15:01 |
jnthn |
REST done Really Right (following the hypermedia constraint) treats URLs as opaque |
15:02 |
jnthn |
With the outside world coupling only to the entry point. |
15:02 |
jnthn |
Just like humans only couple to amazon.com, then follow links for the rest of the business process. |
15:05 |
* jnthn |
bbiab |
15:07 |
* FROGGS |
.oO( bbwab - be back with a beer ) |
15:10 |
census |
FROGGS ++ |
15:25 |
xilo |
mm beer |
15:29 |
|
GlitchMr joined #perl6 |
15:33 |
|
spider-mario joined #perl6 |
15:33 |
|
kbenson joined #perl6 |
15:35 |
|
chinaXing left #perl6 |
15:37 |
|
SamuraiJack_ joined #perl6 |
15:38 |
xilo |
wish i could drink beer at work |
15:38 |
xilo |
would make the day go by better |
15:38 |
|
rurban joined #perl6 |
15:38 |
kresike |
bye folks |
15:39 |
xilo |
g'day sir |
15:40 |
FROGGS |
coffee is my beer |
16:01 |
|
spike joined #perl6 |
16:01 |
spike |
hello. |
16:01 |
xilo |
hola |
16:01 |
spike |
Quick question to anyone that's there from a Perl 5 user. |
16:01 |
spike |
Will perl 6 replace perl 5 at some stage? |
16:02 |
spike |
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 |
xilo |
no, they are different entities |
16:02 |
spike |
Fair enough. |
16:02 |
spike |
So they are existing as two separate languages now? |
16:03 |
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 #perl6 |
16:04 |
xilo |
http://en.wikipedia.org/wiki/Perl_6 has a good description of the background |
16:05 |
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 |
16:05 |
spike |
Ahh wikipedia.. don't know why I didn't hit that to begin with! |
16:05 |
spike |
Thanks xilo and geekosaur for the info. |
16:06 |
xilo |
perl5 has some really wtf stuff in it |
16:06 |
xilo |
welcome |
16:06 |
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 |
timotimo |
http://perlcabal.org/syn/ <- here in the "justification" column |
16:06 |
spike |
Cheers timotimo. High level is enough for me. |
16:07 |
spike |
The goals make sense.. be interesting to see if Perl 5 every dies! |
16:07 |
xilo |
i doubt it... |
16:07 |
xilo |
hell cobol/pascal/etc still are used lol |
16:09 |
FROGGS |
spike: after decades it was just time to create an up-to-date language |
16:09 |
FROGGS |
you'll see what I mean when trying/reading more and more |
16:09 |
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! |
16:09 |
xilo |
ouch |
16:10 |
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 ... |
16:10 |
timotimo |
if you look at it like it's a "puzzle", then maybe it could even be enjoyable? |
16:11 |
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 |
timotimo |
xilo: that's why there would be crazy amounts of money! |
16:12 |
|
ggoebel joined #perl6 |
16:13 |
xilo |
indeed |
16:14 |
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:33 |
gtodd |
it seems mostly to work that way if I adjust the root ... but is the idea to have an optional http://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:36 |
gtodd |
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:37 |
|
Chillance joined #perl6 |
16:42 |
[Coke] |
Looks like TPF is not on the list of accepted groups for GSOC 2013. Neither is Pafo |
16:43 |
nwc10 |
Did TPF apply? |
16:43 |
nwc10 |
(I know that Pafo did) |
16:44 |
[Coke] |
I thought they did. |
16:45 |
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? |
16:45 |
gtodd |
moritz: just wondering if there's some way I can help but it looks like things are almost done :) |
16:46 |
[Coke] |
mattp__: The Parrot Foundation |
16:46 |
gtodd |
parrot advancement foundation |
16:46 |
[Coke] |
TPF == The Perl Foundation |
16:46 |
mattp__ |
[Coke]: ah gotcha |
16:46 |
gtodd |
does PAFO still get money from MoFo |
16:46 |
gtodd |
(MoFo == Mozilla Foundation) |
16:48 |
[Coke] |
I don't think so, but you'd have to ask the very quiet board members. |
16:48 |
[Coke] |
(I *really* don't think so) |
16:48 |
gtodd |
to me it would seem parrot and perl6 would be very good for HTML5 because (insert reasons ____) and ... The Moz wants HTML5 ... |
16:49 |
gtodd |
hmm http://parrot.org/sponsors ActiveState BBC MozFo |
16:49 |
[Coke] |
gtodd: one time donors. |
16:49 |
gtodd |
NLNet ... but possibly a dated page |
16:50 |
gtodd |
yeah |
16:50 |
gtodd |
Someone should tell them about "3rd time lucky" |
16:50 |
[Coke] |
discussion about PaFo is better held on #parrot @ irc.perl.org |
16:50 |
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 :) " |
16:51 |
gtodd |
:) |
16:51 |
gtodd |
\o/ |
16:51 |
[Coke] |
FROGGS: when is that from? |
16:51 |
gtodd |
hehe "this year!" |
16:51 |
FROGGS |
[Coke]: two days ago |
16:51 |
FROGGS |
according to http://parrot.org/sponsors (blue box on the right) |
16:51 |
[Coke] |
ok. parrot is not in the list of accepted organizations. perhaps he needs to click on something to make it show up. |
16:52 |
FROGGS |
ya, complete the profile or something |
16:52 |
gtodd |
hmm that would be important to do :) |
16:53 |
[Coke] |
also, http://parrot.org/ is horribly broken. |
16:53 |
[Coke] |
whoops, ww. |
16:54 |
FROGGS |
they say they accepted 177 projects, but only 169 projects are shown... |
16:55 |
masak |
oh hai, #perl6 |
16:55 |
|
PacoAir joined #perl6 |
16:56 |
FROGGS |
hi masak |
16:58 |
* masak |
tags http://irclog.perlgeek.de/perl6/2013-04-10#i_6687602 as an autopun |
16:58 |
jnthn |
o/ masak |
16:59 |
* TimToady |
starts to fuzz back into existence... |
16:59 |
yoleaux |
31 Mar 2013 08:49Z <diakopter> TimToady: welcome back! :) \o/ |
16:59 |
jnthn |
TimToady! \o/ |
17:00 |
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... |
17:00 |
TimToady |
nwc10: you can try :) |
17:03 |
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? |
17:03 |
masak |
TimToady! \o/ |
17:03 |
nwc10 |
see, said it wasn't Perl 6. :-) |
17:04 |
TimToady |
nwc10: can you point me to a diff? |
17:04 |
dalek |
perl6-roast-data: ca9cf2d | coke++ | / (4 files): |
17:04 |
dalek |
perl6-roast-data: today (automated commit) |
17:04 |
dalek |
perl6-roast-data: review: https://github.com/coke/perl6-roast-data/commit/ca9cf2dbd7 |
17:04 |
dalek |
perl6-roast-data: 5bc7bf9 | coke++ | / (4 files): |
17:04 |
dalek |
perl6-roast-data: today (automated commit) |
17:04 |
dalek |
perl6-roast-data: review: https://github.com/coke/perl6-roast-data/commit/5bc7bf9ea8 |
17:04 |
pmichaud |
TimToady: wb! o/ |
17:05 |
* [Coke] |
~~~ at TimeyWimeyTimmyToady |
17:06 |
* [Coke] |
notes that rakudo has been failing S32-io/IO-Socket-INET.t 20 - successful read binary data for 2 days. |
17:07 |
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 |
|
FROGGS[mobile] joined #perl6 |
17:07 |
[Coke] |
(today's run is in progress.) |
17:07 |
TimToady |
*aggressive |
17:07 |
[Coke] |
TimToady: best of luck. |
17:07 |
TimToady |
thanks |
17:09 |
pmichaud |
TimToady: yes, that's essentially the news we heard. I'll remain very hopeful for a good outcome. |
17:09 |
* jnthn |
also |
17:09 |
* nwc10 |
had not heard it, but is glad that they think that they have it all |
17:10 |
nwc10 |
also, I suspect that I might have my era of toke.c wrong. Trying to get a diff revealed older things... |
17:16 |
* masak |
hugs TimToady |
17:18 |
|
frdmn joined #perl6 |
17:18 |
[Coke] |
r: PRE ; |
17:18 |
p6eval |
rakudo 460c2a: OUTPUT«[31m===[0mSORRY![31m===[0m�Missing block or statement�at /tmp/6CTUNIVzyN:1�------> [32mPRE [33m�[31m;[0m� expecting any of:� statement list� prefix or term� prefix or meta-prefix�» |
17:18 |
[Coke] |
FROGGS++ |
17:18 |
nwc10 |
TimToady: it's actually from perl 1.0. It's things like this part of perly.y: http://perl5.git.perl.org/perl.git/blob/perl-1.0:/perly.c#l333 |
17:19 |
nwc10 |
where it's doing tmp = *s++; |
17:19 |
nwc10 |
OPERATOR(tmp); |
17:19 |
nwc10 |
which makes sense if OPERATOR() is a macro that evaluates its arguments more than once |
17:19 |
nwc10 |
and the "diff" I suspect is that the relevant code in 3.0 was copied from other parts |
17:20 |
nwc10 |
so I might have answered my own question sort of |
17:20 |
nwc10 |
sorry for the interruption. |
17:21 |
[Coke] |
nwc10: hey! this is #perl6, not #perl1. :P |
17:21 |
[Coke] |
;) |
17:21 |
nwc10 |
the diff in question *would* have been this one http://perl5.git.perl.org/perl.git/blobdiff/13281fa4f8547e0eb31d1986b865d9b7ec7d0dcc..a687059cbaf2c6fdccb5e0fae2aee80ec15625a8:/toke.c |
17:21 |
nwc10 |
which is the diff from 2.0 p1 to 3.0 |
17:22 |
nwc10 |
for the code changes after `case '+':` for example |
17:23 |
nwc10 |
actually, there *is* still a question. |
17:23 |
|
frdmn joined #perl6 |
17:23 |
nwc10 |
crap. *I* need more coffee. I've jsut answered it. |
17:23 |
nwc10 |
I'm spamming the channel and i'm not even an eval bot |
17:27 |
FROGGS[mobile] |
nwc10: .commands |
17:28 |
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 |
nwc10 |
(now that machines are powerful enough to make that a sane choice) |
17:28 |
FROGGS[mobile] |
hmmm, must be faulty |
17:28 |
nwc10 |
:-) |
17:28 |
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 #perl6 |
17:30 |
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:33 |
arnsholt |
nwc10: Do you consider (f)lex to still be C? =) |
17:35 |
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: http://perl5.git.perl.org/perl.git/blame/HEAD:/toke.c#l12 |
17:35 |
* pmichaud |
thinks the above sequence should be saved as a "Perl 6" quote somewhere. |
17:36 |
pmichaud |
afk, lunch |
17:37 |
|
FROGGS joined #perl6 |
17:39 |
diakopter |
dpk: ping |
17:41 |
|
ggoebel joined #perl6 |
17:48 |
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 |
17:48 |
Tene |
C's better anyway, because 99 is much higher than 6 |
17:49 |
Tene |
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 |
17:49 |
dpk |
fire away |
17:49 |
arnsholt |
nwc10: Oh. Right. For some reason I thought Perl used flex |
17:49 |
arnsholt |
In that case, I agree =) |
17:49 |
arnsholt |
I was just a bit curious about flex, since it's kinda sorta C, but mostly not |
17:49 |
|
PacoAir joined #perl6 |
17:51 |
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 |
arnsholt |
I had 10 lines of flex \o/ |
17:52 |
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 |
diakopter |
... trusted/inherited each others' |
17:54 |
diakopter |
dpk: ^ |
17:54 |
diakopter |
enabling the trust is admin-only command obviously... |
17:55 |
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] ..." |
17:56 |
diakopter |
it's used a lot on help channels for shortcuts to FAQ answers |
17:56 |
* dpk |
nods |
17:56 |
diakopter |
or acronym explanations |
17:56 |
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 |
17:57 |
diakopter |
.acronym A |
17:57 |
|
shinobicl joined #perl6 |
17:57 |
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 |
17:57 |
yoleaux |
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 |
17:57 |
diakopter |
*sigh |
17:58 |
diakopter |
well, these would be channel-specific acronyms. :) |
17:59 |
dpk |
ok, i'll think about it. if you want that functionality right now though, Bucket (https://github.com/zigdon/xkcd-Bucket) provides some of that functionality … i don't think it does channel-specific keyword associations, though … |
18:00 |
diakopter |
wow, a 2100-line subroutine |
18:00 |
diakopter |
nice. |
18:01 |
diakopter |
jnthn: ^ example of extreme programming |
18:01 |
xilo |
diakopter: all my whys |
18:01 |
diakopter |
(bucket.pl) |
18:02 |
diakopter |
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:03 |
diakopter |
but I know others would disagree |
18:03 |
|
BigBear joined #perl6 |
18:03 |
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). |
18:03 |
yoleaux |
08:20Z <jnthn> japhb: CCLASS_PRINTING being missing is just an oversight; should be converted too |
18:03 |
yoleaux |
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. |
18:04 |
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 https://github.com/dpk/yoleaux/issues ? thanks |
18:04 |
diakopter |
sure |
18:06 |
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:08 |
FROGGS |
[Coke]: that network stuff might be because of the newer parrot-revision we use :/ |
18:09 |
dalek |
perl6-roast-data: 31398bf | coke++ | / (4 files): |
18:09 |
dalek |
perl6-roast-data: today (automated commit) |
18:09 |
dalek |
perl6-roast-data: review: https://github.com/coke/perl6-roast-data/commit/31398bf263 |
18:09 |
[Coke] |
FROGGS: you're off the hook: |
18:09 |
[Coke] |
niecza has been dirty for 268 days. pugs has been dirty for 7 days. rakudo has been clean for 1 day. |
18:10 |
FROGGS |
* [Coke] notes that rakudo has been failing S32-io/IO-Socket-INET.t 20 - successful read binary data for 2 days. |
18:10 |
FROGGS |
so S32-io/IO-Socket-INET.t fails? |
18:10 |
|
colomon joined #perl6 |
18:10 |
FROGGS |
ohh, not anymore as it seems |
18:10 |
FROGGS |
[Coke]: nvm |
18:12 |
FROGGS |
[Coke]: btw, got my own pass rates now :o) https://github.com/rakudo-p5/v5/blob/master/STATUS.md |
18:12 |
|
cognominal joined #perl6 |
18:12 |
FROGGS |
though you don't actually see a rate |
18:12 |
|
cognominal__ joined #perl6 |
18:13 |
FROGGS |
but it will help me pretty much picking my tasks |
18:20 |
|
[particle] joined #perl6 |
18:26 |
[Coke] |
FROGGS++ |
18:35 |
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:37 |
|
[particle] joined #perl6 |
18:37 |
gtodd |
pmichaud: tadzik: the p6doc app.pl from https://github.com/perl6/doc.git needs this tiny change for latest mojolicious : |
18:37 |
gtodd |
-app->static->root('html'); |
18:37 |
gtodd |
+app->static->paths(['html']); |
18:39 |
|
japhb_ joined #perl6 |
18:45 |
[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:54 |
|
sqirrel joined #perl6 |
18:56 |
|
leprevost joined #perl6 |
19:03 |
|
cognominal_ joined #perl6 |
19:06 |
|
cognominal__ joined #perl6 |
19:16 |
|
grondilu joined #perl6 |
19:17 |
moritz |
gtodd: what's your github ID? |
19:17 |
|
snearch joined #perl6 |
19:22 |
|
tgt joined #perl6 |
19:23 |
xilo |
hmm need something to do |
19:24 |
gtodd |
moritz: opendev I think |
19:25 |
gtodd |
moritz: not really mine :-) ... it's sort of a leftover from opendevelopment.net not sure I have a password for it |
19:26 |
* _sri |
wonders if perl6 has something like nested exceptions https://bugs.ruby-lang.org/issues/8257 |
19:27 |
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:28 |
raiph |
s/this is interpreted to mean.// |
19:28 |
FROGGS |
r: my \hello = 42; say hello |
19:28 |
p6eval |
rakudo 460c2a: OUTPUT«42â¤Â» |
19:28 |
masak |
IAI (It's Already Implemented) |
19:29 |
gtodd |
moritz: this is not me --> https://github.com/gtodd :) |
19:29 |
FROGGS |
masak: nevar evar seen that :o) |
19:29 |
raiph |
FROGGS: masak: i think i mean something else (more) |
19:30 |
|
dmol joined #perl6 |
19:36 |
labster |
masak: I took up your challenge and wrote some more character classes. http://blog.brentlaabs.com/2013/04/perl-6-is-my-mmorpg-expansion-pack.html |
19:39 |
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++ |
19:40 |
masak |
labster: nice! \o/ |
19:40 |
masak |
it's really been three years? oh man. |
19:41 |
masak |
labster: minor nit: s/The interpreter/The compiler/ |
19:42 |
tadzik |
labster: s/prophesy/prophecy/? |
19:42 |
FROGGS |
labster++ |
19:42 |
FROGGS |
*g* |
19:42 |
arnsholt |
_sri: I think moritz++ is the one who's most familiar with the exception stuff |
19:43 |
tadzik |
labster: this is awesome! |
19:43 |
tadzik |
labster++ |
19:44 |
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 #perl6 |
19:44 |
FROGGS |
raiph: and yes, it would be possible to omit sigils in a slang, like C or so |
19:45 |
raiph |
15:28 <FROGGS> r: my \hello = 42; say hello |
19:45 |
raiph |
is what i meant |
19:45 |
FROGGS |
ahh, okay |
19:45 |
raiph |
i was thinking about something else |
19:46 |
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 |
FROGGS |
raiph: so tell us :o) |
19:47 |
raiph |
r: my \hello = 42; say hello; $hello = 4; say hello # would dwim |
19:47 |
p6eval |
rakudo 460c2a: OUTPUT«[31m===[0mSORRY![31m===[0m�Variable '$hello' is not declared�at /tmp/QIkMNdxUIM:1�------> [32mmy \hello = 42; say hello; $hello[33m�[31m = 4; say hello # would dwim[0m� expecting any of:� postfix�» |
19:49 |
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. :) |
19:49 |
labster |
thanks guys. I should really join the blog planet. |
19:50 |
|
larks joined #perl6 |
19:50 |
diakopter |
masak++ nice abstract OO O_O |
19:52 |
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:54 |
FROGGS |
I only like sigilless thing in C |
19:54 |
FROGGS |
not in Peril |
19:56 |
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. |
19:57 |
raiph |
not only a topic marker, but a scalar container topic too. |
19:57 |
raiph |
that $ packs a lot of punch |
19:58 |
raiph |
but someone else could write foo |
19:58 |
raiph |
and if they needed to specify the context to make foo work (which is prolly a lot of the time) they'd write $foo |
19:59 |
raiph |
unless they really meant @foo |
19:59 |
FROGGS |
EBUGDETECTED: that reify_method is not defined: https://github.com/perl6/nqp/blob/master/src/how/NQPParametricRoleHOW.pm#L151 |
20:00 |
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 #perl6 |
20:00 |
raiph |
as i said, i (and it sounds you) would type $foo |
20:01 |
raiph |
others would type foo |
20:01 |
raiph |
including, perhaps, myself when i wasn't myself |
20:04 |
diakopter |
Peril indeed |
20:06 |
diakopter |
masak: HAHA |
20:07 |
diakopter |
masak: but you don't say *which way* it removes all doubts: "This talk aims to remove all doubts." |
20:07 |
diakopter |
the ambiguity is hilarious. |
20:08 |
masak |
diakopter: glad you liked that one too ;) |
20:10 |
masak |
diakopter: (it's an old joke. I don't know who originated it.) |
20:10 |
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' |
20:10 |
yoleaux |
japhb_: I'll pass your message to timotimo. |
20:12 |
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. |
20:12 |
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}"); ) |
20:12 |
yoleaux |
japhb_: I'll pass your message to timotimo. |
20:13 |
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? |
20:13 |
jnthn |
larks: Rakudo changes every day... :) |
20:13 |
jnthn |
larks: Change what, specifically? |
20:13 |
larks |
what it compilesbyte code too |
20:13 |
larks |
will it switch to jvm, or just have that option |
20:14 |
jnthn |
Have the option. |
20:14 |
jnthn |
The architecture is the typical frontend/backend compiler one. |
20:14 |
jnthn |
Perl 6 -> AST -> (some backend that targets a particular VM) |
20:14 |
jnthn |
With the backend bit being selectable. |
20:14 |
masak |
diakopter: there. all three talk abstracts written, and all three talks confirmed. |
20:15 |
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 |
20:15 |
larks |
thanks for the help jnthn |
20:16 |
jnthn |
larks: What are you thinking of doing, out of curiosity? |
20:16 |
* diakopter |
perks up |
20:16 |
larks |
well, I'm a CompE grad student, that's all I'm saying `-` |
20:18 |
* 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. |
20:19 |
jnthn |
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 =] |
20:19 |
diakopter |
larks: plus there are hundreds of times more languages that run on the JVM than parrot... |
20:21 |
diakopter |
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 |
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:22 |
lee_ |
so the implementation does not have access to .min or .max directly |
20:22 |
raiph |
labster++ # blog post |
20:22 |
lee_ |
probably in over my head :P |
20:22 |
raiph |
labster: cf http://www.oreillynet.com/onlamp/blog/2005/10/ofun.html |
20:22 |
jnthn |
lee_: Which thing gets passed the Parcel out of curiosity? |
20:23 |
lee_ |
jnthn: the subroutine returned by METAOP_REDUCE_LEFT |
20:23 |
raiph |
labster: 16 roles within Perl 6 community |
20:24 |
jnthn |
lee_: Well, it does *@values, which is a slurpy... |
20:24 |
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. |
20:24 |
jnthn |
Hmmm. |
20:24 |
diakopter |
wrap in capture? |
20:25 |
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 http://www.perl.com/pub/2005/09/22/onion.html |
20:25 |
jnthn |
multi reduce_it(Range $r) { }; multi reduce_it(*@values) { ...what we do today... }; &reduce_it |
20:25 |
jnthn |
Or so. |
20:26 |
jnthn |
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 #perl6 |
20:27 |
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:28 |
|
rindolf joined #perl6 |
20:28 |
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:32 |
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? :( |
20:32 |
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' |
20:32 |
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}"); ) |
20:32 |
p6eval |
rakudo 460c2a: OUTPUT«Array.new(Any, Any, Any, [Any, Any, Any, "X"])â¤Array.new(Any, Any, Any, Any, Any, Any, Any, Any, "X")â¤Â» |
20:32 |
jnthn |
lee_: Hm, maybe not, but even then you can write (Parcel (Range)) or so |
20:33 |
lee_ |
ah ok |
20:39 |
|
dj joined #perl6 |
20:39 |
dj |
hi everyone |
20:40 |
Guest87564 |
i just figured out perl6 |
20:40 |
dalek |
v5: cfff2db | (Tobias Leich)++ | lib/Perl6/P5Grammar.pm: |
20:40 |
dalek |
v5: lookup %*ENV for %ENV |
20:40 |
dalek |
v5: review: https://github.com/rakudo-p5/v5/commit/cfff2db56a |
20:41 |
FROGGS |
hi Guest87564 |
20:41 |
FROGGS |
(aka dj) |
20:41 |
Guest87564 |
i have a problem with perl 5 with making a class which would be dynamically extendable, read add attribute in runtime |
20:41 |
Guest87564 |
that is how i discovered perl 6 |
20:42 |
Guest87564 |
can someone tell me how convenient this is in perl 6, if its possible at all |
20:42 |
FROGGS |
well, then welcome :o) |
20:42 |
FROGGS |
you can define roles and mix then in at runtime for example |
20:43 |
masak |
yeah, I'd just keep doing 'but' with more roles. |
20:44 |
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? |
20:44 |
FROGGS |
r: class A { }; role B { method hello { say "hello" } }; my $a = A.new; $a does B; $a.hello |
20:44 |
p6eval |
rakudo 460c2a: OUTPUT«helloâ¤Â» |
20:44 |
xilo |
that's really neato |
20:44 |
masak |
\o/ |
20:44 |
masak |
yeah, it's nice. |
20:44 |
masak |
and that's 'does'. |
20:44 |
japhb_ |
jnthn: he can haz awesome sauce. |
20:44 |
xilo |
makes component programming ez sauce |
20:44 |
masak |
with 'but', you get to keep the original object, too. |
20:45 |
Guest87564 |
yap, that´s what i figured out from here http://rosettacode.org/wiki/Add_a_variable_to_a_class_instance_at_runtime#Perl |
20:46 |
Guest87564 |
2 more questions: i guess that there is get_all_attributes? |
20:46 |
Guest87564 |
but thats only a guess |
20:46 |
masak |
Guest87564: yeah, just ask the meta layer. |
20:47 |
Guest87564 |
another question is if win7 64bit is supported? |
20:47 |
masak |
r: class C { has $.foo; has $.bar }; say C.^attributes |
20:47 |
p6eval |
rakudo 460c2a: OUTPUT«$!foo $!barâ¤Â» |
20:47 |
masak |
Guest87564: yes, win7 64bit is supported. |
20:47 |
japhb_ |
r: class A { has $.foo; has $.bar; }; my A $a .= new; DUMP($a); |
20:47 |
xilo |
Guest87564: yeah i have rakudo running on my windows 7 box |
20:47 |
p6eval |
rakudo 460c2a: ( no output ) |
20:47 |
masak |
japhb_: 'say' |
20:47 |
japhb_ |
r: class A { has $.foo; has $.bar; }; my A $a .= new; .say for $a.^attributes; |
20:47 |
p6eval |
rakudo 460c2a: OUTPUT«$!fooâ¤$!barâ¤Â» |
20:48 |
FROGGS |
r: say Str.^methods |
20:48 |
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â¤Â» |
20:48 |
japhb_ |
masak, I know. :-) |
20:48 |
FROGGS |
Guest87564: see, everything is there, and pretty easy too |
20:49 |
Guest87564 |
ok, great |
20:49 |
Guest87564 |
i also hope that there is LWP |
20:49 |
FROGGS |
r: class A { has $.foo; has $.bar; }; my A $a .= new; say $a.DUMP; # that looks nice |
20:49 |
p6eval |
rakudo 460c2a: OUTPUT«A<1>(⤠:foo(â–¶Any),⤠:bar(â–¶Any)â¤)â¤Â» |
20:50 |
Guest87564 |
http://search.cpan.org/~gaas/libwww-perl-6.05/lib/LWP.pm cause that is basically why I started perl |
20:50 |
xilo |
LWP is on the most wanted list |
20:51 |
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 |
20:52 |
Guest87564 |
aha, i hope it come soon. i am not very familiar with perl |
20:52 |
Guest87564 |
but what i have compared perl 5 vs 6 |
20:52 |
Guest87564 |
i found 6 much easier to use |
20:53 |
japhb_ |
FROGGS, glad you like it. ;-) |
20:53 |
FROGGS |
:o) |
20:53 |
FROGGS |
yepp |
20:53 |
FROGGS |
japhb_: you did that? |
20:53 |
japhb_ |
yup |
20:53 |
FROGGS |
japhb++ |
20:53 |
FROGGS |
the <1> after the name is the definedness? |
20:54 |
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. |
20:55 |
FROGGS |
that is because perl5 was not made for these things... |
20:55 |
Guest87564 |
i guessed so |
20:55 |
FROGGS |
japhb: ahh, thanks |
20:56 |
dalek |
v5: 2d7dcbb | (Tobias Leich)++ | STATUS.md: |
20:56 |
dalek |
v5: (I wish it would be an automatic-) smoke test update |
20:56 |
dalek |
v5: review: https://github.com/rakudo-p5/v5/commit/2d7dcbbf28 |
20:56 |
Guest87564 |
so, is there any easy to use devel environment for perl 6 as e.g. eclipse with EPIC? |
20:56 |
FROGGS |
hmmm, no |
20:57 |
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 |
20:58 |
Guest87564 |
okey dokey, but some integration package, that when you hit play it executes the script does not exist |
21:02 |
xilo |
Guest87564: you could use vim and setup a shortcut :3 |
21:03 |
Guest87564 |
yap, but i do like eclipse, and its svn. :-) |
21:03 |
Guest87564 |
ok guys, i am gone for now |
21:03 |
Guest87564 |
gotta sleep |
21:03 |
Guest87564 |
wish u luck |
21:03 |
Guest87564 |
ciao |
21:03 |
masak |
o/ |
21:03 |
xilo |
g'night sir |
21:04 |
japhb_ |
I love friendly, curious guests. |
21:04 |
|
dmol joined #perl6 |
21:12 |
masak |
'night, #perl6 |
21:13 |
japhb_ |
o/ |
21:17 |
|
bruges_ joined #perl6 |
21:22 |
|
kurahaupo joined #perl6 |
21:31 |
|
FROGGS joined #perl6 |
21:32 |
|
toddr joined #perl6 |
21:35 |
|
colomon joined #perl6 |
22:03 |
|
stevan_ joined #perl6 |
22:04 |
|
stevan_ joined #perl6 |
22:07 |
|
kshannon joined #perl6 |
22:19 |
|
lizmat joined #perl6 |
22:26 |
|
xilo joined #perl6 |
22:33 |
|
skids joined #perl6 |
22:33 |
|
frdmn joined #perl6 |
22:54 |
|
M_o_C joined #perl6 |
22:58 |
|
BenGoldberg joined #perl6 |
23:04 |
|
BenGoldberg joined #perl6 |
23:08 |
labster |
r: my $t = now; my $a = "a"; $a ne '' for ^50000; say now - $t; |
23:08 |
p6eval |
rakudo 460c2a: OUTPUT«2.2234445â¤Â» |
23:09 |
labster |
r: my $t = now; my $a = "a"; ($a eq '').not for ^50000; say now - $t; |
23:09 |
p6eval |
rakudo 460c2a: OUTPUT«0.8715064â¤Â» |
23:09 |
labster |
Why does ne take twice as long here? |
23:10 |
labster |
r: my $t = now; my $a = "a"; $a eq '' for ^50000; say now - $t; |
23:10 |
p6eval |
rakudo 460c2a: OUTPUT«0.6334043â¤Â» |
23:10 |
labster |
eq takes even less time. |
23:17 |
|
gdey joined #perl6 |
23:17 |
japhb_ |
labster: because ne is defined in terms of a metaop on eq. |
23:18 |
japhb_ |
src/core/Stringy.pm:multi infix:<ne>(Mu \a, Mu \b) { a !eq b } |
23:27 |
|
rafl joined #perl6 |
23:30 |
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:55 |
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:56 |
japhb_ |
(next to all the places that nqp::iseq_s() is used) |