»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, std:, or /msg camelia p6: ... | irclog: irc.perl6.org | UTF-8 is our friend!
Set by moritz on 25 December 2014.
japhb lizmat: re: p6weekly, The low-level concurrency test that crashes does so on *nqp-j*, not *nqp-p*. 00:01
On nqp-p, all of the concurrency tests should gracefully exit with a skip message. 00:02
vendethiel masak: Shen is going BSD :-) 00:17
masak vendethiel: "Shen"?
vendethiel masak: lisp with incredibly nice type system :p 00:18
masak oh, rings a weak bell.
vendethiel masak: org
well.
masak what does "going BSD" mean in this context? gains BSD support?
vendethiel masak: www.shenlanguage.org/ better with full link
masak: open-source license ahead. code source and all
masak ooh! 00:19
right. licensing.
what was it before? closed?
vendethiel masak: the source code was very, very old, back when it was called Qi
masak oh, Shen === Qi. got it. 00:20
vendethiel masak: groups.google.com/forum/#!msg/qila...LaUdEFwXAJ
00:20 jack_rabbit joined
masak I was just thinking of macros, in a 007 context. 00:20
I think I've discovered an important phenomenon, which I've provisionally called "stuttering".
it doesn't happen in Lisp, because Lisp doesn't really have grammatical categories like Perl 6 and 007 do. 00:21
vendethiel my keyboard does that as well :)
masak reason it happen is this: say `foo()` is a macro call. it expands to a statement. that means a statement just expanded into the slot of an expression. 00:22
in 007, that means Something Bad Happened.
because statements can contain expressions, but statements cannot (arbitrarily) contain statements.
so I think some part of the macro expansion has to go "ok, this came out a little wrongish, but we can fix this if we're just a wee bit lenient..." 00:23
moritz why does the macro call expand to a statement?
masak because a quasi block evaluates to an actual block is a statement.
(sorry for writing using chaining verbs. it's late.) 00:24
moritz in p6, blocks are expressions, right?
so it's a 007-only problem, I hope 00:25
masak I suspect this is one of those cases where it depends on your definition of "are".
anyway, it might be 007-specific in this case, but I think it's worth investigating.
007 is a small, closed universe, which might give clues about how to lay out macros in Perl 6. 00:26
vendethiel doesn't really follow
007 is your perl6 macro thing?
masak oh, it's a little language sergot++ and I built over Christmas.
masak.github.io/007/
vendethiel found it :)
vendethiel had a cat on his lap with a nice chair yesterday, felt like a bond villain 00:27
masak I should add that 007 hasn't really reached its full potential yet. I feel about a dozen commits away from that.
moritz masak: well, in p6 we even have a syntax thingy for turning statements into expressions, so the distinction seems to be syntax-only
vendethiel okay, looking at what 007 does 00:28
masak moritz: I think we're heading in a direction where in macros we need to care more about what the thing is we're inserting, and what the slot is we're inserting it into. at least the parser will want to care a lot. 00:29
moritz masak: that's possible
masak moritz: the trick is how to do this without it feeling restrictive/draconian to the user. grammar category stuttering sort of explores that a bit.
it'll *definitly* be possible to insert a program fragment that doesn't fit. the compiler should complain in that case. 00:30
like, what if you did `foo() + foo()`, with the `foo` macro expanding to a statement? 00:31
now you have an expression with a binary operator adding two statements. bzzt.
adu r: @("a", "b").join()
vendethiel masak: so, it's "only" to try your Q:: AST you described me earlier? amazing!
camelia ( no output )
adu r: say @("a", "b").join()
camelia rakudo-{parrot,moar} 80b912: OUTPUT«ab␤»
masak vendethiel: yes! 00:32
vendethiel okay, very glad that comes into form
masak vendethiel: it's one big laboratory for playing with Q::
vendethiel s/form/shape. pardon my french
masak patches awesome^Wwelcome
00:33 adu left
masak another piece of terminology that has fallen out of 007 (but that I sort of mentioned on the channel while 007 was still secret): parsed ASTs versus synthetic ASTs. 00:34
a parsed AST is one that comes from parsing code. like, with a quasi, or parsed as a macro parameter.
00:35 sirdancealot joined
masak a synthetic AST is one that you painstakingly put together by calling constructors on Q:: things. 00:35
vendethiel
.oO( syntactic AST )
^ which is why you want quoting :P
00:35 gfldex left
masak the distinction is important, because some checks happen at parsing, and presumably synthetic ASTs will have to do those checks "later". like, at insertion time. 00:35
00:36 gfldex joined
masak from what I can see with my limited, not-standing-on-giants'-shoulders vision, synthetic ASTs also don't carry around an environment. 00:36
(because you built them, and you didn't supply one.) 00:37
vendethiel masak: you need some kind of environment for certain types of check, like type checking and other stuff 00:38
masak oh, I'm not disputing that one bit.
I'm just saying that synthetic ASTs are (sadly) born without them. so it goes. 00:39
moritz I guess synthetic ASTs get their environments from the macro call site
vendethiel well, you *need* to "pass" them somehow ;-)
masak they have to be *given* an environment ALAP as they are inserted in some place.
what moritz++ said.
vendethiel scala macros carry around an "universe"
moritz so that a Q::Var(:name<$blerg>) is like COMPILING::<$blerg>
masak yeah, seems so. 00:40
interesting.
moritz is there a Q::Scope or so that introduces a new scope? 00:41
masak (wanted: a verb describing the process of carrying out all the checks that the parser usually does, such as variable/type/function consistency, but that was never done one a synthetic AST until now.)
moritz: in 007? nope.
moritz I'm thinking of ways to create macro-private variables in synthetic ASTs without resolving to gensymming 00:42
"deferred checks"?
well, more like "deferred checking"
masak ok, provisionally accepted. 00:43
00:44 araujo left 00:45 araujo joined
masak I was thinking of something like "temper" or "toughen". the problem with arbitrary synthetic ASTs is that they are too "soft". 00:47
interestingly, we have this problem in the 007 test suite, completely orthogonally from macros.
right now parsing is responsible for creating static lexpads -- the deferred checks process would need to do that, too. 00:48
moritz note that rakudo also only catches some form of undeclared symbol usages in the optimizer 00:49
masak that's news to me but I'm not surprised.
moritz usage of undeclared subroutines, iirc 00:50
hm, nope
vendethiel is too tired to follow
masak thank blog for backlogs :)
masak will likely backlog this tomorrow
moritz tried to sleep, without much success :( 00:51
masak aww
actually, "checking" is probably the ideal term for what we're doing with the synthetic ASTs. because it ties in very well with the CHECK parser. 01:16
Mouq masak: [007] "There is a difference, though: subroutines can return values, and blocks can't." does this mean that, unlike subs, blocks should return the last value by default? 01:18
masak Mouq: no. 01:19
Mouq: blocks always "return" None.
Mouq So how do you write a map? 01:20
masak Mouq: but (borrowing terminology from Perl 6 here) blocks don't really have a "return" operation at all. they just "leave". and in 007, they always "leave" None.
Mouq: you pass the map a sub.
Mouq: the only reason we have blocks in the first place is that they show up all over the place anyway. in `if`, `for`, `while`, etc. 01:21
Mouq: but note that we don't expect any of those to have their own `return` operation.
01:21 adu joined
masak when they do (as with loops), they are called other things, with other keywords. 01:21
vendethiel how hard would it be to implement "leave" :-)?
masak vendethiel: hard. 007 doesn't expose control flow. 01:22
vendethiel in perl6, I mean
.oO( did I mention you have to decrypt what I'm saying, for once? )
masak I think Niecza might have it.
n: say "OH HAI"
camelia niecza v24-109-g48a8de3: OUTPUT«(signal ABRT)Stacktrace:␤␤ at <unknown> <0xffffffff>␤ at (wrapper managed-to-native) object.__icall_wrapper_mono_gc_alloc_string (intptr,intptr,int) <0xffffffff>␤ at (wrapper alloc) object.AllocString (intptr,int) <0xffffffff>␤ at string…»
masak o.O
moritz vendethiel: just a bit of codegen
masak: so return() from a block in 007 returns from the outer routine? 01:23
masak yep.
that's even mentioned in masak.github.io/007/
which also means you can have the "stale subroutine" issue in 007.
Mouq masak: K, well, just saying that ATM, you can't do, e.g., `map(sub { return 42 }, range(0, 20))` because sub is statement-level. Also because they can't be anonymous 01:24
masak (subroutine returns an inner block, inner block contains a `return`, gets called, `return` has to fail because subroutine already exited)
Mouq: all part of the plan.
Mouq k
masak Mouq: the invoncenience is there because 007 is not Perl 6. :)
Mouq: Perl 6 goes out of its way to be convenient to the user. 01:25
007 is convenient to the person thinking about ASTs. :)
Mouq masak: Fair lol, I just expected it to be more FP-oriented for some reason
masak it is, but it has its own sort of harsh austerity to it.
Mouq Gotcha :) 01:26
masak I think the strict distinction between statement and expr will serve us well in the end.
it will force us to consider certain boundaries sooner than if the language were more lax.
Mouq masak: I have a lot of nit-picky questions I could spam you with :9 But one thing I'm not sure I totally get is why are there so many Q:: classes? 01:34
01:35 yeahnoob joined
Mouq masak: For example, with whatever syntax is come up with for it, when a user adds an infix (I assume such a thing would eventually be possible) do they have to create a Q::Infix::* class as well? 01:35
masak they don't have to. 01:36
this is where macros and slangs diverge, IMHO.
Mouq okay 01:37
masak as a Perl 6 end user, you just want to declare your awesome operator and get on with life. you decidedly don't want to mess with declaring new Q:: types.
which means you get some kind of default under the hood. probably a generic Q::Infix of some kind. 01:38
but as a slang author, you emphatically *do* care about Q:: types, and about creating your own.
why? because you're probably gonna grep for them a lot in your own slang analysis code. 01:39
adu Mouq: also, I noticed you're following C::Parser
masak Mouq: you're correct in observing that the more specialized operator Q:: classes are strictly unnecessary.
Mouq: the (unproven) idea behing that is that they're good handles for grepping. 01:40
Mouq: i.e. it's more conenient to grep for `Q::Infix::Concat` than it is to grep for `Q::Infix where { .type eq '~' }` 01:41
01:41 Hor|zon joined
lue masak: I have to say, I think that's the first time I've heard of a language feature being designed with external utilities in mind :P . 01:44
masak not really "external". 01:45
remember, we're changing our Perl 6 program from within Perl 6 here.
that's what macros are, basically.
if they aren't that, then they're really no better than functions. 01:46
lue I was referring to <masak> Mouq: the (unproven) idea behing that is that they're good handles for grepping.
01:46 Hor|zon left
masak aye. 01:46
I mean grepping from inside of a macro in Perl 6 code. 01:47
sorry if that was unclear :)
well, s/Perl 6/007/ in this case.
but the same principle applies for both languages.
adu masak: I personally divide the world of programming into 4 distinctions: run-time expressions, declarations for run-time expressions, compile-time expressions, and declarations for compile-time expressions. 01:48
Mouq I was going to suggest something like Q::Infix['~'] being the Q::Infix role/trait implemented for '~', but I was confusing my object systems :P
masak adu: curious. I'll have to mull over that, I think.
Mouq: also, that's not gonna cut it if you have two different infix:<~> operators defined in different scopes. 01:49
lue To me, where { .type eq '~' } feels like you're doing something underhanded somehow, not so with ::Concat
adu masak: they correspond roughly to expressions, declarations, macros, and macro-transformers respectively
masak Mouq: the symbol is not a unique-enough distinguisher for the operator.
Mouq masak: Yeah
moritz masak: the usual lookup rules apply, no?
masak lue: indeed -- see my last point to Mouq.
moritz: well, the problem (as usual) is that you're in two places at once: in the macro, and in the code being analyzed by the macro. the "default" lookup is from the macro itself, which is probably not what you want. 01:50
lue But with Q::Infix::Concat, how would user-defined operators be referred to? Would have to make Q::Infix::Foo yourself?
masak adu: interesting.
lue s/Would have/Would you have/ 01:51
Mouq adu: Though "compile time" is even more divided here between "parse time" and "ast-building time"
masak lue: yeah. haven't really thought that through.
adu Mouq: oOo
masak lue: the "logical" place to introduce the Q:: type would be with the definition of the new operator. but I'm not sure if that's a great idea.
lue: also, funnily, 007 can't declare new types yet. 01:52
adu Mouq: theoretically, any time a representation of a program is "touched" could be a chance to attach actions
01:53 tinyblak left
lue Q::Infix<~> may not be unique enough, but that doesn't seem any worse than sub operator:infix<~> on the surface. 01:53
masak Mouq: currently in 007, AST building (and macro calls with their own AST building) happens as part of the parsing, not as a separate step. 01:54
Mouq adu: True. C, for example, has it's Preprocessor stage as well
01:54 tinyblak joined
masak lue: the problem, as I mentioned to moritz, is that you're not *in* the environment you're analyzing. so lookup doesn't necessarily go to the right place. 01:54
adu Mouq: Scheme and Rust both have excellent macro transformers 01:55
masak lue: put differently, doing `&infix:<~>` in the program that the macro analyzes might give a different operator than doing `&infix:<~>` from the macro code.
adu Mouq: C has a pretty bad macro transformer 01:56
lue masak: Yeah. That suggests to me that things like operators may naturally require more information, unless there was some sane way of generating a default name (perhaps Q::Infix::Foo.pm6::L42 ??)
Mouq masak: Maybe <~> wants to be namespaced, in that case
masak lue: the name isn't necessary. there will always be a long way, like `Q::Infix where { ... }` 01:57
lue: it's just that we provide convenient hooks for the operators that we know are there in the core language.
moritz masak: I wonder how well you get along with the current model, and if at some point you'll have to stick a pointer to the environment into the Q:: nodes 01:58
masak lue: of course, as always, we like to make it possible for the library author to feel that they are playing by the same rules as the language authors.
lue admittedly hasn't looked at 007 and related all that closely yet, she's just working from what's been mentioned so far :P .
masak moritz: yes. that's what the `check` discussion was about.
moritz masak: so that you can do a $q.scope.lookup('infix:<~>')
lue Hearing that the where {...} will be available anyway makes me feel better about the various names the builtins would get :) .
masak moritz: the main insight in the past few days is that synthetic ASTs were not created biologically, so they need to have an environment inseminated into them by artificial means. 01:59
moritz: a ghost in the shell, if you will.
adu masak: one of the reasons why I don't distinguish between expressions and statements is that there are too many places to "draw the line", for example, do you draw the line in the fact that statements have no return value? or the fact that expressions can be pure of side effects? or that statements generally require access to variable names, or at least mutable variables, but if the object is changing and not the variable, then statements 02:00
are equivalent to lambda calculus...
moritz cells without connective tissue
masak yeah.
adu: all very good points. 007 is unapologetic in its opinions there.
it strikes a balance that makes it easy to implement and do AST manipulations. 02:01
adu masak: but decls are funky, you can't wrap up the universe in a lambda 02:03
masak can I ask you to be more concrete? how is this a problem? 02:04
adu so, when you declare something, you are creating a binding to an identifier, and the scope of that identifier is usually everywhere (minus all of the package/module stuff) 02:05
with lambdas, the scope identifiers for the parameters are bound to is the lambda body 02:06
dalek ecs: 48af140 | TimToady++ | S02-bits.pod:
Mention unspace disallowed in regex (except \#)

The current engine disallows unspace in regexex as too ambiguous. This is fine for actual whitespace, but is counterintuitive when people try to backslash the # character. So \# is now specifically allowed to match a literal # character.
adu masak: hence, you can't wrap up the universe in a lambda
Mouq TimToady: Ooo
dalek p: b0a2372 | TimToady++ | src/QRegex/P6Regex/Grammar.nqp:
Allow \# in regex to match '#'
02:07
ast: b108dab | TimToady++ | S02-lexical-conventions/unspace.t:
Test that \# is allowed in regex, and means '#'
masak adu: ok, I'll have to mull over that, too.
:) 02:08
'night, #perl6
adu :)
Mouq 'night masak
vendethiel 'night!
dalek kudo/nom: 2165a69 | TimToady++ | tools/build/NQP_REVISION:
bump nqp
adu anyways, classes and modules are examples 02:09
lue masak o/ 02:10
02:18 chenryn joined 02:23 rmgk_ joined, rmgk left, rmgk_ is now known as rmgk
moritz TimToady++ 02:23
it always felt weird that you could backslash non-word characters n regexes, except # 02:24
02:51 kurahaupo1 joined 02:57 kurahaupo1 left 02:58 yeahnoob left 03:09 raiph left 03:11 yeahnoob joined, yeahnoob left 03:12 yeahnoob joined, yeahnoob left, yeahnoob joined 03:13 yeahnoob left, yeahnoob joined, yeahnoob left 03:14 yeahnoob joined, yeahnoob left, yeahnoob joined 03:15 yeahnoob left, yeahnoob joined, yeahnoob left 03:16 yeahnoob joined, yeahnoob left, yeahnoob joined, yeahnoob left 03:17 yeahnoob joined, yeahnoob left, yeahnoob joined, yeahnoob left 03:18 yeahnoob joined, yeahnoob left, yeahnoob joined 03:19 yeahnoob left, yeahnoob joined, yeahnoob left, yeahnoob joined 03:20 yeahnoob left, yeahnoob joined, yeahnoob left 03:21 yeahnoob joined, yeahnoob left, yeahnoob joined 03:22 yeahnoob left, yeahnoob joined, yeahnoob left, yeahnoob joined 03:23 yeahnoob left 03:30 Hor|zon joined 03:34 Hor|zon left 03:36 noganex_ joined 03:39 noganex left 03:40 fhelmberger joined 03:42 tinyblak left 03:43 tinyblak joined 03:44 fhelmberger left 03:48 konsolebox joined 03:50 adu left 03:56 kurahaupo1 joined 04:06 anaeem1_ joined, anaeem1_ left 04:07 ssutch joined, anaeem1_ joined 04:10 Rounin joined, raiph joined 04:17 kaleem joined 04:51 vendethiel left 04:52 Rounin left 04:56 hersoncr joined 04:58 hersoncr left 05:01 kaleem left 05:03 adu joined, chenryn left 05:06 tinyblak_ joined 05:08 tinyblak_ left, tinyblak_ joined 05:09 tinyblak left 05:10 tinyblak joined 05:13 tinyblak left, tinyblak joined 05:14 tinyblak_ left 05:19 Hor|zon joined, tinyblak_ joined 05:20 tinyblak_ left, tinyblak_ joined 05:22 tinyblak left 05:23 Hor|zon left 05:26 chenryn joined 05:33 raiph left 05:47 sirdancealot left 05:56 Rounin joined 06:10 adu left 06:12 sirdancealot joined 06:40 adu joined 06:49 mr-foobar left
FROGGS adu: v5 has a lot (about 500) packages as Perl5::* because these are Perl 5 core modules, like List::Util and so on... most of them are just stubs though atm 06:50
adu FROGGS: ok 06:51
FROGGS the slang itself is Perl5.pm (for registering a module loader, grammar and actions), Perl5/Grammar.pm, */Actions.pm, */ModuleLoader.pm and */World.pm 06:52
adu what is the purpose of World? 06:53
oh "class Perl5::World;"
I can do that
FROGGS it mostly acts as a collection of helper functions... finding lexical variables, declaring these, merging symbols etc
adu github.com/rakudo-p5/v5/blob/maste...5/World.pm 06:54
FROGGS normally you just need the Foo.pm, Foo/Grammar.pm and Foo/Actions.pm, at least for a start
adu FROGGS: ah, I call those modules {...}Utils
well, I would if I were to write one 06:55
my current Perl6 code probably has the God class anti-pattern
FROGGS adu: it also keeps some values, so it builds up our worlds (that architecture is taken from Perl6/rakudo directly)
adu so I got stuck on my C parser 06:57
it now parses about 25% of glib/gbytes.c, but it gets stuck on "struct _GArray { ... } GArray", but then when I put that declaration in a separate file with the appropriate typedefs, then it parses correctly, and so I ran the whole file again and it got stuck again, I'm so confused 06:59
it's almost like it's a buffer overflow problem
07:02 kaleem joined
FROGGS well, that's the problem of one pass parsing... probably this statement has several rules that could parse them, and the wrong one is picked 07:03
adu possible 07:05
07:08 Hor|zon joined
adu FROGGS: I think I've done a pretty good job 07:11
07:12 Hor|zon left 07:16 Mouq left
adu FROGGS: what is p6-Inline-C? 07:21
b2gills I think that most of the stub Perl5::* modules should just be removed, and have v5 try to load the ones that are actually written in Perl5 as a way of finding bugs ( at least initially ) 07:29
07:30 xfix joined
FROGGS b2gills: sort of, it helped having the stubs in place, to be able to run more of the spectest to get basic functionality in place 07:33
adu: it compiles a string of C to a dll, and makes it available via a perl 6 level subroutine
07:33 Sqirrel left
FROGGS adu: it passes it off to cc 07:33
adu hmm 07:34
b2gills The biggest problem I encountered was most Perl5 modules don't start with `use v5;`
07:34 Mouq joined
adu FROGGS: I wonder if it would be of any use to combine it with my C parser 07:34
FROGGS well, I can fudge them... or we recognize the semicolon form pf package declarators
of*
adu: it would be very sweet to not have to put the C code in a string, so yeah, that'd be awesome 07:35
brb
07:35 FROGGS left 07:41 FROGGS[mobile] joined
moritz \o 07:47
07:48 tinyblak_ left, rurban joined, tinyblak joined 07:54 FROGGS joined
FROGGS hi moritz 08:04
08:04 zakharyas joined 08:07 adu left 08:08 vendethiel joined 08:13 [Sno] left
moritz 4 hours of sleep is not enough for me :( 08:16
FROGGS :o( 08:19
08:19 darutoko joined
FROGGS I slept six hours on a beanbag chair, that's also not ideal as it turns out 08:20
08:27 yeahnoob joined 08:33 Mouq left 08:36 tinyblak left 08:38 Hor|zon joined
dalek c: ec60a18 | moritz++ | lib/Type/Supply.pod:
Supply: explain on-demand vs. live supplies

partially taken directly from S17
08:42
08:43 Hor|zon left 08:44 tinyblak joined 08:46 avalenn joined
arnsholt adu 08:53
Derp. Wifi hiccup 08:54
09:01 [Sno] joined
FROGGS pr0n 09:01
Ohh damn wigi hiccup :o) 09:02
wifi*
09:02 virtualsue joined 09:03 mvuets joined
lizmat japhb++ for pointing out nqp-j crashes concurrency tests, rather than nqp-p 09:04
09:08 Hor|zon joined, tinyblak left, tinyblak joined 09:19 molaf_ joined 09:23 molaf__ left 09:27 vendethiel left 09:29 sirdancealot left 09:32 vendethiel joined, yeahnoob left, dakkar joined 09:34 xinming_ left, xinming joined 09:37 xfix left 09:40 telex left, telex joined 09:47 rindolf joined 09:49 vendethiel left 09:50 bjz joined, tinyblak left, tinyblak joined 09:53 tinyblak left, tinyblak joined 09:55 bjz left 09:58 JimmyZ joined
btyler_ answering my own question from yesterday: the problem I was having with Inline::Perl5 not finding libperl.so was -actually- libperl.so being from a perl version that was too old (5.14.2). hooking everything up with 5.18.2 and I::P5 worked perfectly out of the panda-box. 09:58
10:00 tinyblak_ joined
btyler_ in particular, I::P5 looks for an identifier that's absent from 5.14's headers (av_top_index) but present in 5.18 10:00
10:02 tinyblak left 10:09 tinyblak_ left, tinyblak joined 10:18 bjz joined 10:28 Psyche^ joined, tinyblak left 10:29 tinyblak joined 10:32 cognominal left, Patterner left, cognominal joined 10:33 chenryn left 10:38 cognominal left 10:47 denis_boyun_ joined 10:49 chenryn joined 10:52 andreoss joined
andreoss grep {}, ... seems broken in latest build 10:54
m: my @x = grep {$_ < 5}, 1...100; say @x.perl;
camelia rakudo-moar 80b912: OUTPUT«Array.new()␤»
andreoss meanwhile 10:56
m: my @x = grep {$_ < 5}, @(1...100); say @x.perl;
camelia rakudo-moar 80b912: OUTPUT«Array.new(1, 2, 3, 4)␤»
psch m: my @x = grep {$_ < 5}, 1..100; say @x.perl 10:57
camelia rakudo-moar 80b912: OUTPUT«Array.new(1, 2, 3, 4)␤»
psch infix:<...> is lazy i think
although grep should probably reify that
m: say (1...100).grep: {$_ < 5}
camelia rakudo-moar 80b912: OUTPUT«1 2 3 4␤»
andreoss psch: i think it worked some time ago
FROGGS star-m: my @x = grep {$_ < 5}, 1...100; say @x.perl; 10:58
camelia star-m 2014.12: OUTPUT«Array.new()␤»
psch m: my @x = grep {$_ < 5}, eager 1...100; say @x.perl 11:04
camelia rakudo-moar 80b912: OUTPUT«Array.new(1, 2, 3, 4)␤»
FROGGS m: say grep * < 5, 1...100; say grep * < 5, eager 1...100 11:05
camelia rakudo-moar 80b912: OUTPUT«␤1 2 3 4␤»
andreoss why operations on lazy lists produce empty lists? 11:06
FROGGS andreoss: because it is a bug
and the bug is in grep somewhere...
11:06 Alina-malina left
FROGGS m: say map { $_ }, 1...100 # that's also funny 11:08
camelia rakudo-moar 80b912: OUTPUT«Cannot call 'map'; none of these signatures match:␤:(&code, *@values)␤:(Whatever, Any \a)␤:(&code, Whatever)␤ in block <unit> at /tmp/sbAzBgGIk1:1␤␤»
FROGGS m: say map { $_ }, 1..100 # but this works
camelia rakudo-moar 80b912: OUTPUT«1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 8…»
FROGGS very strange
I wonder
m: say map { $_ }, (1...100)
camelia rakudo-moar 80b912: OUTPUT«1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 8…»
FROGGS ahh!
precedence
m: my @x = grep {$_ < 5}, (1...100); say @x.perl; 11:09
camelia rakudo-moar 80b912: OUTPUT«Array.new(1, 2, 3, 4)␤»
FROGGS andreoss: so, it is not a bug, just surprising
the ',' has a higher precedence than '...', to allow: 1, 2, 4 ... 32 11:10
so grep {$_ < 5}, 1...100 ended up as: (grep {$_ < 5}, 1)...100
11:11 Alina-malina joined
FROGGS m: my @x = (grep {$_ < 5}, 1...100); say @x.perl; 11:11
camelia rakudo-moar 80b912: OUTPUT«Array.new()␤»
FROGGS m: say (grep {$_ < 5}, 1)...100
camelia rakudo-moar 80b912: OUTPUT«1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 8…»
FROGGS but then I'd expected this ---^
I guess it ends up being: grep (({$_ < 5}, 1)...100) 11:13
psch m: say grep { $_ < 5 }, 1
camelia rakudo-moar 80b912: OUTPUT«1␤»
FROGGS m: say grep 1...2 11:14
camelia rakudo-moar 80b912: OUTPUT«␤»
FROGGS what should that do?
psch m: say eager grep { $_ < 5 }, 1 ... 100
camelia rakudo-moar 80b912: OUTPUT«␤»
Rounin m: sub lol{eval("lol();");}; lol();
camelia rakudo-moar 80b912: OUTPUT«===SORRY!=== Error while compiling /tmp/UAlFwxFW6y␤Undeclared routine:␤ eval used at line 1␤␤»
Rounin Aw
FROGGS Rounin: use single quotes? 11:15
Rounin m: sub lol{eval('lol();');}; lol();
camelia rakudo-moar 80b912: OUTPUT«===SORRY!=== Error while compiling /tmp/SUPfyfALMN␤Undeclared routine:␤ eval used at line 1␤␤»
psch EVAL
FROGGS err, EVAL
Rounin It doesn't like eval it seems
m: sub lol{EVAL('lol();');}; lol();
Something seems to be happening
FROGGS a timeout
11:15 tinyblak_ joined
camelia rakudo-moar 80b912: OUTPUT«(timeout)» 11:16
Rounin Ah :)
Thanks, both of you
11:16 andreoss left, andreoss joined
FROGGS m: sub foo { say 42 }; "foo()" # <--- that will call it, and will interpolate the result of foo() into the string 11:17
camelia ( no output )
FROGGS err
m: sub foo { say 42 }; say "foo()" # <--- that will call it, and will interpolate the result of foo() into the string
camelia rakudo-moar 80b912: OUTPUT«foo()␤»
FROGGS O.o
Rounin :D
FROGGS ohh, we need a block there, my bad :D
m: sub foo { say 42 }; say "{foo()}"
camelia rakudo-moar 80b912: OUTPUT«42␤True␤»
11:17 andreoss left
FROGGS weird, I was (for unkown reasons) under the impression that ident+parens would be enough 11:18
11:19 tinyblak left
psch m: sub foo { say 42 }; "&foo()" 11:22
camelia rakudo-moar 80b912: OUTPUT«42␤»
psch m: sub foo { say 42 }; "&foo"
camelia ( no output )
FROGGS[mobile] ahh 11:24
11:41 kaleem left
arnsholt Anyone happen to know if a QAST::Var with :scope<package> will also be found by a ::Var with :scope<lexical>? 11:44
FROGGS we have scope<package>? 11:48
arnsholt: do that: perl6-m --target=ast -e 'our $foo'
and look at the bind at the top 11:49
arnsholt Thought we had. Maybe we don't
FROGGS bbiab
arnsholt Aha. We don't! 11:50
There's a top-level package object that stores it
So I'll probably have to do something similar to get Python's "global" to work properly 11:51
11:54 Ugator joined, bjz left, bjz joined 11:58 darutoko left 12:10 sirdancealot joined 12:13 eternaleye joined 12:16 colomon left, chenryn left 12:23 bjz left
masak good afternoon, #perl6 12:25
moritz good noon, masak 12:26
masak moritz: thinking one more turn about synthetic ASTs and COMPILING::
moritz: I think that kind of dishygiene is the wrong default.
moritz: better to say that a synthetic AST has *no* outer.
and then we could very well provide an .attach (magic) method on synthetic ASTs, that you could call *once* and it'd get the caller's outer. 12:27
or, in Harry Potter terms, you can only apparate to places you've been. 12:28
moritz :-)
masak (which is still very powerful a notion, when you multiply in passing ASTs to closures)
moritz or supply a :scope on the outer-most Q::Thingy.new() 12:29
*to
masak I don't immediately like that alternative better. 12:31
scopes aren't first-class, so one'd have to pass in a callable or something.
I think .attach is a little easier to think about. "pretend the AST is rooted *here*."
moritz agreed 12:32
lizmat reading all this, I can't help but think "coro's"
is that a mistake ?
moritz though we have to take care that scopes, not being first-class, don't become magical
12:33 colomon joined
masak moritz: indeed. 12:44
12:44 bjz joined
masak moritz: I don't see the bottom, but this rabbit hole looks promising. 12:44
lizmat
.oO( oh no, he's going to fall all the way to China :-)
12:45
masak lizmat: dunno if it's a mistake or not. quasis and ASTs are a little bit like a lot of things.
lizmat it also reminds me of a similar issue with perl 5 ithreads
masak lizmat: they are a little bit like closures, too. except closures doesn't have the failure modes ASTs do. 12:46
lizmat yeah, gotcha
masak lizmat: and oftentimes I get the feeling that while closures have *one* surrounding context, ASTs have *two*. I have yet to formalize/concretize that.
lizmat one of my Perl 5 ithreads modules started a thread at BEGIN time, simply to get a relatively "clean" thread from which to start other threads 12:47
masak hygiene hinges on not crossing the streams of the two contexts.
12:47 kaleem joined
lizmat but that had more to do with the Perl 5 ithreads implementation 12:47
(which uses the fork() emulation of Perl on Windows to emulate threads on Unix)
12:48 kaare__ joined 12:53 bjz left 12:54 anaeem1_ left 12:55 tinyblak_ left, tinyblak joined
masak coroutines: "you have code A and code B, possibly by different authors, and we allow them to interleave effortlessly in dynamic execution" 12:59
ASTs/macros/quasis: "you have code A and code B, possibly by different authors, and we allow them to interleave effortlessly in the textual representation of the program"
maybe that's the similarity.
13:00 tinyblak_ joined
lizmat possibly, I usually don't understand why things prop up in my mind when reading :) 13:00
13:02 tinyblak left 13:03 eternaleye left 13:07 eternaleye joined 13:13 Sqirrel joined 13:17 vendethiel joined
FROGGS masak: did you already think about the distinction between a slang and a macro? 13:18
... and at what time they come into play
because for me, a slang hooks in before we parse anything, though it probably has access to the current language(s) and can mess with them 13:19
macros come into play after the source was parsed, and after the ast was built, so their input is an AST, where a slang is still in charge to actually built an ast 13:20
13:20 bjz joined 13:22 tinyblak_ left 13:23 tinyblak joined
FROGGS[mobile] masak: do you agree? 13:23
13:23 FROGGS left 13:28 tinyblak left
masak I think I agree, yes. 13:30
though I am experiencing with notions of letting a macro do its own parsing sometimes.
this is especially attractive (and perhaps necessary) for things like prefix and infix operators, where (some of) the arguments aren't ASTs yet. 13:31
and in this sense, a macro could probably be seen as a "slang lite".
13:32 tinyblak joined
lizmat
.oO( a slite )
13:33
13:34 Akagi201 left 13:35 anaeem1_ joined
dalek kudo/nom: 3c9fd0e | lizmat++ | src/core/Inc.pm:
Fix another precomp issue

Apparently, we need $*DISTRO to be populated to create valid precomp on Moar
13:38
kudo/nom: 5fb9467 | lizmat++ | src/core/CompUnit.pm:
Allow specification of @*INC in CompUnit.precomp again
13:39 vendethiel left 13:41 denis_boyun_ left, bjz left 13:42 denis_boyun_ joined 13:44 anaeem1_ left, bjz joined 13:45 anaeem1 joined
dalek kudo/nom: 370b3cd | lizmat++ | src/core/Inc.pm:
Actually, it appears we only need $*VM on Moar

To be able to create valid precomp
13:46
btyler_ is there any expectation that Inline::Perl5 is threadsafe, or not so much? trying to hack up a multithreaded DB client based on p5 libraries, and getting SIGSEGVs/"attempt to free unreferenced scalar" 13:47
lizmat nine could probably tell you more
btyler_: are you using ithreads for that, or lower level OS threads ? 13:48
btyler_ cool, I'll try it out on some personal code this evening, try to set up a minimal case
lizmat: await (list of DB ids).map: -> $id { start { say "getting $id"; <corporate code db library>.retrieve($id) } } 13:50
lizmat btyler_: that *feels* like pushing the envelope there....
btyler_ just playing around a bit, I got some simple db access working yesterday with Inline::Perl5 and was very excited
lizmat btyler_++ 13:51
13:51 vendethiel joined
dalek kudo/newio: 353141f | lizmat++ | src/core/Deprecations.pm:
s/some time/sometime/ woolfy++
13:52
kudo/newio: 2165a69 | TimToady++ | tools/build/NQP_REVISION:
bump nqp
kudo/newio: 3c9fd0e | lizmat++ | src/core/Inc.pm:
Fix another precomp issue

Apparently, we need $*DISTRO to be populated to create valid precomp on Moar
kudo/newio: 5fb9467 | lizmat++ | src/core/CompUnit.pm:
Allow specification of @*INC in CompUnit.precomp again
kudo/newio: 370b3cd | lizmat++ | src/core/Inc.pm:
Actually, it appears we only need $*VM on Moar

To be able to create valid precomp
kudo/newio: d63bb37 | lizmat++ | / (3 files):
Merge branch 'nom' into newio
lizmat afk for a bit&
13:54 bjz left, chenryn joined 13:55 Rounin left 13:57 eternaleye left 13:58 Sqirrel left 13:59 FROGGS joined 14:01 mvuets left 14:05 ptc_p6 joined 14:06 ptc_p6 left 14:12 eternaleye joined 14:26 bjz joined 14:28 tinyblak left
dalek ast: b2ffd2f | lizmat++ | S10-packages/precompilation.t:
We don't need to specify PERL6LIB anymore
14:32
14:34 skids left
dalek ast/newio: da2561a | usev6++ | S03-metaops/reverse.t:
Add test for RT #118793
14:41
roast/newio: 700e0a5 | lizmat++ | S10-packages/precompilation.t:
roast/newio: Revert "Should work with just @*INC"
14:41 dalek left
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=118793 14:41
lizmat sorry dalek
14:41 dalek joined, ChanServ sets mode: +v dalek
FROGGS moritz: what do you think would that do: shell 'ls -l', :err(*.out) 14:48
(as the potentially new api)
[Coke] if I want to use a perl from perlbrew in cron, do I need anything other than the PATH? 14:50
14:52 bjz left, anaeem1 left
FROGGS [Coke]: look at that: github.com/agorman/perlbrew-cron 14:54
dalek kudo/nom: 0154f13 | lizmat++ | src/core/CompUnit.pm:
Allow scalar values to be specified with :INC
14:54 anaeem1_ joined 15:00 virtualsue left, FROGGS[mobile] left
lizmat commute to Amsterdam.pm meeting& 15:00
15:01 vendethiel left, adu joined 15:03 eternaleye left 15:04 vendethiel joined 15:06 bjz joined 15:14 eternaleye joined
masak FROGGS: what other values make sense to pass to :err, besides *.out ? 15:14
FROGGS that'd be a hint :o) 15:15
15:15 [Sno] left, kurahaupo1 left
masak no, I'm seriously wondering. 15:15
FROGGS but.... :err would be valid, also :err($fh) and :err($*OUT) for example
15:16 [Sno] joined
masak ok. 15:16
FROGGS default would be :!err I guess
dunno if that is a P5 thinking or state of the art
masak ah, so :err would mean :err($*ERR) ?
FROGGS no
masak what would it mean? 15:17
FROGGS it just means: yes, I wanna capture the children's stderr
to for example do: shell('foo --bar', :err).pipe-to( shell... ) 15:18
15:18 anaeem1_ left
FROGGS more like this I think: shell('foo --bar', :err).pipe-to({ shell... }) 15:18
masak oh, I think I see. 15:19
FROGGS because it would make a new $*IN to the second shell evailable
... which is the stderr of the first
betterwo1ld r: class C { method foo { () }}; C.new.+foo 15:20
camelia rakudo-moar 80b912: OUTPUT«No such method 'foo' for invocant of type 'C'␤ in method dispatch:<.+> at src/gen/m-CORE.setting:1334␤ in block <unit> at /tmp/tmpfile:1␤␤»
..rakudo-parrot 80b912: OUTPUT«No such method 'foo' for invocant of type 'C'␤ in method dispatch:<.+> at gen/parrot/CORE.setting:1338␤ in block <unit> at /tmp/tmpfile:1␤␤»
betterwo1ld that looks like rakudo tries to check if the method exists, but actually it checks whether it returns any values
FROGGS masak: so is that self explaining? shell 'ls -l', :err(*.out) 15:21
15:22 bjz left 15:23 bjz joined 15:26 bjz left 15:27 vendethiel left, bjz joined 15:30 kurahaupo joined 15:31 treehug88 joined
masak FROGGS: when I first saw it, I had an idea what it might mean, but I was mystified as to the mechanism that made *.out do the right thing... 15:33
FROGGS well, it is a callable so we pass the (to be constructed) Proc::Status 15:35
masak oh, ok.
FROGGS so it is meant to be 2>&1 15:36
masak yes. that's the original meaning I got from it.
FROGGS k
that's what I wanted to achieve :o)
masak the reason I asked about other things that can be passed to :err, is that 2>&1 is what I *overwhelmingly* do, and I was wondering if you were perhaps overgeneralizing that very common use case.
15:37 treehug88 left
masak and should maybe have :err2out or something instead. 15:37
15:37 vendethiel joined
FROGGS or let that be the default? 15:37
15:37 eternaleye left 15:38 konsolebox left, chenryn left, sirdancealot left
FROGGS I mean, we are strict by default, why should we sweep the error messages under the rug then? 15:38
but then the question is: what do we do with :out by default... print it? 15:39
and all these in/err/out fiddling results in one important decision: do we nqp::openpipe or do we nqp::shell / nqp::run 15:40
15:40 eternaleye joined 15:41 chenryn joined 15:44 virtualsue joined 15:49 treehug88 joined 15:51 rurban left 15:52 darutoko joined
ugexe lizmat++ for bringing back rakudo_precomp_with stuff 15:53
15:53 eternaleye left 15:54 bjz left 15:55 eternaleye joined, treehug88 left 15:56 treehug88 joined, araujo left, itz_ joined, kaleem left 15:58 vendethiel left 16:01 bjz joined 16:02 eternaleye left 16:04 araujo joined, araujo left, araujo joined 16:05 kaare__ left 16:06 anaeem1_ joined
ugexe after installing panda, i did 'panda install JSON::Tiny' (i know it gets installed with panda but still) and am getting const_iX NYI in sub to-json 16:06
FROGGS hmmmm, I've seen a ticket about that recently... 16:08
16:09 anaeem1_ left
ugexe at the end it says SORRY! Missing or wrong version of dependency 'lib/JSON/Tiny.pm' 16:09
FROGGS ugexe: can you upgrade your moarvm installation?
ugexe is panda linking to an old version maybe?
FROGGS well, it is your box :o)
ugexe FROGGS: i just reinstalled the latest of rakudo/moar/nqp
16:09 anaeem1_ joined, denis_boyun_ left 16:10 skids joined
FROGGS let me try to reproduce 16:10
ugexe my exact command line dance: sudo rm -rf moar-HEAD-HEAD-HEAD; rakudobrew triple; rakudobrew build-panda; panda install HTTP::UserAgent IO::Socket::SSL JSON::Tiny 16:11
16:13 anaeem1_ left, bjz left 16:24 zakharyas left, eternaleye joined 16:27 Mouq joined 16:31 bjz joined 16:33 treehug88 left
Mouq masak: re: irclog.perlgeek.de/perl6/2015-01-06#i_9894349 perhaps in this sense, it's more important to nail down the more general case, slangs, first, and then worry about the special cases like macro infixes... 16:33
masak maybe, maybe not. 16:34
the notion of "nail down X before Y" is not so well-defined in a whirlpool design process.
TimToady
.oO(make sure you have a story about it)
16:34 spider-mario joined
masak yeah. 16:35
16:36 treehug88 joined 16:39 kaleem joined, vendethiel joined
FROGGS ugexe: I can reproduce you problem: 16:41
Copying blib/lib/JSON/Tiny/Actions.pm.moarvm to /home/froggs/dev/nqp/install/languages/perl6/site/lib/JSON/Tiny/Actions.pm.moarvm
const_iX NYI
in sub to-json at /home/froggs/dev/nqp/install/languages/perl6/site/lib/JSON/Tiny.pm.moarvm:1572895
in method flush-states at lib/Panda/Ecosystem.pm:16
bbiab 16:42
16:42 bjz left
ugexe the submodule JSON::Tiny in the panda repo is from like august... i suppose it could be broken on a newer rakudo so it cant install a more modern json::tiny? 16:43
Bytecode validation error at offset 4, instruction 2: 16:45
operand type 16 does not match register type 64 in method flush-states at lib/Panda/Ecosystem.pm:16
16:52 bjz joined
masak Mouq: secondly, my main concern is macros. I don't mind discussing things with whatever group of people are figuring out slangs, but I won't figure out slangs on my own just to be able to get to macros. ;) 16:53
16:54 rurban joined
TimToady well, we'll just take whatever semantics you figure out and poke them into a 'make' :) 16:57
16:57 mr-foobar joined
TimToady or a make-oid 16:58
flussence notes aloud that HTML in current browsers now has a real "import" mechanism, complete with scoping and exports, while JS *still* has nothing of the sort... 17:04
vendethiel o/, #perl6 17:05
vendethiel still would like "make" to be changed :p
[Coke] ok. Pretty sure I have all the setup stuff done for perl6-roast-data to run on hack. 17:06
flussence: does require.js not cover it for you?
flussence I know there's a million and one ways to make it work, I just find it funny the programming language is the only one without batteries included :) 17:08
17:09 kaleem left
moritz public service announcement: I've just configured the cyphers/MACs that sshd on hack.p6c.org will accept; if you experience ssh connectivity issues, please let me know 17:21
compare stribika.github.io/2015/01/04/secu...shell.html 17:22
17:22 bjz left 17:23 bjz_ joined
TimToady thinks of macros as a planned hyperspace bypass, and this is the point at which we want to make sure the plans put the on and off ramps near Planet Perl, such that the bypass wipes out something else like Planet QAST instead of Planet Perl. 17:23
[Coke] moritz: tested, seems fine here.
moritz [Coke]: thanks
TimToady thinks about how best to bribe the Macro Planning Commission... 17:25
moritz TimToady: bribe them with a working design? :-) 17:28
pyrimidine Is there any way I can run debugging or some stack tracing on panda? I'm seeing odd issues off my laptop where it hangs when trying to grab the latest projects.json. 17:29
Seems to be something to do with IO::Socket::INET. It doesn't time out, strangely
Only thing I can trace it back to is the switch from feather to the new ecosystem-api.p6c.org 17:31
ugexe add --ll-exception to panda's shell command and run rebootstrap.pl 17:32
moritz pyrimidine: can you wget ecosystem-api.p6c.org/projects.json without any problem? 17:33
pyrimidine moritz: yep, and placing it in the panda install folder fixes the problem
17:35 chenryn left
pyrimidine moritz: odd thing is, my desktop (imac) works fine 17:35
Seems like it's maybe a port issue on the laptop; both are Mac OS X
if I switch the URL in panda to the old one (feather) it also works. 17:36
ugexe m: $s = IO::Socket::INET.new(:host<ecosystem-api.p6c.org>, :port(80)); $s.send("GET /projects.json HTTP/1.0\nHost: ecosystem-api.p6c.org\n\n"); 17:37
camelia rakudo-moar 80b912: OUTPUT«===SORRY!=== Error while compiling /tmp/palJZ0lrPq␤Variable '$s' is not declared␤at /tmp/palJZ0lrPq:1␤------> $s⏏ = IO::Socket::INET.new(:host<ecosystem-␤ expecting any of:␤ postfix␤»
moritz ugexe: camelia disables most forms of IO
ugexe m: my $s = IO::Socket::INET.new(:host<ecosystem-api.p6c.org>, :port(80)); $s.send("GET /projects.json HTTP/1.0\nHost: ecosystem-api.p6c.org\n\n");
camelia ( no output )
ugexe i used to be able to test feather a month ago that way 17:38
when the DNS stuff changed
moritz huh.
that's not good. 17:39
masak TimToady: finding out what macros mean *for Perl* and *in Perl* is very much what I feel I'm currently doing. :)
17:39 virtualsue left, [Sno] left
masak even if it were possible to give Perl C's macro system, or Lisp's, or (I dunno) Dylan's, it would not be as fun as fitting the macro system to Perl's needs and capabilities. 17:40
ugexe moritz: irclog.perlgeek.de/perl6/2014-11-29#i_9736137 17:41
vendethiel dylan's is prrtty much lisp's
masak this is why I talk a fair bit about grammars. macros should acknowledge them in a number of ways that it couldn't really when S06 was written, because grammars weren't mature/solid enough.
flussence moritz: that ssh article was very informative, thanks! 17:42
TimToady having had an interchange rebuilt within three blocks of my house (took six years!), I'm just interested in how the local on and off ramps will look in my neighborhood :)
vendethiel dya
uh; seems like I have two text fields in my irc window now...
Mouq FROGGS: Hey, I seem to have gotten p6-Slangy *mostly* fixed 17:45
17:47 xfix joined 17:51 cognominal joined
Mouq FROGGS: github.com/FROGGS/p6-Slangy/pull/1 17:51
17:54 bjz_ left, telex left 17:56 telex joined, bjz joined 17:57 dakkar left 18:01 anaeem1 joined, denis_boyun_ joined 18:04 eternaleye left 18:05 Hor|zon left 18:06 anaeem1 left 18:12 eternaleye joined
tony-o sergot_: does IO::Socket::SSL handle server connections? from the code it appears to but the tests don't show it .. 18:12
yoleaux 5 Jan 2015 09:24Z <azawawi> tony-o: github.com/tony-o/perl6-http-serve...c/issues/7 is very strange since a sleep with non-zero value seems to break the implementation of .recv
18:13 FROGGS_ joined
tony-o sergot_: nvm, just saw the POD at the bottom of the src 18:13
.tell azawawi that sounds more like a rakudo bug :-)
yoleaux tony-o: I'll pass your message to azawawi.
18:14 bjz left 18:16 FROGGS left
FROGGS_ Mouq++ 18:17
18:17 FROGGS_ is now known as FROGGS 18:21 bjz joined 18:24 denis_boyun_ left 18:27 [Sno] joined, raiph joined 18:30 jack_rabbit left 18:35 anaeem1 joined 18:52 bjz left
_sri tony-o: how fast is your http server? 18:54
(compared to say, some perl5 server) 18:55
jdv79 p5 is still very much faster than p6 in general i think, right? 18:56
FROGGS it is
jdv79 at least all the random p5 to p6 cmps i've done in the last few months have supported that 18:57
_sri we were promised a production ready perl6 soonish! ;p
jdv79 soon != now
FROGGS well, perhaps Perl 6 is faster when it comes to bigints and bignums
jdv79 i'm not sure that factors largely in a typical webserver scenario though;)
_sri true, you still got 3 weeks fosdem.org/2015/schedule/event/get..._to_party/ 18:58
FROGGS and I don't think that Perl 6 is mostly there for webservers tbh
ugexe yea last thing tony-o was trying to figure out how to prefork it 18:59
_sri judgign by reactions from perl5 beginners on the mojolicious mailing list... expectations for the fosdem talk are super high
to the point where people start asking again if its worth learning perl5 19:00
jdv79 i think its safe to learn perl5 by now
masak learning is never safe. 19:01
FROGGS learning is always safe.
19:01 bjz joined
FROGGS :P 19:01
whatever safe means
jdv79 i was all excited to learn perl 6 "for real" a bit ago and then i noted that the json parsing is an order of mag slower or more than p5 so i lost some excitement
19:02 Ugator left, Hor|zon joined
jdv79 and that's using a c lib - the native parser is even worse 19:02
FROGGS jdv79: well, I often have tears of pain in my eyes when I have to write P5 at work, because I know that the P6 code would be more readable and just a fraction in size 19:03
jdv79 size vs speed tradeoff thought right now...
ugexe newbies should probably learn whatever language has a larger established code base... if they want a job anyway
jdv79 yeah, i can see that
_sri perl5 is getting faster too
FROGGS speed is not everything, at least for me... the apps we have at work tend to live at least ten years, so maintainability is pretty important
19:03 eternaleye left
_sri your average mojolicious app will be 30% faster with perl 5.22 19:04
FROGGS that's a lot
jdv79 yeah but i can't write a web service that takes seconds to respond when cached when in p5 its a few hundred ms.
if that
ugexe you could always use nativecall with libmicrohttpd 19:06
19:06 Hor|zon left, notjack joined
ugexe unless tony-o beats you to it 19:06
adu how do I use a module so that only the last part if available?
_sri haha 19:07
think i'd use Go or Rust instead then ;p
adu _sri: why?
ugexe well if i was writing a production app id probably use a production ready language too
_sri adu: using perl6 to glue together a bunch of c libraries is not my definition of fun 19:09
arnsholt Also, NAtiveCall still incurs non-trivial overhead
adu _sri: are they gobject based libraries?
FROGGS adu: "how do I use a module so that only the last part if available?" - can you restate that question?
_sri adu: so, might as well use a lower level language that almost feels like a scripting language
jdv79 exactly. an awesone json parser written in p6 would be fantastic. 19:10
adu FROGGS: ok, when you write "use A::B::C;" then C::x is an error, but A::B::C::x works, but how do I write "C::x" and have it mean the same thing?
_sri jdv79: but is that possible yet? 19:11
notjack I'm not familiar with FOSDEM; will I be able to listen to Larry's talk online?
19:11 rindolf left
_sri jdv79: also, what is awesome? 19:11
FROGGS adu: you could access x just like that if that helps... 19:13
m: my $foo := IO::Socket; say $foo.WHO<INET>
camelia rakudo-moar 80b912: OUTPUT«(IO::Socket::INET)␤»
FROGGS m: my $foo := IO::Socket; say $foo::<INET>
camelia rakudo-moar 80b912: OUTPUT«Cannot call 'postcircumfix:<{ }>'; none of these signatures match:␤:(Any \SELF, Any \key)␤:(Any \SELF, Any \key, \ASSIGN)␤:(Any \SELF, Any \key, :BIND($BIND)!)␤:(Any \SELF, Any \key, Any :SINK($SINK)!, *%other)␤:(Any \SELF, Any \key, Any :delete(…»
FROGGS hmmm
that's not really better I guess
m: my \foo := IO::Socket; say foo::<INET> 19:14
camelia rakudo-moar 80b912: OUTPUT«(IO::Socket::INET)␤»
FROGGS I'm not sure that I'd like it :o)
jdv79 _sri: no its not possible - very slow
19:14 eternaleye joined
_sri has actually been experimenting with pure perl5 json parsers a lot 19:14
jdv79 because p6 grammars...
19:15 bjz left
_sri one surprising discovery was that single regex parsers (like the famous one merlyn wrote) are terribly slow in perl5 19:15
FROGGS the grammar is not the slowest thing in JSON::Tiny atm... it is the actions
jdv79 imagine if p6 could handle json as good as p5's JSON::XS - that would just be cool to me 19:16
FROGGS very true
_sri made me wonder if grammar based parsers can actually ever be fast
19:17 virtualsue joined, liztormato joined
tony-o _sri: there are some threading things that make the async server unstable, from simple benchmarks it looked like it was serving within ~10ms of nginx on the same machine serving a static file 19:17
liztormato Why do we actually have IO::Socket::INET.new. Why not IO::Socket.new? 19:19
notjack _sri: Since grammar-based parsers maximize information provided to the parsing engine, in theory (theory!) they should be the fastest, no? 19:20
PerlJam _sri: I bet people wondered if Fortran would ever be fast too, then after a few decades of experience and optimizations, they were :-)
*Fortran compilers 19:21
(maybe :)
19:21 lizmat joined 19:22 liztormato left
PerlJam notjack: There's probably some sort of law relating the relative speed of processing with all of the information versus having a few heuristics with incomplete information that would tell us that more information does not always mean faster 19:26
_sri notjack: i don't know, i'm here to find out :) 19:27
notjack PerlJam: I'm not an information-theorist (IANAIT) but it seems to me that there will be a trade-off triangle of some kind (information provided, processing speed, reliability or optimality of results) and you can choose to optimize two legs at the expense of the third 19:28
PerlJam: Certainly the heuristics you imagine will themselves embed information, which means it needn't be carried by the input itself (which is essentially the definition of heuristic) 19:29
flussence lizmat: INET == ipv4 (and 6?), there's also various flavours of local sockets people might like to use
(plus, the name makes it very clear to a reader the code's doing network connections) 19:30
19:30 bjz joined
notjack I suppose if I can't watch the FOSDEM talk online, I might persuade TimToady to send me his slides afterwards? 19:31
masak laughs 19:34
ugexe id be surprised if someone doesnt record it
lizmat I'm pretty sure an attempt at recording and streaming will be made :-)
jdv79 streaming would be excellent
PerlJam masak: for some reason I mentally inserted "maniacally" at the end of your sentence. It reads better that way :)
19:35 virtualsue left
lizmat flussence: but would it really be a problem if IO::Socket would be the default, as it is the thing that people use most ? 19:35
masak PerlJam: that's the modifier I was looking for -- thanks 19:36
flussence hm, you're probably right...
PerlJam lizmat: +1 to that
lizmat ok, I'll spec it like that in the spec/newio branch 19:37
skids flussence: IPv6 is "INET6" (or AF_INET6 in C).
flussence ah, my bad.
moritz wanted: UDP socket support
lizmat moritz: PROTO_UDP is defined in IO::Socket::INET at the moment 19:38
so what is missing 19:39
moritz does it actually work? tests?
dalek rl6-roast-data: 0df9205 | coke++ | / (5 files):
today (automated commit)
rl6-roast-data: cdc241a | coke++ | perl6_pass_rates.csv:
note new location of test server.

  moritz++
