Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2013-01-22

Perl 6 | Reference Documentation | Rakudo

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:00 japhb_ lue, You're quite welcome.  :-)
00:06 * geekosaur retrofits into his version
00:13 For-Odin joined #perl6
00:21 MikeFair_ joined #perl6
00:39 Su-Shee_ joined #perl6
00:47 am0c joined #perl6
00:50 hash_table joined #perl6
01:07 anuby joined #perl6
01:10 hypolin joined #perl6
01:58 benabik joined #perl6
02:33 bluescreen100 joined #perl6
02:43 hash_table joined #perl6
02:49 rhr joined #perl6
02:58 skids joined #perl6
03:08 jaldhar joined #perl6
03:10 sevin joined #perl6
03:30 geekosaur joined #perl6
03:30 alec__ joined #perl6
03:34 sivoais_ joined #perl6
03:35 65MAAGQUF joined #perl6
03:36 aindilis` joined #perl6
03:40 ermlich joined #perl6
03:41 fgomez joined #perl6
03:41 orafu joined #perl6
03:42 bbkr joined #perl6
03:46 sivoais joined #perl6
03:49 bbkr_ joined #perl6
04:04 bbkr joined #perl6
04:19 alec__ joined #perl6
04:22 preflex joined #perl6
04:31 slavik1 joined #perl6
04:50 For-Odin joined #perl6
05:04 adu_ joined #perl6
05:17 moritz japhb: re IRC + colors, it's a regression. But the nastiness of UTF-8 decoded ANSI-escapes was big enough to repel me from fixing it
05:19 telex joined #perl6
05:34 kaleem joined #perl6
05:37 telex joined #perl6
05:55 sivoais joined #perl6
06:01 MikeFair_ joined #perl6
06:01 rurban1 joined #perl6
06:15 araujo joined #perl6
06:15 araujo joined #perl6
06:19 Myk267 joined #perl6
06:22 SamuraiJack joined #perl6
06:23 sevin joined #perl6
06:48 kaleem joined #perl6
07:09 Nom- joined #perl6
07:09 Nom- left #perl6
07:13 Timbus joined #perl6
07:14 sivoais joined #perl6
07:43 jokar joined #perl6
07:45 vividsnow joined #perl6
08:08 quester joined #perl6
08:09 FROGGS joined #perl6
08:12 FROGGS morning
08:13 diakopter o/
08:14 autumn joined #perl6
08:20 sorear morn
08:21 japhb moritz, gotcha, thanks for the info
08:35 vividsnow joined #perl6
08:37 quester left #perl6
08:48 kaleem joined #perl6
08:50 Dan_ joined #perl6
08:55 Su-Shee good morning everyone.
08:55 sorear good morning Su-Shee
09:00 aindilis` joined #perl6
09:13 fhelmberger joined #perl6
09:18 jnthn good morning o/
09:19 diakopter o/
09:22 bbkr good morning
09:28 arnsholt jnthn: Making you some stack traces now
09:29 jnthn .oO( I made you a stack trace, but I eated it )
09:29 dakkar joined #perl6
09:32 dalek nqp/dyncall-sized-num: 3615620 | (Arne Skjærholt)++ | src/6model/reprs/P6bigint.c:
09:32 dalek nqp/dyncall-sized-num: Fix .align of P6bigint storage spec.
09:32 dalek nqp/dyncall-sized-num: review: https://github.com/perl6/nqp/commit/3615620056
09:32 dalek nqp/dyncall-sized-num: 6302a6e | (Arne Skjærholt)++ | src/6model/reprs/P6int. (2 files):
09:32 dalek nqp/dyncall-sized-num: Start implementing compose protocol for P6int REPR.
09:32 dalek nqp/dyncall-sized-num: review: https://github.com/perl6/nqp/commit/6302a6e259
09:32 arnsholt That branch is the code, parrot and C-level traces at https://gist.github.com/4593328
09:33 arnsholt The C trace isn't really interesting, but included for completeness
09:34 arnsholt I'm not sure if the test failure occurs during parsing of the file, or in the second test (which tests integer serialization), but think maybe the latter and that no output is due to buffering
09:39 sqirrel joined #perl6
09:42 Psyche^ joined #perl6
09:44 jnthn No, repr_compose is typically called on the .compose method of the class
09:44 grondilu joined #perl6
09:44 jnthn arnsholt: Ohhh...I see what's going on.
09:46 arnsholt Oh, goody!
09:58 jnthn sorry, $dayjob called
09:58 jnthn I think that we need to always pass a top level hash keyed on which compose protocol is being used
09:59 jnthn So that it won't go trying to process an empty set of attribute into as if it's a bunch of native size info.
09:59 arnsholt Right, right
10:10 xinming_ joined #perl6
10:32 rurban1 joined #perl6
10:37 bbkr FROGGS: I've tested your multibyte branch. recv works fine but… it is not in S32 spec. Therefore I'm not sure if including underlying method in roast is correct here: https://github.com/perl6/roast/commit/7bcb012a23#L0R221
10:38 bbkr FROGGS: get() is still broken
10:38 moritz we can always add it to the spec :-)
10:40 kaleem joined #perl6
10:42 arnsholt jnthn: Do you want to update the compose stuff, or should I try? I guess it might involve some bootstrappy things?
10:44 masak good forenoon, #perl6
10:45 jnthn arnsholt: I wouldn't mind a chance to ponder/spec exactly what I'd like. I can probably figure it out on the train this afternoon and diddle the implementation this evening.
10:45 moritz gf, masak :-)
10:45 b1rkh0ff joined #perl6
10:45 arnsholt jnthn: Yeah, that's probably a good idea
10:46 arnsholt I should probably be preparing for my lecture on friday, so that works out for me as well ;)
10:46 jnthn (When I say spec, I don't mean Perl 6 spec, for anyone curious...)
10:46 jnthn Yeah, I got 3 days of teaching coming up, but short of traveling up to Stockholm this afternoon things are quite prepared :)
10:46 vividsnow joined #perl6
10:47 arnsholt Good, good. I'll be preparing a new lecture each week this semester, so that'll be interesting
10:48 arnsholt (Mostly in the alleged Chinese way, I fear, but a useful experience as well I think)
10:48 bbkr joined #perl6
10:53 FROGGS bbkr: awesome, thanks!
11:04 FROGGS bbkr / moritz: I'll leave it to others (you?) deciding if the spec needs a change or the implementation
11:05 Su-Shee_ joined #perl6
11:05 FROGGS bbkr: think I got you, you say that .recv is not in spec so we shouldnt test it?
11:08 masak arnsholt: "May you live in interesting times. May you come to the attention of those in authority. May you find what you are looking for." -- always makes a chill run down my spine. :)
11:08 masak arnsholt: there's a good Wikipedia article, too: https://en.wikipedia.org/wiki/May_you_live_in_interesting_times
11:09 bbkr FROGGS: indeed, otherwise some implementations may implement spec but have spec tests failures
11:09 FROGGS bbkr: right you are
11:09 arnsholt masak: Oooh, interesting! Cheers!
11:09 masak "interesting" :)
11:10 donghongbo joined #perl6
11:10 arnsholt Heh, oops ^_^
11:12 FROGGS bbkr: test 2, 3 and 4 are testing .recv already
11:13 FROGGS bbkr: will dig into .get these days then
11:21 marloshouse joined #perl6
11:33 rurban1 joined #perl6
11:38 kresike joined #perl6
11:38 kresike hello all you happy perl6 people
11:40 masak kresike! \o/
11:41 kresike masak, o/
12:02 sorear o/
12:04 colomon \o
12:05 masak \o/
12:07 rurban1 joined #perl6
12:15 tadzik /o\
12:20 FROGGS moritz: I'd like to merge my froggs_multibytes branches in, okay?
12:21 cognominal joined #perl6
12:21 moritz FROGGS: +1
12:21 FROGGS thanks
12:33 alpha- joined #perl6
12:34 alpha- left #perl6
12:45 kivutar joined #perl6
12:56 Myk268 joined #perl6
13:00 sqirrel joined #perl6
13:01 dayangkun joined #perl6
13:02 jnthn train &
13:03 * FROGGS .oO( it's a trainy day ... )
13:08 rurban1 joined #perl6
13:11 dalek rakudo/nom: 5d7b19b | (Tobias Leich)++ | src/core/IO/Socket.pm:
13:11 dalek rakudo/nom: fix for .write( Buf )
13:11 dalek rakudo/nom:
13:11 dalek rakudo/nom: Before one got: No such method get_string for invocant of type str
13:11 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/5d7b19b04b
13:11 dalek joined #perl6
13:28 moritz FROGGS++
13:35 pmurias joined #perl6
13:39 rurban1 joined #perl6
13:58 hash_table joined #perl6
13:58 bluescreen10 joined #perl6
14:09 benabik joined #perl6
14:16 masak moritz: I liked http://news.ycombinator.com/item?id=5096234
14:16 masak moritz: clearly you should write that graphical front-end, though ;)
14:17 arnsholt Indeed =)
14:17 moritz masak: I guess these days I'd write it as a web page
14:17 masak yeah, that sounds cool.
14:18 masak then you'd get to play around with some graphical JavaScript library too, I duess.
14:18 masak guess*
14:18 masak I've always been intrigued by http://paperjs.org/ but it's possible something like D3 or processing would serve you better here.
14:20 fhelmberger joined #perl6
14:21 Su-Shee masak: D3 is distinctively made to display data, it's focused on making charts.
14:21 masak aye.
14:22 moritz though for some reason frontend development never was real fun to me
14:22 masak so is RaphaelJS, I believe.
14:22 Su-Shee masak: this might be an.. exactly. I just wanted to reommend raphael.. :)
14:22 moritz so it's more likely that the frontend will forever remain on the low end of my TODO heap
14:23 Su-Shee frontend development is kind of tedious and boring in the end if you can't participiate in design etc. then you're just the coder of other people's ideas.
14:23 arnsholt Yeah, I seem to be accruing a certain number of forever projects as well
14:24 masak I haven't gotten tired of frontend development yet. but I agree it can be tedious in some circumstances.
14:25 Su-Shee I like it as my secondary skill. like I like regex and text processing as my secondary skill.
14:26 arnsholt My biggest problem with frontends is the fact that making a nice, useful UI is extremely hard
14:26 arnsholt (And I have no idea how to go about doing it =)
14:26 jdv79 joined #perl6
14:27 moritz same here
14:27 moritz it's easy to identify bad UI, and some elements that make the UI bad
14:27 Su-Shee are you two serious? :) man, you go about it as on any other computing subject: you read up on it :)
14:27 moritz but that's not enough to build a good one :-)
14:28 masak g'ah! https://rt.perl.org/rt3/Ticket/Display.html?id=70297 -- these days, neither the ^D nor the newline is there. :(
14:28 Su-Shee moritz: the principles of a good UI aren't that difficult, it's well established what "good design" in terms of "it faces some user/reader/human" is.
14:28 masak it's too easy to regress on the things that it isn't easy to unit test. :(
14:29 moritz masak: indeed
14:30 xinming joined #perl6
14:30 arnsholt I don't care much either way about the ^D, but should definitely be printed
14:30 arnsholt a newline should be printed, that is
14:30 Su-Shee moritz, arnsholt I'm willing to consult you if you're willing to go over some piece of UI of yours three times :)
14:30 arnsholt Su-Shee: I'll keep that in mind, thanks!
14:31 Su-Shee arnsholt: that's "ok, I put it on the stack of projects I'm not going to do" ;)
14:31 arnsholt (Especially since I am actually mulling over some webby stuff, pending tuits and various other things)
14:31 moritz Su-Shee: my answer sounds roughly like arnsholt's :-)
14:31 moritz there is a project I started some time ago
14:31 moritz and I wanted to do in Perl 6
14:31 arnsholt Yeah. My stack of "absolutely, must be done" is overflowing, unfortunately. So my supply of tuits for fun stuff is sadly limited =(
14:32 moritz and then rakudo+nativecall segfaulted during the backend stuff
14:32 moritz so badly that I never got around to the frontend stuff
14:32 moritz but I still plan to revive it eventually
14:32 arnsholt But if I get the sized numerics support off the ground in NativeCall (which should be happening fairly soon I think), I'm gonna try to do some web stuff as a showcase
14:32 moritz s/badly/bad/
14:32 Su-Shee also, here's my two favorite gui jokes: http://static.lolyard.com/lol/your-companys-app.jpg and http://img24.imageshack.us/img24/3423/wget.jpg ;)
14:33 arnsholt moritz: What kind of issues did you have with the NativeCall stuff?
14:33 moritz arnsholt: DBIs segfaulted when I did too much stuff in one process, basically
14:33 arnsholt Su-Shee: You see, that's where I usually end up =D
14:33 moritz *DBIish
14:33 Su-Shee arnsholt: I know. ;)
14:33 arnsholt Hmm. That's no fun...
14:34 arnsholt Heh, I guess you have plenty experience with that kind of stuff =)
14:34 Su-Shee arnsholt: it's from an article of wait.. not joel on software dammit.. the other guy.. "this is what happens when you let developer make UIs" ;)
14:35 Su-Shee jeff atwood. http://www.codinghorror.com/blog/2006/11/this-is-what-happens-when-you-let-developers-create-ui.html
14:35 bluescreen100 joined #perl6
14:35 arnsholt Yeah. I call it engineer-UI, except the compound sounds better in Scandinavian (and I guess German) than in English
14:35 arnsholt Ah yes, Atwood is good
14:35 Su-Shee arnsholt: say it in aeh.. scandinavian, please?
14:36 arnsholt Ingeniør-UI (or ingeniørgrensesnitt)
14:36 Su-Shee "grensesnitt" is ?
14:36 arnsholt interface, essentially
14:37 Su-Shee and literally? there's snitt in it like in .. sewing pattern snitt?
14:37 masak "snitt" means "cut".
14:37 Su-Shee masak: yes, Schnitt here :)
14:37 masak so I guess the common denominator between "face" and "cut" is "surface".
14:37 masak "the common surface between things"
14:37 Su-Shee masak: which is used in several other contexts - like "Hosenschnitt" (sewing pattern for trousers)
14:38 arnsholt Yeah, we use snitt like that as well
14:38 moritz phenny: "verschnitt"?
14:38 phenny moritz: "blend" (de to en, translate.google.com)
14:38 masak yes, but that "schnitt" means "style", essentially :)
14:38 Su-Shee ah.
14:38 arnsholt True, true
14:38 masak have you thought of something? the implicit iteration of jQuery is kinda great. and it makes hypers a bit... unnecessary.
14:39 masak (I'm rewriting the jQuery section of our JavaScript course right now, so it got me thinking)
14:39 Su-Shee masak: many js libs do it, D3 too.
14:39 Su-Shee masak: I'd emphasis that this is a basic js concept these days
14:39 stopbit joined #perl6
14:39 rurban1 joined #perl6
14:39 masak or rather, the tradeoff that jQuery makes is very sensible: if you're calling a per-element method on a collection, the collection will distribute the call to the elements.
14:40 Su-Shee D3 calls it declarative because you say what you want and not how you want it done
14:40 masak it makes the Perl 6 way with hypers feel a bit... picky and unnecessary.
14:40 Su-Shee I find it confusing at times, because you have to think in loops.
14:41 masak which one do you find confusing?
14:41 masak and why do you have to think in loops?
14:41 masak how is it more confusing than, say, regexes, where you have to "think in backtracking"?
14:42 Su-Shee masak: because I have to remember that this kind of programming style hides "going over all elements and applying things on them no matter how many there are" under the hood and I might not even see that it is doing that
14:42 Su-Shee regexes I found very intuitive, I never had any problem with it bringing them into a mental image or metaphor..
14:43 Su-Shee masak: it's not programming with objects and it's not procedural and somehow also not evented, so I'm confused :)
14:43 moritz on the one hand I find the "distribute over all elements of a collection" thing beautiful
14:43 moritz OTOH I often struggle with JS in the browser simply not having any effect at all
14:44 moritz and I wonder if that's related
14:44 Su-Shee also, due to javascript syntax it looks cluttered in js with all the (function () { }); stuff
14:44 moritz maybe I accidentally do stuff on empty collections, and don't notice?
14:44 moritz or maybe none of the element in the collection support the operation, even if it's not empty?
14:44 hoelzro Su-Shee: that is probably the most frustrating thing about JS to me
14:44 masak :)
14:45 Su-Shee moritz: then it usally gives you an error which sounds like something totally different ;)
14:45 masak moritz: you could always explicitly check whether you got an empty selection.
14:45 hoelzro not (function() {})(), but the fact that that workaround is necessary because JS' scoping rules are stupid
14:45 moritz masak: that helps against the first case, but not against the second
14:45 Su-Shee hoelzro: imagine we'd consequently write perl5 that way - buttugly as well
14:45 hoelzro heh
14:46 hoelzro I once saw someone write (function() ... end)() in Lua
14:46 hoelzro I pointed out that in Lua, a good language, this horrid construction is unnecessary
14:46 hoelzro we have proper scoping!
14:47 masak :P
14:47 Su-Shee hoelzro: I meant the stuff not even used for scoping but because you e.g. supply an anonymous function as a callback
14:47 masak hoelzro: people will go to great lengths to get private variables if you don't design it into the OO system.
14:47 Su-Shee hoelzro: which also looks like shit.. foo(bar, function () { ... })
14:48 masak Su-Shee: that looks totally readable to me.
14:48 hoelzro Su-Shee: see, I don't really have a problem with the way the syntax looks
14:48 Su-Shee masak: yes, because for now it's a short version, now put stuff in there or call a function in the function etc etc
14:48 masak actually, it's one of the things I admire about JavaScript. the ease with which it throws around function literals.
14:48 hoelzro masak: it's not even private variables; if you want to run initialization code in a "module", or have local vars/functions, you need that stupid workaround
14:48 hoelzro unless you use let, which isn't standard
14:48 masak Su-Shee: oh, for sure. but then you define the function elsewhere, and just pass in a named reference ;)
14:49 Su-Shee THAT I like too, I just find it looking cluttered and I'd wish that you could do it somehow with less (){}({}))
14:49 masak hoelzro: yeahbut, it's still private variables, just called a "module" instead...
14:49 hoelzro Su-Shee: my style for HOF is to write functions that generate other functions
14:49 hoelzro or pass references to named functions
14:49 hoelzro (for clarity's sake)
14:49 hoelzro masak: ok, good point
14:49 * hoelzro interpreted "private variables" as "private members"
14:50 Su-Shee yeah sure, we do lots of things to make it readable.. but for example look at node.js code..
14:50 hoelzro Su-Shee: right
14:50 Su-Shee I spent a lot of time with formatting and beautifying javascript code and that never is a good sign.
14:50 moritz masak: what I hate in javascript is how you have to distinguish attributes and methods,  str.length and str.something_else()
14:50 hoelzro so when you start getting into 3 levels of function() { ... }, you should probably break things up a bit
14:50 moritz masak: which is directlly related to easily passing around function literals
14:50 hoelzro just like if you were indenting too far
14:51 Su-Shee moritz: actually, it's worse because you can use str.something_else without () :)
14:52 masak moritz: yeah. methods are just callable properties.
14:52 masak moritz: that's borrowed directly from Self, IIRC.
14:52 moritz Su-Shee: exactly
14:52 masak moritz: I... kinda like it. it makes it very easy to talk about the function objects behind the methods. but yeah, it's also easy to forget the ()
14:53 moritz but you get the routine back, not call it
14:53 * hoelzro is not sure if he prefers attributes and methods in the same namespace or not
14:53 masak moritz: which is a feature, not a bug :)
14:53 masak moritz: I *don't* like that methods can be called that way without an proper `this` binding.
14:53 Su-Shee hoelzro: well they're both part of the object.
14:53 masak moritz: var f = obj.method; f() // oops
14:54 masak moritz: that's where the unification between functions and methods in JavaScript falls down and turns bad, IMO.
14:54 moritz masak: agreed
14:54 Su-Shee I really like classless OO, that - together with tossing around function objects easily - my favorite javascript feature
14:54 fgomez joined #perl6
14:54 masak moritz: I'm still mulling over that, and think I can fix it in my language. but I shan't say too much -- working code trumps empty talk :)
14:54 hoelzro yeah, it's poweful
14:54 Su-Shee "is"
14:54 hoelzro *powerful
14:55 hoelzro that's why I like Lua
14:55 masak Su-Shee: agreed.
14:55 hoelzro it's JS minus the dumb.
14:55 masak hoelzro: except that in Lua, 0 is true! o.O
14:55 vividsnow joined #perl6
14:55 masak well, truthy.
14:55 Su-Shee hoelzro: it has a nice whipuptitude I like. it's not about (I love that quote) "satisfying your inner linneus" and building large OO hierachies but about "hey this thingie is an object"
14:56 masak "Linnaeus" :)
14:56 Su-Shee hence my question recently how much perl 6 really is prototypical classless OO
14:56 masak the
14:56 masak the MOP is classless.
14:57 donghongbo joined #perl6
14:57 Su-Shee well marx would totally disagree. the mob is very full of class ;))
15:00 masak heh.
15:03 kaare_ joined #perl6
15:03 masak but srsly, someone could probably take the knowhows of 6model and build a fairly close replica of the JavaScript prototypal object model.
15:04 jerome joined #perl6
15:13 rurban1 joined #perl6
15:14 SunilJoshi joined #perl6
15:15 Su-Shee grrr.. why does gists want me to add another file and disable create public gist?!
15:16 dalek perl6-roast-data: ab1da8c | coke++ | / (4 files):
15:16 dalek perl6-roast-data: today (automated commit)
15:16 dalek perl6-roast-data: review: https://github.com/coke/perl6-roast-data/commit/ab1da8c1b8
15:16 * arnsholt <3 git
15:17 Su-Shee yay. finally
15:17 Su-Shee arnsholt: https://gist.github.com/4595381
15:17 [Coke] rpn: use Test; nok ([==] (^2**64).roll(10).map(* +& 15)), 'Range.pick has enough entropy';
15:17 p6eval pugs: OUTPUT«pugs: *** Unsafe function 'use' called under safe mode␤    at /tmp/icuJ8LX6HC line 1, column 1␤»
15:17 p6eval ..rakudo a26956, niecza v24-18-gaf64300: OUTPUT«ok 1 - Range.pick has enough entropy␤»
15:17 [Coke] p: say [==] (^2**64).roll(10).map(* +& 15)
15:17 p6eval pugs: OUTPUT«(timeout)»
15:17 arnsholt Su-Shee: Fun =)
15:18 [Coke] if someone could pugs-fudge the last test in S32-list/pick.t, I'd appreciate it.
15:18 arnsholt I have piles and piles of TeX code, if you want O:D
15:19 Su-Shee arnsholt: oh god no :)
15:19 arnsholt I've grown to quite like TeX and LaTeX actually
15:20 arnsholt Not sure if it's true love or Stockholm syndrome, though =D
15:21 Su-Shee I've read an article of someone who attempted to cleanup/rewrite the tex code so it's easier to port and to embed and such and he gave up ;)
15:21 Su-Shee I switched basically all my text based stuff to HTML in '95.
15:22 arnsholt Yeah, TeX itself is kind of crazy. Thus the Stockholm syndrome
15:23 arnsholt But it beats Word and friends ;)
15:24 Su-Shee never used it but a little word5 for dos, I switched directly to plain text after I finished my thesis for everything else.
15:24 arnsholt That's a bit older than I've ever used, I must admit
15:25 arnsholt But I produced my thesis in LaTeX with great pleasure. And the end result didn't look too bad, either =)
15:26 Su-Shee latex couldn't do proper german humantities quoting and bibliographing at that time and umlauts were a PITA so I didn't use latex for my thesis..
15:28 arnsholt What is proper German humanities quoting, OOC?
15:28 arnsholt And bibliographies are a PAIN
15:29 [Coke] class A { has @things } ; say A.new().things;
15:29 Su-Shee arnsholt: quoting as in referencing, sorry. I don't know what's it called in english. the notation of how you say "it's from miller's "foobar today", page 17 from 1889"
15:30 [Coke] r: class A { has @things } ; say A.new().things;
15:30 p6eval rakudo a26956: OUTPUT«No such method 'things' for invocant of type 'A'␤  in block  at /tmp/bX3sJ04hRG:1␤␤»
15:30 [Coke] r: class A { has $things } ; say A.new().things;
15:30 p6eval rakudo a26956: OUTPUT«No such method 'things' for invocant of type 'A'␤  in block  at /tmp/GBPCQZEnBA:1␤␤»
15:30 arnsholt Su-Shee: Ah, right. Citation style, I think. The German style for that is footnotes, no?
15:31 [Coke] r: class A { has @.things } ; say A.new().things;
15:31 p6eval rakudo a26956: OUTPUT«␤»
15:31 arnsholt I once leafed through my Sanskrit professor's (German) PhD thesis. Lots and lots and lots of footnotes
15:31 arnsholt So many that the footnote counter started at 1 for each chapter, in fact =D
15:31 Su-Shee arnsholt: yes and no, you can do both, but commonly at that time you did it in footnotes
15:33 arnsholt Ah, cool. I used the Chicago style for my thesis: "I am very clever" (McCleversson 1986)
15:33 Su-Shee arnsholt: another problem was (and maybe is) style of the quoted piece of text: if it's just a half sentence or so, you don't want it in a new line with indentation but "just" quoted and italic.
15:33 arnsholt Or (McCleversson 1986, 42) if you included the page number
15:33 Su-Shee arnsholt: very uncommon.
15:33 masak [Coke]: this is why we can't have nice @things!
15:35 Su-Shee arnsholt: Müller, "Marxismus im Lichte der Geschichte", 1889, S.123ff and later on Müller, 1889, S.327
15:35 hash_table joined #perl6
15:35 arnsholt Yeah, the Chicago footnote style looks more or less like that. I don't like it much =)
15:37 Su-Shee arnsholt: well latex offered me "harvard" style, but the FU berlin isn't that fancy ;)
15:37 arnsholt Hehe
15:39 skids joined #perl6
15:42 arlinius joined #perl6
15:52 [Coke] masak - how many candidates submitted entries for task 1?
15:52 [Coke] ... "that were accepted"
15:53 * masak checks
15:53 masak [Coke]: 7.
16:01 arnsholt Ooooh, when I talk about the Turing test, I must use the relevant XKCD comic =D
16:03 benabik joined #perl6
16:04 masak heh. :)
16:14 rurban1 joined #perl6
16:15 kresike joined #perl6
16:16 moritz btw I've fixed the date for the  P6 mini hackathon to 2013-04-06
16:18 masak moritz++
16:22 colomon P6 mini hackathon?
16:25 spider-mario joined #perl6
16:26 masak colomon: http://irclog.perlgeek.de/perl6/2013-01-20#i_6354902
16:27 colomon masak++
16:27 colomon ah, across a very large ocean from me.  :(
16:28 SunilJoshi joined #perl6
16:32 FROGGS I hope it's a foodathon and talkathon too^^
16:34 masak let's just say I've never been to a hackathon where there wasn't food or talking.
16:34 Khisanth joined #perl6
16:34 masak but I'm not sure those bits merit the '-athon' suffix. :)
16:35 * colomon suspects there will be some sort of beer as well.
16:35 Su-Shee who suggested fuerth?!
16:35 masak beer? in Germany?! :P
16:35 rurban1 joined #perl6
16:37 atrodo joined #perl6
16:37 FROGGS Su-Shee: I believe the location isnt fixed yet
16:37 Su-Shee moritz put fuerth into this doodle thingie.
16:38 FROGGS cause he lives there
16:38 FROGGS but I'm not sure if 5 ppl will fit in nicely in his flat
16:39 FROGGS ohh, plus moritz and wife and kids
16:41 moritz FROGGS: it's no problem for the day, just the night(s) might get crowdy
16:42 moritz FROGGS: but I hope to let some of the folks sleep at friends who live not too far away
16:42 kresike bye folks
16:43 Su-Shee I don't even get to fuerth in sensible time :)
16:45 moritz Su-Shee: you're welcome to arrange for hosting of a hackathon somewhere more suitable for you -- I'll do my very best to attend :-)
16:45 FROGGS moritz: I wont mind sleeping in a motel
16:46 Su-Shee moritz: my living room can host 8 people ;)
16:48 moritz Su-Shee: then I'm looking forward to Su-Shee's p6 hackathon :-)
16:49 Su-Shee moritz: ok, I guess it's easier here to find room for hacking people. ALSO NICE TRY YOU JUST WANT MY COOKING. ;)
16:50 FROGGS hmmm, I could take the train, 5 hours from Berlin to Fürth isnt that bad...
16:50 moritz Su-Shee: not "just". But I do want your cooking too :-)
16:51 FROGGS but from Berlin to Berlin I'd be a bit faster ;o)
16:52 Su-Shee moritz: yeah, yeah they all say that.. ;)
16:56 marloshouse_ joined #perl6
17:04 Su-Shee oh. my. god. this is the middle ages.. and people call python "clean" .. I have to call some fortran compile lines by hand for some algebraic library scipy needs..
17:05 * geekosaur suggests 1802 assembly language
17:06 Su-Shee isn't that ar something something? ;)
17:06 arnsholt Su-Shee: Well, scipy isn't really Python =)
17:07 arnsholt It's just a wrapper around mostly piles and piles of Fortran, mostly
17:07 Su-Shee arnsholt: "aha." man, cpan PDL works since dinosaurs walked the earth ;)
17:07 Su-Shee arnsholt: yeah so is R and install.packages(foo) works nicely ;)
17:07 Su-Shee that's ridiculous in 2013.
17:09 timotimo ipython requires a socket to listen and reply to pings at all times. can such a thing be done properly in rakudo? doesn't seem that way, unless nqp learns threads, right?
17:09 Su-Shee isn't ipython a gui environment?!
17:10 alec__ joined #perl6
17:12 geekosaur can be, doesn't have to be
17:13 timotimo Su-Shee: it offers really cool frontends that are, basically, language agnostic
17:13 timotimo multiline editing, for instance.
17:13 timotimo and the web app "notebook", that behaves like maxima/mathematica, with cells and in-line text and stuff
17:14 timotimo er, what i said made no sense as an answer to your question
17:14 Su-Shee yeah but what does it need a ping for? ;)
17:14 timotimo to check that the kernel hasn't secretly died
17:14 Su-Shee what?
17:14 Su-Shee timotimo: what kernel? my linux kernel?
17:14 timotimo the ipython kernel ;)
17:15 timotimo there's the qtconsole, which is a GUI terminal with highlight-as-you-type, the notebook, which is the web app thingie, and the terminal console
17:15 timotimo and the protocol is rather simple, based on zeromq and json.
17:15 timotimo http://i.imgur.com/6iHwAPf.png - like this
17:16 Su-Shee and why on earth would I allow some gui app to keep my network connection open at all times just to check if it is alive itself?!
17:16 moritz why not? can be a local socket
17:16 timotimo the kernel and the gui are separate processes and may live on another box entirely
17:16 timotimo right.
17:16 MayDaniel joined #perl6
17:17 timotimo can even be a UNIX domain socket
17:17 Su-Shee moritz: a local socket would need ping what for?
17:18 [Coke] why rewrite it to use non network stuff when network stuff works locally?
17:18 arnsholt Su-Shee: It's the best way to do IPC, really
17:18 arnsholt Far more portable than domain sockets for example
17:18 moritz Su-Shee: there's a frontend and a backend. The frontend wants to check if the backend is still responsive (ie not totally hung)
17:19 moritz so that if the backend is hung, it can tell the user, and/or restart
17:19 Su-Shee yes, sorry but I find clients which have to ping to check if their servers are still available rather weird.
17:19 Su-Shee my browser doesn't ping a website first.
17:20 timotimo yeah, but you're not constantly connected to the website
17:20 timotimo you make a connection, load the website, close the connection
17:20 geekosaur your browser usually doesn;t have to worry that what it just did crashed the webserver :)
17:20 timotimo in ipython, you'll do something like for i in range(1000000): if is_prime(i): list.append(i), or maybe you'll call out to some C code or something
17:21 timotimo no way to see if it's busy calculating or if it's hung
17:21 Su-Shee yeah.. still makes no sense to me.
17:22 Su-Shee good to know though.
17:22 Su-Shee timotimo: how do you use it if you're working from a notebook and have no network access at the moment?
17:22 Su-Shee timotimo: "you don't"?
17:22 arnsholt Loopback interface
17:22 geekosaur loopback will still be up
17:23 arnsholt It doesn't actually require a physical network. You use 127.0.0.1 to talk to yourself, essentially
17:23 timotimo loopback is always up
17:23 arnsholt Also, the server will bind by default to loopback, so the outside world can't talk to your backend =)
17:23 timotimo open 24/7, self-service networking for everyone
17:23 timotimo arnsholt: also, it's authenticated with key+hmac
17:24 timotimo so even if you could open a connection. oh, that screams DDoS
17:25 thou joined #perl6
17:26 arnsholt Makes sense
17:27 Su-Shee ok and my loopback device which can be pinged which therefore tells ipython's client "hello, I'm here and awake" does what exactly if I do some calculation which is usally run on ipython's server? :)
17:27 arnsholt Oh, BTW. Regarding ZMQ I have hope that I can get sized numerics working in NativeCall reasonably soonish
17:27 arnsholt The threading stuff is a lot harder to work around
17:28 arnsholt I think Parrot's been working on their threading stuff quite a bit lately, but the Perl 6 side of threads is almost completely unspecified IIRC
17:33 timotimo Su-Shee: if your server dies, the client can say "the kernel died. want to wait for it to restart?"
17:38 rindolf joined #perl6
17:40 aindilis` joined #perl6
17:41 Su-Shee timotimo: I was mostly being sarcastic now. ;) I'm not going to use python for anything serious anyways.
17:45 timotimo you wouldn't be using python. you would be using ipython to do perl
17:45 timotimo perl6, specifically
17:46 timotimo because you'll get nicer readline-ing, history, embedded graphics and plots, ...
17:46 Su-Shee I get all that in R.
17:47 Su-Shee also I'm not going to use a python tool to do perl6.
17:48 timotimo you're free to do whatever you like :)
17:49 Su-Shee timotimo: yeah, you just convinced me to avoid ipython, one thing less I have to install..
17:50 timotimo huh, ipython is that bad?
17:52 Su-Shee I have no need for it and you lot just made me extremely suspicious.
17:52 timotimo hah
17:53 timotimo i think i must have been expressing myself poorly or something. i don't see what's wrong with it.
17:55 geekosaur I think su-shee might be under the misapprehension that anything even remotely related to IP sockets must automaticaly and inherently be fundamentally insecure
17:56 Su-Shee geekosaur: yeah sure, that's totally what I said.
17:56 rindolf Hi all.
17:57 Su-Shee anyways. my environment - my tools. and python will not be one of them.
17:57 geekosaur no, you haven't really said much of anything other than that all you;ve gleaned is that iython must be highly suspicious
17:57 geekosaur and I can;t see where you got that unless you're knee-jerking about IP sockets
17:57 PacoAir joined #perl6
17:59 Su-Shee geekosaur: aha. interesting interpretation of things I didn't say. :)
18:00 masak rindolf: hi. (nothing's up.)
18:00 Myk267 joined #perl6
18:00 rindolf masak: OK. :-)
18:00 masak a few things are shaking, though. ;)
18:02 Harzilein joined #perl6
18:02 Harzilein hi
18:03 flussence greetings!
18:03 japhb Hello, Harzilein.
18:03 Myk267 left #perl6
18:04 Harzilein can you give me an example for binary/raw slurp?
18:04 FROGGS joined #perl6
18:04 Harzilein as in, open on binary on platforms where that is needed, read "8 bit" data
18:04 Harzilein but i'd like to still be able to split on line endings -.-
18:05 masak hehe.
18:05 Harzilein s/on binary/as binary/
18:05 masak Harzilein: I'd like to say that there are no "line endings" in binary mode... but it's not really that simple.
18:05 moritz my $buf = slurp :bin, $filename;
18:05 masak Harzilein: more interestingly, why are you interested both in binary mode and line endings at the same time?
18:05 moritz and then maybe
18:06 Harzilein masak: i want to read a a pdf with unexpanded parts. but i want to be able to get "line 127" later.
18:06 moritz my @chunks = $buf.decode('Latin-1').split("\n")>>.encode('Latin-1')
18:06 Harzilein masak: unexpanded parts might not be valid utf8. or make that "rather certainly aren't"
18:06 moritz where @chunks are really lines
18:06 Harzilein hp@tt-24:~/niklas-cebit2013/Archive/1-1000$ ls *.unc.pdf | perl6 -n -e 'my $filename = $_; slurp(:bin, $filename);'
18:06 Harzilein Unexpected named parameter 'bin' passed
18:07 moritz Harzilein: what's the output of perl6 --version?
18:07 masak yeah. my thought too.
18:07 Harzilein This is perl6 version 2012.01 built on parrot 4.0.0 revision 0
18:07 flussence ouch
18:07 FROGGS to old
18:07 masak a year old... :)
18:08 masak those were the days...
18:08 FROGGS slurp( :bin, ... ) will work on newer rakudo, get the update ;o)
18:08 moritz slurp got :bin in July last year
18:08 Harzilein will i need a newer parrot engine as well then?
18:08 moritz yes
18:08 Harzilein argh
18:08 Harzilein i hoped to stay with the system parrot
18:09 masak the Rakudo build process builds Parrot for you too.
18:09 japhb Might as well just get a current Rakudo Star, and let it give you a nice bundle.
18:09 masak yeah.
18:09 Harzilein it appears rakudo does not see much activity in debian unstable, apt-cache policy rakudo shows no newer version than is in testing
18:09 japhb ENOMAINTAINER, I'm guessing
18:09 moritz we'd love debian to ship more up-to-date packages
18:10 moritz but it seems nobody invests any energy in it
18:10 masak :(
18:11 Harzilein i need a newer nqp as well? :/
18:11 FROGGS Harzilein: yes
18:12 FROGGS but per Configure.PL --gen-nqp will no it for you
18:12 FROGGS s/per/perl/
18:12 Harzilein will that install a per-user nqp?
18:12 FROGGS s/no/do/
18:12 FROGGS -.-
18:12 Harzilein i really want to keep my system perl6 intact
18:12 japhb Harzilein:  It's a stack.  parrot => nqp => rakudo => ecosystem
18:12 FROGGS it will create a nqp subdir (and a parrot subdir), and will use that
18:12 tadzik Harzilein: install it in your homedir
18:12 tadzik I'm doing this on debian testing
18:12 FROGGS it wont install anything in PATH
18:12 tadzik I never even tried the debian packages
18:13 flussence system and local perl6 installs don't clash (at least on gentoo)
18:14 jnthn Good evening from the shittiest hotel room I've ever been given on a teaching trip to Stockholm :/
18:14 japhb jnthn, Ouch, sorry to hear that.
18:14 masak good evening jnthn.
18:14 masak sorry to hear about le room :/
18:14 rjbs jnthn: If you're loving the hotel room by morning, be careful.  You  might have that syndrome I've heard about.
18:15 japhb rjbs, :P
18:15 jnthn rjbs: ;)
18:15 fgomez joined #perl6
18:15 jnthn I'm not that demanding but come on, have at least a desk/chair so I can use a laptop comfortably :/
18:16 diakopter LAPtop
18:17 geekosaur confortably
18:17 diakopter jnthn: find a new hotel nearby?
18:17 geekosaur *comfortably
18:18 jnthn diakopter: yeah, does'nt work with this eyesight. My back has already taken enough laptop use for a lifetime, let alone for somebody my age...
18:19 japhb jnthn, Conspicuously camp out at the chair nearest the concierge desk?
18:19 japhb s/concierge/check-in/, if none of the former
18:20 japhb Still, I think diakopter has the right idea.
18:20 japhb (To find a better hotel room, I mean.)
18:29 diakopter before it gets too dark...
18:29 diakopter oh wait..
18:29 jnthn :P
18:30 jnthn It's -10C up here. Proper winter :)
18:30 jnthn (Outside, that is...)
18:31 Su-Shee jnthn: and why do I have -10 too and I'm not in scandinavia? :(
18:31 sivoais joined #perl6
18:32 diakopter 12C here
18:32 jnthn Su-Shee: I don't consider -10 a particularly bad thing :)
18:32 Su-Shee jnthn: I just started cooking dinner with an open kitchen window ;)
18:33 geekosaur -12C here fwiw
18:34 masak -2°C in subtropical Malmö. :)
18:35 Su-Shee masak: sweden isn't anymore what it once was.. ;)
18:35 [Coke] wow, I was going to crow about how warm it is here, but it's -7°C :)
18:35 * [Coke] is clearly stuck way too inside the building.
18:36 [Coke] moritz: +S12-methods/syntax.rakudo aborted 12 test(s)
18:38 vividsnow joined #perl6
18:38 rjbs -8°C at home, but a balmy -6°C at work
18:39 Su-Shee rjbs: at home? well that's a bit fresh, isn't it.. ;)
18:39 rjbs fresh?
18:39 colomon -12°C is our *high* for the day today.
18:40 jnthn TimToady, others: Some food for thought on a spec/implementation change I think may be a good idea: https://gist.github.com/4597127
18:42 dalek perl6-roast-data: 678daac | coke++ | / (4 files):
18:42 dalek perl6-roast-data: today (automated commit)
18:42 dalek perl6-roast-data: review: https://github.com/coke/perl6-roast-data/commit/678daac7bb
18:43 rjbs colomon: Nice. The temps I gave are also predicted highs, but you still win!
18:43 FROGGS jnthn: there will be an impact of the ecosystem at all?
18:43 colomon It was more like -16°C when I took Henry to preschool this morning.
18:45 colomon not fun.
18:45 [Coke] jnthn++
18:47 colomon jnthn: I've got nothing against your suggestion, but I'm not sure I understand why it makes optimizations easier?
18:48 moritz colomon: in general it's easier to reason about subs than about methods at compile time
18:48 moritz colomon: because subs are lexical, and lexpads are immutable at run time
18:49 moritz colomon: and even though you often know a type constraint at compile time, the runtime object might be that of a subtype, and have a different method of the same name
18:50 moritz so, I'm +1 too. And I left a comment on the gist
18:51 colomon Ah.  So a piece of code can only dispatch to multi subs it knows about at compile time, yes?
18:52 colomon it's sort of the opposite of the lift problem.
18:52 moritz well, you can still do stuff like
18:52 moritz my &c := $obj.give_me_some_mutlis; c(|args)
18:52 jnthn FROGGS: There will be, but only for things that implement custom array/hash types byu overriding postcircumfix.
18:53 jnthn FROGGS: NativeCall's CArray is possibly an example but I'd have to look to be sure. The benefit of these changes is that I could make working with CArray things more efficient.
18:54 jnthn colomon: It is basically what moritz++ said - the lexical nature of sub calls means we can do a lot more with them at compile time.
18:54 flussence I like the proposal. There's one downside in that people using custom postcircumfixes will need to modify their code... but I doubt that's a lot of people, if any
18:54 jnthn flussence: Yeah, it's not zero impact but it's relatively low.
18:56 jnthn I've been pondering how to efficiently do compact arrays for a while, and this change helps a lot. I'm struggling to see how to do it without huge amounts of runtime dynamic optimization with the current way things are factored.
18:56 * colomon is still pondering the theoretical limitations involved -- but didn't everyone normally override at_pos anyway?
18:57 jnthn colomon: Overriding at_pos is the normal way imo
18:58 jnthn colomon: If you knew that for your particular type you can implement slicing a LOT more efficiently than doing repeated at_pos calls for each element, then today you'd do it by writing a postcircumfix method to handle the slice case.
18:58 jnthn colomon: With my proposed change you can still do that, you just write/export a multi.
18:59 jnthn So far as I can tell, my proposal doesn't lose us any capabilities, it just changes the way things are organized to be more friendly to analysis.
19:00 colomon jnthn: but you'd lose the ability to use that optimization in code which was compiled not knowing about the optimization ahead of time, yes?
19:00 xinming joined #perl6
19:00 thou joined #perl6
19:00 colomon it seems like you're trading a rare optimization chance for a common one.
19:00 jnthn colomon: Not quite sure I follow; multi candidate lists are immutable by CHECK time, which is when the optimizer runs.
19:01 jnthn Maybe I'm missing it but I'm not immediately seeing the case where things get less optimizable.
19:02 colomon jnthn: If I write a module which uses [ ], it will only be able to use versions of [ ] it knows about at compile time, right?
19:02 moritz correct
19:03 jnthn colomon: Yes, but OTOH if you have a type that you've imported which overrides at_pos, it'd be odd to import the type without importing its postcircumfix overrides.
19:03 moritz though [ ] again re-dispatches to AT_POS, which is not fixed at compile time
19:03 jnthn I mean, I'd expect you'd have to go out of your way to do that.
19:04 jnthn A "use ThisModuleWithACustomArray" would presumably export both things by default.
19:04 jnthn moritz: yes, I'm not proposing that at_pos becomes a sub. That stays as a method for sure.
19:04 timotimo does this proposed change affect the spec? doesn't seem so to me at first glance
19:05 jnthn timotimo: Yes, it does. This is somewhat user facing.
19:05 moritz well, if it's not specced whether postcircumfixes are subs or methods, then it's a glaring omission from the spec
19:05 colomon but if you also did "use ThisModuleWhichUses[ ]SlicesALot", it wouldn't suddenly gain the stuff ThisModuleWithACustomArray exported, would it?
19:05 moritz (which might well be possible)
19:05 jnthn colomon: No, due to separate compilation.
19:06 colomon jnthn: right, that's the optimization loss I'm commenting on.
19:06 colomon (the lost chance to use a custom [ ])
19:06 timotimo OK
19:06 colomon custom optimized [ ], I mean.
19:06 jnthn colomon: ah, you're saying if the thing was passed into a module with a different set of postcircumfix things in scope?
19:06 jnthn Yes, you're right.
19:06 colomon right.
19:07 jnthn But that's the same issue we have with all the other operators.
19:07 colomon I'm sensitive to this because I got burned badly in Vector operator + (etc)
19:08 jnthn I'm guessing that was a case of "I want lift here"?
19:08 colomon jnthn: right, I'm not seeing this as a show-stopper to your proposal; I think the trade off is probably worth it, from what you've described.
19:08 colomon jnthn: right
19:08 jnthn colomon: Yeah, it is a very good point, though.
19:09 jnthn OK, I need food :)
19:09 jnthn bbiab
19:10 colomon I mean, losing a rare optimization to gain one which is very common seems like a sensible choice.
19:11 timotimo i've been wondering about "how can we tell a * or a Junction to tell what its scope is". the only sensible solution i came up with was a block with a $_
19:12 timotimo i.e. 10 < * < 20   →  { 10 < $_ < 20 }
19:13 ermlich joined #perl6
19:13 spider-mario joined #perl6
19:20 Harzilein moritz: okay, compiled it. is there something akin to perlbrew that will set up paths to point to ~/rakudo/install/*?
19:21 FROGGS Harzilein: no, there is no command line util that let you choose a specific rakudo and set paths
19:31 Chillance joined #perl6
19:32 Harzilein FROGGS: well, i don't really need to do much choosing
19:32 Harzilein FROGGS: just system perl6 vs. git perl6
19:32 Harzilein FROGGS: but i guess if such a thing existed you'd have mentioned it as well
19:32 Harzilein FROGGS: :/
19:33 FROGGS Harzilein: symlink is your friend I suppose
19:41 timotimo tadzik: what keeps your MPD module from working properly? is it just more functions that need to be copypasted into the file?
19:45 tadzik timotimo: I guess so
19:45 tadzik I didn't try it for some time
19:45 tadzik it may be still functional
19:45 timotimo it shows in the commit log ;)
19:46 tadzik oh, and I felt uneasy with the lack of destructors in Perl 6
19:46 timotimo oh? is that a big problem?
19:46 tadzik so it may^Wwill leak memory :/
19:46 timotimo will perl6 be destructorless forever? o_O
19:46 tadzik well, I hope not
19:47 timotimo nothing in the specs yet?
19:47 tadzik but so far the talk was "well, the spec is unimplementable given the GC we have"
19:47 tadzik the spec expects some certain object destruction order
19:47 tadzik that doesn't play well with the fact, that GC never promises anything relating the destruction of objects
19:48 timotimo it will be better with the jvm!
19:48 tadzik well, would it?
19:48 timotimo i ... guess?
19:48 diakopter no.
19:49 tadzik iirc java lets you specify a destructor for native objects, but still doesn't guarantee order
19:49 tadzik so we'll not be to-spec anyway
19:49 tadzik perhaps the spec should be revised
19:49 timotimo oh, well :|
19:50 diakopter it's hard to schedule destructors. should they run in a separate thread?
19:50 masak if you ask me, we should run the heck away from destructors and DESTROY (the underlying theory of which is fundamentally flawed) and look more towards C#'s IDisposable and the 'using' statement.
19:51 timotimo sounds like a good itea
19:51 masak good. it's settled, then.
19:51 diakopter :)
19:51 tadzik I wish :)
19:53 masak heh. I was kidding, but your treating it as a joke still annoys me. :P
19:53 * masak laughs at his brain
19:53 tadzik I was hoping you're serious
19:53 masak I am serious.
19:53 masak but I agree we should decide a bit more slowly than that :)
19:54 diakopter You're seriously kidding?
19:54 tadzik :D
19:54 masak almost always.
19:54 masak I believe DESTROY methods make sense in a refcounted world such as Perl 5's. even there, they are slightly unpredictable.
19:55 timotimo yeah, ask the pypy people about thear experiences
19:55 masak one of the biggest problems with them is that they almost always run at a time where the immediate surroundings are crumbling around the object being destroyed.
19:55 moritz with a GC, in which dynamic scope is a destructor run?
19:55 masak oh, you meant to use that attribute? sorry, we GC'd it already.
19:55 moritz if it throws an excpetion, where can you catch it?
19:55 masak that problem is called something, maybe the zombie destructor problem or sump'n.
19:56 masak "object resurrection" https://en.wikipedia.org/wiki/Finalizer
19:56 masak please to use this instead: https://en.wikipedia.org/wiki/Dispose_pattern
19:57 FROGGS I just hate GC's when it comes to threads, without theads Perl 5's model is pretty decent to me
19:57 moritz and if you have no cyclic object graphs
19:58 masak I think the age of refcounting GCs is over. or should be.
19:59 benabik Java provides in-GC finalizers.  But they're not guaranteed to be called.
20:00 benabik Heh.  And runFinalizersOnExit is depreciated without replacement.
20:00 benabik iOS uses refcounting.
20:01 benabik Primarily because a real GC was found to be too expensive.  So Apple added techniques to the compiler to automate refcounting.
20:01 tadzik Vala \o/
20:02 tadzik and, hm, Perl 5 \o/
20:02 masak here's the thing that makes me not like DESTROY (and Java's equivalent). they're not guaranteed to be called, or not guaranteed to be called in a timely manner. so, if you care enough to use them, almost by definition you're leaving your important code to a bad custodian.
20:02 masak that's what appeals me about the dispose pattern.
20:03 benabik masak: +1
20:04 tadzik hrm. It may be funny to supply your own malloc() to the C resources, via some LD_LIBRARY hack
20:04 tadzik which will be GC-friendly
20:07 benabik Sounds fragile.
20:08 benabik I know OS X links the full paths of libraries, so it's more difficult to spoof.
20:17 vividsnow joined #perl6
20:24 * skids googles "real-time GC" in a sudden fit of masochism.
20:26 avay joined #perl6
20:27 masak hey peeps, are you up for a mini-challenge? :)
20:27 avay how can i parse a rtf file,please help
20:27 FROGGS if it is really "mini", then yes :o)
20:27 masak avay: https://metacpan.org/module/RTF::Parser
20:28 moritz avay: you read the specification, and build a parser according to the specification
20:28 masak FROGGS: oh, it's so small.
20:28 avay hi FROGGS!!!
20:28 FROGGS hi avay
20:28 skids 42. next question.
20:28 masak avay: or you read the specification, and then you act like a parser.
20:29 avay specification of rtf?
20:29 * masak skips all sarcastic responses to that
20:29 FROGGS sure, formatting codes for eample
20:29 masak avay: yes.
20:29 avay okkk
20:29 masak ok, here's the mini-challenge.
20:30 masak back in 2011, BooK was doing Sierpinski triangles in git.
20:30 masak yes, you read that right.
20:30 moritz https://en.wikipedia.org/wiki/Rich_Text_Format#External_links has links to the specs
20:30 avay lemme give a try ...anyways thank you all
20:30 masak he synthesized commits whose parent links made up a Sierpinski triangle.
20:31 moritz people do the strangest things :-)
20:31 masak anyway, he said he had failed to find a recursive algorithm that would generate a Sirepinski graph of "order N" (i.e. consisting of three order-N-1 Sierpinski triangles)
20:31 masak so naturally, I tried.
20:31 masak I almost succeeded. I have the old implementation in Perl 6 if someone wants to look.
20:32 masak I know the "trick": it's that you need two mutually recursive routines.
20:32 masak one that produces a complete Sierpinski triangle, and one that produces a "chipped" one, missing its bottomest node.
20:32 masak because the chipped one is the fundamental recursive unit to make the three smaller Sierpinski triangles glue together.
20:33 masak here, a gist may help: https://gist.github.com/4598144
20:34 masak the 1s are created first, then the 2s, then the 3s.
20:34 masak (they have to, because a git commit has to be created immutably after its parents)
20:34 masak it's a fun problem, give it a shot! :D
20:34 masak of course, doing it with an actual git repository is optional.
20:35 masak the main idea is the topology of the nodes.
20:36 masak FROGGS: see? "mini" :)
20:36 FROGGS hehe
20:36 FROGGS well
20:38 * skids tries to figure out why 1 gets to stomp on 2 and 3's shared vertices but 3 gets to stomp on 2's.
20:40 masak skids: I hadn't thought of it before, but it seems one has a choice whether to make 1 chipped or not.
20:40 masak if one makes 1 chipped, then 3 can stomp on 1 instead of vice versa.
20:40 masak maybe that'll be a simplification, I dunno.
20:40 skids It just didn't seem logical unless the algorithm was working from both ends.
20:42 masak please tell me which stomping order you'd prefer.
20:42 moritz the one where I'm on top :-)
20:45 skids I suppose it doesn't matter.  Though I guess if you had rock-paper-scissors that would be a different algorithm.
20:48 masak skids: well, I agree that it's conceptually impure that 2 gets stomped on by both 1 and 3.
20:48 * masak tries to fix it
20:49 masak skids: yes, it's fixable: https://gist.github.com/4598144
20:50 moritz r: https://gist.github.com/4598144
20:50 timotimo i'm not sure why panda takes 3.15 seconds to do nothing at all :|
20:50 p6eval rakudo a26956:  ( no output )
20:50 masak skids: 1 now gets stomped on by both 2 and 3. 2 gets stomped on by 3. 3 is the complete subtriangle, instead of 1.
20:51 masak skids: conceptually, 2 is chipped and 1 is "doubly chipped".
20:51 masak argh, no. that doesn't work. :(
20:51 vividsnow joined #perl6
20:51 masak (because of the node that belongs to 2 instead of 1)
20:52 masak (it needs to be created with the rest of the 1 triangle)
20:53 masak ...so we're back to both 1 and 3 stomping on 2. it seems inevitable.
20:58 thou joined #perl6
21:00 luisma joined #perl6
21:01 masak luisma: greetings.
21:02 luisma left #perl6
21:03 skids Wouldn't the same apply to the node owned by 3 instead of 1?
21:05 masak no, because it doesn't have any descendands belonging to 1.
21:05 masak descendants*
21:05 skids so 1 stomping 2 stomping 3 wouldn't be consistent?
21:06 masak here's the rule we must uphold: no child can be created before its parent.
21:06 masak it's really a topological sort problem if you think about it.
21:06 masak but it *feels* very amenable to recursion.
21:07 skids Ah.  So you don't really want just a "graph" you specifically want a tree + crosslinks.  I see.
21:07 * jnthn back
21:08 masak skids: well, I want a DAG à la git.
21:08 masak skids: that is, the edges are directed, pointing upwards from child to parent.
21:09 skids And the edges between siblings...?
21:09 skids Or do we just omit those/
21:10 masak not sure what you mean. there are no sibling links.
21:10 masak all the edges point upwards.
21:10 masak from child to parent.
21:10 skids Only because you've rotated the triable 30 degrees :-)
21:10 masak a child may have 0, 1, 2, or 3 parents.
21:10 skids erm triangle
21:11 masak yes, sorry, but the orientation is part of the problem specification.
21:11 masak there are no edges between siblings.
21:11 skids OK, that makes things much clearer :-)
21:11 masak *phew* :)
21:12 masak ooh, I bet I could solve this nicely with recursion and HOP functions. :)
21:13 masak so a chipped triangle is a function which expects a node and returns a complete triangle :)
21:13 skids Maybe just rename 2<->#
21:13 skids erm 3.  why can I not type.  Oh It's 4:30.  that's why.
21:14 masak no, 3 must be created after 2 because the rightmost node of 3 has parents both in 2 and 3.
21:19 masak if you squint on the level of recursion 1 is a parent to 2 and 3, and 2 is a parent to 3.
21:21 vividsnow joined #perl6
21:25 sjohnson joined #perl6
21:32 donaldh joined #perl6
21:40 jnthn hotel bar = comfy seat + table + pale ale \o/
21:41 diakopter \o/
21:41 jnthn ...ok, average pale ale. ;)
21:41 jnthn Still much better than lager :)
21:44 sorear Hopefully there is a glass of some kind involved.
21:45 masak or at least a concave vessel.
21:46 timotimo maybe they serve their beer in klein'sch bottles
21:46 * masak is the proud owner of one
21:46 jnthn There is indeed a class
21:46 jnthn er, glass
21:46 masak it's darn tricky to clean, I tell you.
21:47 jnthn ...dammit, that's what happens if I talk about beer whlie spec'ing 6model design :P
21:51 * masak tries and fails to pun on MOPs and hops
21:51 * [Coke] can barley keep up with regular perl6 dev.
21:52 arnsholt jnthn: Regarding your proposed spec change (which sounds reasonable enough to me, FWIW), is a native array a my int @array or my CArray $array?
21:53 jnthn I was thinking of "my int @array" but my CArray $array would be able to take advantage also
21:54 arnsholt Yeah, I figured it would be the former, but wasn't sure
21:54 jnthn Well, the latter is a native array too :)
21:55 arnsholt I noticed that Rakudo has an int1 type the other day and got to musing how my int1 @array should be represented as a bit vector in the ideal case
21:55 jnthn Yeah.
21:55 jnthn Ideally :)
21:56 jnthn I'm pondering how to factor all of that stuff and make sure there's enough to optimize things well
22:06 timotimo tadzik: do you think using explicit deallocation functions for MPD would be acceptable?
22:07 tadzik timotimo: that's what I was using, iirc :)
22:08 timotimo oh, right. but will that still leak memory if used right?
22:09 tadzik I don't think so, no
22:09 tadzik you'll explicitely call free(), that shouldn't leak
22:20 dalek nqp: 93b13be | jonathan++ | docs/6model/repr-compose-protocol.markdown:
22:21 dalek nqp: First crack at spec'ing REPR compose protocol.
22:21 dalek nqp: review: https://github.com/perl6/nqp/commit/93b13be2df
22:30 dalek nqp: fc24b09 | jonathan++ | src/QAST/Operations.nqp:
22:30 dalek nqp: Add compreg and [get|set]_hll_global abstractions.
22:30 dalek nqp:
22:30 dalek nqp: We're not going to provide full on namespace support in the nqp:: ops.
22:30 dalek nqp: However, we will provide languages with a global place to stash stuff.
22:30 dalek nqp: They can hang their idea of namespace off that or any other useful
22:30 dalek nqp: things (for example, NQP and Rakudo use it to stash their module
22:30 dalek nqp: loader).
22:30 dalek nqp: review: https://github.com/perl6/nqp/commit/fc24b094a1
22:37 vividsnow joined #perl6
22:43 dalek nqp: ea37f39 | jonathan++ | src/ModuleLoader.pm:
22:43 dalek nqp: First pass at ModuleLoader portability.
22:43 dalek nqp:
22:43 dalek nqp: Doesn't do all the things, and some amount of this is going to have
22:43 dalek nqp: to be VM specific anyway. But this at least starts to clean up some of
22:43 dalek nqp: what can be stored.
22:43 dalek nqp: review: https://github.com/perl6/nqp/commit/ea37f39cf5
22:44 jnthn 'night, #perl6
22:53 snoopy joined #perl6
22:55 countley joined #perl6
22:56 countley rindolf : how are you
22:56 rindolf countley: I'm fine. Trimming my inbox.
22:58 countley you must be a perl master by now
23:01 rindolf countley: well, I'm not much of a Perl 6 master.
23:02 masak never too late to start.
23:03 countley rindolf ive just been exploring linux for the past few years i stopped  programming but maybe next year ill start again
23:04 rindolf countley: ah.
23:04 rindolf masak: right.
23:04 * masak has trouble imagining not doing programming on a regular basis
23:04 masak I think I would feel... empty, somehow.
23:05 countley masak: lol
23:05 countley i compensate that with abit of bash scripting
23:09 masak :)
23:09 masak "I don't program often, but when I do, I do it in bash." :P
23:13 thou joined #perl6
23:32 donghongbo joined #perl6
23:39 skids joined #perl6
23:50 kivutar joined #perl6

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

Perl 6 | Reference Documentation | Rakudo