»ö« 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.
lue just pushed some changes to Lingua::EN::Numbers::Ordinal (I guarantee modules.perl6.org won't detect the README anymore). afk, nomming time o/ 00:03
00:06 sftp left 00:07 sftp joined, sftp left 00:08 sftp joined 00:21 wamba left 00:24 wolfman2000 joined 00:26 am0c left 00:27 frhodes left 00:33 soh_cah_toa joined 00:46 [Coke] left 00:48 [Coke] joined 00:53 uasi joined 00:55 Reaganomicon left 01:05 sftp left 01:07 woosley joined, sftp joined 01:13 showi joined 01:18 uasi left, abercrombie joined 01:26 uasi joined 01:31 uasi_ joined, uasi left, ruz joined 01:32 am0c joined 01:39 uvtc joined
soh_cah_toa is NativeCall a rakudo-specific interface or is it a part of the p6 spec? the perl6advant makes it sound like it's a part of p6 but the github repo 'zavolaj' says it's an interface just for rakudo 01:49
phenny soh_cah_toa: 24 Aug 06:44Z <moritz> ask soh_cah_toa what's your github ID?
soh_cah_toa phenny tell moritz it's soh-cah-toa. note the difference in hyphens b/c github doesn't allow underscores 01:51
phenny: tell moritz it's soh-cah-toa. note the difference in hyphens b/c github doesn't allow underscores 01:52
phenny soh_cah_toa: I'll pass that on when moritz is around.
01:59 drbean left 02:07 colomon left
benabik soh_cah_toa: I _think_ zavolaj is rakudo's implementation of NativeCall. Totally not sure about that though. 02:14
02:20 PacoLinux__ left 02:23 PacoLinux__ joined
soh_cah_toa ah, ok 02:29
02:40 colomon joined
colomon soh_cah_toa: I believe the idea is that NativeCall will be a general p6 thing, but the specific zavolaj implementation of it is very definitely rakudo-only. 02:41
soh_cah_toa ok, good 02:42
that's weird though b/c i can't find anything in the p6 spec about NativeCall
unless i just haven't looked hard enough ;)
colomon it might not be spec'd yet
sometimes the implementations get out in front of the spec. :)
soh_cah_toa :) 02:43
02:49 PacoLinux__ left, frhodes joined 02:54 PacoLinux__ joined 03:01 envi left
sorear good * #perl6 03:04
TimToady o/
sorear soh_cah_toa: My understanding of NativeCall is aligned with colomon. 03:05
soh_cah_toa: Generally we don't like to spec things until we think we have a good design, and for NativeCall that probably requires 2+ implementations to agree.
TimToady the strategy on these things is to make sure we can specify native types and signautures, and make it easy to have traits and pragmas that say whatever extra needs to be said. Beyond that, what sorear++ said... 03:06
03:07 envi joined 03:08 jfshadow joined
jfshadow rakudo: say "testing" 03:10
p6eval rakudo a55346: OUTPUT«testing␤»
03:12 [Coke] left, [Coke] joined
soh_cah_toa ok, interesting. never thought about it like that but it makes sense to make sure a design if even possible first 03:14
TimToady a lot of p6 design has been like that--just make sure X isn't impossible later, and try to get close enough 03:16
threading and logic programming fall into that category
soh_cah_toa definitely
sorear mls: bug
soh_cah_toa i've only just started playing w/ NativeCall but so far it seems very dwimmy which is really nice :) 03:18
03:23 Su-Shee_ joined
TimToady it will also help when we get C structs as normal p6 objects 03:27
03:27 Su-Shee left 03:33 [Coke] left 03:50 agentzh joined
uvtc nom: say any<foo bar baz> 04:00
p6eval nom 88d801: OUTPUT«any()␤»
uvtc nom: say any <foo bar baz>
p6eval nom 88d801: OUTPUT«any("foo", "bar", "baz")␤»
04:01 kaare_ joined
uvtc niecza: say any<foo bar baz> 04:01
p6eval niecza v8-55-g0db7bb8: OUTPUT«any()␤»
uvtc nom: my $j = any<foo bar baz>; if 'foo' eq $j {say 'yes'} else {say 'no'} 04:03
p6eval nom 88d801: OUTPUT«no␤»
uvtc Seems like it would be useful if that gave me a warning.
nom: my $j = 'foo'|'bar'|'baz'; if 'foo' eq $j {say 'yes'} else {say 'no'} 04:04
p6eval nom 88d801: OUTPUT«yes␤»
moritz good morning 04:06
phenny moritz: 01:52Z <soh_cah_toa> tell moritz it's soh-cah-toa. note the difference in hyphens b/c github doesn't allow underscores
uvtc moritz: thanks for fixing that thing with the yada yada operator that I brought up the other night/morning. :) moritz++ 04:07
moritz phenny: tell soh_cah_toa you have commit access to perl6/book now, welcome 04:10
phenny moritz: I'll pass that on when soh_cah_toa is around.
moritz uvtc: my pleasure
soh_cah_toa moritz: yay thanks! :)
phenny soh_cah_toa: 04:10Z <moritz> tell soh_cah_toa you have commit access to perl6/book now, welcome
sorear uvtc: any <foo bar baz> 04:11
hmm
uvtc sorear, yes, I just meant that, if the user leaves out the space by accident, it would be nice if Perl 6 complained about it.
Otherwise it seems like it could lead to a bug that's difficult to spot. As in: 04:13
nom: my $j = any<foo bar baz>; if 'foo' eq $j {say 'yes'} else {say 'no'}
p6eval nom 88d801: OUTPUT«no␤»
uvtc when it looks to the user like the answer *should* be 'yes'
sorear TimToady: should any<foo bar> even parse? 04:14
TimToady: it feels to me like after any it should be looking for a term
moritz perl6: sub f { 1, 2, 3 }; say f[1] 04:15
04:15 birdwindupbird joined
p6eval pugs, rakudo a55346, niecza v8-55-g0db7bb8: OUTPUT«2␤» 04:15
moritz same thing
moritz likes it 04:16
04:16 satyavvd joined
moritz phenny tell masak that the bug mentioned in irclog.perlgeek.de/perl6/2011-08-25#i_4325834 is already submitted against master, and we have a failing test for it 04:18
TimToady any is just a listop, so it can have 0 args
moritz phenny: tell masak that the bug mentioned in irclog.perlgeek.de/perl6/2011-08-25#i_4325834 is already submitted against master, and we have a failing test for it
phenny moritz: I'll pass that on when masak is around.
benabik Does postcircumfix {} make any sense on a junction though? 04:19
moritz sure, if the junction is made of hashes or pairs
benabik Ah, true. 04:20
04:20 satyavvd left
lue I'm currently trying to figure out how to redo my Pod 6 viewer, and this is how I've thought of handling that the contents of a block might be text or another block: gist.github.com/1172689 04:21
[of course, TIMTOWTDI, so I probably ended up thinking of the hardest way to go about it] 04:22
uvtc TimToady: Sorry, I don't understand. If `any<foo bar>` does indeed parse, what's it actually mean? Seems to me like it should mean `any("foo", "bar")`. 04:23
moritz lue: re updating modules.perl6.org, there's a script web/build-project-list.pl which is run regularly (hourly or so) 04:24
uvtc: it's the same as any(){'foo', 'bar'}
lue ah, that's how it's done. Now I know there's no procedure I have to go through after pushing :) 04:25
uvtc nom: any() {'foo', 'bar'}
p6eval nom 88d801: OUTPUT«===SORRY!===␤Confused at line 1, near "any() {'fo"␤»
lue nom: say any<foo bar baz>.perl;
p6eval nom 88d801: OUTPUT«any()␤»
TimToady you can't just put a space before a subscript
soh_cah_toa btw, speaking of pod 6, it looks like comment declarator blocks are nyi in 2011.07. are they in nom? (can't check myself, don't have nom installed) 04:26
uvtc nom: any(){'foo', 'bar'}
p6eval nom 88d801: ( no output )
TimToady nom: any() + 42 04:28
p6eval nom 88d801: ( no output )
TimToady nom: say any() + 42
p6eval nom 88d801: OUTPUT«any()␤»
TimToady subscripting is not special
nom: say any().sqrt
p6eval nom 88d801: OUTPUT«any()␤» 04:29
uvtc Interesting. So, I was accidentally trying to subscript the Junction.
TimToady yeah
if we catch it, it has to be syntactically
since any @empty should still work
04:30 masak joined
uvtc Is accessing a hash with a key referred to as "subscripting" (just like accessing an item in an array)? 04:30
TimToady yes
also indexing
uvtc Ah, right. Of course. Thanks. 04:31
04:32 masak left 04:36 drbean joined
dalek href="https://modules.perl6.org:">modules.perl6.org: ebc9830 | lue++ | web/fame-and-profit.html:
Added description of the panda badge to fame-and-profit.html
04:38
04:38 satyavvd joined 04:52 Chillance joined
uvtc nom: my @a = <foo bar>; my @b := @a; say @a =:= @b; 04:56
p6eval nom 88d801: OUTPUT«Bool::True␤»
uvtc rakudo: my @a = <foo bar>; my @b := @a; say @a =:= @b;
p6eval rakudo a55346: OUTPUT«Bool::False␤»
uvtc niecza: my @a = <foo bar>; my @b := @a; say @a =:= @b; 04:58
p6eval niecza v8-55-g0db7bb8: OUTPUT«Bool::True␤»
TimToady rakudo didn't really do binding right
05:00 roen joined
lue hides 05:01
05:09 uvtc left, soh_cah_toa left 05:18 jevin left 05:20 jevin joined 05:24 frhodes left 05:27 s1n left 05:35 frhodes joined 05:41 abercrombie left
moritz rakudo didn't really do =:= right, iirc 05:47
05:54 envi left, wtw joined
woosley Hi, perl6 command can not excute out of its directory for nom branch? pastebin.com/wyVaYQZz 05:56
05:56 [particle] joined 05:57 Chillance left
woosley that is what happens after 'make install ' 05:57
05:58 [particle]1 left
TimToady which perl6 did it find when you ran it without the ./ ? 05:59
moritz woosley: how old is the installed nom?
TimToady and do you have a rakudo/master installed somewhere? 06:00
woosley moritz: $./perl6 --version 06:02
This is perl6 version 2011.04-995-gb9db729 built on parrot 3.5.0 revision RELEASE_3_5_0-89-gf7985d1
TimToady: No, I have only one rakudo copy 06:03
06:03 masak joined
masak morning, channel. 06:03
phenny masak: 04:18Z <moritz> tell masak that the bug mentioned in irclog.perlgeek.de/perl6/2011-08-25#i_4325834 is already submitted against master, and we have a failing test for it
masak oh, excellent. 06:04
moritz woosley: that's ancient
06:04 envi joined
moritz woosley: try a nom that's about 900 commits later :-) 06:04
06:06 simcop2387 left, Su-Shee_ is now known as Su-Shee
woosley moritz: thanks, I will try 06:06
masak wonders whether to follow up irclog.perlgeek.de/cqrs-perl6/2011-04-15 somehow 06:15
really enjoyed that evening. and I/we've learned a bunch since then. 06:16
06:18 simcop2387 joined 06:26 koban joined, koban left
masak <sorear> wait, next you're going to tell me that if the client crashes between changing the schedule and updating .curStudents, the 0.0001% chance of database corruption is acceptable? 06:27
(from #cqrs-perl6)
sorear: I didn't notice until now: it's the application on the server that would have to crash.
not the client. 06:28
operations may not be atomic, but one command may still trigger several events. as it would in this case.
sorear: so your concern is still valid, but it would require an application crash. 06:30
06:32 REPLeffect left
moritz and these events all happen within a transation that's rolled back if the server crashes? 06:33
masak no, and that's the thing. 06:36
an event represents something that has definitely, irrevocably happened. it cannot be rolled back for model reasons.
as PerlJam++ said, we basically trade away immediate consistency for eventual consistency and some kind of protocol to uphold it. 06:40
moritz so upon server startup you check all stored incoming data and check if all the events have been triggered? 06:44
06:46 REPLeffect joined
masak no, the thing that checks would likely be a decoupled, independent consumer of the events. 06:48
06:49 spetrea joined
masak that's basically what this "saga" thing is about. enforcing long-term consistency and thus getting back a bit of what we lost by avoiding database transactions. 06:49
06:51 mj41 joined, am0c left 06:53 am0c joined 07:10 Reaganomicon joined 07:29 mkramer1 left, mkramer joined 07:54 thou left 08:04 rhr left 08:05 rhr joined 08:13 daxim joined 08:17 satyavvd left
moritz wonders how much of that cqrs thing is cool aid, and how much is actually useful 08:21
masak two things. since I learned what "cool aid" is a metaphor for, I've come to really dislike the expression. I believe the word is "macabre". :/ en.wikipedia.org/wiki/Drinking_the_Kool-Aid 08:22
I don't think I'm being oversensitive. death cults isn't a particularly funny/productive metaphor. 08:23
moritz ok, I didn't know that background
sorry about that
masak not your fault. but now you know, too. 08:24
secondly. everything can be overhyped, even good ideas. 08:25
I genuinely believe CQRS is a good idea which isn't well-known enough.
the reactions I've been getting from people over the last half year range from "yeah, we did that back in the day, it was great" to "I'm not sure it'll be worth it for our particular domain". 08:26
for me personally, not many things have come close to being this catalytic in terms of re-thinking the whole application stack. 08:28
mberends I think CQRS is just common sense applied to read-mostly shared databases. Without the calling it that, many transactional systems have evolved towards similar architectures when the need arose.
masak I even think differently about non-business applications nowadays.
CQRS itself is just a very simple idea: treat Commands and Queries as if they were different types of requests. 08:29
moritz in some sense SQL views are already a step into that direction 08:31
they make reading care less about normalization
masak only on the conceptual level. 08:33
the JOINs are still done per-read.
moritz there are also precomputed views
masak ok, I don't know about those.
in the case of separate read sides updated through events, the JOINs are done per-event.
i.e. per-write. 08:34
so, again, as mberends says, in read-mostly applications...
does anyone have a good example of a write-mostly application? :)
moritz logging
mberends auditing (tamper proof logging) 08:35
I think CQRS is also mainly Greg Young's packaging of common sense, for sale to those who cannot work it out for themselves. 08:36
moritz data acquisition (at least if you look at the acquisition side only)
many devices in our lab are only concerned with writing stuff to a buffer, and leave the reading to another phyiscal device 08:37
masak mberends: I don't dispute that. he says it himself.
mberends: the sad thing is that there's such a need for it.
moritz has a theory why that is the case 08:38
08:39 dark_x joined
moritz the traditional state keeping is often the simplest thing that could possibly work, at least in the beginning 08:39
and stop sticking to that pattern does require some active thought
masak moritz: I read up a bit on precomputed views. they seem based on the Observer pattern, just like events are. 08:40
08:41 lue left
masak I'm sad to see so much of the industry being shoved around by what they database model they decided on early in the project. 08:41
any set of patterns to counteract that will be an improvement.
s/what they/what/ 08:44
08:47 orafu left
mberends the NoSQL movement seems to be good at understanding what applications require, and structuring solutions appropriately. In that sense the SQL standard has been a dead hand at the wheel (tool:hammer :: problem:nail). 08:47
moritz is still a bit afraid of giving up referential integrity 08:49
08:49 orafu joined
mberends you don't have to, there are also relational DB's without the SQL layer over them 08:50
08:52 lue joined
mberends frameworks are often a pain, when you hit their limitations, and SQL imposes its framework on your applications. The typical ORM has an impedance mismatch, giving the app developer pain. 08:54
masak moritz: it's a matter of which one you value more: referential integrity or (horizontal) scalability. 08:55
turns out you *can't* both be referentially integrated and scalable. 08:57
moritz ok, that has a pretty clear answer for the projects I'm currently thinking of :-)
masak guess that's the kernel of the SAP theorem, actually.
moritz and it makes sense 08:58
masak sorry, *CAP theorem.
en.wikipedia.org/wiki/CAP_theorem
moritz: I'm sending an email off to the ddd-cqrs list about what you just said about the consistency/scalability tradeoff. 09:02
I'm curious to read their reactions. 09:03
moritz masak: another thing I'm not sure about is how far to denormalize the read side 09:05
masak that's a thing I haven't explored enough either.
09:08 woosley left
mberends Database tuning implies varying the degree of denormalization for an appropriate balance of write versus read performance. The application users determine where the balance lies (no hard and fast rule). 09:08
09:09 REPLeffect left, OuLouFu joined, OuLouFu left, OuLouFu joined, orafu left 09:10 OuLouFu is now known as orafu 09:14 agentzh left
mberends Persisted views are an easy mechanism for hiding the denormalization from the application. For another example, adding an index to a table effectively keeps a denormalized copy of key fields and row addresses for faster reading versus slower writing. 09:15
09:17 agentzh joined 09:20 amkrankruleuen joined 09:21 odoacre left, odoacre joined 09:23 REPLeffect joined
masak indeed. 09:24
09:27 mishin joined
mls morning perl6! 09:33
benabik: thanks for pushing the die_ii fix! 09:34
masak morning mls! 09:36
mls seen TimToady 09:37
aloha TimToady was last seen in #perl6 3 hours 37 mins ago saying "and do you have a rakudo/master installed somewhere?".
09:40 am0c left 09:44 miso2217 left, miso2217 joined 09:48 odoacre left 09:51 roen left
mls about the Num -> Rat conversion: gist.github.com/1173109 09:58
makes rakudo die instead of looping forever
(hmm, actually it should read $a < 0 || $c < 0)
the current situation with INT/Rat operations silently overflowing is pretty bad 10:00
Int
10:00 perlhack joined
mberends yo perlhack ! 10:01
perlhack it's nice day.
mberends
moritz mls: would it be possible to downgrade the precision (and warn) instead of dying?
mls possible: yes, but I question if it's desireable 10:02
10:03 perlhack left
mls putting an Instant in a Rat is simply not going to work on a 32bit system 10:03
If you subtract two Instants you'll still want a sane result, downgrading the precision can't help you 10:04
moritz nom: say now 10:06
p6eval nom 88d801: OUTPUT«Instant:1314353208.20827␤»
mls 64bit ;)
moritz I know
mberends but S02 says that Rat defaults to Rat64 precision, even on 32 bit hardware, so as long as Rat is to spec your precision should be safe.
moritz nom: say 2**32 / 1314353208
p6eval nom 88d801: OUTPUT«3.26774208778741␤»
moritz yes, not much space left in 32 bits :/
mberends that's the Y2038 problem 10:07
mls Checking S02... (Is Int 32bit?)
moritz Int is supposed to be arbitrary size 10:08
perl6: say 2 ** 65
p6eval pugs, niecza v8-55-g0db7bb8: OUTPUT«36893488147419103232␤»
..rakudo a55346: OUTPUT«3.68934881474191e+19␤»
moritz and Rat is supposed to have Int as numerator and int64 as denominator 10:09
tadzik good morning 10:10
mberends mls: no, Int with an uppercase 'I' is bigint if done to spec. Native int varies with hardware, like in the C language.
o/ tadzik
mls well, nom's Int don't work as specced 10:12
Ints
moritz indeed 10:13
10:15 sayu joined
sayu rakudo: say 34 + 34; 10:17
p6eval rakudo a55346: OUTPUT«68␤» 10:18
mls Parrot's integer.pmc automatically upgrades to bignum, but nom's code unboxes into two I registers and calls the mul opcode
sayu rakudo: say 34 + 34
p6eval rakudo a55346: OUTPUT«68␤»
moritz mls: and that's a fundamental problem
mls: need to provide Perl 6 Int objects to our users, so we need an object for that 10:19
mls: if we stored an Integer PMC, we'd have two objects (and a lot of GC pressure)
that's both slow and inefficient
*memory inefficient 10:20
mls: and what's more, parrot's get_integer vtable doesn't allow you to return anything but a native int
mberends I do plan to enhance my "biggishint" library (in zavolaj/examples) some time to provide a decent bigint facility. 10:21
10:21 mishin left 10:22 uasi_ left, mishin joined
mberends the main thing to enhance is scale, going above its current 64KB storage limit 10:23
mls So nom's Int == int is something that needs to be changed? 10:27
moritz yes
10:28 mkramer left, mkramer joined
mls so you can only except some decent optimizations if you use "int" and know what you're doing 10:30
moritz ... or when there's much more static analysis in place than what we have now 10:31
sayu What's qw in perl6?
moritz qw/ ... / or simpler < ... > 10:32
nom: say <foo bar baz>.perl
p6eval nom 88d801: OUTPUT«("foo", "bar", "baz")␤»
sayu rakudo: my @kak <Fred Vilma Kaki>; say @kak[];
p6eval rakudo a55346: OUTPUT«===SORRY!===␤Confused at line 22, near "my @kak <F"␤»
mberends sayu: you forgot the = 10:33
eiro sayu, there is also << that is a clever version of qw with interpolation
my $v = "toto"; my @z = << $toto tata tutu >>;
sayu ok, thanks 10:35
tadzik rakudo: my @kak = <Fred Vilma Kaki>; say @kak[]
p6eval rakudo a55346: OUTPUT«FredVilmaKaki␤» 10:36
tadzik rakudo: my @kak = <Fred Vilma Kaki>; say @kak
p6eval rakudo a55346: OUTPUT«FredVilmaKaki␤»
tadzik . o O ( There was Kaki in Flintstones? )
10:37 dark_x left
sayu moritz: What's nom? 10:38
10:42 daxim left 10:43 im2ee joined
sayu rakudo : sub add($x, $y) {return $x + $y}; say add(23 34); 10:46
rakudo: sub add($x, $y) {return $x + $y}; say add(23 34);
10:46 daxim joined
p6eval rakudo a55346: OUTPUT«===SORRY!===␤Unable to parse postcircumfix:sym<( )>, couldn't find final ')' at line 22␤» 10:46
sayu How should that sub should look like to work? 10:47
tadzik you forgot a comma 10:50
masak sayu: add(23, 34)
tadzik rakudo: sub add($x, $y) {return $x + $y}; say add(23, 34)
p6eval rakudo a55346: OUTPUT«57␤»
tadzik sayu: nom is the new development branch of rakudo
masak sayu: in Perl 6 expressions, you can't put two terms in a row.
10:52 Trashlord left
sayu ok 10:52
10:54 Trashlord joined
masak std: say 23 34 10:54
p6eval std 516268a: OUTPUT«===SORRY!===␤Two terms in a row at /tmp/NR8UipnRir line 1:␤------> say 23 ⏏34␤ expecting any of:␤ bracketed infix␤ infix or meta-infix␤ statement modifier loop␤Parse failed␤FAILED 00:01 120m␤»
sayu Can you guys recommend a tutorial to learn more about perl6? 11:00
masak perl6.org/documentation/ 11:01
strangelyconsistent.org/blog/list-of-posts starting from June 1. 11:02
perl6advent.wordpress.com/
perlgeek.de/en/article/5-to-6 11:03
11:03 stepnem left
masak realizes that he should make a post just with an index to all of his June blogging month blog posts 11:03
sayu masak: That would be great. 11:04
masak I can do that tonight. for now, please use strangelyconsistent.org/blog/list-of-posts :) 11:06
sayu masak: Thanks for the suggestions. You are great man.
11:06 stepnem joined
masak also, if something is missing or unclear in the posts, let me/us know. 11:06
we'll be happy to help and improve the docs.
11:06 drbean left
daxim sayu, masak: ahmadzawawi.blogspot.com/2011/08/le...masak.html 11:07
masak whoa :)
well, there you go then.
azawawi++ 11:08
11:10 MayDaniel joined 11:12 araujo left 11:13 araujo joined 11:25 frhodes left
daxim ank lives! fixingsoftware.blogspot.com/2011/08...roved.html 11:33
masak *sigh* 11:35
moritz daxim: and you give him publicity 11:36
masak that guy seems to be hurting somehow and unable to accept hugs.
moritz I know this mostly off-topic here, but I feel I'm missing something about the twitter UI 11:37
can I somehow add my saved searches to the default "timeline" view? 11:38
ie showing all posts from people that I follow OR that match one of my searches?
masak not that I know. 11:47
maybe Google knows, with the correct prodding.
moritz: maybe you need to make your own client. 11:48
11:54 pnu left 11:55 drbean joined 11:57 pnu joined, sayu left 11:59 mishin left
tadzik heh. But we will eventually have Perl 6. And this guys, well, they still have C++... 12:04
colomon :) 12:05
moritz tadzik: you mean there's enough space on the internetz for TWO programming languages to coexists? you must be nuts :-) 12:06
tadzik Yeah, what was I thinking! PYTHONPYTHONPYTHONPYTHONPYTHONPYTHON 12:07
heh, someone got to my blog searching for "non blocking io perl6" 12:08
masak C++ to Perl 6: "this internetz isn't big enough for both of us." 12:12
moritz tadzik: regarding IO::Select, have you tried running the modules.perl6.org update script locally? 12:14
tadzik moritz: nope, will do
Use of uninitialized value $error in print at web/build-project-list.pl line 188. 12:20
oddness 12:21
12:23 arthur-_ joined
moritz the META.info is valid json 12:24
12:30 birdwindupbird left, birdwindupbird joined 12:32 kaare_ left
tadzik yeah 12:36
okay, I'm moving out for some laptop-free vacations
bbomonday or so
o/
moritz \o
have fun!
masak tadzik: \o 12:37
12:46 bluescreen10 joined 12:50 ribasushi_ joined 12:51 ribasushi left, ribasushi_ is now known as ribasushi 12:54 woosley joined
takadonet morning all 13:02
13:05 lichtkind joined
lichtkind jnthn: current nom gets always mem access faults 13:06
13:11 jerome left 13:12 jerome joined 13:14 jerome left 13:15 jerome joined, jerome left, jerome_ joined 13:16 wtw left 13:18 jevin left 13:19 jevin joined 13:22 drbean left 13:30 kaare_ joined
bbkr_ tadzik: there is hope, you can take netbook :) 13:34
dalek href="https://modules.perl6.org:">modules.perl6.org: ed348b4 | moritz++ | web/build-project-list.pl:
fix page update for IO::Select