lizmat I have no idea... I'm just the poor girl trying to make some sense of the current mess :-)
19:39 KCL_ joined
[Coke] moritz++ finally have perl6-roast-data running out of a cron job again. 19:41
19:42 krunen left
PerlJam just looked at socket.h ... 19:42
I didn't realize there were so many address families
skids Yup. 19:43
lizmat :-)
but how many do people actually use?
skids Without knowing it, or on purpose?
lizmat :-)
both :-)
PerlJam I've only ever used 2 or 3 in my own code (and i only knew of about 4) 19:44
moritz on an unrelated tangent, I think I'd like to put some of /etc/ dirs from some of the new hsots on github
skids About half of those I would say without knowing it.
moritz any suggests for repo names? and should I add it to the perl6 org, or rather a new organizations for it?
19:44 bjz left
moritz *suggestions 19:44
lizmat PF_LOCAL,PF_UNIX,PF_INET, PF_INET6, PF_MAX are the ones that IO::Socket::INET knows about atm
PerlJam moritz: no suggestion on the name, but I think it should be part of perl6.org 19:46
er , ... you know what I mean :) 19:47
moritz yes
19:47 Sqirrel joined
FROGGS p6c-etc ? 19:49
moritz hack.p6c.org-etc maybe 19:50
FROGGS a bit long, but it perhaps should be :o)
moritz I guess including host key files would be a bad idea :-) 19:51
PerlJam moritz: how were you planning on deploying the etc things? Is there some tool like ingy's ... but for system files?
[Coke] seen trying to run the r* daily test: gist.github.com/coke/fa0fa47728162f6b753c
PerlJam moritz: or were you thinking of just doing it "by hand"?
moritz PerlJam: I see it more as backup and history tracking than as a deployment tool 19:54
19:54 bjz joined
moritz PerlJam: hack.p6c.org uses etckeeper, the rest plain git repos 19:55
PerlJam ah
dalek ar: a8a88f1 | FROGGS++ | tools/build/panda-state.p6:
unbreak hash initializer
19:56
FROGGS [Coke]++
moritz uhm
I just managed to kill hack's ssh keys 19:57
PerlJam FROGGS: I would have just put a Nil before the ; and left the commented line alone to serve as an example for future mappings.
FROGGS bad moritz! 19:59
PerlJam: too late :D 20:00
dalek ar: cc27628 | PerlJam++ | tools/build/panda-state.p6:
unbreak hash initializer better
20:02
PerlJam no it's not! :)
xfix Wow, Perl 5.22 has <<>> operator that fixes a security issue in <>. I'm not sure what to think about it. 20:03
20:03 Hor|zon joined
moritz can somebody (preferably who hasn't tried in the last 10 minutes) try to log in into hack.p6c.org? 20:04
PerlJam moritz: I just logged in successfully.
moritz xfix: "why the fuck didn't they just fix <>, and cope with the fallout"?
PerlJam: ok, great
20:04 eternaleye left
timotimo me, too 20:04
20:04 darutoko left
PerlJam xfix: got a link to a description of <<>> ? 20:05
xfix moritz, because the "security issue" is is considered a feature.
metacpan.org/pod/release/CORION/pe...d-operator
20:05 itz joined
PerlJam thanks 20:05
xfix In short, <> used two args open.
So if you specified argument like "|foo", it ran a program.
FROGGS moritz: it worked
PerlJam aye. That's a feature I've used in the past too.
FROGGS Please respect the code of conduct and the notice the disclaimers on 20:06
www.p6c.org/
Last login: Tue Dec 23 19:29:25 2014 from...
20:07 itz_ left
pyrimidine moritz++ # re: <> 20:08
[Coke] am now getting Fetching roast 20:09
fatal: unable to access 'github.com/perl6/roast.git/': Problem with the SSL CA cert (path? access rights?)
xfix But yeah, this <> behaviour always bothered me.
Leading me to manually open the specified files, and special case - file. 20:10
[Coke] that's just on a git clone on p6c now. 20:11
moritz [Coke]: my fault 20:12
fixing... 20:13
[Coke]: please try again 20:14
[Coke] moritz++ 20:15
tony-o sergot_: ping 20:20
PerlJam moritz is now like Microsoft ... he gets credit for fixing problems that he created ;) 20:21
20:21 eternaleye joined
flussence xfix: it's not enough to special case "-", you need to make sure the code's opening an on-disk file too, or else someone can just pass "/dev/stdin". 20:21
xfix flussence, That doesn't concern me.
The reason why I did that is to allow people to use files named ' abc' or '|cab'. 20:22
dalek ake: 13e935e | arnsholt++ | src/Snake/Actions.nqp:
Towards a better variable model implementation.
20:24 bjz left
flussence oh right, whitelisting -, not blacklisting... 20:24
adu ahh, much better
pastie.org/9816859
xfix flussence, yes, I wanted it to behave more like UNIX utilies. 20:25
utilities*
20:35 bjz joined
jnthn evening, #perl6 20:42
vendethiel o/, jnthn 20:43
20:43 bjz left
[Coke] this appears to be hanging in the rakudo star daily build: 20:43
/home/coke/sandbox/rakudo-star-daily/star-parrot/rakudo-star-daily/install/bin/perl6-p --target=pir --output=/home/coke/sandbox/rakudo-star-daily/star-parrot/rakudo-star-daily/install/lib/6.11.0-devel/languages/perl6/lib/Pod/To/HTML.pm.pir /home/coke/sandbox/rakudo-star-daily/star-parrot/rakudo-star-daily/install/lib/6.11.0-devel/languages/perl6/lib/Pod/To/HTML.pm
moritz [Coke]: yes, I found that too :( 20:44
[Coke] currently taking up 15.7% of memory on hack
so, that's the current blocker to getting the daily star stuff building again.
[Coke] kills the run. 20:45
20:48 kaare__ joined
ugexe is the order modules get compiled in using CompUnit.precomp important? 20:49
jnthn ugexe: Well, a modules dependencies must always be compiled before the module itself.
[Coke] removes parrot from the run and tries just moar/jvm 20:51
20:52 virtualsue joined, Mouq left
nwc10 this is moritz -- dilbert.com/strips/comic/1995-11-13/ ? 20:54
ugexe jnthn: actually i just discovered i can compile just that single module (in my repo) and it will precompile. but if i precompile one of the modules it uses first, i get a 'No object at index ###' error 20:55
jnthn ugexe: That error almost always indicates some kind of mis-ordering or statle pre-comp. 20:56
ugexe dependency deserialization. i see
adu can I use backreferences in a $out.=subst() call?
timotimo i've at least once tried to put the name of the module that "caused" the loading of a precomp'd module in the error message, but i couldn't do it 20:57
jnthn adu: As in, use them in the regex givne to subst? Dont' see why not, it's evaluated using the normal regex engine. 20:58
adu should I use "$1" or '$1' ?
IllvilJa I just installed rakudo/perl6 version 2013.12 on my Ubuntu machine (using apt-get). If I want to install some perl6 module for it, is that straightforward (like it is for perl5 on ubuntu) or do I have to download and build those modules myself? 20:59
FYI, the latest rakudo perl6 on Ubuntu is 2013.12 which I admit is a bit old...
timotimo yeah, have you looked into rakudobrew yet? :S
maybe we have a PPA actually? 21:00
IllvilJa Is rakudobrew something available via apt-get?
tadzik no
but it's very easy to set up :)
IllvilJa Ok.
timotimo oh, ouch, debian has 2012.01-1
that's pretty harsh
tadzik classic debian
IllvilJa I'm having this as a (perhaps crappy) way of checking the 'readiness' of perl6. I download the thing using the distro's standard packaging system, and then see if I can get the packages easily installed. 21:01
tadzik damnit debian
well, to our defense rakudobrew is for building perl6 from scratch 21:02
IllvilJa Perl5 passes that test. Perl6 does not, but OTOH, the test is perhaps misleading.
timotimo tadzik: yeah, but that's hardly good enough
21:02 jack_rabbit joined
tadzik timotimo: agreed 21:02
timotimo IllvilJa: packaging can feel like very thankless work ... and i don't know the first thing about it yet, either ;(
21:03 eternaleye left
timotimo IllvilJa: what version of ubuntu do you have? 21:03
moritz timotimo: I know the first thing about it: it's sloooow to make progress, and often badly documented, and generally sucks
timotimo i see utopic unicorn actually has 2014.03
skids Yeah packaging puts you at the "nexus of blame"
timotimo and trusty tahr has 2013.12
IllvilJa Ubuntu 14 LTS. I think it is 14.04 or something. 21:04
timotimo oh, LTS
i don't think LTS will get anything new-ish feature-wise
moritz LTS updates much more than debian :-)
timotimo we could try to build rakudo long term support versions that get "only bug fixes" but that's a very weird thing to do
IllvilJa True. I ran the "cutting-edgish" non-LTS version of Ubuntu 12, installed it 12 months ago (ca) only to find it being totally impossible to update ca 6 months later (I could not even have a sane way to upgrade to Ubuntu 13 or 14 without breaking things). 21:05
moritz considering that some bug fixes might need a newer NQP or MoarVM...
timotimo also, building modern modules on old-but-unbugged rakudos would not work much more ...
adu jnthn: it's not working, I see a literal $1$2 in the replacement
21:05 brrt joined
brrt \o 21:06
moritz just broke his laptop's power supply
IllvilJa moritz: ouch!
21:06 ab5tract joined
moritz I'll probably be less online in the next 1-3 days 21:06
ugexe a ubuntu/deb binary would make travis ci testing a lot more viable though. too bad the process probably cant be completely automated :/
brrt thas sucks moritz
moritz aye
adu jnthn: does it only work with s/a/b/g? 21:07
21:07 eternaleye joined
timotimo moritz: d'oh, sorry to hear that 21:07
adu s/a/b/g also doesn't work
IllvilJa I wish I had more time for hacking around with Perl6, but right now I really cannot until Perl6 get to the point I can treat it like Perl5 (download with distro tools, download needed perl6 packages and then just use it).
FROGGS moritz: what type of laptop and what problem exactly? 21:08
IllvilJa And I really wished I had time to contribute getting Perl6 + Perl6 package management in such a position :-(
ugexe no next day amazon delivery in germany?
21:08 brrt left
jnthn adu: Oh, you mean you're using captures in the replacement part? 21:09
jnthn doesn't call that a backref... :)
21:09 brrt joined
adu jnthn: is $1 a capture? I though it was called backref 21:09
ugexe IllvilJa you can automate all that (on linux) with rakudobrew as was mentioned before. it takes me like 5 minutes to build my daily rakudo+nqp+moarvm. I mean if you want it to be like Perl5 you should be using perlbrew anyway, right? :)
jnthn m: "omg".subst(/\w/, {"$0!"}, :g).say 21:10
camelia rakudo-moar 80b912: OUTPUT«use of uninitialized value of type Any in string context in block <unit> at /tmp/Bqf4CZCJZd:1␤␤use of uninitialized value of type Any in string context in block <unit> at /tmp/Bqf4CZCJZd:1␤␤use of uninitialized value of type Any in string context…»
brrt IllvilJa: what would make you treat it like perl5?
jnthn Oh, duh
ugexe which, btw, building rakudo+nqp+moar is way faster for me than building perl5
21:10 bjz joined
jnthn m: "omg".subst(/(\w)/, {"$0!"}, :g).say 21:10
camelia rakudo-moar 80b912: OUTPUT«o!m!g!␤»
ugexe a basic travis test that builds perl6, installs package manager, installs dependencies, and tests a basic module takes 6.5 minutes on travis-ci vm currently 21:11
IllvilJa ugexe: what I have in mind is not to make it easy for me to get perl6 + packages installed on my machine, but rather for someone else who want to run my perl6 program to get the stuff quickly in place. 21:12
brrt i see 21:13
IllvilJa If someone using ubuntu want to run my perl6 program, many of them appreciate if they can follow the same procedure currently required for a perl5 program (which means ensure perl5 is installed (comes with Ubuntu, I know) and then install any needed modules and then run the code)
Eventually, perl6 will be there. 21:14
brrt what would help you more, of the following options: apt-get install in All Major Distros (including mac os x, e.g. by homebrew)
an Official Docker Image repository (like for php, python, ruby, dunno about perl5)
timotimo ugexe: not a fair comparison, the standard library of perl5 is not as small as our core setting
ugexe IllvilJa: thats what a travis.yml file does
21:14 jack_rabbit left, lestrrat joined
ugexe you can abstract the commands any way you want 21:15
brrt a Static Perl6 Binary, or even a Precompiled Perl6 Fakexecutable
timotimo we do have docker repositories for rakudo stars
the fakecutables are going to be nice to have
IllvilJa Maybe that's a way forward in the meanwhile.
brrt what would it take to make those official?
how nice precisely, timotimo? :-) 21:16
ugexe i think no one wants to put in the effort for packaing something that will get broken often
brrt jnthn: i take that perl6 regexes don't capture at all if you don't use parentheses?
jnthn brrt: Aye, short of ~$/ giving you all the text that matched of course. 21:17
brrt: Well, and hen there's named captures.
<foo>, $<bar>=[...], etc.
*then
timotimo brrt: if we can even make statically linked fakecutables and have bunches of dependencies in the executable, too ... 21:18
jnthn
.oO( really cocked up with that typo... )
timotimo perl6 in a single file, panda in a single file :P
brrt jnthn stop making me laugh :-D
lizmat Amsterdam.pm meeting shutting down...
jnthn considers another pun, but chickens out...
brrt timotimo - the only thing i see against that is people not wanting us to ship our own libuv
lizmat decommute&
timotimo oh 21:19
right
brrt bye lizmat
timotimo on the other hand
jnthn should look at the various fakeexecutable patches for Moar...
timotimo statically linked perl6 could work on "non-distributions" :P
adu jnthn: I figured it out! pastie.org/9816955
brrt on the other hand many distro versions of libuv would break
but that's true for the docker containers as well timotimo
timotimo aye
brrt i started building a fakexecutable version of perl6 $time ago, but that was just perl6, and that still required the loading of dependencies from the file system 21:20
timotimo right 21:21
21:22 avuserow_ left, lizmat left, bjz left
timotimo shouldn't using libuv make making that "pluggable" easy? 21:22
21:25 IllvilJa left
bartolin ls 21:25
oops, wrong window 21:26
21:26 IllvilJa joined
brrt whaddayamean timotimo 21:29
:-)
brrt wonders how to check the version of his libuv installation 21:30
0.10.29
21:31 bjz joined, xfix left
[Coke] moritz: ^^ there, first run. will make it more automated later, but for now, can easily kick it off again. 21:32
brrt moar ships with a significanlty newer version
[Coke] ... /me apparently never updated the webhook for that project.
timotimo brrt: have some kind of clever ... i have no clue actually 21:33
[Coke] github.com/coke/rakudo-star-daily/...master/log - updated for moar & jvm 21:34
brrt anyway, i have fedora twenty one, the very shiniest and latest, and it ships with libuv 0.10.29 21:35
21:35 avuserow_ joined
ugexe is there a more elegant way to check a module for dependencies without parsing the source, or parsing the result of EVAL { use Whatever::Module } ? 21:36
brrt which is silly, that version isn't even tagged in libuv
ugexe - i don't think there is right now, because of the dynamic loading possibilities
(0.10.28 though is from july 31 2014, that is 6 months old) 21:37
ab5tract nine: is it possible to create multiple Inline::Perl5 objects? 21:39
21:39 bjz left
brrt which isn't - iirc - even the correct version of libuv for the version of moar that is shipped (2014.04) 21:39
ab5tract i was hoping i would be able to build intepreter pools and do thready-stuff 21:43
skids Heh. Using Inline::P5 I can't keep myself from using -> for P5 method invokes because I know it's a P5 object.
ab5tract skids: it could be nice to have that in a slang 21:44
timotimo it would seem to me that libperl would possibly have some global state
that would make it not be reentrant, so to speak
ab5tract timotimo: i see.
jnthn timotimo: I think there's a flag (multiplicity?) that makes it not have global state; I may be mis-remembering. 21:45
timotimo that would be helpful, but you need to rebuild libperl?
skids ab5tract: No I think that's down to just devloping discipline.
ab5tract i'm fine with rebuilding 21:46
but yeah, it would be better if that would not be necessary
skids: i don't know.. i could imagine it being useful to visually differentiate method calls on p5 objects using ->
so that one would never lose track of what's really a $p5-obj and what isn't 21:47
i see a multiplicity configure option 21:50
ab5tract digs
jnthn timotimo: I dunno if it's a default or not.
timotimo 'k 21:51
21:58 Mouq joined 22:01 skids left 22:05 spider-mario left 22:06 denis_boyun_ joined 22:08 anaeem1__ joined 22:09 rurban left 22:11 anaeem1 left 22:13 sqirrel_ joined
ab5tract jnthn: bingo!! 22:14
22:15 notjack left
ab5tract it a) does not appear to be default, and b) fixes the segfaults 22:15
very cool 22:17
thanks for the help
i'm going to still be scarce for another week or so, but that doesn't mean i'm not thinking of you #perl6 22:18
good night for now!
22:18 ab5tract left
jnthn ab5tract: Happy it helped :) 'night 22:18
22:26 KCL_ left 22:29 Rounin joined 22:30 jack_rabbit joined 22:32 davido_ left 22:33 davido_ joined 22:34 treehug88 left 22:35 sqirrel_ left 22:37 denis_boyun_ left 22:39 raiph left 22:51 IllvilJa left 22:53 raiph joined, rurban joined 23:00 IllvilJa joined 23:20 rmgk left, [Coke] left, pyrimidine left, Possum left, ribasushi left, Pleiades` left, zoosha left, sjn left, kshannon left, pochi left, avar left, betterwo1ld left, yoleaux left, wtw left, woshty left, apejens left, mls left, _sri left, huf left, osfameron left, mst left, tony-o left, eMBee left, jantore left, risou left, lestrrat left, Psyche^ left, pecastro left, vike left, Woodi left, Khisanth left, labster left, tadzik left, ponbiki left, epochbell left 23:21 betterworld joined, _sri joined, sjn joined, [Coke] joined, pochi joined, tony-o joined, Possum joined, osfameron joined, huf joined, risou joined, FlipBill joined, zoosha joined, ribasushi joined, PerlJam joined, jferrero joined 23:22 jantore joined, rmgk joined, lestrrat joined, Psyche^ joined, pecastro joined, vike joined, Woodi joined, Khisanth joined, labster joined, vukcrni joined, ruoso_ joined, felher joined, tadzik joined, ponbiki joined, epochbell joined, kshannon joined, torbjorn joined, Pleiades` joined 23:23 pyrimidine joined, apejens joined 23:24 vukcrni left 23:25 vukcrni joined 23:26 anaeem1__ left, broquaint joined, mst__ joined 23:27 jercos joined 23:34 anaeem1 joined, mls joined, Mouq left, jantore left, jantore joined 23:39 mephinet left 23:41 mephinet joined 23:44 Mouq joined 23:46 eMBee joined 23:48 jakesyl_insomnia joined 23:50 brrt left 23:51 telex left 23:52 telex joined 23:55 yoleaux joined, ChanServ sets mode: +v yoleaux 23:56 avar joined, avar left, avar joined, wtw joined 23:57 woshty joined, adu left