»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: irc.perl6.org/ | UTF-8 is our friend!
Set by sorear on 4 February 2011.
masak 'night, #perl6. 00:04
joseph_ Is there a Perl 6 POD parser built yet, or is the specification still too shaky to do anything with? 02:00
PerlJam joseph_: you mean one written in Perl 6? 02:07
joseph_ Yes 02:08
PerlJam Not that I know of.
There is Perl6::Pod on CPAN though.
joseph_ Okay.
Do you think the markup is stable enough to build one (without heavy revision later)? 02:09
PerlJam yes 02:10
joseph_ Great, thanks you.
*thank
PerlJam joseph_: Are you going to write one?
joseph_ I was looking in to it. 02:11
A GSoC project for Parrot.
PerlJam Not Perl?
joseph_ It would be done in Perl (most likely).
PerlJam Seems like an odd gsoc project for parrot then :) 02:12
joseph_ Yeah :) I think they wanted it to be able to parse their source code along with POD in other languages.
PerlJam Where did you read that the parrot folks wanted a Perl 6 POD parser? 02:20
joseph_ On their wiki : trac.parrot.org/parrot/wiki/GSoc2011 02:21
PerlJam interesting ... I must have missed that last time I looked 02:22
joseph_ Thanks for the help. 02:23
dalek Heuristic branch merge: pushed 47 commits to nqp by jnthn 02:43
lue hello world! o/ 05:36
sorear hello lue. 05:37
sorear out 06:10
izydor perl6: say "hello, izydor"; 07:37
p6eval pugs, rakudo 792e86, niecza v3-82-g1dc43eb: OUTPUT«hello, izydor␤»
izydor oops 07:39
dalek p/ctmo: e04b77c | jonathan++ | src/metamodel/how/NQPClassHOW.pm:
Make a comment reflect reality a little more.
08:21
p/ctmo: 4150953 | jonathan++ | build/PARROT_REVISION:
Bump to latest Parrot to get fixes to make static lexpad bits work in non-trivial cases.
p/ctmo: 47001b3 | jonathan++ | src/NQP/Actions.pm:
Install $?CLASS as a lexical symbol, not package. Now consistent with roles and classes, and also with nqpclr.
moritz_ \o/ 08:37
masak++ colomon++ Util++ # p6cc 08:38
masak morning, #perl6. 09:31
moritz_ good morning masak 09:33
masak I have a few comments about the Pod parser GSoC project. 09:34
I think if one is going to be written in Perl 5, it probably makes the most sense to start from Damian's. the one that's on CPAN.
the win there could be in having one that's more current. Damian's is a bit dated. 09:35
in the best case, that could lead to a number of spec clarifications, etc.
moritz_ phenny: tell jnthn that on latest nqp/ctmo, I have a test failure in the 3rd test of 55-multi-method.t: Ambiguous dispatch to multi 'bar'. Ambiguous candidates had signatures: (then an empty line) 09:36
phenny moritz_: I'll pass that on when jnthn is around.
masak but the Big Win -- and one I hope to do in a grant some day if nobody beats me to it -- would be to implement the Pod 6 spec in Rakudo.
with all the bindings etc that are possible in a full Perl 6 implementation.
moritz_ phenny: tell jnthn (maybe related) was it intentional the that "Bump to latest Parrot" commit (4150953) just deleted a newline, and didn't actually change the parrot revision? 09:37
phenny moritz_: I'll pass that on when jnthn is around.
donri I wonder if a Perl 6 module installer system would need a way to describe language dependencies
donri Considering language sharing in Parrot, use :from etc 09:37
moritz_ masak: agreed on all accounts
masak donri: as far as I'm concerned, that's a cop-out and a fantasy. 09:38
donri masak: oh? 09:38
moritz_ donri: yes, once HLL interop works to a degree that can be presented to the casual user
masak donri: language interoperability is a problem we haven't even *begus* to tackle yet.
s/begus/begun/
pro tip: check spelling of the words you emphasize. 09:39
moritz_ donri: historically many p6 infrastructure projects have failed to produce usable results due to overengineering. We have learned our lesson, and now start with simple things and gradually evolve them into more complex things
donri Tene had it working with Cardinal I think? 09:40
masak back then, yes.
donri: one of the things a native Rakudo Pod parser would be able to do would be to populate various $=POD variables. :from-ing out to Perl 5 would make that more difficult, since it would entail serialization etc. effort would be spent on the wrong problems. 09:41
Tene donri: I had HLL interop working between rakudo, cardinal, partcl, my scheme impl, and a couple of others about 1.5 - 2 years ago, iirc. It wasn't a priority for anyone else in the parrot community at the time, and we didn't have any cross-language smoke testing, so it kept getting broken by others. 09:44
masak :/
Tene donri: after the third time it was broken and nobody but me cared, I stopped trying. I plan to get back to it after I get cardinal in a good state. 09:45
masak \o/
Tene: do you feel that more design in the HLL interop area would help?
either help making it more architecturally sturdy, or help putting it on the map for people. 09:46
Tene masak: The existing design is pretty solid, IMO. I expect there are some improvements that could be made, but I don't expect they would help at all.
masak ok.
Tene masak: I'm not all that confident in my evaluation there, though. I wouldn't be too surprised to learn that I'd missed something important, etc. 09:47
masak Tene: the way I've always imagined it is that there are all these minute differences between different languages that would cause problems. maybe I'm worrying too much.
Tene: for example, let's say a language without a concept of 'undef' communicates with one with such a concept. what happens when an 'undef' is returned across the barrier? 09:48
Tene masak: My approach has always been that when dealing with another language, you get that language's objects back. If you want to convert them into something more-locally-conventional, that's fairly meaningless to do in general, so you have to do it specifically on a case-by-case basis.
masak ok. that sounds fairly sane, actually. 09:49
the conversion is the task of the caller language.
Tene masak: There are the base vtable operations, like get_bool and get_str and so on. In Ruby, 0 is true, so if you get back a ruby 0 integer, it would be true, unless you explicitly convert it to a Perl integer. 09:50
Exactly.
masak I think the most immediate win for Perl 6 would be a HLL interop with and XML or database library. combined with jnthn's work on reprs, that could be really useful. 09:51
Tene masak: i very much agree.
masak maybe I should have put that up as a GSoC Perl 6 task.
is it too late to do that already?
moritz_ not at all
masak \o/
now I just need to find the tuits... :) 09:52
masak writes something
Tene masak: The two big things for me with hll interop object mapping stuff is that 1) you don't actually want the semantics to change, if the foreign code returns something that it thinks is truthy, you want it to keep being truthy when you use it.
and 2) by far the most-common use case is getting objects from a specific library or class, not primitives. In those cases, you *want* the objects you get back to have the API that's documented in the library docs. 09:53
In the cases that you want something more-specific, you can write your own glue layer to represent the differences, but it's not meaningful to do it in general, and you lose far too much with any kind of least-common-denominator serialization format. 09:54
masak gist.github.com/888173 -- feedback welcome 09:56
I don't know where proposals such as this should really go, so someone is welcome to point me right, or just put it in the right place. 09:57
Tene: I agree on all accounts.
moritz_ masak: epo.means.no/gsoc2011/ideas
masak thank you. 09:58
ooh, "Revive MAD".
Tene masak: The policy that I've maintained over all of this is that I fully acknowledge that I may be insufficiently smart to discover HLL mapping semantics that are good enough to be generally desirable, but every proposal I've seen or come up with to automatically map or whatever has been worse than just doing nothing.
masak :) 09:59
Tene I'm enthusiastic about reviewing any proposals that anyone can come up with, because if someone *can* do it right, that would be pretty great, and I don't want to discourage anyone from trying. 10:00
moritz_ I think it's a good step to do no conversions at all, and then experiment with an automaticaly adapt() multi sub or so that can try such mappings 10:01
masak probably per-language-pair mappings can become popular and adopted. 10:02
moritz_ aye
Tene moritz_: I think that there may be some utility in language-specific glue libraries that you can choose to use if you like. Rakudo could ship with Python.pm and Ruby.pm etc. (or pynie.pm and cardinal.pm).
masak updated: epo.means.no/gsoc2011/ideas
moritz_ or for rakudo I'd provide a basic mapper that turns every RPA into an array or Parcel or so
Tene and definitely a library for adapting objects from the "parrot" language 10:05
donri masak: Oh, I wasn't talking about the pod parser 10:17
Is HLL interop supposed to work with things like IO streams? 10:22
masak donri: oh! 10:23
donri So a Perl 6 package can say "this requires Python interop"; though then comes the question if it should be able to install Python packages too :P 10:32
masak I wouldn't mind that. :) 10:33
donri: well, I certainly believe in HLL interop in general, it's just that... I haven't seen a good example of it yet.
donri Maybe you can simply run an existing Python installer in Pynie, then
Native libraries are usually preferable, but the cost of porting isn't always worth it 10:35
masak nod. 10:39
Tene masak: "good example"? You mean you haven't seen evidence that it's doable, or haven't seen good reasons to use it? 10:47
blogs.gurulabs.com/stephen/2009/05/...ading.html was a blog post I made around the time I had it working. 10:48
Tene I also had an example where I defined a class in ruby and subclassed it in rakudo, and then instantiated it in scheme. 10:48
I guess I didn't blog about it, though.
blogs.gurulabs.com/stephen/2009/01/...guage.html -- using lolcode, APL, ruby, and scheme from rakudo. 10:51
masak \o/
I meant something like an example used to accomplish something else that's difficult to do without HLL interop. 10:52
Tene gist.github.com/128499 -- define a class in Ruby and subclass it in Perl 6 10:53
masak: gist.github.com/147853 or gist.github.com/182167 are reasonable examples. Using core parrot libraries from an HLL. 10:54
masak aye, that's what I'm talking about.
Tene masak: more-generally, the idea is to re-use lirbaries from other languages instead of porting or reimplementing them. 10:55
masak right.
I get that. I just want to see it done :)
Tene masak: for example, using Perl 5's CPAN in Perl 6
masak which isn't by far a solved problem, IIUC.
at least I don't see Perl 6 programmers using CPAN on a massive scale.
Tene My traditional example is using ruby's Rails library from python or PErl 6
masak: it's not a solved problem, no. 10:56
masak speaking of which: at some point I'd like to pull together a group of great people and "revive" the idea of Ponie.
I believe the time has come for that, or will come fairly soon.
Tene which was that? reimplementation or porting of Perl 5 to Parrot? 10:57
masak yes.
perhaps a reasonable first step is to spend a weekend hacking effort on STD_P5
masak nowadays I'd view it as "porting Perl 5 to PCT/nqp" rather than "porting Perl 5 to Parrot"... 10:58
maybe the right moment for reviving Ponie is just after pmichaud/jnthn manage to get Rakudo running on .NET and/or JVM. 10:59
Tene masak: Sure. 11:00
masak: something I need to investigate more is what exactly MAD is in Perl 5. Check out MAD in perl5100delta 11:01
masak aye. I noticed there was a GSoC project proposal this year to revive it. 11:03
kaare_ masak: the winnder? (blog-related) 11:51
masak kaare_: oh, indeed. fixing. 12:11
fixed. kaare_++ 12:17
masak perl6: my Int @a; say @a[2].WHAT 12:29
p6eval rakudo 792e86: OUTPUT«(timeout)» 12:30
..niecza v3-82-g1dc43eb: OUTPUT«===SORRY!===␤␤In my declaration, typename 'Int' must be predeclared (or marked as declarative with :: prefix) at /tmp/00BDqKXwIg line 1:␤------> my Int⏏ @a; say @a[2].WHAT␤␤Any()Malformed my at /tmp/00BDqKXwIg line 1:␤------>
..my ⏏…
..pugs: OUTPUT«Scalar␤»
masak rakudo: (my Int @a)[2]; say "alive" 12:31
p6eval rakudo 792e86: OUTPUT«maximum recursion depth exceeded␤ in 'at_pos' at line 1␤ in 'at_pos' at line 5:CORE.setting␤ in 'Any::postcircumfix:<[ ]>' at line 1808:CORE.setting␤ in 'at_pos' at line 5:CORE.setting␤ in 'at_pos' at line 5:CORE.setting␤ in 'Any::postcircumfix:<[ ]>' at line
..1808:CORE.settin…
masak rakudo: (my @a)[2]; say "alive"
p6eval rakudo 792e86: OUTPUT«alive␤»
masak submits rakudobug
rakudo: my Int @a = 0, 1, 2; say @a[2] 12:33
p6eval rakudo 792e86: OUTPUT«maximum recursion depth exceeded␤ in 'at_pos' at line 1␤ in 'at_pos' at line 5:CORE.setting␤ in 'Any::postcircumfix:<[ ]>' at line 1808:CORE.setting␤ in 'at_pos' at line 5:CORE.setting␤ in 'at_pos' at line 5:CORE.setting␤ in 'Any::postcircumfix:<[ ]>' at line
..1808:CORE.settin…
masak son, I am disappoint.
moritz_ that's so long known 13:04
and at least submitted three times to rt
masak I should've guessed. 13:07
hm, a renewed Ponie effort needs to be pulled off in the right way. it needs some minimal buy-in from the Perl 5 side, preferably in the form of Perl 5 people actually in the group of developers. 13:08
it needs frequent contact with p5p and Parrot and #perl6.
it needs both a very concrete early roadmap and a monthly-or-so release cycle. 13:09
sbp for anyone reading the logs who is as confused as I was: "Over the past several years, one key aspect of the migration plan to Perl 6 has been the Ponie project, a fusion of the Perl 5 runtime with Parrot." - www.nntp.perl.org/group/perl.ponie....sg487.html 13:13
masak right. 13:15
I'm guessing that's the "put out to pasture" message by Jesse.
I'm mulling about what can be done about declaring Ponie "undead", five years later. 13:16
new codebase, but same idea.
one of the reasons Ponie was put out to pasture was "Parrot isn't ready; it's changing around too much". perhaps what we have going today with PCT and nqp is a lot more stable a foundation. 13:18
masak which book, in retrospect, is the first one to belong to what has later been named Modern/Enlightened Perl? MJD's "Higher-Order Perl" immediately comes to mind. 13:27
tadzik hai zebras 13:29
masak tadzik! \o/ 13:30
moritz_ masak: I agree (re HOP) 13:35
tadzik I still haven't read that 13:36
masak I think more books like HOP could, and should, be written.
something like Perl and patterns (as in GoF), perhaps. 13:37
basically, I'd love to read anything that assumed Perl and Moose knowledge :)
masak tadzik: if you're interested in functional programming, and different patterns relating to that, I cannot recommend HOP highly enough. 13:44
arnsholt As one of the professors here likes to say: Learning functional programming makes you a better citizen =) 13:45
masak a First-Class Citizen, even :P 13:50
arnsholt *giggle* =D 13:53
Software that is valgrind-clean makes programmer-man happy. 13:59
So much easier to make sure your hacking hasn't screwed it up =)
masak replied to joseph_ by email 14:01
arnsholt: "Programmer-man"... Homo codiferus. 14:02
arnsholt I'll have to remember that. "Homo Codiferus" =D 14:04
masak it would be just a happenstance if "codiferus" were legit Latin... but it sounds nice :) 14:07
arnsholt Well, "codi-" isn't anything in particular (but so many biological names aren't) 14:11
And ferus means carrying, actually =)
masak oh, indeed. 14:14
PerlJam Tene: TimToady can tell you all about MAD 14:15
masak giggles 14:20
PerlJam masak: re ponie ... I think you're right; it's time is coming. Though it probably won't have anything to do with Parrot per se IMHO. "Porting" Perl 5 to NQP will make it happen.
masak nod.
PerlJam Though there was a gsoc last year (?) that built a real AST for Perl 5. I wonder whatever happened to that project? 14:21
built and *used* I should say 14:22
masak PerlJam: I task you to find out what happened to the project. this is the first time I hear about it at all. 14:23
masak adds "please" ;) 14:24
PerlJam Well, I think the reason knowledge of it hasn't been widespread is that it had all sorts of problems and no champion within p5p
ergo, it was stillborn 14:25
But I don't really know anything about the project other than it existed
pmurias PerlJam: did it even get accepted? 14:27
masak has a flash of realization that the Age of Perl 6 dialects is imminent 14:28
jnthn: hurry up! :)
jnthn: (but I don't begrudge you your vacation... enjoy, and then hurry!) :P 14:37
PerlJam oh, I guess it wasn't a gsoc project. 14:48
news.perlfoundation.org/2009/08/200...nging.html
masak mberends! \o/ 15:00
mberends o/ masak
moritz_ \o
mberends masak++ #`[ nice wrap up of p6cc] moritz_++ #`[ p6cc winner ] 15:02
moritz_ colomon++ # close second
mberends aye 15:03
colomon moritz_++
masak moritz_++ colomon++ # great work, both of you! 15:04
mberends
.oO( I seem to have triggered a karma avalanche. Well, it was due )
15:06
.oO( avalanches usually are )
15:07
masak :) 15:08
sorear masak! mberends! 15:43
mberends sorear! hi! 15:44
masak sorear! \o/
&
sorear masak: Did joseph_ email you? 15:47
joseph_ I did. 15:48
sorear masak: I've had some vague ideas about adding POD and use v5 to niecza ...
oh joseph_ is here! \o/
hi
joseph_ Hello :)
mberends sorear: niecza use v5 would be awesome! 15:49
sorear mberends: my thoughts have been more directed towards the runtime side of things, in particular the niecza calling system would need to be extended with some kind of wantarray 15:51
masak: do you still plan to do the #=/#| splitting S29 rewrite? 15:53
pmurias sorear: hi 16:47
sorear: re wantarray you want to implement a Perl 5 frontend to niecza or embed perl5?
masak sorear: yes. only reason I didn't was that I lost momentum. but I still want it just as much. 17:06
joseph_: any questions, any at all -- please ask here or via email. I'm excited about the possibility of a Pod GSoC project. 17:07
masak joseph_: continuing the discussion from the email thread: text/HTML/*roff/DocBook -- all those backends would simply be implemented as a module/class implementing some "interface". both Damian's module on CPAN and mberends' Pod parser contain prior art on that. 17:09
mberends masak: I often think about dialects (or subsets) of Perl 6, but so far the main philosophy has been an all-or-nothing proposition, probably to reduce the possibility of splintering. 17:13
masak well, I see a great market for sublanguages. 17:15
something that doesn't try to replace the main Perl 6 dialect so much as specialize in some small area. 17:16
mberends masak: but doesn't a sublanguage "extend" Perl 6? If not, there is the danger of diluting the brand, since the "official" definition of Perl 6 is based on full spectest compliance. 17:18
masak mberends: you worry too much :)
moritz_ mberends: every module that imports types or subroutines extends Perl 6 in some sense 17:19
"so what?"
mberends :)
masak mberends: all I want is a constraint solver that has a much better syntax for constraint solving than regular Perl 6, but that "hides" most parts of Perl 6 most of the time.
moritz_ that's something you'd probably just import into a small scope 17:20
masak indeed.
masak uhhh... someone please remind me -- if I want to call the token 'identifier' from my own grammar, what's the syntax? 17:44
masak rakudo: say Perl6::Grammar.identifier() 17:46
p6eval rakudo 792e86: OUTPUT«Null PMC access in get_integer()␤ in main program body at line 125␤»
masak submits rakudobug
rakudo: say "foo" ~~ /:lang(Perl6::Grammar) <identifier>/ 17:49
p6eval rakudo 792e86: OUTPUT«===SORRY!===␤Confused at line 22, near "say \"foo\" "␤»
masak shucks. that was my best guess :(
moritz_ rakudo: say Perl6::Grammar.parse('foo', :rule<identifier>); 17:50
p6eval rakudo 792e86: OUTPUT«foo␤»
masak moritz_++
...and from within an ongoing parse?
moritz_ something like <.Perl6::Grammar::identifer> or so 17:51
masak no, I meant today, now :)
masak gives up and copies 'token identifier' 17:52
lue hello world! o/ 17:57
masak hellue! 17:58
masak ergh. sometimes I find rules (rather than tokens) hinder more than they help when parsing line-oriented formats. 18:04
rules are better for free-form formats. 18:05
masak rakudo: my %twice = ($_ => $_ * 2 for 5, 42, 4096); say %twice.perl 18:25
p6eval rakudo 792e86: OUTPUT«{"5" => 10, "42" => 84, "4096" => 8192}␤»
masak list comprehensions rock.
benabik That looks more like a hash comprehension... :-) 18:26
masak :P 18:27
the hash is assigned to from a list, just like an array would be.
that's as far as I can see one of the big wins of list (auto-)flattening, that arrays and hashes share the same "interface", making it easy to assign from one to the other. 18:28
g'ah. how did I ever manage to write code before I started with TDD? :P 18:38
moritz_ masak: when I started programming I would write 40 lines of code, and they didn't work... 18:47
masak: then I started doing incremental coding, and basically tested everything along the way with print statements
that's also testing, just not unit tests 18:48
tadzik gah. On my University there are still some people who write 200-300 lines of code before they even try to compile it
the sad fact is that these people don't really know that they need help with programming from the very basics, they just keep on going 18:49
lue tadzik: I remember doing that once (>100 lines of code w/o tests). Part of it was that I didn't know about TDD or other testing methods, part of it was that the code couldn't be tested until most of it was coded. (never finished the project, btw) 19:05
masak moritz_: it would be interesting to have some hybrid of a REPL and some IDE's debug mode. so each time you write a method, you basically have code running with test parameters as you write it. 19:10
tadzik lue: that has nothing to do with testing. It's like building a house of cards wearing a blind fold, you never know if even a one card stands when you put on another one 19:11
lue Well, does it have something to do with it when I tell you I never compiled/ran said project? :) [granted, you don't compile Python, but...] 19:12
tadzik you do 19:13
lue I vaguely remember .pyc files. When I say "you don't compile Python", in my head, compilation is something you do purposefully and lets the product run without the compiler. 19:16
masak lue: compilation means preparing something, anything, which is then run.
lue: the term stands in opposition to another term, 'interpretation'. 19:17
moritz_ wonders who you compile code with interpreting it :-)
masak thich is when you go statement by statement, parsing and evaluating as you run.
s/thich/which/
masak lue: Perl, Python, Ruby. all of them compile code down to some sort of bytecode and then interpret that bytecode. even if you don't see it. 19:18
lue My definition of compilation is different then. (Is there a word for how I see it, where I would say you "compile" C, C++, but I wouldn't say you "compile" Perl, Python? Or is it just two different forms of compilation w/o their own words yet?)
masak lue: it's just you having been unaware of the compilation phase until now.
masak it's really quite invisible in these dynamic languages. 19:19
but it happens, or the programs would run much slower :)
moritz_ lue: point is that compiling C and Perl isn't very different in essence. It's just that one of them writes the compilation to disc, and the otehr not
masak lue: anyway, not knowing anything about your project, "the code couldn't be tested until most of it was coded" sounds like a phony excuse. :) 19:20
moritz_ the least you can do is to find out if it runs up to a certain point without throwing errors 19:21
even if you don't know what the data should look like
lue I'll now be reconciling the real definition of "compile" with how I see it. To me (until just now), the compilation process for C and for Perl6 were completely different things.
masak lue: if it helps, I've once held your exact view. :) 19:21
there's a nice web page out there completely demolishing the compile/interpret dichotomy. I don't remember who wrote it. someone like MJD or Alias, probably. 19:22
lue masak: My project was an NES emulator. If I were to do it all over again (some day!), I would test the individual methods as I coded them. But the best way to test this sort of project is to code up to a point where it can execute some machine code. 19:23
masak lue: why? 19:24
lue Probably that's a holdover from how I saw the programming world pre-#perl6 :) 19:25
masak I would suggest it is :) 19:27
lue afk for just a moment.
moritz_ could say so much about it, but it's probably like carrying coals to Newcastle 19:28
masak now, it's not an absolute *obligation* to write the test first, but it's a very nice crutch to lean on until one masters TDD. 19:28
it really helps.
lue hello again o/ 19:31
masak lue: I'm doing TDD development as we speak. turns out the second test "required" me to write >50 lines of code. that's quite a lot by my standards. 19:33
but during that time, running and re-running the two tests I have ~10 times has informed me on how the coding of those >50 lines is going.
lue: have you tried tote? maybe you'd like it :) 19:34
lue googles tote -bag 19:36
masak gist.github.com/834500 19:37
lue: that's how it looks so far.
also strangelyconsistent.org/blog/helpfu...d-on-crack and strangelyconsistent.org/blog/some-t...ts-on-tote 19:38
basically, it's a little program that runs the tests for you as soon as you save a .t or .pm file. 19:39
doesn't sound like much, but it boosts productivity and fosters the "right" habits :)
masak lue: have we talked about "red-green-refactor"? 19:45
lue yes.
masak oh good. :) 19:46
masak I find people sometimes undervalue the importance of seeing the test fail. 19:46
I just had a test unexpectedly succeed in the "red" phase -- and indeed, I had copy-pasted it and not changed it to what I meant. :) 19:47
moritz_ has a love and hate relation to failing tests 19:48
lue That reminds me, I should work on my POD6 parser some more and add some failing tests, 'cos they all pass right now.
masak moritz_: that's a bit like saying that you like traffic lights, except the red ones :P 19:49
moritz_ masak: oh, I don't mind the red ones, as long as they apply to the others :-) 19:51
masak *lol*
Schadenfreude.
moritz_ ... ist die beste Freude.
masak same saying in Swedish, except "beste" is "the only true". 19:52
moritz_ I like that too :-)
masak seems to me that that meme must survive based on its tongue-in-cheek provocativeness. 19:54
I certainly like it too, but I don't really believe it.
moritz_ same here
moritz_ when I see my small one laugh it's certainly neither Schadenfreude on her or my behalf 19:55
masak right. and I bet that Freude is better. QED. 19:56
masak is getting to really like list comprehensions 19:57
they're like map {}, but without the {} :)
rakudo: (my %h).push: .denominator => .numerator for 1/2, 4/5, 3/2; say %h.perl 20:01
p6eval rakudo 792e86: OUTPUT«{"2" => [1, 3], "5" => 4}␤»
masak \o/
masak hugs Perl 6 20:01
rakudo: (my %h).push: (.denominator => .numerator for 1/2, 4/5, 3/2); say %h.perl 20:02
p6eval rakudo 792e86: OUTPUT«{"2" => [1, 3], "5" => 4}␤»
masak could be that's slightly more efficient. then again, maybe not. 20:03
lue afk 20:05
flussence rakudo: say ("\t !" ~~ /^(\s*) (.*)$/).join(' ').perl 21:45
p6eval rakudo 792e86: OUTPUT«"\t !"␤»
masak rakudo: given "\t !" -> $line { my $prefix = ($line ~~ /^ (\h*)/ or '')]0 22:04
p6eval rakudo 792e86: OUTPUT«===SORRY!===␤Unable to parse blockoid, couldn't find final '}' at line 22␤»
masak rakudo: given "\t !" -> $line { my ($prefix, $rest) = ($line ~~ /^ (\h*)/ or '')[0, 1]; say $prefix, ' ', $rest } 22:05
p6eval rakudo 792e86: OUTPUT« ␤»
masak oh right.
rakudo: given "\t !" -> $line { my ($prefix, $rest) = ($line ~~ /^ (\h*) (.*)/ or '')[0, 1]; say $prefix, ' ', $rest }
p6eval rakudo 792e86: OUTPUT« !␤»
masak rakudo: given "\t !" -> $line { my ($prefix, $rest) = ($line ~~ /^ (\h*) (.*)/ or '', $line)[0, 1]; say $prefix, ' ', $rest }
p6eval rakudo 792e86: OUTPUT« !␤»
masak rakudo: given "\t !" -> $line { my ($prefix, $rest) = ($line ~~ /^ (\h*) (.*)/ or '', $line)[0, 1]; say ($prefix ~ ' ' ~ $rest).perl } 22:06
p6eval rakudo 792e86: OUTPUT«"\t !"␤»
masak hm, the 'or' thing is probably overkill. the regex can't not match. 22:07
'night, #perl6. 22:08