The problem was that IO::Select did not have a description line on github, and the update script used that instead of the description from the META.info file.
This commit now changes the update script to use the description from META.info, and only falls back to the github repo if META.info has no "description" field.
13:42
masak mberends: also, the set of disruptive inventions and the set of "repackaged" ideas aren't necessarily disjunct. 13:46
13:47 donri joined
bbkr_ :p5 regexp modifier is NYI? 13:47
masak in Rakudo, yes. 13:48
moritz alpha had it (at least partially)
PerlJam I think it's Not Yet Reinvented.
what moritz said
masak alpha had it because PGE had a p5 frontend.
PerlJam (good morning btw)
masak morning, PJ 13:49
Pugs also had it, methinks.
moritz I think we have a lot of other more urgent things to do right now :-)
masak: yep, but it didn't have proper Perl 6 regexes :-)
13:51 takadonet left 13:52 abercrombie joined
masak writing p5 regex grammar/actions for nqp shouldn't be too hard at this point. 13:52
it just needs a dedicated person to do it.
bbkr_ I don't argue here - p5 regexps support in P6 is ultra-low priority. I asked because MongoDB can store PCRE regexps, but this require P5 syntax. I'm sure most ppl can live without it.
13:53 uasi joined
PerlJam more people just need to adopt Perl 6 Regex :) 13:53
moritz note that PCRE != P5
PerlJam moritz: if you stand far enough away they look the same. ;) 13:54
bbkr_ i'm aware of that. but PCRE and Perl5 regexps are compatible in 95%.
moritz
.oO( "From a distance"
13:55
)
13:57 sayu joined
masak a lot of things are compatible with Perl 5 regexes to 95% 13:57
13:57 MayDaniel left 13:58 MayDaniel joined 13:59 [sbp] joined, [sbp] is now known as sbp`, sbp left, sbp` is now known as sbp 14:00 sorear_ joined, sunnavy_ joined
moritz phenny: tell tadzik that github.com/perl6/modules.perl6.org...ed348b4f9b makes IO::Select show up on modules.perl6.org again. 14:01
phenny moritz: I'll pass that on when tadzik is around.
14:01 breinbaa1 joined, MOAR-f001i5h joined, aindilis left
bbkr_ it should be named PCin95E in fact :) 14:01
ok, thanks for the info. time to go spend some time at the beautiful lake with P6 hacking during weekend.
14:01 showi left, _ilbot left, PerlJam left, sorear left, breinbaas left
bbkr_ nom: my $x = class is {}; $x.new 14:01
14:01 sunnavy left, f00li5h left
p6eval nom 88d801: ( no output ) 14:01
14:02 sayu left, showi joined, jnthn left, mtk left, dalek left, jnthn joined, mtk joined 14:03 dalek joined, ChanServ sets mode: +v dalek, uasi left, uasi joined, slavik joined 14:05 _sri left, _sri joined, PerlJam joined, buubot_backup left, _ilbot joined
masak nom: my $x = class is 42 {}; $x.new; say "alive" 14:06
p6eval nom 88d801: OUTPUT«===SORRY!===␤Unable to parse $*PKGDECL definition at line 1, near "42 {}; $x."␤»
masak nom: my $x = class is {}; $x.new; say "alive"
p6eval nom 88d801: OUTPUT«alive␤»
masak std: my $x = class is {}; $x.new;
p6eval std 516268a: OUTPUT«ok 00:01 121m␤»
masak huh.
14:07 buubot_backup joined
bbkr_ "is" is treated as class name 14:07
14:07 clkao left, clkao joined
bbkr_ std: class is {}; 14:07
p6eval std 516268a: OUTPUT«ok 00:01 118m␤»
bbkr_ not a bug 14:08
14:08 chitragupt joined
masak that, or STD is just wrong in this case. 14:09
oh!
no, I see what you're saying.
rakudo: say is
p6eval rakudo a55346: OUTPUT«Could not find sub &is␤ in main program body at line 22:/tmp/rASMzmjb8m␤»
moritz nom: my $x = anon class is 42 { } 14:10
p6eval nom 88d801: OUTPUT«===SORRY!===␤Cannot use anon scope with class at line 1, near "42 { }"␤»
moritz nom: my $x = class :: is 42 { }
p6eval nom 88d801: OUTPUT«===SORRY!===␤Unable to parse $*PKGDECL definition at line 1, near "is 42 { }"␤»
PerlJam nom: class is { }
p6eval nom 88d801: ( no output )
moritz std: class :: is Int { }
p6eval std 516268a: OUTPUT«ok 00:01 117m␤»
moritz nom: class :: is Int { }
p6eval nom 88d801: ( no output )
moritz nom: my $x = class :: is Int { }; say $x 14:11
p6eval nom 88d801: OUTPUT«::()␤»
bbkr_ nom: class is {}; class is is is {}; # even this works as expected :) 14:12
p6eval nom 88d801: OUTPUT«===SORRY!===␤Illegal redeclaration of class 'is' at line 1, near "{}; # even"␤»
moritz (predictive parsing)++ 14:13
14:13 jaldhar left 14:15 kaare_ left 14:31 miso2217 left, wolfman2000 left, mberends left, pothos left, y3llow left, kthakore left, plobsing_ left, rhr left, Khisanth left, Woodi left, huf left, sjn left, domm left, literal left, slavik left, showi left, MOAR-f001i5h left, breinbaa1 left, daxim left, sftp left, cggoebel left, shachaf left, daemon left, scottp left, jnthn left, sbp left, [particle] left, dual left, snarkyboojum left, imarcusthis left, aloha left, gabiruh left, broquaint left, Gothmog_ left, renormalist|work left, phenny left, nsh- left, Juerd left, Grrrr left, jjore left 14:32 dukeleto left, \patch left, molaf_ left, jedai_ left, mikehh left, cognominal left, yath_ left, athomason left, mikemol left, bs338 left, felipe left, TimToady left, jlaire left, eiro left, Grimnir_ left 14:33 colomon left, yves left, cotto_work left, eternaleye left, jferrero left, pmichaud left, tadzik left, BinGOs left, beppu left, jfried left, ascent_ left, dju left, MayDaniel left, jfshadow left, fhelmberger left, nine left, lumi_ left, LoRe_ left, zamolxes left, jasonmay left, dalek left, mtk left, jevin left, arthur-_ left, im2ee left, Reaganomicon left, simcop2387 left, ZaphrodZenovka left, cosimo left, beekor left, saaki left, itz left, kshannon_ left, sunnavy_ left, araujo left, Trashlord left, envi left, masak left, PacoLinux__ left, sili left, Patterner left, gfldex left, xinming left, yahooooo left, cotto left, uasi left, woosley left, bbkr_ left, pochi left, szbalint_ left, takesako left, sorear_ left, abercrombie left, jerome_ left, lichtkind left, agentzh left, orafu left, Su-Shee left, daniel-s left, Helios left, rml left, sivoais left, felher left, senobmeht left, awwaiid_ left, c1sung left, moritz left, kst left, betterworld left, Util left, robinsmidsrod left, Yappoko___ left, _ilbot left, _sri left, ribasushi left, cexsum left, maja left, silug_ left, Lorn left, mls left, avar left, benabik left, mux left, ruz left, hatseflats left, ingy left, kcwu left, krakan left, szabgab left, charsbar__ left, jql left, clkao left, PerlJam left, mj41 left, domidumont left, p6eval left, kfo_ left, TiMBuS left, frettled_ left, meraxes left, flussence left, baest left, jdhore left, arnsholt left, uniejo left, jesk left, chitragupt left, buubot_backup left, bluescreen10 left, pnu left, REPLeffect left, amkrankruleuen left, wooden left, revdiablo left, JodaZ_ left, nsh left, mathw left, Tene left, PZt left, mdxi left, ranguard left, Maddingue left, skangas left, HarryS left 14:36 mkramer left, donri left, spetrea left, jrockway left 14:37 tewk left, Bucciarati left 14:38 DarthGandalf left 14:44 mkramer joined, Bucciarati joined, wamba joined, DarthGandalf joined, tewk joined, jrockway joined, donri_ joined, spetrea_ joined, HarryS_ joined, skangas joined, chitragupt joined, clkao joined, buubot_backup joined, _ilbot joined, PerlJam joined, _sri joined, slavik joined, uasi joined, dalek joined, mtk joined, jnthn joined, showi joined, WAAGDAK joined, breinbaa1 joined, sunnavy_ joined, sorear_ joined, sbp joined, MayDaniel joined, abercrombie joined, jevin joined, jerome_ joined, lichtkind joined, woosley joined, ribasushi joined, bluescreen10 joined, arthur-_ joined, pnu joined, araujo joined, Trashlord joined, daxim joined, im2ee joined, miso2217 joined, REPLeffect joined, amkrankruleuen joined, agentzh joined, orafu joined, rhr joined, calvino.freenode.net sets mode: +v dalek, Reaganomicon joined, mj41 joined, simcop2387 joined, envi joined, masak joined, [particle] joined, Su-Shee joined, jfshadow joined, PacoLinux__ joined, colomon joined, ruz joined, sftp joined, wolfman2000 joined, sili joined, Patterner joined, molaf_ joined, Khisanth joined, mberends joined, ZaphrodZenovka joined, pothos joined, y3llow joined, dual joined, plobsing_ joined, kthakore joined, cosimo joined, bbkr_ joined, cexsum joined, domidumont joined, maja joined, beekor joined, daniel-s joined, silug_ joined, gfldex joined, Juerd joined, Lorn joined, xinming joined, mls joined, cggoebel joined, yahooooo joined, p6eval joined, cotto joined, avar joined, kfo_ joined, benabik joined, jdhore joined, jedai_ joined, saaki joined, calvino.freenode.net sets mode: +v p6eval, mikehh joined, pochi joined, itz joined, szbalint_ joined, cognominal joined, TiMBuS joined, wooden joined, Helios joined, takesako joined, frettled_ joined, kshannon_ joined, snarkyboojum joined, yves joined, fhelmberger joined, cotto_work joined, eternaleye joined, imarcusthis joined, revdiablo joined, Woodi joined, sivoais joined, felher joined, jferrero joined, senobmeht joined, pmichaud joined, awwaiid_ joined, yath_ joined, tadzik joined, JodaZ_ joined, nsh joined, shachaf joined, eiro joined, mathw joined, nine joined, huf joined, aloha joined, gabiruh joined, broquaint joined, c1sung joined, Grimnir_ joined, meraxes joined, sjn joined, athomason joined, mikemol joined, domm joined, literal joined, Tene joined, mux joined, Gothmog_ joined, flussence joined, bs338 joined, baest joined, felipe joined, BinGOs joined, moritz joined, beppu joined, lumi_ joined, kst joined, jfried joined, renormalist|work joined, betterworld joined, phenny joined, ranguard joined, nsh- joined, krakan joined, daemon joined, TimToady joined, LoRe_ joined, Util joined, hatseflats joined, PZt joined, ingy joined, jlaire joined, mdxi joined, zamolxes joined, scottp joined, jasonmay joined, Grrrr joined, kcwu joined, jjore joined, arnsholt joined, robinsmidsrod joined, dukeleto joined, uniejo joined, ascent_ joined, dju joined, Yappoko___ joined, diakopter joined, prammer joined, lestrrat joined, tylercurtis joined, ruoso joined, sjohnson joined, cxreg joined, zb joined, apejens joined, geekosaur joined, spacebat joined, szabgab joined, \patch joined, charsbar__ joined, jesk joined, jql joined, Maddingue joined, donri_ left, donri joined 14:51 jevin left, jedai joined, jevin joined 14:52 wamba left, jedai_ left 14:55 woosley left, woosley joined
masak got a few ideas for what to blog about in the weekend: gist.github.com/1172972 14:58
comments/suggestions welcome.
moritz masak: I vote for the macros 15:03
15:04 Holy_Cow joined 15:06 xinming left 15:07 xinming joined 15:08 Alias joined, srynearson joined, srynearson left
PerlJam masak: I vote for -n/-p (mainly because that's the one I'd write myself :) 15:10
15:10 Holy_Cow left
PerlJam masak: the one I'd most like to see would be the series on Little Animal Farm 15:11
I guess that'd be "ones"
15:13 kaare_ joined
TimToady I like -n/-p 15:14
and we already know you like tests :P 15:15
masak wow, you people want everything, don't you? :P 15:17
lichtkind dalek: seen thou
masak sets his blog rate to "high"
lichtkind dalek: /seen thou
dalek: help 15:18
masak lichtkind: why do you think dalek does seen? (or help?) 15:19
15:19 kaare_ left
lichtkind masak: i wanted to know when thou was last time on 15:20
15:20 hirschnase joined
masak lichtkind: bit of an X/Y problem, then, isn't it? :) 15:21
seen thou
aloha thou was last seen in #perl6 22 hours 45 mins ago joining the channel.
lichtkind it was wrong bot
thank you masak
masak seen how dangerous it is to have a bot trigger command be something as common as the word 'seen' 15:23
aloha Sorry, I haven't seen how dangerous it is to have a bot trigger command be something as common as the word 'seen'.
masak suspected that
well, s/dangerous/potentially annoying/, but still.
15:24 domidumont left, uasi left
cognominal masak++ 15:25
masak already gotten two (actual) comments by people on the gist. makes me realize that I really need a commenting system on the blog... :) 15:26
either that, or I'll blog using gists from now on. :P
15:28 agentzh left
masak decommutes 15:28
15:28 masak left 15:34 thou joined
lichtkind masak++ 15:35
masak++ (funny)
mls closing memleaks: gist.github.com/1173686 15:38
TimToady: another question about exception handling and the call stack: 15:39
say an exception of type A is caught and the handler in turn throws an exception of type B. the call stack is not unrolled, so can type B get caught by a handler in the "to-be-unrolled" part of the call chain? 15:41
moritz mls: did you know that you can use 'git diff' for generating such patches?
mls yes ;) 15:42
moritz depending on what you do now, it could be less work :-)
mls no ;)
15:43 anbz joined, mj41 left 15:44 anbz left 15:45 daxim left
mls back to the exceptions: That looks to me like an unwanted side effect of not unrolling the stack, as for the handler that catches B the exception from the CATCH A block comes as a surprise... 15:46
sub foo { CATCH B {} ; die A}; { foo(); CATCH A { die B} } 15:47
(not really perl6 syntax...)
(how does lisp handle this?) 15:48
TimToady the CATCH B should never see the B exception 15:49
at the end of CATCH A, it notices there's an unresolved B, and continues on up the chain from there
foo has returned, so it's not in the chain 15:50
15:50 abercrombie left
TimToady S04:1032 is what catches B, and sends it on up the chain 15:51
it doesn't restart from the beginning of the current dynamic scope
"one-pass semantics comes to exception handlers" as it were 15:52
mls so it skips the not-unrolled part when it rethrows the exception?
TimToady yes 15:53
that's what that code is intended to do, anyway
mls the code doesn't rethrow at all ;)
TimToady I wasn't going to be that picky about your comment :)
mls tricky stuff, those perl6 exceptions 15:55
flussence *finally* has a test stats thing that's reasonably fast and works more or less correctly 15:58
mls so in parrot when I catch an exception I have to patch the call context so that callframe et al work in the handler, and at rethrow time I have to restore the call chain to the original value. Hmm, sounds doable. 15:59
(pmichaud++ will probably hate it ;) )
flussence (I don't know what I was doing wrong the previous attempt, but I kept getting failures about a missing pmc/*.h file after one compile even though I was running git clean -dfx. Ended up using a separate checkout dir for each revision and that worked) 16:00
16:00 anbz_ joined
mls Anyway, thanks TimToady++. Back to memleak hunting... 16:00
16:01 im2ee left 16:02 im2ee joined 16:05 toby_tyler joined 16:06 toby_tyler left 16:13 kst left
dalek d: e3c970e | larry++ | STD.pm6:
include any<foo bar> in illegal forms

We've been checking for bare 'say' and such; the misuse of 'any' can be in the same spot, but deserves a different message since it's (probably) not intended to default to $_. Also, both messages are fatal now.
  (In the long run, the %deftrap hash probably wants to be a trait on the
proto sub so that user-defined functions can get the same treatment.)
16:13
16:14 kst joined
TimToady sorear: ^^ 16:14
16:14 anbz_ left 16:15 perlhack joined 16:16 birdwindupbird left, beekor left 16:19 perlhack left
TimToady phenny tell masak separating your entry database from your query database is really an ancient idea; James Martin was advocating it in the 70s, at least. 16:27
phenny: tell masak separating your entry database from your query database is really an ancient idea; James Martin was advocating it in the 70s, at least. 16:28
phenny TimToady: I'll pass that on when masak is around.
TimToady moritz: actually, Rat is specced to have uint64 in the denominator, since we don't need two signs 16:33
and it doubles our precision :) 16:34
moritz TimToady: right
TimToady for some definition of double...
moritz
.oO( that's what they mean with "double precision" floating point operations ... )
16:38
TimToady wants double accuracy floating point numbers 16:39
niecza: m:P5/"/ 16:42
p6eval niecza v8-55-g0db7bb8: OUTPUT«Unhandled exception: Autoloading NYI␤ at /home/p6eval/niecza/boot/lib/CORE.setting line 685 (CORE die @ 2) ␤ at /home/p6eval/niecza/src/STD.pm6 line 4598 (STD Regex.tweak @ 6) ␤ at /home/p6eval/niecza/src/STD.pm6 line 489 (STD C191_ANON @ 2) ␤ at /home/…
TimToady std: m:P5/"/ 16:43
p6eval std 516268a: OUTPUT«ok 00:01 133m␤»
16:46 wamba joined 16:48 Tedd1 joined 17:07 MayDaniel left
moritz t/spec/S02-whitespace_and_comments/begin_end_pod.t seems to have regressed 17:11
dalek kudo/nom: 2742f6d | moritz++ | src/binder/multidispatch.c:
fix memory leaks, patch by mls++
17:17
17:19 daniel-s left 17:21 im2ee left 17:22 im2ee joined
mls Thanks moritz! 17:22
I guess nqp also leaks: gist.github.com/1173901
I haven't done much testing with the patch, though.
moritz mls: at your convenience, please submit a patch that adds your nick to CREDITS
+ mem_sys_free(info); 17:23
+ if (info->types)
isn't that a dangerous ordering?
I mean I'd *first* check the elemnts of info and *then* free it 17:24
mls Oh, yes. Bad copy&paste. Please reorder ;)
17:25 wamba left
moritz tests 17:25
mls Credits patch: gist.github.com/1173907 ;) 17:26
mikemol Should be trivial, but I'm looking forward to seeing the Perl6 solution to rosettacode.org/wiki/Ternary_logic
TimToady (he's looking forward to seeing ∧, ∨, ⊃ and ≡ operators :) 17:27
mikemol ;)
mikemol imageines TimToady just copied "∧, ∨, ⊃ and ≡" from my line in #rosettacode. :)
*imagines 17:28
flussence I wrote one of those already!
TimToady got it in one
flussence github.com/flussence/Mathematical-...s/Sets.pm6
mikemol flussence: If it fits, it sounds like a good opportunity to demonstrate pulling in existing modules.
TimToady this isn't sets though
mikemol ...and it doesn't fit. >.>
flussence aw 17:29
.oO( time to add more multis... )
moritz I'd go with Bool::True, Bool::False and Bool
then you can just say thing like
multi prefix(Bool:U: $) { Bool }
hm, but 'and' and 'or' short-circuit, so one can't easily add multis 17:30
lichtkind i built nom again and it still fails under ubuntu 64 bit
moritz lichtkind: what exactly fails? 17:31
mls afk, weekend...
lichtkind moritz: all i got was speicherzugriffsfehler
mye mls
moritz lichtkind: when?
mls mye lichtkind!
lichtkind hahah
i ment bye
thou: cheers
TimToady flussence: also, sets are defined as associative already in p6, so .list.any is a bit inefficient once rakudo supports associative sets
moritz lichtkind: at your convenience, please read catb.org/~esr/faqs/smart-questions.html 17:32
lichtkind moritz: after starting an almost no script just use v6; and creating 2 lists
moritz that's weird
lichtkind it is
its a fresh git clone just compiles 17:33
TimToady rakudo: my $s = set(<a b c>); say $s<a>; # sb True 17:34
p6eval rakudo a55346: OUTPUT«Bool::True␤»
TimToady ooh, yay
thou lichtkind: ¡hola! 17:35
sorear_ good * #perl6
17:35 sorear_ is now known as sorear
flussence TimToady: I know the code's probably doing a lot wrong, I'm hoping someone else takes it seriously enough to come along and take it off my hands :) 17:35
moritz good *, sorear
lichtkind missed the set command 17:36
TimToady nom: my $s = set(<a b c>); say $s<a>; # sb True
p6eval nom 88d801: OUTPUT«Could not find sub &set␤ in mu <anon> at /tmp/6tOaXkrO0L:1␤ in mu <anon> at /tmp/6tOaXkrO0L:1␤␤»
TimToady ooh a pun :)
flussence also, this is looking a bit more realistic of a target now :) github.com/flussence/specgraphs/ra...-tests.png 17:37
TimToady 'in mu <anon>'?
moritz TimToady: nom does't know about the mainline yet (in backtraces)
TimToady: and should filter out the 'mu' when the type of the code object isn't known
TimToady moo 17:38
17:38 Chillance joined
sjohnson nom: "just another perl 6 hacker".say 17:42
p6eval nom 88d801: OUTPUT«just another perl 6 hacker␤»
sjohnson nom: "rekcah 6 lrep rehtona tsuj".reverse.say 17:43
p6eval nom 88d801: OUTPUT«rekcah 6 lrep rehtona tsuj␤»
sjohnson 0_0
moritz well, list-reversing a one element list isn't very spectacular 17:44
try .flip
17:44 masak joined
masak #perl6! \o/ 17:44
phenny masak: 16:28Z <TimToady> tell masak separating your entry database from your query database is really an ancient idea; James Martin was advocating it in the 70s, at least.
masak yes, it is! :) 17:45
I only wish it had hit the mainstream along with all the default crap we keep deploying.
oh, but thanks for the reference. it's good to have those. I'll look for articles by James Martin. 17:46
guessing it's this guy: en.wikipedia.org/wiki/James_Martin_(author)
sjohnson i'm no p6 hacker! 17:47
nom: "rekcah 6 lrep rehtona tsuj".flip.say
p6eval nom 88d801: OUTPUT«just another perl 6 hacker␤»
sjohnson ahh, there we go. moritz++
sorear masak! 17:48
lichtkind has a list generator to be a recursive one? or can there be direct ones, meaning a function that can directly calculate the content of an list member without predecessor? 17:49
sorear lichtkind: I think you want "map" 17:50
moritz lichtkind: there are lots of ways to generate lists
sorear rakudo: my @list := map * ** 2, 0..*; say @list[^20]
p6eval rakudo a55346: OUTPUT«0149162536496481100121144169196225256289324361␤»
sorear rakudo: my @list := map * ** 2, 0..*; say ~@list[^20]
p6eval rakudo a55346: OUTPUT«0 1 4 9 16 25 36 49 64 81 100 121 144 169 196 225 256 289 324 361␤»
moritz lichtkind: gather/take, map, loop + pushing to an array (ok, not lazy), the series operator, infix:<xx> 17:51
lichtkind yes but i mean the intrinsic list generator of an list object
has that to be recursive?
moritz what is "the intrinsic list generator of an list object"?
an implementation detail?
lichtkind moritz: something like reify 17:52
moritz lichtkind: reify is a method, not a generator 17:53
lichtkind i meant the method that reify calls
what i have in mind is eg a series of squares ($n * $n) which are created from a lazy list 17:54
moritz internally List stores a code object which is called when more items are reified 17:55
is that what you mean?
if so, it's not recursive
masak I usually think of gather/take as the "intrinsic list generator". 17:56
lichtkind moritz: but when i want element 5 , 1..5 will be generated and i want to be jsut generated 5 17:58
sorear then no, that's not how Perl 6 lists work. 17:59
lichtkind sorear: thank you very much 18:01
and i thougt perl 6 can everything
masak lichtkind: it can, just not out of the box. 18:02
moritz it's Turing complete :-)
lichtkind moritz: so is ook
i mean that i have to create an own list object
masak lichtkind: maybe you just need something like a memoized function of an integer argument? 18:03
not a list.
lichtkind: again with this X/Y stuff... it's the second time today :P
lichtkind masak: sounds reasonable
18:03 wamba joined
lichtkind masak: im chewing on this topic since patricks talk 18:04
masak that's good.
I am, too :)
pmichaud++
lichtkind pmichaud++
masak pmichaud is a truly reaified guy with a PLAN :) 18:05
ergh, *reified
dalek p: 0bfcef6 | moritz++ | src/6model/multi_dispatch.c:
fix a multi dispatch memory leak, patch by mls++
18:06
lichtkind hej they found it 18:07
great
masak mls++! 18:09
TimToady well, they found one of it anyway
or two of it, depending on how you count
lichtkind building 18:10
masak pavement 18:13
TimToady still goes up to 1.5G compiling the setting 18:14
lichtkind yay, works 18:15
moritz TimToady: yep, it was only a rather small leak (while sorting candidates, not on invocation) 18:16
lichtkind thats very good
so i can base my slide sfor turino on working nom snippets
TimToady commuting & 18:19
lichtkind mls++, moritz++ 18:20
18:26 Tene left 18:33 soh_cah_toa joined 18:36 birdwindupbird joined 18:48 gfldex left 18:50 gfldex joined 18:52 risou_awy joined, woosley left 18:53 risou_awy is now known as risou 18:57 soh_cah_toa left, wolfman2000 left 18:59 soh_cah_toa joined 19:04 mberends left, hirschnase left, hirschnase joined 19:07 hirschnase left 19:13 mberends joined
mberends \o/ 32 bit compiling the setting in nom now uses under 800MB, so a 1GB machine can do it again by closing Firefox, xchat etc. 19:15
flussence yay 19:16
19:29 bluescreen10 left
mberends on 32 bit, instants-and-durations.t still hangs and consumes all the memory it can get :-( 19:32
moritz mberends: maybe comment it out from spectest.data until we have a fix 19:33
mberends yes, good idea :)
19:41 Caldrin joined
masak rakudo: say <ugga>, <b l m>.roll(3) X~ <ugga> 19:43
p6eval rakudo a55346: OUTPUT«uggauggabuggamuggalugga␤»
masak nom: say <ugga>, <b l m>.roll(3) X~ <ugga>
p6eval nom 2742f6: OUTPUT«uggaugga mugga bugga mugga␤»
Caldrin Hi! I try to learn perl6 currently. In the module IO::Socket::INET I found the line $!PIO = Q:PIR { %r = root_new ['parrot';'Socket'] };
I can not find any documentation on the meaning of this Q:PIR.
Can anyone please point me to some docu where I can learn what this does?
moritz Caldrin: it's a non-standard extension in Rakudo to access low level parrot functionality
masak Caldrin: all the rest of the setting also compiles down to PIR. this just injects it directly. 19:44
Caldrin So that's the solution to implement socket handling, I assume?
masak and a fine solution it is! :) 19:45
nom: say '', <b l m>.roll(3) X~ <ugga> 19:46
p6eval nom 2742f6: OUTPUT«ugga lugga mugga bugga␤»
19:46 bluescreen10 joined
moritz when we implement low-level stuff, we can either use stuff that parrot implements (or wraps), or we can try wrap C stuff ourselves 19:46
parrot stuff is usually less work for us, and we have people to yell if it goes wrong on some platform :-)
masak nom: say "a", "b" 19:47
p6eval nom 2742f6: OUTPUT«ab␤»
Caldrin masak: I don't doubt this. In Perl5 the module inherits from IO::Handle which in turn offers a few functions more, especially $socket.say();
I was looking to implement this say in Perl6 IO::Socket::INET too for learning and checking where it would suite best. 19:48
moritz Caldrin: probably IO::Socket
masak nom: say join '', <A R G H> »x» (3..7).roll
p6eval nom 2742f6: OUTPUT«AAAARRRRGGGGHHHH␤»
masak :)
Caldrin moritz: Yes, I figured this would be the right place.
masak oh wait, that rolls just once.
Caldrin I thank you for your help. 19:49
masak nom: say join '', $_ x (3..7).roll for <A R G H>
p6eval nom 2742f6: OUTPUT«AAAAAA␤RRRRR␤GGGGGG␤HHH␤»
masak nom: say join '', ($_ x (3..7).roll for <A R G H>)
p6eval nom 2742f6: OUTPUT«AAAAARRRRRRRGGGGHHHHHH␤»
masak \o/
TimToady add some !!! too :)
moritz :-)
masak nom: say join '', ($_ x (3..7).roll for <A R G H !>)
p6eval nom 2742f6: OUTPUT«AAAAAARRRRGGGGGGHHHHHHH!!!␤»
TimToady boring
nom: say join '', ($_ x (3..7).roll for <A R G H !>) 19:50
p6eval nom 2742f6: OUTPUT«AAAAAAARRRGGGGGGHHH!!!!␤»
TimToady that's better
masak :P
nom: say "I", "E" x 50, " 802.11" 19:52
p6eval nom 2742f6: OUTPUT«IEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE 802.11␤»
TimToady n
masak :)
nom: say '/\\' x my $j = 25, ' hup! ', '\\/' x $j 19:53
p6eval nom 2742f6: OUTPUT«Use of uninitialized value in numeric context␤Cannot assign to a non-container␤ in mu <anon> at /tmp/_ViPinUuSf:1␤ in mu <anon> at /tmp/_ViPinUuSf:1␤␤»
masak hm, I expected that to be item assignment...
nom: say '/\\' x (my $j = 25), ' hup! ', '\\/' x $j
p6eval nom 2742f6: OUTPUT«/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\ hup! \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/␤»
TimToady niecza: say '/\\' x my $j = 25, ' hup! ', '\\/' x $j 19:54
moritz what's the relative precedence of x and = ?
p6eval niecza v8-55-g0db7bb8: OUTPUT«25 hup! ␤»
masak nom: say '/\\' x (my $j = 10), ' hup! ', '\\/' x $j
p6eval nom 2742f6: OUTPUT«/\/\/\/\/\/\/\/\/\/\ hup! \/\/\/\/\/\/\/\/\/\/␤»
masak moritz: = has two precedences, IIRC.
item and list.
moritz wonders if masak++ just watched the Ministry of Silly Walks sketch by Monty Python
masak: I know
masak moritz: no, but I will now, on YouTube :) 19:55
I'm just being Friday evening silly on my own.
moritz masak: ah, infix:<x> is tigher than both infix:<=> forms
19:56 Caldrin left
moritz which usually makes perfect sense :-) 19:56
TimToady you wouldn't need a temp variable in forth 19:57
moritz well, you can do just 'bout anything with the stack in forth :-)
by the same token you can declare a global-ish @stack in perl 6 and reuse that everywhere when you want to avoid temp variables :-) 19:58
not that I would recommend that to anybody... 19:59
TimToady nom: say join ' hup! ', </\ \/>>>x>>10
p6eval nom 2742f6: OUTPUT«/\/\/\/\/\/\/\/\/\/\ hup! \/\/\/\/\/\/\/\/\/\/␤»
TimToady nom: say join ' hup! ', </o\ \o/>>>x>>10 20:00
p6eval nom 2742f6: OUTPUT«/o\/o\/o\/o\/o\/o\/o\/o\/o\/o\ hup! \o/\o/\o/\o/\o/\o/\o/\o/\o/\o/␤»
20:00 jevin left
masak who needs temp variables and stacks when we have join? :P 20:00
moritz: thanks for reminding me of that sketch. :) 20:01
nom: say <do re mi fa so la ti>.roll(5) 20:02
p6eval nom 2742f6: OUTPUT«re so la fa so␤»
masak quite singable, actually.
TimToady not a final cadence though 20:03
masak no, there's the promise of more after that.
20:03 jevin joined
TimToady I sometimes sing my wife's SSN before mine; here's ends on re, mine ends on do :) 20:04
*hers 20:05
masak I'd like to hear that sometime :)
moritz TimToady: so together you get 'redo'? :-)
TimToady but then you could steal our identity :)
masak TimToady: that's U.S. think, and really not Swedish think ;) 20:06
TimToady: over here, we all have SSNs, and we're not afraid to use them.
masak wouldn't mind giving a lightning talk about gist.github.com/1149245 sometime 20:08
TimToady yet
masak TimToady: if there are worrying tendencies or causes for concern, I don't see them.
20:09 birdwindupbird left
moritz I guess it depends on how they are used 20:09
PerlJam masak: I don't get it ... the Perl 5 version is clearly much more readable ;)
masak PerlJam: you're joking, but... yes, it is. for non-sixers. 20:10
PerlJam: maybe the lightning talk should highlight that as well.
moritz afaict in the US if you know somebody's SSN, people take that as authentication that you are that person
masak what? that's crazy! :) 20:11
lue hello planet o/
20:11 skangas left
TimToady I remember having a conversion with a REXX programmer in which he maintained that five pages of REXX were more readable than five lines of Perl :) 20:11
20:11 skangas joined
PerlJam masak: there's more to read, ergo it's more readable. There's hardly anything to the Perl 6 version. You might accidentally elide the whole on first glance. 20:11
TimToady *conversation
masak PerlJam: :P
TimToady I don't think any conversion happened there...
PerlJam s/whole/whole thing/
lue for the record, I find P5 code to be completely illegible (what the heck is Dog->walk ?)
masak lue: it's a Dog pointing to the walk :P 20:12
because it needs to go for a walk.
TimToady lue: that's because the designer of P5 couldn't decide whether he liked Dogs or Cats better.
masak considers the course "teaching OO by misleading examples"
20:13 mj41 joined
lue Actually, I chose that example because I know it (P6 did s/->/./ IIUC), but most of P5 code I see is confusing and not worth trying to decode. The non-readability goes both ways 20:13
masak nom: role Walking {}; class Dog does Walking {}; class Cat {}; Cat.walk
p6eval nom 2742f6: OUTPUT«Method 'walk' not found for invocant of class 'Cat'␤ in mu <anon> at /tmp/Oj9GmLJBtw:1␤ in mu <anon> at /tmp/Oj9GmLJBtw:1␤␤»
TimToady would take a course entitled "misleading by teaching OO examples"
masak you can't walk a Cat.
lue: you have a point. 20:14
lue Of course you can! [How the cat would react to it is a different matter...]
masak lue: on the other hand, when you learn the superficial differences in syntax, Perl 5 and Perl 6 feel very much alike.
(as you can see from the gist...) :P
PerlJam masak: your two implementations of choose-column don't feel at all alike
:) 20:15
flussence you can't walk a Cat, but you can walk a tree
masak PerlJam: it's really the same code! just removed a bit of boiler-plate in the second version!
using setting builtins, and so on...
PerlJam masak: looks like line noise ;)
masak *lol*
20:15 Holy_Cow joined
masak "Perl 6: we're so Perl that even the Perl 5 people look at us weirdly!" 20:16
20:16 Holy_Cow left
flussence (min :by loops pretty useful, never knew about that one...) 20:16
s:1st/p/k
masak flussence: I hadn't used it before writing that line, but there it was right when I needed it.
lue masak: what gist? 20:17
masak ♥ Perl 6
lue: gist.github.com/1149245
lue nvm, found it.
PerlJam Perl 6 magically anticipates your needs and provides them even before you know what you need.
lue waitaminute, P5 doesn't have Inf ‽ 20:18
TimToady not in integers
masak lue: you kids so spoiled :P
moritz lue: it's kinda platform dependent if it has or not
masak did we ever work out the typology of Int in Perl 6?
moritz $ perl -wE 'say 0+"Inf"'
inf
masak er, of Inf. 20:19
oh, maybe I should use that instead, then.
TimToady it's a floater
masak I don't mind.
all I do with it is compare it to the first integer that comes along.
flussence (hm, I would've thought 1.0/0.0 would return inf too) 20:20
masak the Inf never leaves the method.
flussence: why would you think that!?
flussence IEEE told me it does :(
masak says this with real surprise, as someone who believed that too 15 years ago
flussence: true.
flussence: I still find it non-immediate. 20:21
moritz except that in Perl 5, scalar types are not exposed to the user
TimToady obviously it should return ±Inf
masak no, not obviously :)
moritz so 0 is really the same as 0e0 in p5
lue remembers the joke proof he wrote a while ago, and sets out to put it on the web
PerlJam flussence: how can you listen to anyone that sounds like a scream?
masak flussence: by definition, division x/y gives the number z such that yz=x. for y=0, there's no such z. 20:22
TimToady well, it really depends on the exact value of ±0 that you've divided by
masak TimToady: you're being very nonstandard right now ;)
TimToady I'm being calculating
flussence perl6: say 1/0
p6eval niecza v8-55-g0db7bb8: OUTPUT«Infinity␤»
..pugs: OUTPUT«*** Illegal division by zero␤ at /tmp/9Ljf45Iozv line 1, column 5 - line 2, column 1␤»
..rakudo a55346: OUTPUT«Inf␤»
flussence blargh
masak en.wikipedia.org/wiki/Non-standard_analysis
masak hugs Pugs 20:23
sorear: "Infinity"?
TimToady you get closer to Inf as you approach 0, but you can't say which side you're approaching it from unless you know in advance
masak TimToady: the Riemann sphere actually solves this!
TimToady so more of a calculus notion
masak in the complex plane, paradoxiacally, there's only one infinity. 20:24
TimToady well, but nom has a memory leak with the sphere
masak :P
it's very poetic, in a sense.
flussence wonders whether there's practical use for a TooBigToRepresentNum type separate from Inf
masak 0 is "right here". Inf is "very, very far away".
flussence (I'm not suggesting such a horrible name ever gets added, of course)
masak "what direction should I walk?" -- "doesn't matter, you'll get there. it's on the other side of this giant sphere." 20:25
moritz fwiw Mathematica has a separate ComplexInfinity symbol :-)
masak moritz: which one is bigger, the normal Infinity, or ComplexInfinity? :P
TimToady well, Mathematica probably has a builtin function to do what you're doing
moritz masak: both, but ComplexInfinity is more Complex, of course :-) 20:26
masak moritz: bet it needs more therapy, too.
dark and brooding Infinity.
TimToady Infanity, is more like
moritz did you mean "Insanity"? 20:27
TimToady Infantity
moritz -> insane sleeping
masak everyone seems to ignore the Elefanity in the room.
TimToady dream sweets
flussence try not to dream of insane complexity :)
20:27 hirschnase joined
TimToady I am Confantiy 20:27
moritz remembers to tooth up his brushes before going to sleep 20:28
TimToady *Confanity, confang it!
masak moritz: süße Träume
TimToady traumatic SUSE?
masak Konrad, most like.
20:28 mj41 left
masak no wait, that's with a Z. 20:28
TimToady let's keep going, and see if we can give moritz++ a migraine when he backlogs tomorrow 20:30
20:30 hirschnase left
masak I'm already all exfaunted. 20:31
lue I have the perfect solution to division by zero, and I'll be uploading the proof momentarily. 20:32
masak *groan* :) 20:33
nom: say <in en con comp trau>.roll, <sanity fanity lexity fang matic faunted>.roll
p6eval nom 2742f6: OUTPUT«confang␤»
masak TimToady wins, confang it! :)
20:34 mkramer1 joined
lue
.oO(trausanity)
20:36
masak lue: that's the kind of sanity that is *so* sane, that it's traumatic.
"Yes, I'm afraid he was deeply scarred by his sanity."
nom: say <in en con comp trau>.roll, <sanity fanity lexity fang matic faunted>.roll 20:37
p6eval nom 2742f6: OUTPUT«enfaunted␤»
masak is immediately enfaunted with this new word
20:37 mkramer left
PerlJam
.oO(infanted?)
20:39
masak clearly something different.
lue nom: say <in en con comp trau frotz>.roll, <sanity fanity lexity fang matic faunted>.roll 20:40
p6eval nom 2742f6: OUTPUT«compfaunted␤»
masak :)
"compfaunted". I know that feeling.
lue [this set of dice is fun. I could play all day!] 20:41
masak lue: invent a game around them, and I'll play it with you. 20:42
20:43 jevin left 20:46 jevin joined
lue divison by zero proof (remember, supposed to be joking): rdstar.wordpress.com/2011/08/26/the-mu-proof/ 20:48
nom: say <in en con comp trau frotz>.roll, <sanity fanity lexity fang matic faunted>.roll 20:49
p6eval nom 2742f6: OUTPUT«infaunted␤»
20:51 abercrombie joined
masak I'm getting infaunted by this exercise. 20:51
abercrombie The memory leak problem got resolved? 20:54
masak lue: that paper is kinda funny. but only because it's completely frotzfang. :P
lue
.oO(I was worried the humor might have gone a bit stupid)
masak lue: you remind me of me when I was your age :) 20:55
half my age ago.
lue wonders if now he'll someday walk to hotels with towels on his head 20:56
masak quite possibly. 20:57
20:58 im2ee left 20:59 im2ee joined
lue [the scary part is, that sounds like a fun thing to do] 21:02
masak .oO( the transmogrifying process has already begun... ) 21:03
TimToady abercrombie: not the Big One
21:04 breinbaa1 left 21:05 breinbaas joined
TimToady the sphere still chews up all my memory, anyway 21:06
lue
.oO(two more 'words' for the game dice: "trans" and "mogrify")
TimToady if you have con you should have pro, so we can get profanity 21:08
lue
.oO(If profanity ever comes up, we must damn() --- er, curse() --- all objects involved)
21:10
21:13 spetrea_ left
lue Now I have to invent a game, seeing as words like 'frotzlexity' can come up :) 21:15
masak You could call the game 'frotzlexity'. 21:24
flussence hm, I just realised p5 File::Temp tempdir() only cleans up at exit, and I'm making one tempdir per revision :( 21:27
21:27 bluescreen10 left
flussence and now my ~/.local/tmp is 11GB... not as bad as I'd feared. 21:28
21:29 cexsum left 21:30 fridim_ joined 21:31 molaf_ left
lue
.oO(this laptop's original HDD was 12GiB!)
21:33
sorear my first hdd was 2GiB. I feel old. 21:34
diakopter hah 21:35
masak 2GiB is a lot for a HDD.
my first one had something like 120MiB.
diakopter too
flussence I've rescued many a PC from the trash, so I know all about tiny hard drives... :)
masak but I had floppies-only computers before that. 21:36
yes. actual floppy disks.
the kind that don't work anymore.
flussence 360KB ones? :)
colomon We got a floppy disk drive AND a cassette drive for our first computer.
lue I got my laptop for free, because the teacher that gave it to me didn't need it anymore (they upgrade to new macs _all the time_!)
masak flussence: yes.
sorear masak: my father loves to talk about saving up money to buy a 5 MiB HD for his previously HD-less computer. 21:37
flussence I tried putting DOS 6 on one of those once. It didn't fit.
lue masak: were they bigger than 3.5" ?
masak lue: 5.25"
flussence lue: 3.5" only go down to 720KB, iirc
masak lue: and bendable.
colomon and before that 8"
masak flussence: yes.
flussence (depends on how they're formatted, I suppose)
lue ooh. [I routinely feel I missed out on a great era of computing. Nowadays stupid handheld things rule the realm] 21:38
I found a 5.25 floppy once, and used it as a bookmark in one of our many books related to computers (hopefully I can find that floppy back someday...)
mberends istr the Apple ][ formatted only 143KB on one side of a 5.25" floppy 21:39
double sided drives were more expensive back in the day 21:40
colomon but you could always buy single sided and punch holes in them to make them double sided. ;) 21:41
errr, the disks, not the drives.
flussence I didn't even *have* a PC until about 2001-ish. Then I got given easy access to a lot of discarded hardware and went through about 10 years of x86 in a few months... that was a weird time
(I think I had two 5.25 drives on windows XP at one point...)
sorear lue: it doesn't matter if you can find the disk anymore 21:42
lue When it comes to computers, I think old > new (e.g. IF > graphical games). I'm jealous of you all :/
sorear lue: floppy disks are made with a very low-coercivity material, they demagnitize in the Earth's field with a half-life of 5-10 years
21:43 cexsum joined
sorear old floppies are junk 21:43
flussence
.oO( good thing I have several backups of these doomII disks! )
lue sorear: if&when I find it back, it'll be purely for the "I have a floppy disk! That's *floppy*!" value, not to use it (it was some old game I wouldn't care to play)
mberends we had fun once writing a boot splash screen on the second side of a 5.25" disk, that said "fatal error: diskette upside down" and pranking victims. 21:44
21:44 pochi left
sorear mberends: oh, you had to physically remove and flip disks once? 21:44
masak lue, sorear: ascii.textfiles.com/archives/3191
colomon sorear: yes 21:45
mberends disks that formatted on one side only were cheaper, there were lower quality standards. We bought the cheap ones, cut notches as colomon++ said and used the failed side anyway at our own risk. 21:46
21:46 pochi joined
flussence sort-of relevant: redd.it/juzpa 21:48
sorear mberends: was it like resistors, they make 1000 disks, test them, sell the ones that have two good sides for a premium, throw out the zero-sided disks, and sell the rest as 1-sided?
mberends sorear: exactly
lue [that article might explain why I got mostly IO errors from that 3.5" Infocom floppy I tried not too long ago] 21:49
sorear punch cards were so much better for information storage
mberends easier to edit, in a way 21:50
21:50 mkramer1 left
sorear also, paper objects last longer than magnetized films 21:50
TimToady my first computer's storage was 3 40-step (hand-punched) punch cards
sorear imagines archaeologists in the year 3800 discovering a pile of punch cards off the Dead Sea
TimToady well, my school's computer, really
the first computer I ever actually owned myself was an Amiga 1000 21:51
mberends ooh, 16 bits!
TimToady well, I'm actually much more familiar with PDP-11, if you want 16 bits 21:52
mberends began with a TRS-80 in 1979 21:53
lue wonders if colleges will still hold these awesome relics of computer history by the time he gets there.
sorear s/colleges/museums 21:54
TimToady there's a computer history museum about 1/2 mile from my home that is full of such beasties
sorear lue: also look for a Web site called "The Retrocomputing Museum", it's full of entertaining things like an ENIAC emulator 21:55
flussence my school had rooms full of Acorn/512k Mac machines while I was there. They threw them all out for generic PCs :( 21:56
21:59 [Coke] joined 22:04 eternaleye left 22:07 donri left 22:10 im2ee left 22:13 envi left 22:22 pernatiy joined
lue realizes he should have brought up ℵ and ℶ during the discussion of different infinities 22:27
22:29 eternaleye joined 22:34 donri joined 22:35 rlb3_ joined
TimToady lue: not all languages are alphabetic :P 22:37
er, alephbetic...
lichtkind an aleph 22:38
i got: PARROT VM: Could not load bytecode
Incompatible versions of `perl6_ops' oplib, possibly due to loading bytecode generated by an old version of Parrot. Found 3.6.0 but loaded 3.7.0
is there anything i should change in the makefile?
lue Just for the heck of it, I should try my hand at implementing infinite cardinals sometime in Perl6. 22:39
[but right now I'm busy creating frotzlexity] 22:42
22:44 pernatiy left
masak \o/ 22:49
22:52 pernatiy joined
lue [I think I made life harder by requiring analyzing of English sentences for part of the game. I'll make my first commit soon that explains everything.] 22:53
masak blog post! strangelyconsistent.org/blog/why-te...y-you-code
feel free to reddit or HN this one ;) 22:54
PerlJam masak++ (I really like the octopus analogy) 22:56
masak thanks. it almost snuck into my CQRS talk at YAPC::EU. :) 22:57
22:58 yath_ left
masak oops, a few '<'s didn't get escaped properly. fixing. 22:59
23:00 envi joined
lue masak: s/throuws/throws/ in the first ¶ 23:00
PerlJam masak: So ... when should tests be written? :)
masak lue: thanks. fixing.
PerlJam wow, I must've read too fast because I didn't notice any of the typoes and such at all 23:01
masak PerlJam: if you ask me, the longer you don't have tests, the worse off you are. by that logic, tests should be written "first". 23:02
mberends
.oO( how is test formed? )
masak PerlJam: but I'm not a stranger to taking a step back and, say, actually doing some design and/or thinking about the domain before that.
mberends: they need to do way instain ad-hoc manual testing. 23:03
mberends my pary is with the tester 23:04
PerlJam masak: but if you write the tests first and you don't quite understand the problem domain, don't you end up writing tests that you're just going to throw away anyway?
masak mberends: ;)
PerlJam (I'm playing a little bit of a devil's advocate here, I already know my answers to these questions :)
masak PerlJam: sometimes, yes. but I'd rather throw away/change the tests than the code. 23:05
23:05 Moukeddar joined, Moukeddar left
PerlJam masak: and isn't it double the work to write the code that does whatever you want and the code that tests it? 23:05
masak only if you compare it to never testing your code at all. not even manual tests, I mean. 23:07
23:07 jaldhar joined
sorear usually I have to write code in order to figure out what I'm doing 23:08
so first I write code, then I write tests, then I rewrite the code
masak sorear: I find that some design concerns don't really materialize until I'm deep down into implementing the solution.
sorear lichtkind: delete the old files and reinstall rakudo
masak ok, new improved version uploaded. thanks for your feedback. 23:09
PerlJam There have been a couple of people that I have never been able to convince that automated testing is a big enough of a win to warrant the "extra" time it takes to write them (their perception). I'm just looking for other words to use for next time.
masak PerlJam: it takes extra time to put on your swimfins before diving into the water. 23:10
that doesn't seem to be a very strong argument against swimfins.
PerlJam perhaps it's that fundamental thing that these people don't grok: you will *always* write code that you throw away simply because you're figuring out the problem domain
lue masak++ # great post
flussence I figured out how to do stacked lines: github.com/flussence/specgraphs/ra...-tests.png
lue wants to any(find,make) a UTUM badge 23:11
23:11 drbean joined
masak lue: cool! 23:11
masak goes to sleep
PerlJam so they end up with this false economy idea where "you only write code once"
masak 'night, UTUM-camels
PerlJam good night masak!
pleasant dreams
23:12 masak left
PerlJam takes kids elsewhere for a bit 23:12
23:13 rlb3_ left
mberends flussence: would you consider switching to SVG format? It would be an initial step backwards to go forwards, but there are many benefits. Perl 6 emitters, for example. 23:15
23:15 jevin left
flussence SVG is already doable, I only put PNG in there because Github won't display the svg files 23:16
mberends flussence++: excellent!
flussence (just run `perl draw_graph.pl svg` in there, the format-specific stuff is defined on line 46-ish) 23:17
23:19 jaldhar left, jaldhar joined 23:20 jevin joined
TimToady phenny: tell masak "receptible" and "pund", unless they were punned. 23:24
phenny TimToady: I'll pass that on when masak is around.
23:26 donri left 23:34 Psyche^ joined 23:38 Patterner left, Psyche^ is now known as Patterner
cognominal nom: grammar is HLL::Grammar 23:44
p6eval nom 2742f6: OUTPUT«===SORRY!===␤Unable to parse $*PKGDECL definition at line 1, near "HLL::Gramm"␤»
cognominal nom: grammar A is HLL::Grammar 23:45
p6eval nom 2742f6: OUTPUT«===SORRY!===␤No applicable candidates found to dispatch to for 'trait_mod:<is>'. Available candidates are:␤:(Attribute $attr, Any $rw)␤:(Attribute $attr, Any $readonly)␤:(Routine $r, Any $rw)␤:(Parameter $param, Any $readonly)␤:(Parameter $param, Any $rw)␤:(Parameter …
23:53 pernatiy left 23:55 Tene joined 23:57 fridim_ left