»ö« | perl6.org/ | nopaste: paste.lisp.org/new/perl6 | evalbot usage: 'perl6: say 3;' or rakudo:, alpha:, pugs:, std:, or /msg p6eval perl6: ... | irclog: irc.pugscode.org/ | UTF-8 is our friend!
Set by lichtkind on 5 March 2010.
00:00 daemon joined
ian__ now that the stable release is 5.12.0, what's the preview release, if any? 00:08
lue erm, are you talking about Perl 5 ? 00:09
daemon hey guys, im going to install perl6. however according to ports perl6 does not exist, would 'pugs' be correct? 00:11
cognominal no, pugs is obsolete.
daemon mail# pwd && ls | grep -i perl6 00:12
/usr/ports/lang
p5-Perl6-Subs
pugs/pkg-descr says:
Pugs is an implementation of Perl 6, written in Haskell.
.. I won't paste the rest
lue try rakudo. Go to perl6.org . Rakudo is the one being kept up to date. 00:13
00:13 ian__ left
daemon ok dokey cheers 00:13
00:14 snarkyboojum joined
lue hello snarkyboojum :) 00:14
daemon Path: /usr/ports/lang/rakudo
Info: The Rakudo Perl 6 Compiler targets the Parrot Virtual Machine
there it is
thank you again ^_^
quester_ daemon: Careful! Rakudo is in early development and changing _very_ rapidly. You probably want to get the source directly from github.com. 00:15
daemon: For example, there was a major change to the compiler internals two months ago. 00:16
00:17 jhuni joined
quester_ daemon: See rakudo.org/how-to-get-rakudo for general instructions. 00:17
daemon quester_, advice taken ill give it a whirl in a virtual box - I try my best not to use sources unless I absolutely can't avoid it ^_^
quester_, hehe 00:18
for free it tells me to just pkg_add -rv
or use ports
[particle] preliminary gsoc slot count for tpf: 10 00:19
quester_ daemon: I see your point, but using Rakudo at all involves... a certain amount of trust. I have only ever run it in virtual machines. Keep in mind that Rakudo may be a year or thereabouts away from what would normally be termed "release 1.0".
daemon quester_, gotcha well I use perl5 alot... so lets see how perl6 handles, will I need brandy or whisky for he first run? 00:20
00:21 snarkyboojum left
quester_ Even if there is no malicious intent in any of the code, you may things that have never been tested, and get interesting results. (Bug reports are very welcome.) 00:21
Vodka?
daemon can get that too :)
quester_ s/may/may do/ 00:22
daemon I suppose it cannot be any worse than the first time I found out about POE and gave that a go 00:23
turned out to be one of the most handy things I ever did learn
dngor is a genius
frooh s1n: where you at yo? 00:24
00:24 lichtkind joined
lichtkind hej 00:25
quester_ daemon: Yes... but keep in mind that Rakudo and Parrot are both in the very middle of being written. You may bug where no man has bugged before.
lue hello o/
lichtkind lue: im back :)
daemon quester_, that just adds to the fun :)
lue from vacation? I noticed a wiki-man was missing... :)
lichtkind lue: yes lot of spam 00:26
00:26 snarkyboojum joined
snarkyboojum lue: hello back 00:26
quester_ daemon: Yes. Please report any bugs you find, and best of luck.
lichtkind lue: no after 2,5 days my new system (new HDD) is installed and most of program and drivers are running againd 00:27
had an resolving disk
lue resolving?
lue thinks you meant revolving... 00:28
lichtkind was like russian roulette
lue: i mean disappearing it was a bad translation
quester_ Bye, everyone. .lunch & 00:29
lichtkind bya
lue bye quester_ o/
lichtkind lue : you can say that literally in german there it makes sense :)
00:29 quester_ left
lichtkind lue: tomorrow i think appendix A will exceed 500 entries and i will blog about it 00:29
lue lichtkind: are you german? I haven't spoken german since I was 5, but I ought to remember something :)
\o/
lichtkind lue: no clean blooded arian but born there :) 00:30
lue I'm not arian :) 00:31
( because of when I stopped learning german, I have no clue as to its written form :D ) 00:32
pausenclown u will regret that when we take over the world =) 00:33
lue Last I heard, Hitl — sorry, Hilter — was having some trouble with that. 00:34
:)
afk 00:35
lichtkind bya
pausenclown: so whats you exact role in that game :) ? 00:38
00:39 lestrrat is now known as lest_away 00:41 meppl joined 00:43 daemon left, daemon joined
lichtkind no pause no clown :( 00:49
good night 00:56
00:57 lichtkind left 01:00 wknight8111 left 01:03 am0c left 01:06 holli_ joined 01:07 pausenclown___ joined 01:10 pausenclown left, holli left 01:15 lest_away is now known as lestrrat 01:50 agentzh joined 01:57 Psyche^ joined 02:01 Patterner left, Psyche^ is now known as Patterner
diakopter yes. 02:04
unless/while/until/next/last/do-while
compiler compilers are .. powerful.
02:05 TiMBuS left
diakopter perlesque: my int $a = 2; do { $a += 1 } while ($a < 10); System::Console.WriteLine($a) 02:06
p6eval perlesque: OUTPUT«10␤»
diakopter perlesque: my int $a = 2; do { $a += 1 } while ($a > 10); System::Console.WriteLine($a)
p6eval perlesque: OUTPUT«3␤»
diakopter as the grammar becomes larger, the stage0 compilation step takes noticeably longer.
(as well it should; it's quite complex) 02:07
here's the diff, in case you're curious. code.google.com/p/csmeta/source/detail?r=127# 02:08
once it starts taking longer than 3 seconds, I'll start precompiling/disasssembling/snapshotting the grammar into perlesque itself so that it doesn't have to build stage0 upon every execution. 02:11
02:16 thowe joined
diakopter er 02:20
repeat/while hee
02:21 daemon left
pausenclown___ wtf is perlesque? 02:28
02:38 pausenclown___ left, jrwyant joined 02:40 jrwyant left 02:42 jrwyant joined
CokeBot9000 if only we had an infobot. 02:42
Perlesque is, IIRC, something vaguely in the space of NQP, but on top of the CLR. perl-like, not perl, intended to be used as a compiler tool for that platform. 02:43
02:44 snarkyboojum left 02:50 hercynium joined 02:54 stephenlb left 02:55 stepnem joined
sorear what became of lambdabot, anyway 02:59
03:00 snarkyboojum joined, plobsing joined 03:24 isBEKaml joined
thowe how does one check perl 5 for thread support? 03:26
sorear perldoc Config
every Perl 5 installation contains a Config.pm module, which exports a hash of all values provided to or detected by Configure 03:27
executable file extension, word sizes, debugging flags, threads, search paths, everything
thowe Hmm. No Padre for me.. 03:28
sorear oh, you meant on the command line?
cognominal perl -V:useitheads ?
thowe Yeah, but I ran the code fragment.
sorear perl -V:useithreads
thowe I'm currently on a FreeBSD 8.0 box. It's actually pissing me off. Gonna go back to OpenBSD. 03:29
I think gnome-terminal is my best bet for Perl 6 on there.
sorear don't check 'usethreads'; that refers to 5.005 threads, which were broken by design, deprecated in 5.6 or 5.8, removed from the default configuration in 5.8 or 5.10, and removed from the code entirely in 5.12
I'm suprised Padre uses threads 03:30
thowe FreeBSD doesn't have threads by default. If I built Perl special I could hav eincluded them
It's apparently made a big deal of in the install instructions
sorear oh wow, progressive
perl 5 threads are universally hated
most OS perls have them, and the first thing you're supposed to do as a serious Perl user is compile a custom perl with them disabled 03:31
thowe Huh. Probably why disabled in default FreeBSD port. OpenBSD comes with perl as part of the base system, so I'll bet they are also disabled. Especially since rthreads in OpenBSD are still not there. 03:32
sorear the root problem is that the perl 5 data core has no real encapsulation 03:33
5005threads put a mutex on every scalar
thowe Is there a list of Perl6 software projects anywhere? It would be interesting for me to take a look.
sorear but they're crashy because there's no central place to add locking code 03:34
and so it was added everywhere - didn't work so well
ithreads are based on the 'perlfork' 5.6.0 Windows fork() emulation
they consist of duplicating (no COW here) the entire interpreter heap and all global variables 03:35
if you need parallelism and relatively cheap "IPC", they're good
but they're really quite a niche tool
and, because they have to pass around a Perl_Interpreter * object (no global variables in a threaded world), they have a noticable single-thread penalty 03:36
on the order of 10% runtime
thowe: maybe github.com/masak/proto/raw/e2c8ed1e...jects.list 03:37
thowe hm
sorear there's also gitorious.org/parrot-plumage/parrot...r/metadata 03:40
and a lot of stuff still lives in the pugs repo
(but not pugs)
thowe pugs?
sorear audreyt's Perl6 compiler
it was the first major implementation
hosted in SVN with free commit bits to all, it effectively was Perl6Forge for the first couple years of perl6's existance 03:41
thowe cool
03:41 nihiliad left
sorear creating new projects in pugs-repo is no longer encouraged, but a significant number are still maintained there 03:42
(pugs itself left last month)
03:48 meppel joined 03:49 jrwyant left 03:52 meppl left
sorear phenny: tell masak - I'm looking at the perl6/book; why do you always capitalize RAKUDO ? 03:55
phenny sorear: I'll pass that on when masak is around.
04:07 kiran_viswm joined
snarkyboojum sorear: you mean his # RAKUDO comments? 04:08
04:08 kiran_viswm left
snarkyboojum I think he uses that as a convention for "rakudo bug/limitation here" a la TODO etc 04:09
04:11 alester joined
sorear mm 04:12
also, something is mangling this file
lots of ¿ and ¡
especially in poddy bits
diakopter pugs itself left pugscode... years ago.
lue rakudo: subset A of Array; subset B of A; subset C of A; subset D of A where B & C; say [] ~~ D 04:13
p6eval rakudo fb38db: OUTPUT«Type objects are abstract and have no attributes, but you tried to access ␤current instr.: 'perl6;SeqIter;get' pc 14351 (src/builtins/Routine.pir:126)␤»
lue sorear: unless it was written by a spanish-speaking individual (or other some such thing), I'd say that's an encoding error.
sorear lue: Thank you, but that was actually implied by "mangle" 04:14
I know enough Spanish to say that oB¿pe l¡ac is not valid 04:15
lue is you viewing in UTF-8?
sorear Are you an editor of the perl6-book? 04:16
04:16 REPLeffect left
lue no(t yet). 04:16
why, would it be a wise decision ? 04:19
04:24 snarkyboojum left
lue dislikes when conversations stop in mid thought :/ 04:27
04:27 mikehh left 04:28 _jaldhar_ joined 04:32 isBEKaml left 04:37 lestrrat is now known as lest_away 04:47 snarkyboojum joined
snarkyboojum sorear: ask someone in #perl6book for commit access 04:58
lue goodnight moon 05:02
sorear snarkyboojum: huh? 05:07
snarkyboojum sorear: you noticed some issues with the perl6book?
sorear yes
but I don't know how to fix them 05:08
if anything, it's probably a Pod::PseudoPod::LaTeX bug
untranslated B<> is showing up in the .tex
snarkyboojum sorear: oic which file?
sorear and pdflatex, for some insane reason, renders unquoted <> as ¿ and ¡
snarkyboojum: build/book.tex
snarkyboojum sorear: could be, I came across some similar bugs a while back 05:09
sorear anywhere in the .pod where nested inline markup is used
e.g. I<<oscilloscoB<pe l>acks precision>>
from regexes
snarkyboojum ah - I don't have pdflatex tools installed on OS X
sorear are you just viewing the pod raw? 05:10
snarkyboojum yeah, or generate the html
which has it's own issues (embedding images etc)
its 05:11
sorear there are a couple places where verbatim blocks aren't and code has gotten turned into flow paragraphs
I didn't make note of where though
(for 50 pages of stuff I already know, that was a remarkably slow read)
snarkyboojum peprhaps worth raising in #perl6book in case someone doesn't see it here (thought I'm sure moritz or masak or someone will pick up on it) 05:12
eek s/thought/though/
05:15 molaf joined
snarkyboojum std: subset A of Any 05:26
p6eval std 30384: OUTPUT«ok 00:01 109m␤»
snarkyboojum curiously when trying that via ./perl6 --target=parse I get the following error
'Method 'symbol' not found for invocant of class 'Undef''
sorear what does subset with no where mean?
snarkyboojum no idea, but should it parse? 05:27
sorear I suspect it should result in a static semantics error
like this
std: say 5; CATCH { say 2; }; CATCH { say 3 }
p6eval std 30384: OUTPUT«ok 00:01 109m␤»
sorear std: say 5; CATCH { say 2; }; CATCH { say 3 };
p6eval std 30384: OUTPUT«ok 00:01 107m␤»
sorear std: { say 5; CATCH { say 2; }; CATCH { say 3 }; }
p6eval std 30384: OUTPUT«ok 00:01 107m␤» 05:28
sorear rakudo: { say 5; CATCH { say 2; }; CATCH { say 3 }; }
p6eval rakudo fb38db: OUTPUT«5␤»
sorear I was so sure that was fixed
05:28 yinyin joined
snarkyboojum well 'subset A of Any; when A { say "hi" };' runs 05:30
rakudo: subset A of Any; when A { say "hi" };
p6eval rakudo fb38db: OUTPUT«hi␤»
snarkyboojum but still gives me an error when using --target=parse
05:30 eternaleye left
snarkyboojum i.e. Method 'symbol' not found for invocant of class 'Undef' 05:30
so who knows :)
05:36 molaf left 05:52 eternaleye joined 05:56 kaare joined 05:57 kaare is now known as Guest36494
diakopter perlesque: my int $a = 2; loop { $a+=1; if (($a%2)==0){next} elsif ($a==151) {last};System::Console.WriteLine($a) }; System::Console.WriteLine($a) 05:57
p6eval perlesque: OUTPUT«3␤5␤7␤9␤11␤13␤15␤17␤19␤21␤23␤25␤27␤29␤31␤33␤35␤37␤39␤41␤43␤45␤47␤49␤51␤53␤55␤57␤59␤61␤63␤65␤67␤69␤71␤73␤75␤77␤79␤81␤83␤85␤87␤89␤91␤93␤95␤97␤99␤101␤103␤105␤107␤109␤111␤113␤115␤117␤119␤121␤123␤125␤127␤129␤131␤133␤135␤137␤139␤141␤143␤145␤147␤149␤151␤»
06:07 uniejo joined, snarkyboojum left 06:13 justatheory left 06:22 rv2733 left 06:23 pmurias joined
pmurias sorear: are there any reason why creating new projects in the pugs repo is discouraged? 06:24
06:34 Trashlord left
sorear pmurias: I don't know 06:42
however, new projects (2008+) are overwhelmingly more likely to show up on github/gitorious
only stuff that's deeply coupled to pugs repo stuff, like vill, shows up in the pugs repo 06:43
this is an inductive observation, not a known rule
06:52 jonasbn joined
moritz_ \o/ TPF has 10 preliminary slots in the google summer of code program 06:52
pmurias how many applications are there? 06:55
moritz_ 24
06:58 iblechbot joined 07:00 rhr left
pugssvn r30385 | moritz++ | [t/spec] fudge sort.t for rakudo 07:20
07:22 gfldex left
dalek kudo: aae95f4 | moritz++ | t/spectest.data:
we pass sort.t, quester++
07:25
07:28 pmurias left 07:50 kst left
moritz_ \o/ the authors of Date::Simple have granted me permission to ship their (adapted) tests under the artistic license 2.0 with Date.pm 08:02
08:06 jferrero joined
moritz_ loves the open source community 08:09
sorear: the Perl 6 book source files are meant to be in UTF-8... 08:10
sorear: RAKUDO comments mark workarounds around rakudo bugs 08:11
sorear they /are/ in UTF-8 08:20
this has nothing to do with text encoding
08:20 fridim joined
sorear ¿ and ¡ are being generated at the pdflatex stage; the .tex files are ASCII only 08:22
see #perl6book
08:23 masak joined
masak oh hai, #perl6 08:23
phenny masak: 13 Apr 17:57Z <moritz_> tell masak about paste.lisp.org/display/97730 by CokeBot9000++
masak: 03:55Z <sorear> tell masak - I'm looking at the perl6/book; why do you always capitalize RAKUDO ?
masak CokeBot9000++: will have a look 08:24
sorear: by the same principle that XXX and TODO are capitalized: they should be ugly/visible because they're not supposed to be there in the long run.
08:25 dakkar joined
dalek ok: 3c98bf3 | moritz++ | src/subs-n-sigs.pod:
it turns out that initial whitespaces are required even in "programlisting" blocks. Reported by sorear++
08:30
masak 'whitespace' is a mass noun, and doesn't have a plural in the typical case. 08:38
like 'air'. 08:39
moritz_ aye, I've learned that recently, but it needs time to sink in
masak *nod*
moritz_ looking at the access logs of my websites, I find a nice correlation between visitor counts and new blog entries 08:41
on the day of publishing and the following day, I have about 80 to 150 more visitors than on comparable weekdays without new posts
masak an incentive to blog :) 08:42
moritz_ and on the second day after publishing it's typically still 50 more
aye
when I know that people actually read what I write, I'm more motivated
when I started blogging I read lots of jokes that most blogs have between 0 and 1 reader, and it felt that way too 08:43
I guess writing that 5-to-6 blog series changed that :-)
masak I think it did. 08:44
it docks well with what a lot of people want to read.
moritz_ now that interpolation of postcircumfixed variables work, I have to revisit what I wrote about variable interpolation :-) 08:45
rakudo: my @a = <some few things>; say "ORLY, @a.sort.join('|') IN DA STRNG:
p6eval rakudo aae95f: OUTPUT«Confused at line 11, near "say \"ORLY,"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
moritz_ rakudo: my @a = <some few things>; say "ORLY, @a.sort.join('|') IN DA STRNG"; 08:46
p6eval rakudo aae95f: OUTPUT«ORLY, few|some|things IN DA STRNG␤»
moritz_ this is so amazing :-)
masak it is indeed. 08:47
jnthn++!
moritz_ I should write whole programs in double quoted strings :-)
masak just make sure to end them with brackets of some kind :P
moritz_ "It should have ended that day, but brackets were allowed to endure" (with apologies to the first Lord of the Ring movie) 08:49
08:52 adm_ joined
mathw I thought it wasn't supposed to interpolate that sort of thing 08:52
moritz_ mathw: it's supposed to interpolate all terms that begin with a sigil and end with a postcircumfix 08:53
mathw ah
08:53 synth left
mathw right 08:53
moritz_ and contain no whitespaces, iirc
rakudo: my @a = <a b>; say [email@hidden.address] / ')foo" 08:54
p6eval rakudo aae95f: OUTPUT«a / bfoo␤»
moritz_ seems whitespace is allowed too
08:54 _jaldhar_ left, _jaldhar_ joined
masak moritz_: yes, but not at the 'top' level, parentheses-wise. 08:59
moritz_ aye 09:03
mathw only somewhere it can be delimited suitably 09:16
which makes sense
09:18 adm_ left
sorear t/spec/S06-operator-overloading/sub.t - #?rakudo skip 'lexical operators' can be unfudged 09:18
they work fine 09:19
(user defined precedences, however, don't)
moritz_ sorear: do you have commit acces to the pugs repo yet? 09:20
09:20 araujo left
sorear no 09:20
moritz_ time to change that
tell me your email address, and I'll give you access
sorear (how do I test my changes to the specsuite?)
09:21 araujo joined, fridim left
masak comment on Twitter: 'Perl 6 remains a distant horizon, but Perl 5.x development revitalizing. [...] My favorite? The new "yada yada" operator: ...' -- You're welcome :) 09:22
09:23 araujo left 09:24 araujo joined
m6locks lol 09:34
jnthn o/ from Moscow
masak lolitsjnthn 09:35
jnthn: you made it!
jnthn I did!
Just gave some quite well attended Perl 6 Q&A Session. :-)
masak yay! 09:37
09:37 araujo left
masak what was the best Q you got? which was the best A? 09:37
09:38 REPLeffect joined
m6locks hows the russian perl6 scene 09:38
moritz_ sorear: welcome to pugs. It's custom to add yourself to AUTHORS as first commit (to test your commit access, among other things) 09:39
masak sorear: welcome aboard!
jnthn masak: Well, the first one was "When is Perl 6 out?" ;-)
mathw that's inevitable I suppose
masak that's part of the Perl 6 discourse. 09:40
jnthn Got some nice one about threading. "Is Rakudo * too early?"
masak as an idea, I think Rakudo * could have been a lot earlier.
on the other hand, it will always be too early in the sense of important RT tickets not having been fixed yet. 09:41
it's all a matter of prioritizing.
mathw aargh threading 09:42
mathw is currently wrestling with a horrible object encapsulation/multithreading problem
09:42 pausenclown joined
moritz_ would rather see no support for concurrency at all than crappy threading 09:42
mathw well, Parrot needs nice threading first
although we could have the design all done before then of course 09:43
masak fsvo 'all done'
mathw only thing I know about threading is how not to do it though
masak: obviously it's informed by implementation, so it couldn't be 'complete'
moritz_ mathw: there's a gsoc proposal for fixing up threading iin parrot
mathw moritz_: yay!
I'll cross my fingers for that being accepted
at the moment my biggest thing about threading is 'don't do it in a language which is oblivious to it' 09:44
moritz_ the chances aren't bad
mathw or maybe 'don't share memory by default'
I'm not sure if that's good in general or not, it probably kills your performance in some scenarios
but it would save me a lot of trouble
09:45 araujo joined
moritz_ I kinda expect to see different concurrency systems emerging in the future 09:45
some which are aimed primarily at speed
and other primarily aimed at ease of use, even if that means that some scenarios can't be implemented efficiently 09:46
mathw that'd be nice
rather than trying to ram everyone into one model that doesn't work for any of them very well 09:47
actually a lot of my pain right now would go away if we had re-entrant locks
it's like the design was done for re-entrant locks, and then someone realised they're not re-entrant
jnthn Yeah, it's...hard to get concurrency right. It cerainly needs to be informed by implementations *and* user feedback. 09:48
mathw I believe it to be one of the hardest and most important problems in programming at the moment 09:49
09:49 alester left
arnsholt mathw: I agree 09:49
For inspiration, Haskell and Erlang's threading implementations might be useful?
09:49 _newbie3 joined
mathw which one of Haskell's? :) 09:50
jnthn Probably we need to make sure we allow enough flexibility to let more than one way to be implemented.
mathw I know STM's been talked about for Perl 6
jnthn Since there's more than one type of parallelism.
mathw but I believe that has been shown to have some nasty drawbacks in some cases
arnsholt Haskell has optimistic locking or whatever it's called, IIRC
jnthn (data vs task, for example)
mathw jnthn: yes
precisely why having one model of concurrency breaks down
jnthn TMTOWTDI.
mathw but it can be just as bad having no model, if the programmers using the system don't then decide on the appropriate one and stick to it 09:51
jnthn It's be kinda unperlish to force one model.
mathw giving people a thread class and a semaphore or mutex is just asking for trouble - but you also have to make the primitives available so that new models can be implemented, even if you'd rather people didn't use them directly
arnsholt I think the reason STM works so well for Haskell is that it's a strategy for situations with many reads and few writes. Which fits nicely with purely functional =) 09:52
mathw yeah
jnthn arnsholt: Good point.
mathw plus if your core computation in any transaction is pure, your re-roll could be quite cheap if there's a conflict
that is, if the system can see that your inputs didn't change
arnsholt Yeah
mathw I always wanted to play around with a system where threads talk to each other by pushing things onto message queues 09:53
jnthn looks forward to play with concurrency bits
arnsholt mathw: IIRC that's how Erlang works. Message passing
mathw I've got some plans for investigating these things at work, but unfortunately if I do that it brings it under corporate confidentiality. 09:54
arnsholt: yes, and it's fairly agnostic about if you're talking ot a thread or a process or another computer I believe
09:54 _newbie3 is now known as jaffa4
arnsholt Yeah, I can imagine that being an upshot of implementing message passing right 09:55
mathw message passing has to be coupled with no shared memory by default
I think
if you do that you can certainly spread yourself across a network fairly trivially
moritz_ fsvo trivial :-) 09:56
mathw I'd think Perl 6 could probably be taught to support that model :)
moritz_: well most of the mess would be in the library, not your program :)
isn't our philosophy one of torturing the compiler writers for the sake of the users? :)
masak CokeBot9000: I had 'Any' instead of 'PokerHand' in some places was due to rt.perl.org/rt3/Ticket/Display.html?id=74352
s/was //
arnsholt mathw: Yeah, that's one of the things that appeals to me with message passing. No shared memory means no weird races there 09:57
moritz_ you still get weird races that are inherent to concurrency 09:58
but less
masak how was last night's #rs, by the way?
moritz_ not very productive
I had to run off after a few minutes
at least it's a short read in the logs :-)
masak oh, logs! 09:59
masak reads them
mathw arnsholt: there's a certain architectural elegance to it. I also like the idea of writing an entire system on the basis of a global queue of 'things to do' and a pool of threads which consumes it 10:01
I'm going to try that one day and see what kind of messes it produces
masak CokeBot9000: ah, I see that you fixed that by transforming 'A & B' to '{ A && B }' instead. cunning.
...though probably wrong... :/
rakudo: subset A of Any; say my $a ~~ A 10:02
p6eval rakudo aae95f: OUTPUT«1␤»
masak rakudo: subset A of Any; subset B of A where { A && A }; say my $b ~~ B
p6eval rakudo aae95f: OUTPUT«0␤»
moritz_ rakudo: subset A of Any; say Mu ~~ A
p6eval rakudo aae95f: OUTPUT«Nominal type check failed for parameter '$topic'; expected Any but got Mu instead␤current instr.: 'perl6;Bool;ACCEPTS' pc 363329 (src/gen/core.pir:27083)␤»
masak CokeBot9000: that block will never match. type objects boolify to False. 10:03
masak writes it as explicit smartmatches on $_ instead
bacek ~~ 10:07
jnthn, aloha. In which timezone are you now?
masak CokeBot9000: the reason '&' worked was that the junction delegated to type matching on the subtypes. but the block nullifies the effect of being in 'where' position, and the subtypes are instead boolified by the '&&' 10:09
or not exactly boolified, but treated as truth values of some sort...
moritz_ isn't that the same? :-)
masak there might be a slight technical difference. 10:10
in boolification, it's actually turned into an actual Bool. 10:11
in being treated as a truth value, it's not coerced, but being treated as if it were True of False.
mathw True of False, now there's a mind-bending concept
moritz_ but 2 is neither True nor False
masak that's the difference between ?& and &&, respectively.
mathw: oops. :)
moritz_: no, but it boolifies to True, and && will treat it as a true value. 10:12
moritz_ and ?& will not?
masak yes, but only after turning the 2 into True. 10:13
&& won't do that.
it's visible when the rhs is actually returned from &&.
er, the right operand.
moritz_ but both && and ?& treat the left operand the same, right? 10:14
masak inasmuch as you can't detect the difference, yes :)
moritz_ rakudo: say 1 ?& 2 10:15
p6eval rakudo aae95f: OUTPUT«1␤»
moritz_ rakudo: say 1 && 2 10:16
p6eval rakudo aae95f: OUTPUT«2␤»
10:17 cotto_work left
masak lunch & 10:18
10:23 _newbie3 joined 10:25 jhuni left 10:27 jaffa4 left 10:29 bbkr left 10:30 bbkr joined 10:36 agentzh left 10:42 clintongormley joined, lest_away is now known as lestrrat
masak moritz_: correction. in the case where the lhs is false, you would notice the difference in boolification between && and ?& 10:44
phenny: tell mberends that I'm glad things are happening with proto right now. I think the sanest way I can contribute long-term is to write that 'testable core' thingy. would like to get together some evening and brainstorm on that -- just to make sure I grok the new model. 10:46
phenny masak: I'll pass that on when mberends is around.
10:49 yinyin left 10:52 synth joined
masak CokeBot9000: [backlog] if we're to have an infobot, we should write it in Perl 6, and I'd like to have a word in its design. (clue: not like purl) 10:54
11:01 am0c joined
m6locks does the socket stuff work already in rakudo? 11:01
to the extent that writing a bot is possible
masak it works in Minneapolis. 11:02
don't think it works yet in master.
m6locks
.oO( always a wrong release I have )
11:03
masak and now, IIUC, we also have the added advantage of fewer memory leaks, so maybe the bot'll stay up. :)
BinGOs all the cool kids use event frameworks to write IRC bots there days.
s/there/these/
masak m6locks: I have Minneapolis installed, and symlinked as 'alpha', and latest master as 'perl6'.
m6locks i oughta do the same 11:04
masak BinGOs: it won't be long I think before we'll have an even framework based on traits and modded metaclasses in Perl 6.
s/even/event/
BinGOs and asynchronous IO 11:05
masak doesn't know enough about that to say anything sensible
m6locks class Bot does AsyncIO
BinGOs asynchronous IO event frameworks then >:) 11:06
11:07 pausenclown left
masak seems I have submitted 33 rakudobugs so far this month. and it's not even mid-month yet. times are good right now. 11:08
the score right now is 622.
and rising. :)
11:08 envi^home joined
masak you know what I would like to see a Hague grant for? someone making an effort to make option handling sane in Rakudo. 11:09
and I don't mean S19 as much as simple things.
-I, -n, -p, -i 11:10
just get it all right once and for all.
Juerd Is there a definition of right?
masak that would be awesome.
Juerd Or would inventing what's right be part of the task?
masak Juerd: first approximation: as the 'perl' executable does it.
no inventing or investigating. JDFI. :) 11:11
Juerd Just do fucking it?
masak Just Ducking Foo It. :)
cognominal yea, and lexical variables not going out of scope at each newline in interactive mode. This is my pet peeve
masak cognominal: tell me about it.
cognominal: but IIUC pmichaud was well on his way to fix that.
Juerd fails to care about interactive mode at all 11:12
I've never felt the need for a repl, other than for simple calculations, as in perl -ple'$_=eval'
masak history, tab completion, interactive introspection...
cognominal it is a great way to learn
Juerd Isn't using a source file easier? 11:13
Or, rather, why isn't that easier?
masak Juerd: the feedback loop is tighter with a REPL.
cognominal indeed
masak and you don't have to type 'say' all the time :)
Juerd masak: But you end up typing the same things over and over.
masak again, history.
Juerd History is annoying for that 5 line blokc.
masak if you're used to perl -ple'$_=eval', I understand that you'd say that :)
Juerd And if you don't use multiline constructs, you don't need those variables anyway 11:14
11:14 M_o_C joined
Juerd Like I said, it's just my calculator. 11:14
masak Juerd: I don't feel the need to convince you. I *really*, really want a good REPL for Perl 6.
cognominal Juerd, so perl5 is enough except if your are an APL fan
m6locks repl could be modified so that it would accept redefinitions
Juerd You don't have to convince me, of course :)
I'm just curious
masak Juerd: I'll be satisfied with an "ah, now I get it" once we have it :P 11:15
cognominal Perl, there is more than one way to use it.
Juerd I've seen Python programmers go crazy and use their interactive mode all the time, and the only thing I thought was: why on earth would you do it like that.
masak is there a proof-of-concept of using ReadLine from within Rakudo?
does anyone have the knowhow to make one? 11:16
Juerd The things that are small enough are great for oneliners in -e, and the rest is annoying to repeat in a repl.
moritz_ -e has the disadvantage of adding your shell's quoting layer to it 11:18
which is not a problem in 95% of the time, but very annoying in the 5% where you get it wrong
cognominal I switched to Perl to avoid to mess that quoting layer 11:21
11:23 rv2733 joined 11:24 ruoso left
masak I would use the REPL rather than -e if the REPL didn't have the flaws it currently does. 11:24
at least I would in 90% of the cases.
11:26 _jaldhar_ left 11:27 pmurias joined
pmurias hi 11:27
masak \o 11:28
would it be a mistake to require subtype checking not only on assignment, but also on declaration? so for example 'subset Odd of Int where { $_ % 2 }; my Odd $uninit;' would error out at runtime at the latest. 11:29
colomon how would you check that? 11:30
masak just run the subtype check at some appropriate moment.
pmurias masak: that seems resonable 11:31
masak similarly for object attributes with subtyoe restrictions. the object would error out instead of being created inconsistently. 11:32
colomon I mean, how would you make a subtype check detect the example conflict? 11:33
masak colomon: I'm sorry, except for the answer I gave you, I have no idea what you mean.
pmurias masak: one problem i can see is my $foo;if foo() {$foo = ...} else {$foo = ...} like scenarios 11:36
masak how and why is that a problem?
colomon If I say 'subset Odd of Int where { $_ % 2 }; my Odd $uninit;', how does the compiler know that's wrong? If you're assigning a value, it's easy to test that the value can't meet the constraints. But how can the compiler know that *nothing* meets the constraints?
afk # diaper change
moritz_ colomon: it runs the type check
colomon: on the default value, which is an Int type object 11:37
masak colomon: supposedly, init-ing an Odd-subtyped variable would amount to assigning the Int type object to it.
11:38 M_o_C left
masak colomon: the problem is that it would probably be done in what jnthn calls the proto-lexpad, which is not necessarily at runtime IIUC. 11:38
but if all that means is earlier errors, that's fine :)
pmurias masak: sometimes i want to declare a variable in some common outer scope and then initialise it in two common places 11:39
masak pmurias: yes, sure!
pmurias: ah, now I see what you mean.
pmurias: I think that concern is smaller than not having variables in an inconsistent state.
but that's just my immediate reaction. there might be places where that becomes a real problem. 11:40
also, it might turn out that it's philosophically impossible to assume that the variable isn't always assigned a (possibly inconsistent) default value at the start of the block. 11:41
in fact, I think that's the sad truth of it. :/
pmurias is confused by that
moritz_ just find a default value yourself
masak pmurias: well, you can use the varible in the rhs of the declaration assignment, right? 11:42
pmurias: that means it has *some* value even before the first assignment.
pmurias std: my $foo = $foo;
p6eval std 30385: OUTPUT«ok 00:01 110m␤»
pmurias std: say $foo;my $foo = $foo;
p6eval std 30385: OUTPUT«===SORRY!===␤Variable $foo is not predeclared at /tmp/6SIERUJ7E9 line 1:␤------> say $foo⏏;my $foo = $foo;␤Check failed␤FAILED 00:01 108m␤»
masak yapsi: my $foo = $foo
ENOYAPSIYET 11:43
./yapsi -e 'my $foo = $foo; say $foo' 11:47
Any()
\o/
moritz_ masak: tiem for an evalbot target, is it? :-) 11:48
*time
masak I think it is. :)
moritz_: should the Yapsi target dir build from the Rakudo target dir, or should it have its own Rakudo subdir, you think? 11:49
moritz_ masak: does rebuilding rakudo require recompilation of yapsi? 11:50
11:50 _jaldhar_ joined
masak moritz_: depends if something PIR-related changed, I guess. 11:51
moritz_ masak: how long does it take to rebuild yapsi?
compared to rebuilding rakudo 11:52
11:52 iblechbot left
masak tests 11:52
currently it takes 6 seconds. 11:53
oh! I just remembered Yapsi runs off alpha, so it'd be using the alpha target, if any. 11:54
moritz_ that's basically immutable anyway
masak nod.
moritz_ 6 seconds including all dependencies?
masak no dependencies at present. 11:55
perhaps in the future GGE will be one.
and with it, a Perl 6 grammar.
moritz_ how do you parse now? built-in Perl 6 grammars?
masak aye.
extremely simplified. 11:56
see the top of github.com/masak/yapsi/blob/master/lib/Yapsi.pm
in fact, I think getting support for STD.pm, GGE and Rakudo parsing should come fairly soon. it will necessitate a common way to communicate ASTs. 11:57
which will be important in itself.
moritz_ that's sweet :-)
(the current grammar, I mean)
masak it is :)
it's a sweet, complete-in-itself subset of Perl 6.
I first wrote that code, grammar and subs, in Perl 5 and Regexp::Grammars. 11:58
it was a joy to use in many ways. I realized that Perl 5 and Regexp::Grammars both rock. specifically, I feel a great confidence when using those tools that I don't get in Perl 6. 11:59
moritz_ :-)
in two years, you will 12:00
masak then, when porting it all to Perl 6, I felt clearly that Perl 6 rocks. :)
specifically, the regex syntax is so schweet, and multi subs help keep things atomic and reduce clutter in other ways too.
moritz_ aye
and then you use proto tokens...
masak one place where Regexp::Grammar really shines right now and Perl 6 regexes don't is in the output produced. 12:01
I still feel that $/ is really tough to traverse.
pmurias masak: the output of STD is more a parse tree then an ast 12:02
masak pmurias: whazzedifference?
moritz_ masak: aye. The many rakudobugs associated with $/ don't make things easier
actually .caps and .chunks are supposed to make it much easier 12:03
pmurias masak: it reflects the particular way the program is written rather more of the program meaning
masak: like PAST vs the $/ from rakudo's grammar
masak moritz_: the second param of the find-vars and sicify subs doesn't have a parallel in the Perl 5 code. it's cool to be able to use constants in that way, but in the end it's a workaround for something missing in Match objects.
moritz_: I've never really used .caps and .chunks. is there a tutorial somewhere? :) 12:04
pmurias: good point. I suppose it's the parse tree I want, actually. 12:05
not the AST.
moritz_ masak: tutorial? are you kidding? they are specced, tested and implemented (in alpha), that's not a bad start...
masak moritz_: oh, ok.
moritz_: I will have a look at the tests, then.
12:05 pmurias left
masak and yes, I was kidding. 12:05
12:06 bluescreen joined, bluescreen is now known as Guest11340
moritz_ alpha: 'abcdefg' ~~ /'a' <alpha> ** 2 (d)(e)(..)/; say $/.caps.join('|') 12:06
p6eval alpha 30e0ed: OUTPUT«alpha b|alpha c|0 d|1 e|2 fg␤» 12:07
masak hm.
that is useful for tokenizing.
moritz_ alpha: 'abcdefg' ~~ /'a' <alpha> ** 2 (d)(e)(..)/; say $/.chunks.join('|')
p6eval alpha 30e0ed: OUTPUT«~ a|alpha b|alpha c|0 d|1 e|2 fg␤»
masak but I'm actually using the tree structure in Yapsi when checking for variables and such.
takadonet morning all 12:09
moritz_ masak: it gives you a list of all subtrees - isn't that exactly what you need for traversal?
masak takadonet: \o 12:10
pugssvn r30386 | masak++ | [t/spec/S05-capture/caps.t] rw review -- fixed braino
masak moritz_: yes, I think it is. but what I'm missing specifically from Regexp::Grammars in Perl 6 grammars is that Match objects 'know their name', i.e. something which parsed as a variable is typed as AST::Variable. 12:14
see for example findvars in github.com/masak/tardis/commit/b598...6e5#diff-3 12:15
(that's the Perl 5 prototype of Yapsi)
moritz_ isn't that what .ast is for in Perl 6? 12:16
masak you mean putting something there to give a clue? I guess.
but that would have to be done manually for each particular case. in Regepx::Grammars it just happens. 12:17
'feature envy' :) 12:18
I also really dig the debugger. hope I'll get the presence of mind to finish implementing grammars in GGE soon, so that I can steal^Wport the debugger from Regexp::Grammars. 12:19
12:52 SmokeMachine joined 13:00 ruoso joined 13:01 _jaldhar_ left 13:02 _jaldhar_ joined 13:04 smash_ joined
smash_ hello everyone 13:05
moritz_ hi smash_
masak smash_: \o 13:06
13:16 alester joined
dalek ok: 026f6a4 | moritz++ | bin/book-to- (2 files):
[build] allow B<...> in verbatim code, allison++
13:26
13:26 payload joined
CokeBot9000 masak: the version you had always matched. Mine seems to work more often. =-) 13:30
masak CokeBot9000: yours never matched. arguably, that's slightly better, but still not ideal. :)
CokeBot9000 (the version you posted said it was always a full house.)
masak yes, you mentioned that. 13:31
CokeBot9000 full houses rarely happen, though, so I was right more often! =-)
masak thanks for your fixes.
are you still planning to write the XXX part?
moritz_ CokeBot9000++ # statistical program correctness
13:31 lisppaste3 left, lisppaste3 joined
CokeBot9000 I'm definitely interested in playing with that more. love to see a version with links to the RTs you were avoiding. 13:32
masak: yes. as soon as time permits. =-)
masak \o/
CokeBot9000 I will probably play with it this evening.
dalek ok: aea60b1 | moritz++ | src/basics.pod:
[basics] uninitialized hash items now default to Any, not Mu
13:33 rhr joined 13:36 payload1 joined, payload left 13:37 pmurias joined
pmurias ruoso: hi 13:39
13:40 payload joined, payload1 left 13:47 ruoso left 13:48 alester left, ignacio_ joined 13:49 Guest36494 left
pugssvn r30387 | pmurias++ | [mildew] tweak whitespace 13:52
r30388 | pmurias++ | [mildew] add target to test bread
r30389 | pmurias++ | [mildew] fix bread - STD needs to be importer from the main package
r30390 | pmurias++ | [mildew] handle utf8 in source files in bread
13:52 slavik joined 13:53 _newbie3 is now known as jaffa4 13:56 ggoebel joined 13:57 payload1 joined, payload left 14:04 ruoso joined
masak blogged: use.perl.org/~masak/journal/40311 14:05
14:06 ash_ joined
mathw People who blog about community structure when they should be making named enums work should be shot on sight :P 14:07
mathw runs 14:08
masak :D
mathw: wish I could help, but the latest development with named enums was that jnthn realized that the blockages were non-trivial to such an extent that he couldn't even explain to me how to fix them.
mathw: in the meantime, use Minneapolis like the rest of us. :) 14:09
ash_ masak, do you have a blog? (link?) 14:10
masak ash_: see above.
ash_ to the logs!
14:10 slavik left
ash_ got it 14:10
thanks
masak oh, sorry; didn't notive you hadn't logged in at that point... :)
14:11 alester joined 14:14 payload1 left 14:15 payload joined
mathw masak: I'm too stubborn to do that. I want master! master! master!!!!!!!! 14:16
14:16 payload left
masak mathw: an alternative is to use the DIY::Enum class that I wrote for the poker hand example as a workaround. 14:16
mathw: that, together with lots of 'our sub's might work as a workaround for the time being. 14:17
mathw or I could practise the ukulele, which seems to be how things are working out
masak or that, yes.
you just like giving me a bad conscience, admit it :P
mathw not really 14:18
it's not like it's really your fault
Mi ŝatas ludi ukulelon.
masak gosh, I hope it's not my fault. :)
moritz_ masak++ # great blog post 14:19
masak danke. 14:20
it was ultimately triggered by the mst-hanekomu-alester incident, though that's not visible from the final result.
14:20 envi_home2 joined
masak and that wasn't an example of the 'people who X should be shot' meme, just two people being nasty on the web. 14:21
mathw it's astonishing sometimes how nasty people can be online
moritz_ people who should be sh...oh, wait!
mathw People who are nasty to people online should be politely taken aside and explained that the internet isn't full of emotionless bots which have aced their Turing tests... yet 14:22
there are plenty on twitter who seem to be failing theirs though 14:23
masak maybe we'll behave better when the Internet has the shape of augmented vision projected on our retinas and other people look like flesh-and-blood people, in 20 years or so.
14:23 envi^home left
alester masak: link? 14:23
moritz_ and when people whom you are not nice to can smack you online, and it hurts in meat space
masak alester: use.perl.org/~masak/journal/40311 14:24
moritz_: though maybe people will start to actually hang and shoot each other instead :/
moritz_ :(
alester I've never been comfortable with pointless geek aggro. 14:25
thanks for sayin', masak
14:25 sysrape joined 14:26 alester left 14:27 uniejo left
masak alester: I'm just saying that I hope what many people are thinking: that when people reply with insults and ridicule to a sincere request for help, those people aren't behaving with the respect you'd require from people in the same community. 14:27
14:32 justatheory joined
masak 'pointless geek aggro'. exactly. maybe the impulse is ultimately born out of a combination of power and powerlessness. 14:34
eternaleye masak++ # levels 14:35
masak thanks.
eternaleye Saw it in my feed reader, read it, and was compelled. 14:36
masak for me it was more of the reverse order :) 14:37
eternaleye I think that one of the greatest things about Perl 6 is that the 'community' level is amazingly vibrant for the relative state of the other levels - limited repository, patterns that are still being discovered, and a tool in flux. OTOH, the community is the one thing that can change those states :D
mathw I think we've got an awesome community 14:38
14:42 justatheory left
masak hugme: hug community 14:42
hugme hugs community
moritz_ hugme: add smashz to book 14:43
hugme hugs smashz. Welcome to book!
14:43 rgrau joined
masak eternaleye: yes. in many ways we've been forced into this path, because the tool takes time to write, but the community was there from the beginning thanks to Perl 5. 14:43
14:43 plobsing left 14:50 ash_ left 14:52 pausenclown joined
pausenclown the pugs svn is still down. can someone lend me a copy of std.pm? 14:52
TimToady looks up to me 14:53
masak here too.
TimToady are you looking for this? svn.pugscode.org/pugs/src/perl6/STD.pm6 14:54
pausenclown indeed.
TimToady with a 6 on the end?
pausenclown svn.pugscode.org/pugs/src/perl6/STD.pm6 14:55
oh.
someone tell uncle google =)
14:57 snarkyboojum joined
pausenclown ok, now what is meant with "Until the document is updated, look at STD.pm " in S26? there's not much pod in there. 15:00
masak beware of the leopard. 15:01
15:01 ejs joined
masak pausenclown: I mention that in this post: use.perl.org/~masak/journal/38644 15:01
hm. I need to update that blog post. things have happened with S26 since then. 15:02
15:02 snarkyboojum left 15:03 nihiliad joined, nihiliad left 15:05 nihiliad joined 15:08 kaare joined, pausenclown left, kaare is now known as Guest12138 15:10 Guest12138 left 15:11 ash_ joined 15:13 sysrape left
CokeBot9000 are the specs in svn.pugscode.org/pugs/docs/Perl6/Spec ? 15:15
ash_ yes
CokeBot9000 I am trying to find the source for perlcabal.org/syn/S26.html. 15:16
(and that's not in the pugscode url.)
ash_ you mean svn.pugscode.org/pugs/docs/Perl6/S...tation.pod ? 15:17
they run a script to convert the .pod into a .html
S##-.*.pod should == S##-.*.html (just with running perldoc on it) 15:18
CokeBot9000 yes, I'm trying to find the source of the "NOTE TO IMPLEMENTORS AND CODERS" section. 15:19
moritz_ CokeBot9000: the HTML version of S26 is out of date...
CokeBot9000 (svn upping and checking all of pugscode...)
15:20 slavik joined
moritz_ CokeBot9000: because we don't have a tool to parse the new Pod format 15:20
ash_ ah, my bad, didn't realize that
diakopter well
moritz_ svn.pugscode.org/pugs/docs/Perl6/Sp...tation.pod is as authorotative is it gets
CokeBot9000 moritz_: alright. it's exceeded my threshold for "quick fix" to fix the url to STD.pm in that doc, then. =-)
diakopter I thought we had a tool.
15:21 slavik left
moritz_ diakopter: for the previous iteration, yes 15:21
15:21 slavik joined
diakopter oh 15:21
I didn't know there was a new iteration
moritz_ newish
15:22 cotto_work joined 15:26 am0c left
masak it's either the tool becoming obsolete or the CRUEL IRONY mentioned in search.cpan.org/~dconway/Perl6-Perl...Perldoc.pm 15:28
pmurias masak: it would be awesome to be able to use Pod6 for perl 5 15:35
dalek ok: c3283d6 | smash++ | src/subs-n-sigs.pod:
Fix some typos.
15:38
CokeBot9000 smash_: its most simple form is correct. 15:40
ww.
15:44 plobsing joined 15:46 ejs left, clintongormley left
dalek ok: 749dc72 | smash++ | src/subs-n-sigs.pod:
Revert one incorrect fix.
15:50
15:50 ejs joined 15:51 plobsing left 15:52 clintongormley joined
masak swimming & 15:53
TimToady masak: re grammars "just working", I'll just point out that viv spits out VAST::variable for a variable, and that's not because there's a 'make' for it--it's done by an AUTOLOAD
masak oh, ok. 15:54
TimToady but there is probably room for more sugar :)
masak yes.
specifically as AUTOLOAD is not implemented anywhere yet :)
15:55 ash_ left
masak & 15:55
TimToady not true--it's implemented in Perl 5 :P
15:55 masak left
moritz_ that barely counts :-) 15:56
TimToady: at what point in the parse are the AUTOLOAD provided subs or methods called? 15:57
diakopter does Perl 6 spec AUTOLOAD ?
15:58 justatheory joined, justatheory left
pmurias CANDO? 15:58
15:59 justatheory joined
TimToady moritz_: at every reduction of a named rule 16:01
(historically, at {*} points too, but that's deprecated)
moritz_ TimToady: ah, so it's just normal reduction methods
TimToady yes. viv does some extra work to deal with the opp expression tree rearrangements, but almost everything else is done generically by the AUTOLOAD 16:02
well, it's not really viv anymore, it's Actions.pm 16:03
16:05 vorner joined
TimToady viv itself just parses command line args and walks the ASTs these days 16:05
diakopter saw some code emission routines in there 16:07
TimToady yes, that's what the walkers do :) 16:13
or don't, in the case of the unwritten ones... :/ 16:14
16:14 envi_home2 left
pmurias TimToady: what would be great would be do have viv exposed as a proper library 16:23
TimToady that's what Actions.pm is a start on 16:24
the script, std, also uses it, but doesn't do anything with the AST yet 16:25
16:25 SmokeMachine left
TimToady but the reason std has it was I was intending to do 'sink' propagation 16:26
well, really, it's the anti-sinks that propagate and ask for final statements to be non-sink
lue o hai 16:27
TimToady o hai o gozaimasu
lue wonders if gozaimasu is some japanese word... 16:28
TimToady ご座います 御座いますございますgozaimasuto be (polite); to exist
slavik TimToady: it's ohayo gazaimasu :) 16:30
ohayo is the word ;)
16:31 thowe left 16:32 brrant joined
lue timutoti is "wisdom ignorance soil" (literally) 16:36
16:38 iblechbot joined
lue afk for a bit ( due to early-moring apathy :) ) 16:39
16:42 flity joined, rv2733 left
TimToady slavik: I'm quite aware of that; it was a pun. 16:51
slavik oh 16:52
that was a thought in the back of my head :)
TimToady I speak some Japanese, and can almost understand it. :) 16:53
16:55 ejs left 16:56 ruoso left
TimToady I think it's funny that the Kanji for "gozaimasu" derives from "sit", as in "there it sits, so obviously it exists" :) 16:56
16:57 ejs joined
TimToady and if you break apart the radicals, it's more like "sit down under a big roof", implying "sits in a respectable place like a palace" 16:58
hence it is a very polite form of "to be"
</lesson> 16:59
16:59 hercynium left 17:01 jferrero left 17:11 jonasbn left 17:12 SmokeMachine joined 17:21 ruoso joined 17:22 dakkar left 17:46 flity left 17:49 hercynium joined
diakopter std: AUTOLOAD 17:51
p6eval std 30390: OUTPUT«===SORRY!===␤Undeclared name:␤ 'AUTOLOAD' used at line 1␤Check failed␤FAILED 00:01 107m␤»
17:54 Trashlord joined 17:57 SmokeMachine left 17:59 M_o_C joined 18:01 plobsing joined 18:08 stephenlb joined 18:20 SmokeMachine joined 18:29 espadrine joined 18:30 espadrine left 18:39 REPLeffect left, elmex left, elmex joined 18:51 REPLeffect joined
CokeBot9000 is there a workaround for 65994? a load_bytecode that's missing or something? 18:51
18:53 rgrau left 18:54 rgrau joined 18:56 Tene_ joined, Tene_ left, Tene_ joined, Tene_ left 19:02 justatheory left
diakopter std: my int $a=5; loop (my int $a=7;;) { } # frown 19:02
p6eval std 30390: OUTPUT«Potential difficulties:␤ Useless redeclaration of variable $a (see line 1) at /tmp/4K6xoS98Zb line 1:␤------> my int $a=5; loop (my int $a⏏=7;;) { } # frown␤ok 00:01 109m␤»
TimToady loop {} has no parameters 19:05
and we never put implicit {} around loop statements like P5 does 19:06
diakopter I thought the initializer statement (the first slot) opens the new lexical scope (not the {)
19:06 kst joined
diakopter feather.perl6.nl/syn/S04.html#___top 19:07
er
feather.perl6.nl/syn/S04.html#The_g..._statement
TimToady in particular, this makes it easy to write a loop if you really want the variable to persist after
diakopter I think 'and we never put implicit {} around loop statements like P5 does' should be in S04 19:09
(I don't see a mention of that) 19:11
TimToady I would think that S04:115 states it strongly enough
19:11 espadrine joined
diakopter oh 19:14
TimToady there is no arbitrary list of which constructs auto-{} and which don't, unlike in Perl 5 19:15
19:16 ejs left 19:17 supernovus joined
Juerd That doesn't mean that there would be no list at all :) 19:19
Although eventually everything is of course based on arbitrary decisions
TimToady well, I consider the empty list to not be very arbitrary... :) 19:20
the empty set is kinda special, as sets go...
diakopter std: my $a = (int sub foo { })
p6eval std 30390: OUTPUT«===SORRY!===␤Two terms in a row at /tmp/MGMIGLtA6U line 1:␤------> my $a = (int ⏏sub foo { })␤ expecting any of:␤ bracketed infix␤ infix or meta-infix␤ statement modifier loop␤Parse failed␤FAILED 00:01 108m␤»
diakopter std: my $a = (my int sub foo { })
p6eval std 30390: OUTPUT«ok 00:01 108m␤»
diakopter oh 19:21
19:21 ejs joined, ejs left
diakopter can't wait to discover whether that ast is correct from std 19:21
TimToady why wouldn't it be? 19:22
you can also have:
diakopter I don't know.
TimToady std: my $a = (anon int sub foo { })
p6eval std 30390: OUTPUT«ok 00:01 108m␤»
TimToady which is an anonymous sub that knows its own name 19:23
diakopter std: my $a = (my sub sub { })
p6eval std 30390: OUTPUT«ok 00:01 108m␤»
diakopter std: my $a = (my sub sub sub { })
p6eval std 30390: OUTPUT«===SORRY!===␤Malformed block at /tmp/9fY9WR4pPO line 1:␤------> my $a = (my sub sub ⏏sub { })␤ expecting any of:␤ block␤ routine_def␤ trait␤Parse failed␤FAILED 00:01 108m␤»
diakopter oh
19:24 ruoso left
TimToady declarations are not expressions in P6 19:24
19:25 ShaneC joined
TimToady they maybe contain expressions, and be contained in expressions, but of themselves they are special forms 19:25
19:25 ShaneC left
TimToady also, you don't need those parens above 19:25
std: my $a = anon int sub foo { }
p6eval std 30390: OUTPUT«ok 00:01 108m␤»
TimToady std: my $a = my int sub foo { }
p6eval std 30390: OUTPUT«ok 00:01 108m␤» 19:26
diakopter glad there is already a complete front-end, so I don't have to worry about this stuff.
TimToady :D
diakopter I'm just trying to make the proper subset in perlesque actually correct 19:27
19:27 adm joined
TimToady doesn't matter if it's correct unless you plan to quine things 19:27
19:28 ShaneC joined
diakopter or send the perlesque output through std 19:28
19:28 ShaneC left
diakopter wouldn't that be a trip. 19:29
kindof round.
adm when is Raudo* releasing? 19:30
s/Raudo/Rakudo/
diakopter has no idea
takadonet I believe in a month or two
diakopter I think it was deferred a month or two 19:31
CokeBot9000 adm: rakudo.org/, first article
adm so this is going to be (first) complete perl6 implementation (without libraries)? 19:32
sorear no
adm CokeBot9000: thanks 19:33
sorear have you seen the perl 6 specification? it's bigger than C++99
CokeBot9000 adm: use.perl.org/~pmichaud/journal/39411
(for "what is Rakudo *")
sorear it will, however, cover "enough" of the specification
ah, that's a better explanation 19:34
CokeBot9000++
TimToady "Enufk is enufk, and enufk is Too Muchk!!!" -- Popeye 19:35
19:37 adm left 19:39 ruoso joined
takadonet he will be back.... one day 19:43
supernovus The new Temporal spec looks great. Much simpler and better defined than the last couple of versions. 19:44
19:45 adm joined 19:46 ggoebel left
adm sorry lost the connection but back again 19:47
takadonet adm:np 19:48
adm is there any way to get lost conversation?
19:48 M_o_C left
TimToady irclog.perlgeek.de/perl6/today 19:49
adm thanks 19:50
19:50 gfldex joined
TimToady see also perl6.org/ for various links 19:52
19:53 ejs joined
CokeBot9000 blogs.activestate.com/2010/04/perl-5-is-alive/ , which had the questionable perl 6 impact on p5p, has now been quoted in arstechnica.com/open-source/news/20...leased.ars 19:53
adm CokeBot9000: thanks for the Rakudo* link 19:54
CokeBot9000 adm: sure. 19:55
19:55 ejs left
CokeBot9000 (ars) though I am glad to see at least part of this paragraph: 19:56
The underlying narrative behind Perl 6 has largely changed, and it is increasingly characterized by its supporters as a parallel project rather than the next iteration of Perl. With that transition came a need to reinvigorate Perl 5 development.
19:59 Guest11340 left, adm left
CokeBot9000 (hurm. i wonder why ... in P5 is "Yada Yada" and not YYY. 19:59
19:59 Guest11340 joined
TimToady phone 20:00
20:01 justatheory joined 20:02 IllvilJa joined
IllvilJa o/ 20:03
20:06 adm joined
adm it's really a sad news 20:07
CokeBot9000 adm - which now? 20:09
20:11 pmurias left
adm that of pmichaud's wife illness. my prayers are with family 20:11
a month or two won't make much difference i guess 20:13
20:16 payload joined 20:18 payload left 20:19 adm left
CokeBot9000 nope. 20:19
in the meantime, feel free to work on some tickets in the RT queue. =-)
(I am reminded that I took one and should figure out how to implement it.) 20:20
20:20 adm joined
adm yes I would like to contribute. first I will spend some time and get upto speed 20:24
[particle] adm: i can give you a commit bit to the pugs repository, so you can start committing tests when you're ready 20:26
adm sure 20:27
[particle] all i need is a username and email address 20:29
adm ok. I will send you when I am ready. 20:30
[particle] send it now, and it'll be there when you're ready :)
20:34 ash_ joined
adm but I heard pugs is been inactive for a while and Rakudo is being developed actively 20:35
colomon adm: the Perl 6 test suite still lives in the pugs repository. 20:36
adm oh 20:37
20:37 dual left
diakopter it's inactive as a Perl 6 implementation, but it continues to be maintained as a hackage package for various uses. hackage.haskell.org/package/Pugs 20:38
20:38 dual joined
adm i see 20:39
ok guys it's late for me now. 20:41
good night/day
20:44 adm left 20:46 dual left 20:48 ejs joined, dual joined 20:51 dual left 20:52 dual joined 21:00 shem joined, rv2733 joined 21:01 sundar joined
sundar What's the best place to look at some example Perl6 code? are the Euler examples in the pugscode repo current? 21:02
21:03 hercynium left
cognominal sundar, rakudo the most advanced implementation so far, contains lots of code in Perl 6 21:04
And by nature, it is not allowed to rot.
on the other hand, that is not slef-contained code. 21:05
sundar cognominal: does it have, for eg., string manipulation, file handling, etc.?
cognominal But Perl 6 being destined to write big programs, they are good examples. 21:06
supernovus sundar: github.com/masak/ and github.com/supernovus/ have some self contained examples, but most of them only work with the January rakudo release, not the current master.
cognominal My interest being regex and grammars, the rakudo code is a feast. 21:07
sundar supernovus: thanks. have there been that many changes since Jan?
supernovus sundar: In Feb, rakudo migrated to an entirely new master branch that is a rewrite. The way it has been designed is way superior, and it offers huge benefits over the previous 'alpha' build, but not all of the functionality from 'alpha' has been reimplemented yet. 21:09
21:10 Trashlord left
sundar supernovus: Oh, ok... I've always wondered about all this alpha, ng, proto, etc. stuff. Thanks.. 21:11
21:12 Trashlord joined, rv2733 left, Trashlord is now known as Guest70700 21:14 pmurias joined
colomon sundar: alpha is the old (Jan) Rakudo, ng is what became the new (Feb and on) Rakudo, also known as master. 21:15
sundar colomon: thanks.. and proto, I guess, is going to become the future master? 21:17
colomon no, proto is more akin to CPAN for Perl 6
at least, the downloading and installing portion of CPAN. 21:18
I don't think it's quite working yet, however.
sundar colomon: Oh oh, ok... I vaguely remember a mention of 'package manager' by masak. This is it? 21:19
colomon yup, that's proto.
21:21 ignacio_ left, ignacio_ joined 21:22 ignacio_ left 21:23 iblechbot left
ash_ what else is broken with proto? 21:27
21:31 jhuni joined 21:32 justatheory left 21:33 colomon left, supernovus left 21:36 ruoso left 21:39 TiMBuS joined 21:45 rgrau left, Guest11340 left 21:47 ejs left 21:49 clintongormley left
lue hello again 21:51
21:53 justatheory joined 21:56 SmokeMachine left
lue rakudo: my @a = ((1,2,3),(45,56),(789,0,1)); say @a[2;1] 22:00
p6eval rakudo aae95f: OUTPUT«Unable to parse postcircumfix:sym<[ ]>, couldn't find final ']' at line 11␤current instr.: 'perl6;Regex;Cursor;FAILGOAL' pc 1664 (ext/nqp-rx/src/stage0/Regex-s0.pir:907)␤»
22:00 Guest70700 is now known as Trashlord, Trashlord left, Trashlord joined
lue what is slice context, exactly? 22:01
ash_ a way of accessing a subset of an array 22:03
22:04 pjcj left, rv2733 joined
ash_ so, @a = 1, 2, 3; if you wanted to call it an array, you'd just do @a, if you want a scalar value at index 0, for instance, you'd say @a[0], if you want a slice of the array, say elements 1 to the end you'd do @a[1..*] 22:05
lue rakudo: @a = 1,2,3; say @a[*-1] 22:06
p6eval rakudo aae95f: OUTPUT«Symbol '@a' not predeclared in <anonymous>␤current instr.: 'perl6;PCT;HLLCompiler;panic' pc 152 (compilers/pct/src/PCT/HLLCompiler.pir:108)␤»
lue rakudo: my @a = 1,2,3; say @a[*-1]
p6eval rakudo aae95f: OUTPUT«3␤»
lue so, is slice context fully implemented? 22:07
ash_ saying @a = (1, 2, 3, 4); @a[2..3] = <a b>; the second statement is a slice
umm, i think parts of slice context work, but i don't think its complete
22:12 kakakoko joined 22:14 hercynium joined 22:18 kakakoko left 22:23 jaffa4 left
sundar When I try to "perl Configure.pl --gen-parrot", it dies with "Parrot revision r45386 required (currently r43487)" error. Isn't it supposed to get the right parrot version by itself? 22:23
and where would the parrot_config file be? 22:24
ash_ do you have a parrot folder?
or parrot_install folder?
m6locks it is, but try removing the whole parrot-directory
ash_ in your rakudo directory?
sundar there is a parrot/ folder under rakudo/
m6locks and doing that again, i get the same kinda errors sometimes 22:25
make realclean helps too
lue I've had that happen a few times, and I just get rid of the parrot and parrot_install folders.
m6locks aye
sundar Ok, parrot/ gets an "rm -rf". 22:27
lue and parrot_install, if it exists. What this does (if it isn't obvious) is make configure believe parrot isn't on your machine (which it isn't) 22:29
.oO(just don't name a file -rf)
22:29 shem left, pmurias left
lue considers delving into the sea of parens to make an emacs major mode for perl6. 22:31
22:32 bacek left
ash_ there is one started 22:34
lue
lue yes?
where may it be?
lue thinks pugs repo
ash_ hmmm i found it at one point, it was a bit old, but it was started, let me see if i can find it again 22:35
lue Is it alpha old or perodic table of P6 operators old ? :)
bkeeler The changes to cperl-mode.el were never integrated, and the real cperl-mode has advanced quite a bit, to the point where the hacked version in pugs repo just doesn't work on any modern emacs 22:36
At least, that was the conclusion that I arrived at
ash_ bkeeler: yeah, i came to a similar conclusion when i was using it, i switched to vim for perl 6 code because of that 22:37
bkeeler Me too
I've done some elisp hackery in the past, but cperl-mode is rather opaque 22:38
ash_ lue, i'd just start with the current cperl-mode.el file honestly, i can post the perl 6 mode file i have if you want to see it 22:39
lue I would like to use vim too, but I don't like it and can't (easily) open files o'er the network (via ssh). 22:40
22:40 colomon joined
lue (the console-only version I don't like, actually. The GNOME interface one seems pretty good) 22:40
bkeeler I'd certainly love a good perl6 mode
ash_ netrw doesn't work?
if you don't have netrw, you can try that, if your using vim over a network 22:41
bkeeler There's also sshfs
lue never heard of it :)
.oO(well, Vim does take faster to load than emacs...)
ash_ i use netrw since it comes with vim it was already installed on my computer (OS X comes with a bunch of vim plugins) 22:42
bkeeler I use the gvim from darwin ports
ash_ i use mvim, mostly, if i am on my linux computer i use gvim, but most of the time i am on my mac 22:43
22:44 wknight8111 joined
lue this feels like that one XKCD comic again "real programmers use nano" "real programmers use emacs" "real programmers use butterflies" 22:44
bkeeler "cat >" FTW! 22:45
sundar real programmers create and edit the file using the Perl 6 REPL. :)
sorear real programmers use whatever editor they feel like 22:46
they're like gorillas
22:46 bacek joined
sundar Is there some "perl -i" kind of support in Perl 6? implemented in rakudo? 22:46
22:47 nihiliad left, nihiliad joined
lue (but there's an emacs command for the butterflies. WIN!) 22:48
sundar meanwhile, has anyone here tried building rakudo under Windows? some of the tests in configuration itself fail, each one with a 'Can't spawn ".\test_6976.exe": Bad file descriptor' error.
bkeeler I tried building it under cygwin and failed miserably. That was a few months ago though 22:49
m6locks cygwin does not win, so i hear 22:50
lue ooh, thunderstorm! must shut down computer, goodbye!
m6locks vc wins moar
sundar bkeeler: ah, I'm trying directly on Windows, is that more fail or less?
m6locks: what is vc?
bkeeler vc = Visual C++
m6locks aye 22:51
sorear sundar: No. S19:160
bkeeler I'm not really a windows guy though
22:51 lue left
sundar sorear: The document seems to be in favor of adding the feature, isn 22:53
*isn't it?
sorear you asked about the present. 22:56
try not to think about the present, it's not a pretty place
sundar the hacker's heart lives in the un-pretty and half-baked. :) 22:59
(though not in things stuck there happily, like the Windows command line!) 23:01
23:04 lestrrat is now known as lest_away 23:11 sundar left 23:12 orafu left 23:14 orafu joined, espadrine left 23:17 sundar joined
dalek kudo: 2ec0e4e | Coke++ | docs/running.pod:
Add docs on specifying parrot options.
23:18
23:24 arthur-_ left
sorear wonderful, there's an invalid entry in the Pugs AUTHORS file 23:25
pugssvn r30391 | sorear++ | Add self to AUTHORS 23:26
23:26 ruoso joined 23:27 nihiliad left
TimToady invalid in what sense? 23:30
23:31 bacek left
sorear TimToady: foreign key error 23:31
there is no PAUSE ID 'LUE'
also, the file is /almost/ in alphabetical order
I don't know if the discrepencies are errors 23:32
now I just need to figure out how to test the tests 23:33
TimToady depends on how you want to test 'em 23:36
23:37 plobsing left 23:39 PZt left 23:43 sundar left
sorear TimToady: I told #perl6 that a specific test needed unfudging, and got the "here's a commit bit" response 23:45
I don't actually know anything about the spectest harness
colomon sorear: the fudging syntax is very simple. 23:46
23:46 felipe left
colomon #?rakudo skip 'named arguments to split()' 23:46
for instance.
sorear colomon: yes, but I'm not crazy about committing untested patches 23:47
I'll do it if you insist
colomon why can't you test it? 23:48
sorear because I don't actually know anything about the spectest harness
colomon You have a Rakudo build? 23:51
sorear yes
I also know about make spectest
what I don't know how to do is to run an /uncommitted/ copy of the spectest
or a single file from the spectest, rather
colomon If you have uncommitted changes when you run make spectest, it will run them. 23:52
bkeeler easiest way is (cue TimToady rant): make t/spec/S01-foo/bar.t
Which will fudge if necessary
sorear colomon: That involves an unpleasant amount of magic. How, exactly, does make spectest find out where my pugs checkout is? 23:53
colomon sorear: oh.
make the changes to the version of the spectest in your rakudo/t/spec directory.
bkeeler It checks the tree out from pugs below t/spec
colomon then check it in from there as well. 23:54
bkeeler Personally, I symlink t/spec to the appropriate place in my pugs checkout
colomon I never touch t/spec in my pugs checkout, I just work with the copy of t/spec rakudo checks out. 23:55
sorear .......... 23:56
mat t/spec/... doesn't work
it's decided to REBUILD RAKUDO
instead of just running the test
colomon yes, make test or make spectest will rebuild Rakudo if you have changes in it and haven't run make. 23:57