»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: irc.perl6.org/ | UTF-8 is our friend!
Set by sorear on 4 February 2011.
donri there's instance variables of course, if that's what you mean 00:02
which are pseudo-private (accessible via introspection) 00:04
00:04 kfo joined
Tene donri: yes, that's what we mean. 00:06
00:07 patspam joined, kfo_ left
dalek d: 1de95e3 | sorear++ | STD.pm6:
First batch of whirlpool changes from Niecza

  - $<foo> = {expr} notation is used in many places instead of
   reliance on mutable match hashes
  - several incorrectly flattening arguments have been fixed
00:11
00:11 patspam left 00:30 tornadovj left 00:54 stifynsemons joined 00:55 awoodland left 01:26 Khisanth joined 01:28 lopaway is now known as lopnor
lopnor hello #perl6 01:29
sorear hello lopnor 01:30
lopnor sorear: hello!
can i ask how to use pir::* methods? 01:31
sorear rakudo: pir::spawn__vs("ls") 01:32
p6eval rakudo 3bbc06: OUTPUT«error:imcc:syntax error, unexpected SREG, expecting '(' ('$S125')␤ in file 'EVAL_10' line 46948297␤===SORRY!===␤syntax error ... somewhere␤» 01:33
sorear rakudo: pir::spawn__pp("ls")
p6eval rakudo 3bbc06: OUTPUT«error:imcc:syntax error, unexpected PREG, expecting '(' ('$P125')␤ in file 'EVAL_10' line 376␤===SORRY!===␤syntax error ... somewhere␤»
sorear rakudo: pir::spawn__iS("ls")
p6eval rakudo 3bbc06: OUTPUT«error:imcc:syntax error, unexpected IREG, expecting '(' ('$I126')␤ in file 'EVAL_10' line 49021609␤===SORRY!===␤syntax error ... somewhere␤»
sorear rakudo: pir::spawnw__is("ls")
p6eval rakudo 3bbc06: OUTPUT«build␤Configure.pl␤CREDITS␤docs␤dynext␤LICENSE␤Makefile␤parrot␤perl6␤perl6.c␤perl6_group.c␤perl6_group.h␤perl6_group.o␤perl6.o␤perl6.pbc␤README␤src␤t␤Test.pir␤Test.pm␤tools␤VERSION␤» 01:34
lopnor oh
im using MiniDBI to connect mysql,
it does not work recently 01:35
it seems pir::null__P() works deferent than expected 01:36
how can i make null string parrot object?
github.com/mberends/MiniDBI/blob/m...l.pm6#L344 01:38
i know pir::null__P() makes null pmc object, but null $S0 is needed here. 01:39
flussence (I was wondering the same thing myself... that used to work but hasn't for a few months now) 01:44
01:45 masonkramer_ joined, masonkramer left 01:46 masonkramer joined
lopnor rakudo: pir::null__S() 01:46
p6eval rakudo 3bbc06: ( no output )
lopnor is this ok? 01:47
sorear don't use pir::null
Rakudo is not designed to work correctly with expressions that return PMCNULL
01:48 masonkramer_ left
sorear if you're going to use Null PMCs, you ought to use a Q:PIR block, and take care that no Null PMCs can get out 01:48
01:48 tty234 joined
lopnor MiniDBD::mysql uses libmysqlclient via zavolaj, 01:49
and some api needs null parameters,
should i use Q:PIR instead of zavolaj? 01:50
01:55 redmorning left 01:57 am0c joined 02:00 noganex_ joined 02:03 leprevost joined 02:04 noganex left 02:08 donri left, Chillance left 02:11 redmorning joined 02:17 jaldhar left, envi joined
sorear lopnor: if zavolaj can't marshal nulls correctly, I would hazard that is a bug in zavolaj 02:21
lopnor sorear: thank you, i will seek some walkaround. 02:24
02:35 masonkramer_ joined 02:38 whiteknight left 02:41 Khisanth left 02:48 Khisanth joined 02:57 araujo left 02:58 araujo joined 03:10 _twitch joined 03:18 orafu left 03:20 orafu joined 03:37 agentzh joined 03:49 stifynsemons left 03:55 masonkramer_ left 03:56 lateau joined 04:02 gimix joined 04:04 leprevost left 04:08 hudnix left 04:09 satyavvd joined 04:15 nymacro joined 04:17 Vlavv` left 04:23 Su-Shee_ joined 04:26 Su-Shee left 04:29 Vlavv` joined 04:59 lateau left
sorear At some point I'd like to discuss the "STD" API with people. 05:13
The procedures currently required to call into viv-STD, Niecza-STD, and Rakudo-STD are quite different and incompatible, despite all having similar *functionality*, and I think that's no good. 05:15
05:16 stifynsemons joined, arlinius joined
sorear What should eval '{YOU_ARE_HERE}' do? 05:25
rakudo: say eval '{YOU_ARE_HERE}' 05:26
p6eval rakudo 3bbc06: OUTPUT«_block169␤»
sorear rakudo: say eval 'YOU_ARE_HERE'
p6eval rakudo 3bbc06: OUTPUT«_block155␤»
sorear ...?
I'm sure that's not right :)
rakudo: say YOU_ARE_HERE;
p6eval rakudo 3bbc06: OUTPUT«_block128␤»
sorear rakudo: say {YOU_ARE_HERE}; 05:27
p6eval rakudo 3bbc06: OUTPUT«_block124␤»
sorear niecza: say {YOU_ARE_HERE};
p6eval niecza v3-8-gc04f67f: ( no output )
dalek ecza: 52c322b | sorear++ | src/ (2 files):
Move non-upstream methods out of STD
ecza: b9d3192 | sorear++ | src/STD.pm6:
Bring STD.panic closer to official implementation
05:31 _twitch left
dalek tpfwiki: (chris denorch)++ | www.perlfoundation.org/perl6/index.cgi?perl_6 05:36
05:37 lamstyle left
dalek ecza: 17e3722 | sorear++ | lib/ (3 files):
Allow execution of compilation units to return a value
05:38
05:42 _twitch joined 05:44 _twitch left 05:48 araujo left, lopnor is now known as lopaway
mberends sorear: I agree with your "STD" API suggestion, can we discuss that in #phasers on Tuesday? 05:54
05:58 starcoder left, pjcj left 05:59 hatseflats left, slavik1 left, pjcj joined, hatseflats joined, qiyong joined, diakopter left
qiyong anyone is op in #perl? 05:59
05:59 diakopter joined 06:02 starcoder joined 06:03 slavik1 joined
sorear qiyong: this is #perl6; there's almost no overlap 06:05
qiyong sorear, they banned me there, i'm confused
sorear mberends: No, I have a lecture at the exact same time this semester 06:06
qiyong is fifo and unix socket the same thing? 06:07
sorear no
similar, but not quite the same
qiyong perldoc.perl.org/IO/Socket/UNIX.html#CONSTRUCTOR
Local Path to local fifo
but that doc mixes fifo
sorear fifo is a general term 06:08
mberends qiyong: beware, this is a Perl 6 channel and you are asking a Perl 5 question. The answers may not be what you seek.
qiyong how do I do unix socket with perl6? 06:10
06:10 kaare_ joined
mberends qiyong: that is still under design/construction 06:11
qiyong: but in Perl 5 you can generally use a Unix fifo or a socket in the same way. See `perldoc perlipc` 06:12
06:13 cjk101011 joined
sorear eh?? last time I checked, you needed perldoc -f connect for sockets and perldoc -f open for named pipes 06:13
unless you meant something different by "Unix fifo"
mberends "generally" ;) 06:14
06:16 Bzek left, Bzek joined 06:23 justatheory left, justatheory joined 06:27 woosley joined 06:28 justatheory left
sorear the proto-eval stuff is bizarrely not working :/ 06:50
06:56 PZt left 06:58 wtw joined 07:00 stifynsemons left 07:02 stifynsemons joined 07:03 alester left 07:04 kaare_ left 07:06 cjk101011 left 07:07 kaare_ joined, stifynsemons left 07:09 cjk101011 joined 07:16 Mowah joined 07:19 _twitch joined 07:20 noganex_ is now known as noganex 07:21 cjk101011 left 07:23 cjk101011 joined 07:24 _twitch left 07:40 pothos left 07:41 pothos joined 07:54 lue left 07:55 lue joined 08:03 sji joined 08:08 jaldhar joined 08:09 Su-Shee_ is now known as Su-Shee 08:22 agentzh left 08:29 agentzh joined 08:50 mberends left 08:54 dju_ joined 08:55 dju left 09:02 donri joined
TimToady wishes all wall.org/~larry/zebra.jpg a good * 09:06
phenny TimToady: 27 Feb 21:43Z <sorear> tell TimToady What is the purpose of STD line 431? { $.from = self.pos }
TimToady also wishes that people wouldn't get Python or Moose envy without good use cases for things that can't already be done other ways in Perl 6; sugaring what we have already is preferable to importing bloat 09:09
donri What is the Python envy? 09:10
tadzik oh, speaking of Moose 09:11
TimToady: don't you think there should be an easy way to do stuff post-object-creation, like BUILD in Moose? Now we must either blees ourselves in new or care about attributes in our BUILD 09:12
TimToady wanting to import Python formatting, which to me looks like a poor-man's way to reimplement what we already have in capture binding and interpolation
tadzik TimToady: see something like nopaste.snit.ch/34387 09:13
09:14 envi left
jnthn morning, #perl6 09:17
donri aha, that one was probably my fault :)
mainly, I find %s etc to have too much C baggage, and interpolation isn't safe (for i18n for example) 09:18
TimToady tadzik: I don't understand what you're saying; new is *for* calling bless, and BUILD is *supposed* to care about attributes
donri though neither is perhaps python's formatting language which allows attribute and item access
TimToady well, we can talk about .fmt sugar, but we already have ways of referring to positional and named things, and this part seems like a lousy way to write a closure that happens to return a string 09:20
as for exceptions, they're supposed to be exceptional, and I don't mind if they contain a format closure
donri I should study fmt more, I thought sprintf-style was *the* way in Perl 6 09:21
TimToady especially since such a closure is unlikely to close over anything anyway
tadzik TimToady: exactly. There is no easy nor straightforward way to "just do some stuff after the object is created and the attributes are set" 09:22
TimToady rakudo: my $answer = 42; say "My answer is $answer.fmt('%7.3f')"
p6eval rakudo 3bbc06: OUTPUT«My answer is 42.000␤»
moritz_ in particular providing your own BUILD interferes with automatic attribute initialization in rakudo, don't know if it should by spec 09:23
TimToady tadzik: then you want to do it after the bless in new
jnthn moritz_: I think by spec it shouldn't.
moritz_ ah, maybe that's the real problem
jnthn moritz_: However, the mechanism by which it doesn't is...mysterious. :)
tadzik so if we define our own BUILD, it should be ran _after_ the attributes are set? 09:24
How does it get on with the logic that BUILD is for setting attributes?
moritz_ jnthn: I guess there's a routine different from BUILD which does the automatic attribute initialization
jnthn moritz_: Perhaps so.
TimToady the spec says it only auto sets the attibutes you'd don't set explicitly
and it's supposed to do that implicitly at the end of BUILD 09:25
jnthn TimToady: What does "set" mean?
TimToady: e.g. can we say "is this thing undefined, if so set it"?
tadzik oh, but when you do it in new() you have to write the .new signature yourself, and stuff
moritz_ that's not too hard
TimToady not, it's supposed to allow you to set something to undef explicitly, and that should override the default 09:26
moritz_ method new(*%args) { self.bless(*, |%args) }
tadzik no of the things we need to do know in Rakudo is hard. It's just sad that we need to bother more than Moose
09:26 am0c left
TimToady Moose can't make Perl 5 provide .wrap 09:26
so you could .wrap your BUILD in P6 to privide control both before and after the BUILD 09:27
jnthn TimToady: Right, that's what I remembered, and why it's not implemented yet. I'm not sure what "set" really means in this context.
TimToady (which could be before any subclasses extend the attributes)
tadzik so ideally, if we write our own BUILD with no signature at all and with nothing but "say 'foo'", it should be said, and the attributes should have been set before as if we didn't write any BUILD at all?
TimToady jnthn: it's more like 'exists' than 'defined'
moritz_ how is that detected when the storage is pre-allocated? 09:28
a special bit field that can be tossed after initialization?
TimToady maybe they're PMCNULL before they exist :) 09:29
but a bitmap would work
and might interoperate with CATCH better, which is required not to blow up on uninit vars
jnthn TimToady: (PMCNULL) may work
TimToady: Combined with a vivification check or something 09:30
TimToady or some other distinguished value...
jnthn TimToady: *nod*
tadzik wklej.org/id/484168/ -- in Moose. The attributes are passed to BUILD, but even if we don't do anything with'em, they're set. Is that how it should work in Perl 6 too?
jnthn It needs to be a value of the right type though.
tadzik forgot to add an output 09:31
TimToady well "bottom" is a valid subtype of any type... :)
09:31 daxim joined
tadzik wklej.org/id/484169/ -- output, as expected 09:31
jnthn TimToady: :P
TimToady: It's more when people write $!foo .= new(); in a BUILD. :) 09:32
TimToady *nod*
donri Are typed variables set to the type itself unless assigned something? 09:33
TimToady tadzik: sounds to me more like you want to define your own BUILDALL that does callsame to get the generic BUILDALL
donri rakudo: my Str $s; say $s.perl
p6eval rakudo 3bbc06: OUTPUT«Str␤»
TimToady then returns control to your buildall after all the BUILDs are called 09:34
jnthn donri: Yes, they're initialized to the type object.
tadzik TimToady: so how exactly does Perl6's BUILD differ from Moose's build in this case?
donri cool, so then .new makes sense and isn't just a special case :) 09:35
TimToady I don't think it would, except for the fact that defaulting happens at the end of BUILD 09:36
tadzik that gets screwed with the number of parameters passed
obstacles everywhere
so what's the easiest way to do something after everything is set up with the default methods? 09:37
TimToady define "everything"... are you counting subclass's BUILD calls as well? 09:38
donri rakudo: say &infix<.>("hello", uc)
p6eval rakudo 3bbc06: OUTPUT«Could not find sub &infix␤ in main program body at line 22:/tmp/67eDJqGNWH␤»
donri rakudo: say &infix:<.>("hello", uc)
p6eval rakudo 3bbc06: OUTPUT«Could not find sub &infix:<.>␤ in main program body at line 22:/tmp/ZzwjxADxJJ␤»
TimToady BUILD is called *while* an object is being constructed 09:39
the only guarantee of a complete object is after the bless completes
donri Isn't .= itself though a little special case?
tadzik yes. As if I did: my $a = Foo.new(some => params); Foo.init(); I don't want to create an init and have the user call it. That's it
donri rakudo: say &infix:<.>("hello", &uc)
p6eval rakudo 3bbc06: OUTPUT«Could not find sub &infix:<.>␤ in main program body at line 22:/tmp/gRkCzN4vDq␤»
TimToady then have the new call it
tadzik so Moose is more convenient in this case 09:40
jnthn donri: Yes, .= is a special case.
donri: It does AST-level re-writing.
moritz_ TimToady: re python formatting vs. closures, the reason why I prefer the python formatting is that it allows you to read the error format string from a simple text file, and still refer to some thing by name
TimToady: if we rely on closures, and read the format string from a text file, we need an eval() step
donri jnthn: I mean compared to other op= variants? 09:41
moritz_ (sorry for context switching, just backlogged)
jnthn donri: Yes
donri Ah good .= fails if the right-hand is a sub and not a method of the object 09:43
TimToady moritz_: you don't need eval if we provide some way to view a format strings as sugar for a strange bindable signature; it's then just an object you can bind a capture to
But I'd prefer not to invent another subinterpreter that has to re-invent pos and named thingies 09:44
moritz_ point taken 09:45
donri can you augment builtins?
TimToady augment is for classes 09:46
you can write wrappers for built-ins
moritz_ tadzik: I get lots of spectest failures, I suspect they are related to the skip() changes (but haven't investigated yet)
tadzik: is your rakudo spectest clean?
tadzik moritz_: I'll check
TimToady method new (|$c) { my $self = callsame; $self.init }
or some such 09:47
donri so you can't augment Str for example?
TimToady you can, but don't
donri yea just wondering :)
TimToady we allow but strongly discourage MONKEY_TYPING
donri i've programmed Ruby, I know it's crazy ;)
TimToady and lexically scoped augmentation is also possible, but considered crazy 09:48
donri and I suppose if you want to add methods you could use the .&sub syntax instead 09:49
TimToady the p6 view of that is that you're providing a different dispatcher within a lexical scope that uses a different class hierarchy
donri rakudo: sub minutes { $^a * 60 }; say 5.&minutes # typical Ruby example 09:50
p6eval rakudo 3bbc06: OUTPUT«300␤»
donri + could use typed multis to deal with namespace polution 09:51
TimToady well, Ruby basically forces you to do your functional programming via the OO paradigm, which distorts things
donri hehe
Ruby folk are obsessed with "how things read" from a natural language perspective, often being ignorant to how it reads from a programming perspective
TimToady well, ruby reads naturally if you use a language in which the verb always comes last :P 09:52
donri I mean things like "5.minutes"
moritz_ that doesn't even have a verb :-) 09:53
donri they like to put verb-likes first for implied subject even when there's ambiguity
TimToady .minutes is really a type cast
donri e.g. instance methods accessible top-level within classes
i mean "foo" for "self.foo" 09:54
TimToady P6 prefers to keep its FP dispatchers completely distinct from its OO dispatchers 09:55
FP dispatchers are all about "what exact language am I speaking in this lexical scope" 09:56
OO dispatchers don't care about the current language, only what the invocant happens to know about itself 09:57
the concepts should not be confused
moritz_ +2
we used to confuse them at some point
flussence random non-sequitur - would this work as intended? "macro ∑ { '[+] ' }; say ∑ 1..10; 09:59
.u ∑ 10:00
tadzik moritz_: yeah, I get failures too
phenny U+2211 N-ARY SUMMATION (∑)
10:00 orafu left
TimToady flussence: probably, since textual/unhygienic macros reparse 10:00
moritz_ flussence: you probably need to qualify ∑ as a listop, unless that's the default 10:01
moritz_ not well versed with macros
tadzik moritz_: maybe fudge needs to be re-ran or something?
moritz_ tadzik: I did a find -name '*.rakudo' | xargs rm
in t/spec
flussence is that a test failure in S03?
TimToady listop is currently specced as default, but maybe that should only be for hygienic macros 10:02
flussence github.com/perl6/roast/commit/57bc8e44
tadzik: see the =begin pod there? That's why :)
10:02 woosley left
moritz_ tadzik: some skips are still generated wrongly 10:02
S29-any/isa.rakudo 10:03
flussence those added tests are commented out, so the plan's broken
moritz_ 27: #?rakudo skip "Array is now ~~ List"
28:skip(1,"Array is now ~~ List"); # { ok(@arr.isa(Seq), '... @arr is-also-a Seq (invocant notation)');
tadzik flussence: ouch :D
TimToady or might have to say macro ∑ is parsed(/''/) { '[+] ' }
tadzik moritz_: maybe I fixed fudge wrong
TimToady or that might be the default for macro ∑ () { '[+] ' }
or maybe it's macro term:<∑> { '[+] ' } 10:04
moritz_ tadzik: there are just some instances left that you didn't fix
tadzik: I found two of them, re-running things now...
flussence (hm, I wonder how long it'll be before all the unicode mathematical operators are implemented by someone...) 10:06
tadzik . o O ( use Math::Insanity )
TimToady for textual macros that get reparsed, we only care about the initial "term" cateogory, not the implied "what to look for next", since we reparse anyway
10:06 tzhs joined
flussence tadzik: not that insane - it'd make the gap between things like mathml and perl6 code smaller :) 10:07
10:08 lamstyle joined
flussence (they'd be insane to implement the box-drawing-style symbols in U+23xx though) 10:09
moritz_ tadzik: it seems that rakudo now does nothing on a skip() call
TimToady visitors & # biab
moritz_ $ ./perl6 -e 'use Test; plan 2; skip("foo", 2)' 10:10
1..2
# Looks like you planned 2 tests, but ran 0
flussence hm, I might need to go fix a few tests...
moritz_ flussence: notice that all tests which contains skip() are currently screwed up in rakudo 10:11
10:11 redmorning left
moritz_ tadzik: OH. I had an old Test.{pm,pir} installed 10:12
flussence shouldn't running make have caught that? 10:13
moritz_ flussence: the problem is that rakudo picks up installed versions over local ones
dalek ast: e15910b | moritz++ | fudge:
[fudge] fix skip() argument order in two more cases
flussence huh, I don't seem to have anything using that after all. 10:14
donri can you use macros in macros? :D 10:25
moritz_ sure
donri wouldn't that require recursive reparsing 10:26
moritz_ it's like asking "can you use functions in functions?"
donri but functions are semantical not grammatical
moritz_ wouldn't that require recursive execution?
10:26 redmorning joined
donri or maybe macros don't do what i think 10:27
moritz_ hygienic macros don't require any reparsing
donri does hygienic mean it uses syntax that is already grammatical standard perl 6? 10:28
moritz_ I think I mis-used the term 10:29
hygienic primariliy means that lexicals from the macro don't leak into the AST that the macro produces
what I wanted to say is that macros that return syntax trees (and not text) don't need any reparsing 10:30
10:33 JimmyZ joined 10:34 snearch joined 10:39 am0c joined 10:43 awoodland joined 10:45 snearch left, satyavvd left
Tene fwiw, I'd write that as: macro prefix:<∑> ($ast) { quasi :COMPILING { [+] [[[ $ast ]]] } } 10:46
10:48 satyavvd joined
Tene The choice on whether or not to use :COMPILING there would vary based on whether you would want your ∑ op to respect lexical-scoped replacements of + or [] at the call site or not 10:48
dalek kudo: 74dcceb | moritz++ | Test.pm:
[Test.pm] fix skip_rest; typecheck $count argument to skip() so that it is easier to detect old usage
ast: 8b5a87e | moritz++ | / (18 files):
reverse order of skip() arguments all over the test suite
10:49
Tene I pesonally would expect that you wouldn't want that, as they should be getting the same multi anyway, so if you're modifying it in ways other than multiple dispatch, you probably don't want it to change the behaviour of other ops.
Man, the spec could seriously use some better examples and other cleanup there. There's also a broken use of quasi in S02, that should feasibly be a warning. 10:51
(use of arguments to the macro in a quasi without unquoting.
If you're doing that, it almost certainly won't do what you want. 10:52
std: macro prefix:<foo> ($ast) { quasi { $foo + 2 } }; 10:53
p6eval std 4608239: OUTPUT«===SORRY!===␤Variable $foo is not predeclared at /tmp/GpPcoHabyI line 1:␤------> macro prefix:<foo> ($ast) { quasi { $foo⏏ + 2 } };␤Potential difficulties:␤ $ast is declared but not used at /tmp/GpPcoHabyI line 1:␤------> macro
..prefix:<foo…
Tene erm
std: macro prefix:<foo> ($ast) { quasi { $ast + 2 } };
p6eval std 4608239: OUTPUT«ok 00:01 134m␤»
Tene std: macro prefix:<foo> ($ast) { quasi { [[[ $ast ]]] + 2 } };
p6eval std 4608239: OUTPUT«ok 00:01 136m␤»
Tene the former should give at least a warning.
moritz_ Tene: feel free to fix stuff in the specs
Tene moritz_: Yes, I know. I'm at least going to fix the error, and I may touch up other discussion of macros tomorrow. 10:54
moritz_ hugme: add Tene to perl6
hugme hugs Tene. Welcome to the perl6 github organization
Tene Wasn't I already there? I thought I was... 10:55
moritz_ Tene: I didn't see you in the team listing 10:56
Tene Ahh; okay.
moritz_ maybe you were, then you now have 2 commit bits, and can do twice as many commits as we can :-)
10:56 cjk101011 left
Tene I've always felt vaguely unsure of how to handle the difference between "good user documentation" and "spec" when making edits to the specs. 11:01
As always, I expect I shoudl realistically handle it by overincluding and let someone else deal with trimming anything inappropriate out. 11:02
11:03 orafu joined
Tene There currently isn't a good place for me to contribute to the docs that would end up as 'p6doc --wtf macros', or whatever, though. 11:04
Maybe there should be.
moritz_ there should be, yes 11:06
11:07 hanekomu joined
moritz_ Tene: you could put docs into docs/u4x/documentation/ -- it's not yet used by any tools, but it's also unlikely to be forgotten 11:07
11:09 Bzek left 11:10 Bzek joined
Tene Ah, I forgot about that. 11:13
moritz_ (thats's in the mu repo, fwiw) 11:14
Tene This will have to be good enough; I've spent too much time on this tonight. 11:15
Need to finish something else and then go to sleep.
11:15 JimmyZ left
dalek ecs: bed616e | tene++ | S0 (2 files):
Fix an error in macro usage and add a recommendation for a warning for that error.
11:17
Tene There; my first commit to the specs since they moved out of pugs 11:18
Looks like I previously only made two minor formatting and language fixes; no previous functional changes.
moritz_ Tene++ 11:20
Tene There probably needs to be some text in there about ensuring hygeine, etc. 11:21
macro statement_control:<FOO> (&block) { my $msg = 'lol'; [[[ &block ]]]() }; my $msg = 'ohai'; FOO { say $msg } 11:25
It's also not clear to me whether there is any possible confusion in the spec about COMPILING::. I'm pretty sure that if you want to talk about what you're compiling in the quasi you need to do that in a BEGIN in the quasi, but I havne't thought about it much yet, and it could do with being noted in the Macros section. 11:29
11:33 redmorning left 11:37 nrr` left 11:39 satyavvd left 11:44 amkrankruleuen left 11:45 nrr joined 11:48 masak joined
masak oh hai, zebras 11:48
phenny masak: 26 Feb 13:20Z <tadzik> tell masak have a pull request
11:49 amkrankruleuen joined
masak Tene: "To insert an "unquoted" expression of either type within a quasiquote, use the quasiquote delimiter tripled" 11:51
Tene: note "the quasiquote delimiter". your last commit seems to not be aware of that.
phenny: tell tadzik merged; dziękuję. 11:57
phenny masak: I'll pass that on when tadzik is around.
masak becomes fuzzy around the edges and disappears back to $dayjob 11:59
11:59 masak left
donri why are things like statement_control using underscore? 12:00
flussence seems to be a style choice for operator-defining things, look at S02:4762 for example 12:06
donri or is it an artifact from a time when possibly "-" wasn't allowed in terms? 12:08
12:08 cotto left
perplexa phenny: tell phenny tell phenny tell phenny tell phenny that this is a test 12:09
phenny Hey, I'm not as stupid as Monty you know!
perplexa :)
donri phenny: tell * whatever
phenny donri: I'll pass that on when * is around.
donri: 12:09Z <donri> tell donri whatever
donri Thanks.
perplexa heh 12:10
flussence wait, that works?
donri yep
flussence phenny: tell flu* whatever
phenny flussence: I'll pass that on when flu* is around.
perplexa so * apparently resolves to yourself
phenny flussence: 12:10Z <flussence> tell flussence whatever
donri perplexa: no, it's just the last activity with nick matching *
perplexa which is? ;)
donri phenny: tell per* example time!
phenny donri: I'll pass that on when per* is around.
flussence I wonder how that globbing's done
donri lala
perplexa is not gonna trigger that 12:11
phenny perplexa: 12:10Z <donri> tell perplexa example time!
perplexa damnit
donri flussence: likely python's fnmatch
perplexa aye
donri docs.python.org/library/fnmatch.html
12:11 Alias joined
donri phenny: tell [!t]onr? WHAT! 12:11
phenny donri: I'll pass that on when [!t]onr? is around.
donri :(
maybe not 12:12
flussence bah, no {} syntax :)
donri phenny: tell donr? hi me!
phenny donri: I'll pass that on when donr? is around.
donri guess only * works
phenny: tell *ri !
phenny donri: I'll pass that on when *ri is around.
donri and only at the end
12:13 am0c left 12:14 nart joined
perplexa you're probably filling it's message stack with crap :D 12:15
let's continue until it crashes
donri shh
nart helo, I know some p5 and am primarly a php programmer. what does p6 main area of application? I mean, will it compete php? or will it replace perl5 in some applications (yes I guess for text processing perl5 will live forever with sed and awk)..
perplexa for now i'd say it's just a geek toy 12:16
moritz_ nart: we plan to replace all dynamic languages with Perl 6. Sadly our plan won't work out, I guess
perplexa to be honest
heh mo :)
moritz_ nart: it's a general purpose programming language, it retains perl 5's strengths in text processing, but makes many other things (for example proper object orientation) much more convenient 12:17
nart moritz_: so you expect that people using perl5 for text processing (like myself) will move to perl6?
perplexa will consider using it as soon as its performance gets anything near p5
moritz_ nart: we'll offer a viable alternative; judging people's readiness to switch is almost impossible 12:18
nart: Perl 5 will not cease to develop, so people can stay there if they want
donri Perl 6 is best compared to Python and Ruby other than Perl 5 12:19
IMO
moritz_ donri: maybe technically, but not in spirit
nart moritz_: I think regarding text processing a developer might be more intersted in speed than in oop model.. what about web applications? new perl6 era like the old perl web apps days?
donri It's a similar niche
dynamic general purpose languages
moritz_ nart: people interested in text processing will love grammars and reusable, named regexes 12:20
perplexa donri: why do you think it's betteR?
donri perplexa: better than what?
nart: perl 6 web development will probably be similar to python or ruby web dev 12:21
perplexa you just said it's better than python and ruby, didn't you?
moritz_ nart: Perl 6 will be suited for web app development, once it's a bit faster than today. We don't know yet in which niche it will be actually universally used
donri perplexa: oh, i meant "best compared"
moritz_ perplexa: donri said it's best to compare perl 6 to python and ruby
donri stupid ambiguity
perplexa ah :p
nart moritz_: I think that will be perl6 main problem.. no certain direction.. 12:22
perplexa non-native speaker flaws here :)
donri nart: that's not a problem for python IME
perplexa needs to improve his parser
donri perplexa: not your fault
my statement was ambiguous
flussence eh, I'm already using perl6 in place of a few shell scripts 12:23
moritz_ nart: in the case of general purpose programming languages, directions come from users, not from the language
donri A flexible enough language can be useful for multiple directions with strong libraries 12:24
nart moritz_: I am surely not as an expert in language design as perl6 guys.. but I think directions come actually from the Language and the users.. usually a language is designed for a reason.. like tcl, perl5, lisp.. etc.. each one had a reason to be created and an area to be used in.. don't you agree? 12:26
donri There's surely different niches where different languages show strength 12:27
moritz_ nart: well Perl 6 has a reason too: problems with Perl 5
donri but they're not as narrow as you make it sound IMO
flussence augment class Str { method cdata { self.trans(«< > & "», «&lt; &gt; &amp; &quot;») } }
moritz_ Perl was meant for text extracting and reporting; now it's everywhere in software QA, biologic computations, web development and sysadmin tasks 12:28
donri I rather find that a narrow direction hurts a language
flussence (hmm, if it's cdata then it doesn't need &quot; ...)
nart moritz_: as you see perl5 is not as famous as it was in late 90's.. so if perl6 is just some enhancements I think it will be hard for it to survive.. I think anyone would agree with me that perl5 will still be used for text processing for maybe the next 10-15 years.. So if text processing is perl5 thing, perl6 must have its own "thing" 12:31
moritz_ nart: Perl 6 is by no means "just some enhancements" to Perl 5. It's a fundamental redesign
nart: and as far as I can tell perl 5 usage hasn't actually decreased - it's just that market has grown faster than perl 5 usage 12:32
12:33 gimix left
moritz_ all hard facts (for example upload statistics to CPAN) say that Perl 5 continues growing 12:33
Tene masonkramer: Ah, I hadn't noticed that before; I had remembered that as "any tripled delimiter". Thanks.
12:33 coldhead left
Tene erm 12:35
dalek ecs: d3c65df | tene++ | S02-bits.pod:
Fix an error pointed out by masak++
Tene masak: Ah, I hadn't noticed that before; I had remembered that as "any tripled delimiter". Thanks.
he's not around right now, though.
12:35 _twitch joined
nart moritz_: I do know few large corporations who still maintaining perl5 old projects, but the new projects are done in python. And that is not because perl5 is bad but it is just because python and other languages were evolving faster.. anyway.. we are talking about perl6 here.. the only thing I noticed that it is Fun to use it.. but sadly couldn't find where it will be suited in the near future.. 12:36
Tene nart: My company is actively developing new perl 5 infrastructure, fwiw, as did both of my two previous employers. 12:37
donri anything those people use python for today, i'd say
moritz_ nart: everywhere that a general purpose programming language is suited
donri: re _ in names: we still prefer to it in "internal" names, ie things that are not really meant to leak to the end user 12:38
donri: e.g. things like MONKEY_TYPING (which you shouldn't be using)
flussence Perl 6 is not a railway, it's a boat. You can get from A to B quicker in other languages, but they won't let you go from A to ✪ as easily.
moritz_ flussence++ # nicely phrased, though I'd compare it to a helicopter instead :-) 12:39
nart flussence: by quicker (you mean less key strokes right?)
12:39 Axius joined
moritz_ would be surprised if that was meant 12:39
flussence less effort, because in most languages all the interesting stuff's been written already and it's usually down to "import whatever" 12:40
12:40 Alias left
nart flussence: which is bad in you opinion? 12:40
donri but if parrot gets the act of a multilingual vm together...
flussence not at all
colomon I wouldn't say "all the interesting stuff" -- I'd say all the "routine stuff", or something like that. 12:41
flussence depends what interests you :)
moritz_ Perl 6 tries to be a tool box that enables you to build stuff, without building too many other tools first 12:42
nart moritz_: which is nice.. and most languages already provide..
moritz_ nart: to some extend
nart moritz_: yes, including perl5 and 6.. 12:43
12:43 awoodland left
moritz_ we believe we can do better than existing languages; otherwise we wouldn't be trying 12:43
I'm getting a test plan failure in S03-operators/identity.t... any idea why? 12:46
flussence yep
irclog.perlgeek.de/perl6/2011-02-28#i_3341527
nart moritz_: I am sure it will.. I am a perl fan.. but was trying to give a note of something I thought is important for the language.. It is unique, fun, interesting. thanks for your time everybody.. 12:47
moritz_ nart: thank you too; it seems we just disagree about the importance of direction
nart moritz_: I think deep insdie you, you will agree some day ;) 12:48
moritz_ nart: we'll see :-)
12:49 nart left
moritz_ flussence: oh, the tests were added to the wrong section 12:49
flussence I think that pod thing should be replaced with plain #s 12:50
moritz_ or maybe just deleted 12:51
flussence I tried it without, a few of those do fail
moritz_ they don't make much sense
trying container identitiy on values is... weird.
12:51 qiyong left
flussence those should be eqv? 12:52
moritz_ dunno. Value equivalence is tested in other files. 12:53
12:53 JimmyZ joined
dalek ast: 73038b4 | moritz++ | S03-operators/identity.t:
clean up identity.t

move return type tests out of POD comments remove commented out tests that wrongly act on values, not containers
12:53
13:03 envi joined
donri moritz_: I guess _ is like __ in python 13:07
moritz_ donri: not really, we don't stick at the start and end of our identifiers
donri but purpose-wise
arnsholt Also, the distinction between for internal/external use is mostly pragmatic in Perl 13:09
moritz_ arnsholt: well, Perl 6 has private attributes and methods
arnsholt That's true 13:11
moritz_ and a _ in the name doesn't necessarily mean privacy 13:12
13:12 stifynsemons joined
moritz_ it just means "here is something a wee bit more hairy than usual" 13:12
donri yea that's kinda __x__ in python 13:14
it's not "private", more like "metalinguistic"
what do you do when there's a single-word term that's a little hairy? :D 13:15
flussence moritz_: Test.pm skip_rest also needs fixing :)
(unless my copy's stale...) 13:16
moritz_ flussence: was my last commit not enough?
flussence (yep, mine's out of date. My bad.)
13:21 agentzh left 13:24 MayDaniel joined, MayDaniel left, MayDaniel joined
flussence 100% \o/ 13:25
13:32 MayDaniel left 13:37 JimmyZ left 13:39 cjk101011 joined 13:45 Tedd1 joined, masonkramer left 13:46 masonkramer joined 13:50 awoodland joined 13:55 Shozan left 13:56 tonny joined 14:00 Axius left 14:05 kaare_ left
tadzik o/ 14:08
phenny tadzik: 11:57Z <masak> tell tadzik merged; dziękuję.
14:11 risou joined 14:12 plobsing left
TimToady rakudo: my $mess = -> |$/ { "My $0 has $1" }; say $mess('dog', 'fleas') 14:15
p6eval rakudo 74dcce: OUTPUT«My dog has fleas␤»
14:15 stifynsemons left
TimToady there's your positional interpolation :) 14:16
moritz_ it still requires eval, if I read 'My $0 has $1' from a file
14:17 stifynsemons joined
TimToady only if there's not some stricter version of eval suitable for that purpose 14:17
moritz_ right
TimToady remember eval is often an indicator of a missing feature
jnthn rakudo: my $mess = -> |$/ { "My $<pet> has $<illness>" }; $mess(pet => 'dog', illness => 'fleas');
p6eval rakudo 74dcce: ( no output )
jnthn rakudo: my $mess = -> |$/ { "My $<pet> has $<illness>" }; say $mess(pet => 'dog', illness => 'fleas'); 14:18
TimToady likewise BEGIN
p6eval rakudo 74dcce: OUTPUT«My dog has fleas␤»
jnthn Cute :)
moritz_ likes it
14:18 plainhao joined
tadzik nice 14:18
moritz_ it's also something I can fake up nicely until it's properly implemented
TimToady have we used qf yet? 14:19
14:19 hudnix joined
TimToady yes we have 14:19
moritz_ dunno, S02 doesn't fit into my head :-)
TimToady means to interpolate functions
moritz_ what did you want to use it for? (ie what should the 'f' have meant?) 14:20
TimToady format, presumably, but that doesn't help your file
we want a function to translate a format to a closure
donri TimToady: a stricter version of interpolation would totally satisfy what i like about python's format 14:21
14:21 stifynsemons left
TimToady and, in fact, sprintf("...", 1,2,3) could end up optimizing to such a closure, in a currying sort of way 14:22
(if the format is constant) 14:23
14:23 awoodland left
TimToady well, assuming the internal form doesn't have to recreate the format string... 14:23
now to think a bit more about sugar for .fmt('%7.3f') 14:24
if we reduced it to .%7.3f it would have to be an exception to the final () rule 14:25
donri rakudo: my $answer = 42; say "answer is %7.3f".fmt($answer) 14:26
p6eval rakudo 74dcce: OUTPUT«No applicable candidates found to dispatch to for 'fmt'. Available candidates are:␤:(Mu : Str $format = { ... };; *%_)␤␤ in main program body at line 22:/tmp/W1ux_DdJn_␤»
14:26 mberends joined 14:27 pigdude joined
moritz_ rakudo: say 42.fmt('%05d') 14:27
p6eval rakudo 74dcce: OUTPUT«00042␤»
14:28 pigdude_ joined, tonny left 14:36 awoodland joined 14:40 kaare_ joined 14:43 sji left 14:48 PZt joined 14:51 pigdude_ left, pigdude left, pigdude joined
perplexa moritz_: .fmt? :/ 14:54
as in vowels are overrated? :) 14:55
moritz_ perplexa: as in "keep often-used constructs short"
aka hufmann coding 14:56
time will tell if .format would have been a better choice
perplexa hmm
perplexa doesn't mind either choice
i actually like short method names 14:57
mberends I'm tending to prefer longer, more self-documenting words these days.
perplexa might get confusing if you have to remember lots of them, tho
i think pros and cons are pretty balanced there
mberends aye 14:58
14:58 spq joined, JimmyZ joined 14:59 cotto joined 15:01 pigdude left
[Coke] keeping things short JUST to keep them short is silly. 15:02
readability (and consistency) are also important. 15:03
Juerd Except when there's not enough room for them to be longer :)
For example, Java code tends to have reallyLongIdentifiersThatArentReallyHelpfulInKeepingYourLinesyWithin80Characters 15:04
And it's a clear example of how long identifiers can hurt readability too 15:05
From that point of view, "format" is already short.
Juerd prefers "format" to "fmt", by the way.
But I'd abbreviate "configuration" to "config". Not "cfg" or "conf" though, except in filenames. 15:06
mberends How come Java identifiers are often so long? Did some authority define that as Best Practice? 15:07
15:09 daxim left, risou_ joined
arnsholt Some of the conventions of Java are essentially workarounds for the fact that Java doesn't have proper lambdas 15:09
The Visitor pattern for example is just a map
Another part of it is the whole EnterpriseNeedsVerbosityConstraint I think 15:10
15:11 araujo joined, alester joined, risou left
mberends I'm guilty of inventing overly long names for things to avoid risk of collisions when working in a single namespace (eg in C). 15:11
arnsholt Yeah, C has different problems. Namespaces being one of them 15:12
Also, C prgrmrs ht cnsnnts
alester Not good ones. 15:13
mberends rnshlt: I don't hate them ;)
alester See what I mean?
15:15 wtw left
frettled whts wrng wth cnsnnts? 15:17
colomon arnsholt: to be precise, Visitor is a hideously ugly map.
mberends frttld: th'r rdndnt
colomon arnsholt: and Visitor also allows a foolish adherence to fundamentally insane ideas about OOP. 15:18
tadzik blog.kraih.com/a-logo-for-perl-5 has some p6 references
arnsholt Er, right. C prgrmrs ht vwls is of course the right one =D 15:20
I confuse vowels and consonants embarrassangly often, considering I'm supposed to be a linguist 15:21
15:21 pigdude joined
donri don't you guys mean vowels 15:22
oh you already said
arnsholt Indeed. For some reaon I never can keep the two straight in my brain 15:23
frettled ee: o you eay i e ou ue oy oe?
15:26 nymacro left
arnsholt colomon: My Common Lisp fundamentalist friend has a whole laundry list of things that are broken in Java simply because it lacks lambdas =D 15:26
15:27 bluescreen joined
moritz_ well, lack of lambdas/closures heavily influences the design of libraries 15:28
arnsholt Exactly =) 15:31
15:31 MayDaniel joined
sorear "What would you do differently if you redesigned UNIX today?" Ken: "I would spell creat(2) with an e." 15:33
moritz_ :-) 15:34
arnsholt The world is no longer limited to 8.3. Oh joy =) 15:35
colomon moritz_, arnsholt: The other bad thing about the Visitor pattern, though, isn't just the lack of lambdas. It's the idea that it's somehow better to code a new class with a method for each type which might be visited than it is to write a given / when statement that branches on type. 15:36
15:37 mberends left
colomon That's placing a (IMO dubious) OOP principle over writing straightforward code. 15:38
arnsholt Indeed
15:40 am0c joined, mberends joined
jnthn I find code that is a tangle of complicated hierarchies much worse to dig into than code that is just in a big chunk that really shoulda been broken out into manageable pieces. At least in the second case it's all in front of you in one place. 15:41
15:42 satyavvd joined
colomon Right. 15:42
sorear good * #perl6 15:43
mberends good * sorear 15:44
colomon The first time you're stepping through the code, and you have to step into the Visit method (jumping to another source file, of course), and then step into the VisitCircle method (back to the original file, but in a different spot), only to realize that you don't have access to the local variables from the point of the call that the straightforward approach would allow you....
15:46 plobsing joined, MayDaniel left
donri The point in Java is usually to write in such a way that you don't need to understand it 15:46
So you "shouldn't" look at the visit method, it should just DTRT
and you should Trust It 15:47
arnsholt colomon: Which is why I use anonymous inner classes as much as possible in Java =) 15:48
15:51 justatheory joined 15:59 jaldhar left, jaldhar joined, JimmyZ left
TimToady back after power failure... 16:01
16:01 Rotwang joined, awoodland left
moritz_ hopes TimToady rebooted just fine, and has lost no data 16:02
TimToady well, laptop was fine on batter, but rebooted on purpose to finish update :) 16:03
*battery
16:16 Patterner left 16:19 Psyche^ joined, Psyche^ is now known as Patterner 16:21 ymasory_ left 16:27 am0c left 16:28 envi left 16:33 tzhs left 16:34 bluescreen left 16:44 kanishka joined 16:54 satyavvd left
dalek ecza: b94a627 | sorear++ | / (8 files):
Revise downcall protocol (ki9a++) and use downcalls to invoke CLRBackend
17:00
tadzik if I "use Foo::Bar", I can't "class Foo", for "Illegal redeclaration of symbol 'Foo'". Why so? 17:01
moritz_ tadzik: because of rakudobug.
rakudo: class A { ... }; class A { }
p6eval rakudo 74dcce: ( no output )
tadzik Aroo
I'll name it Not_Foo 17:02
moritz_ using a class Foo::Bar should have the same as effect as stubbing class Foo
donri FooButNotThatOtherFoo
moritz_ rakudo doesn't do that
PerlJam moritz_: "stubbing class Foo" is over stating it a bit isn't it? Foo doesn't have to be a class at all. 17:03
sorear moritz_: care to elaborate on semantics? I haven't figured out a good way to make Foo::Bar "just work" in Niecza yet 17:04
moritz_ PerlJam: right, it should stub package foo
std: class Foo::Bar { }; say Foo
p6eval std 4608239: OUTPUT«===SORRY!===␤Undeclared name:␤ 'Foo' used at line 1␤Check failed␤FAILED 00:01 119m␤»
moritz_ if std is correct, it shouldn't even stub Foo
sorear: actually I'm not really sure how it works 17:05
sorear std probably isn't correct, except maybe by accident
I've learned a great distrust of std's package handling
moritz_ sorear: fyi nicza fails to build on my system (and did so before your last commit too) 17:06
mono 2.6.7
17:06 stifynsemons joined
sorear yeah, I got that report from flussence++ earlier 17:07
moritz_ I'm still trying to get to the first error message, they scroll out of my window, and I can't seem to get the redirection working :(
sorear flussence's first error was: runtime version not available, using 1.1
it seems like my mono 2.11 is building niecza to use the 4.0 runtime (introduced in mono 2.8) 17:08
PerlJam moritz_: you don't have script(1) ?
sorear I need to figure out what's going on later
moritz_ PerlJam: I have, and I just started it :-)
17:08 stifynsemons left, stifyn joined
flussence flussence-- # don't think it was me who reported that... 17:09
sorear moritz_: unrelatedly, niecza is having exception structuring issues
moritz_ yes, error is similar here
sorear: care to elaborate?
sorear I'm starting to reach the limits of "$! is a string"
moritz_ ah 17:10
sorear e.g. in the REPL, I don't want exceptions to kill the process, but if I catch them, I lose the backtrace
moritz_ I expect $! to have a .trace method or something
sorear to what extent are "standardized Exception objects" part of your grant agenda? 17:11
I'm interested in workable ideas
17:12 cjk101011 left
moritz_ I want to catalogue existing messages 17:14
and give them some sort of identifiers by which you can test them (maybe enums?)
and then unify the messages across implementations 17:15
and give the tags/properties like "parse time", "compile time", "run time" and things like "regex", "dispatch", "type check" etc. 17:16
sorear: does that answer your question?
sorear Yes 17:20
moritz_ does it also sound sane to you?
sorear mostly 17:21
moritz_ and do you have any additional wishes/ideas for that part of the exception system?
mostly? which part does not sound sane?
sorear I'm curious to see what you do about things like "State declarations NYI"
moritz_ it'll probably be in a 'nonstandard' and/or 'internal' category 17:22
maybe s/nonstandard/deviation from standard/
sorear let's call them "substandard" errors
17:23 plobsing left
moritz_ I guess it even has applications is "completed" implementations 17:24
ie if you compile to JS, and can't use IO or something
PerlJam if you get rid of "yet" in the wording, certainly :) 17:25
moritz_ aye 17:27
sorear an implementation without IO surely counts as substandard 17:29
PerlJam depends on what you consider "standard"
sorear passes 100% of roast
PerlJam so ... all implementations are substandard? 17:30
moritz_ currently, yes
sorear was trying to pun 17:31
PerlJam "substandard" just rubs me the wrong way for some reason.
moritz_ it sounds like "low quality"
when we really mean "subset of the standard" 17:32
17:33 plobsing joined
sorear The double meaning in my suggestion was deliberate 17:33
PerlJam sorear: well then, while I appreciate the pun, it sounds a little too snarky for Perl 6. Maybe you can use it with Perl 5 though :) 17:34
17:45 kanishka left
sorear TimToady: What will become of PL_delaymagic and $*EUID, $*UID = $*UID, $*EUID ? 17:46
donri aren't errors for NYI outside the standard? 17:50
in a way a "superstandard"
parastandard :)
PerlJam donri++ I like the way you think :) 17:51
pmichaud good morning, #perl6 17:54
jnthn morning, pmichaud 17:55
17:57 orafu left, stifyn left
sorear hello pmichaud!! 18:02
18:03 cdarroch joined, cdarroch left, cdarroch joined 18:04 bluescreen joined, _twitch left 18:07 stifynsemons joined 18:09 hanekomu left
tadzik hello pmichaud 18:09
colomon \o 18:14
18:15 pigdude_ joined 18:16 pigdude left, rgrau joined 18:21 risou_ left 18:25 plobsing left 18:26 masak joined
masak evening, zebras. 18:26
18:26 pigdude_ left
moritz_ \o 18:26
masak: I'm still waiting for the p5 review :-)
masak a lot of us are :P
18:27 pigdude joined
masak I'm terribly sorry for the delay. $dayjob is sucking up my tuits at present. 18:27
it's on top of my TODO stack, though. 18:28
sorear hi masak
PerlJam masak is reviewing perl 5?!?!? 18:29
*innocent look*
masak next year I'll call the tasks... oh, I already said that. 18:30
sorear ok, the time has come to formally depend on Mono 2.8
or rather, on the NET_4_0 profile
masak how come? 18:31
sorear I need it for garbage-collection of runtime-generated code
moritz_ debian testing doesn't have that yet :(
moritz_ will need to compile from source
masak it's harsh at the frontier. 18:32
pmichaud You can tell the pioneers by the pointy blocks in their backs.
masak pmichaud! \o/
pmichaud for @arrows -> { say 'ouch!' }
masak pmichaud: a pun worthy of Worthington :P 18:33
if Perl 6 had come before Lisp, would the blog have been called "pblock the Ultimate"? 18:34
dsp_ moritz_: is it not in debian experimental 18:36
then again that will probably want to pull in a bunch of other stuff
masak .oO( conservatively experimental ) 18:38
18:39 plobsing joined
sorear masak: "lambda" goes back to the sketches of Alonzo Church 18:39
masak sorear: oh! I should have known.
sorear originally, it was λ 18:40
masak well, if Turing had published before Church, would the blog have been called "State Machine the Universal"? :P
jnthn :P
o/ masak
masak jnthn! \o/
sorear Lisp decided to use "lambda"; Haskell picked the closest ASCII char, "\", but still called them lambdas
Perl 6 uses "->", and calls them pointies 18:41
18:41 lopaway is now known as lopnor
masak sorear: pointy-haired blocks :) 18:41
jnthn Perl 6 gets the point of functional programming. :)
sorear also, why do I have ctrl-shift-3BB memorized? 18:42
masak λ 18:44
flussence it's perfectly normal to commit random unicode chars to memory (IMO)
.u 263a
phenny U+263A WHITE SMILING FACE (☺)
masak C-u C-\ greek RET l in Emacs :)
sbp it's a lamb, duh
masak I see everyone in the pun committee has come. let the meeting begin. 18:45
sbp don't mention meatings with lambs around
sorear flussence: emphasis on the random
I have basically all of 0-7F, sure
moritz_ .u beverage
phenny U+2615 HOT BEVERAGE (☕)
moritz_ I can't even remember that one :-) 18:46
sorear also 3BB, 3000, 3080, 4e03, fffe, fffd
masak .u hot
phenny U+2668 HOT SPRINGS (♨)
dalek ecza: 6905b60 | sorear++ | / (6 files):
Run MAIN units without a temporary file, using a collectable assembly
18:53
18:53 lopnor is now known as lopaway
moritz_ parallel build of mono failed 19:04
sequential succeeded
flussence rakudo: 'abc' ~~ m:p(1)/^a/; 19:14
p6eval rakudo 74dcce: ( no output )
flussence rakudo: 'abc' ~~ m:p(0)/^a/;
p6eval rakudo 74dcce: ( no output )
flussence oh
rakudo: ('abc' ~~ m:p(1)/^a/).perl.say;
p6eval rakudo 74dcce: OUTPUT«Match.new(␤ from => 1,␤ orig => "abc",␤ to => -3,␤)␤»
flussence rakudo: ('abc' ~~ m:p(0)/^a/).perl.say;
p6eval rakudo 74dcce: OUTPUT«Match.new(␤ from => 0,␤ orig => "abc",␤ to => 1,␤)␤»
moritz_ rakudo: ('abc' ~~ m:p(0)/^a/).pretty.say; 19:17
p6eval rakudo 74dcce: OUTPUT«=> <a>␤␤»
flussence when did that get added?!
moritz_ Fri Jan 7 21:34:18 2011 +0100 19:18
colomon month or two ago
flussence doh.
(I always seem to overlook the good bits)
dalek ecza: 3605ac1 | sorear++ | / (7 files):
Implement eval. Eval return values not yet working
19:25
sorear out
19:26 bluescreen left 19:28 plobsing left 19:29 shi joined, plobsing joined 19:31 og01 joined
diakopter niecza: eval "say 4452" 19:34
p6eval niecza v3-14-g3605ac1: OUTPUT«Unhandled exception: System.NotSupportedException: RunAndCollect not yet supported.␤␤Server stack trace: ␤ at System.Reflection.Emit.AssemblyBuilder..ctor (System.Reflection.AssemblyName n, System.String directory, AssemblyBuilderAccess access, Boolean
..corlib_internal) [0x00000] i…
moritz_ time to install a custom mono on that host 19:36
19:37 Mowah left, Mowah joined
flussence (argh, I understand how Text::Wrap works now. It's pretty horrific) 19:37
start with full text, giant if/elsif block that regexes bits off the beginning then overwrites the text variable with the remainder that didn't match. 19:39
there's quite a few situations where the regexes can match a zero-length string...
19:42 Mowah left, Mowah joined 19:47 alester left 19:56 noganex left 20:04 lamstyle left 20:05 fhelmberger left, noganex joined 20:09 PacoLinux left
diakopter moritz_: feel free... I have a 2.8.2 under ~/sprixel/clr but feel free to put a 2.10.1 or 2.12.pre somewhere 20:10
tadzik masak: aloha 20:13
masak tadzik: bom dia 20:20
tadzik masak: I decided neutro needs to be incinerated, and I need to write a modular, testable solution. I ended up with something being, pretty much, Pls :) 20:23
masak O RLY? 20:24
can't we just work on pls together? :)
it's almost finished...
mberends oh, the curse of the module-installer-killer strikes again...
masak there's a curse?
mberends can't we just use CPAN? 20:25
masak ah, that curse. :)
tadzik masak: Pies is finished too :)
masak "Pies"? :)
tadzik I alredy implemented what was neutro's initial commit using it, now pushing it further
well, just a name :)
phenny: "pies"?
phenny tadzik: "feet" (es to en, translate.google.com)
jnthn Mmm....pie
20:25 dju_ left
tadzik nah, not exactly phenny :) 20:26
masak π π π π π π π π
tadzik Pies is a Polish dog :)
jnthn Oh :)
masak Poland has a dog?
tadzik yeah
jnthn Just one.
;)
masak and it's called Pies.
20:26 cjk101011 joined
tadzik no no, that's just a specification 20:27
an implementation is, e.g. Panda_the_Dog
that's due to Rakudobug :)
mberends "sPiesification"
masak dogs seem very complicated in Polish...
tadzik and since I alredy told everybody, I can as well push it and stop keeping it secret :)
mberends my Dog $pies; 20:28
tadzik I really like class Panda is Pies
Panda is my dog, irl :)
github.com/tadzik/Pies 20:29
github.com/tadzik/Pies/blob/master...ufobuilder is a Pies in action, works :)
mberends tadzik++ 20:30
tadzik compared to Pls, an Ecosystem and State are a bit different, but you were uncatchable masak, so I couldn't discuss it with ya 20:31
mberends: yeah, that's all to have something to bother with at the hackathon :)
masak tadzik: sorry about being unreachable. I'm working on that. 20:32
tadzik just testing an implementation using our big module ecosystem
masak: worry not! At least you have some life :P
masak tadzik: I'm generally very happy that you are making headway.
tadzik: being unreachable does not necessarily imply having a life, trust me :)
tadzik masak: I'd like to discuss the ecosystem things, and the roles you figured out for the... Roles :) 20:33
yeah, I just installed List::Utils with Panda
20:36 pigdude_ joined, pigdude left 20:37 pigdude_ left, pigdude joined
tadzik ohh, I know what a module manager needs. A REPL 20:40
because parsing JSON takes ages
masak how does a REPL help against JSON parsing taking ages? 20:41
tadzik we don't launch the module manager on every module we want to try, so the json is parsed once
jnthn Maybe at $hackathon we'll have to look a little at why the JSON parse is so slow. 20:42
tadzik 30-40 seconds of runtime of every module manager using the "official" ecosystem now is dedicated to parsing json
jnthn: I'm afraid that's Rakudo, not JSON. .perl'ing the parsed json and evaling it later takes 20-30 seconds too 20:43
so I'd say that object construction is slow as hell
so we're pretty much waiting for 6model :)
jnthn tadzik: Oh, I know it's a Rakudo issue.
tadzik: Yeah, but it's good to understand *why* it's so slow.
PerlJam tadzik: 6model isn't going to be a panacea 20:44
jnthn tadzik: To make sure I really will deal with that in 6model.
If it's something that's within the scope of it.
It may be in a totally separate set of issues.
e.g. stuff we can improve Right Away.
tadzik I see 20:46
masak tadzik: fwiw, it was for speed reasons that I chose slurp/eval for proto.
tadzik masak: did it help much?
Well, times were different
^^ <name> <url> $$ files were hell faster to parse 20:47
masak tadzik: slurp/eval is faster than the JSON parser, yes.
tadzik masak: not much, see above
I mean, it's still painful as hell to use
masak ok.
20:47 stkowski joined
masak sleeps 20:51
tadzik owait, there's hope?
masak godnatt, #perl6.
20:52 masak left
tadzik Sqlite works, right? 20:52
oh, bye masonkramer
erm, masak
masonkramer: sorry, nevermind
20:54 plobsing left 20:55 plobsing joined 20:56 Bzek left 20:58 rdesfo joined, jferrero joined
tadzik hrm, is there anything in Perl 6/Rakudo emmiting "Died" and dying? 20:59
I don't have anything like this in my code
moritz_ rakudo: die 21:00
p6eval rakudo 74dcce: OUTPUT«Died␤␤ in main program body at line 22:/tmp/7fDF2xA1sk␤»
colomon src/builtins/control.pir
61: message = "Died\n"
appears to be the only use of "Died" in the source code. :) 21:01
and yup, that's in sub die.
21:02 plobsing left, mberends left
tadzik hrm. Looks like some string is under-evaluated 21:04
21:05 GinoMan joined 21:09 mberends joined 21:16 cjk101011 left 21:17 coldhead joined 21:18 Bzek joined 21:40 Mowah left, plobsing joined 21:47 shi left 21:49 donaldh joined
moritz_ sorear: fwiw with mono 2.10.1 I get some regressions in spectest 21:50
t/spec/S02-builtin_data_types/bool.t .......................... 1/45 Unhandled exception: System.FormatException: Unknown char: N
21:52 shi joined
dalek albot: 762d62c | moritz++ | build-scripts/rebuild-niecza.sh:
[niecza build] use mono 2.10.0
21:53
moritz_ sorear: appears in a lot of tests 21:54
21:56 pigdude left 22:00 pigdude joined 22:18 plainhao left 22:23 dorlamm joined 22:30 mikehh joined 22:32 drake1 joined
drake1 hello 22:32
i've been visiting parrot
and it seems they have not yet integrated the parallel semantics 22:33
at native level
22:33 pigdude left 22:34 kaare_ left
drake1 so now you know 22:35
22:35 drake1 left
jnthn already knew that :P 22:38
plobsing guesses even if parrot "integrated the parallel semantics at native level" (whatever that means), Rakudo would have more pressing issues anyways. 22:39
jnthn That said, if it was easy enough to implement some parallelism constructs in Rakudo atop of Parrot, we'd probably have done it by now.
It has been tried. 22:40
22:40 cosimo joined
cosimo hi there! 22:42
jdhore howdy!
cosimo is proto still TheWay(tm) to install modules?
22:43 envi joined, Rotwang left
donri isn't that neutro? 22:45
22:47 shi left
cosimo donri: neutro, right github/perl6/neutro I suppose? 22:47
donri no idea 22:53
22:53 dromedary joined 22:55 stkowski left 23:01 moritz__ joined, silug_ joined, broquain1 joined, _jaldhar joined, GinoMan_ joined 23:02 zamolxes_ joined 23:03 knewt2_ joined, cxreg2 joined, woldrich_ joined 23:04 masonkramer_ joined, franek joined, stepnem_ joined, jesus24 joined, rgrau_ joined 23:05 jesus24 left, araujo_ joined, Helios` joined, hugme left 23:07 hatseflats left, tadzik left, zostay_ joined, pmichaud left, Util left 23:08 dorlamm left, donaldh left, GinoMan left, rgrau left, Patterner left, jaldhar left, araujo left, masonkramer left, nrr left, aindilis left, stepnem left, dalek left, knewt2 left, zamolxes left, zostay left, aesop left, meteorjay left, ashleydev left, aloha left, silug left, Helios- left, moritz_ left, cxreg left, rokoteko left, lestrrat left, broquaint left, woldrich left, hcchien left, stepnem_ is now known as stepnem, masonkramer_ is now known as masonkramer, PerlJam left, Juerd left, aloha joined 23:09 dalek joined, ChanServ sets mode: +v dalek 23:10 rokoteko joined, araujo_ left
diakopter niecza: eval 'say 43642' 23:10
p6eval niecza : OUTPUT«Cannot open assembly './run/Niecza.exe': No such file or directory.␤»
23:10 nrr joined 23:11 tadzik joined, araujo joined, araujo left, araujo joined 23:12 lestrrat joined 23:13 aesop joined, ashleydev joined 23:14 Util joined, hatseflats joined, hcchien joined, meteorjay joined, pmichaud joined 23:15 PerlJam joined, Psyche^ joined, Psyche^ is now known as Patterner, mkramer left 23:16 skangas joined
colomon cosimo: neutro is the new way to install modules. It's still very new, however. 23:25
23:27 s1n left
cosimo FTR, neutro is github.com/tadzik/neutro 23:28
sorear good * #perl6 23:30
23:32 franek left, pmichaud left
sorear diakopter: what's going on? 23:32
23:32 pmichaud joined 23:33 Juerd joined
sorear moritz__, diakopter: if you want to pick up a new version of mono, it helps to put it at the *beginning* of $PATH 23:35
niecza: eval "say 2 + 2" 23:37
p6eval niecza v3-14-g3605ac1: OUTPUT«Unhandled exception: System.NotSupportedException: RunAndCollect not yet supported.␤␤Server stack trace: ␤ at System.Reflection.Emit.AssemblyBuilder..ctor (System.Reflection.AssemblyName n, System.String directory, AssemblyBuilderAccess access, Boolean
..corlib_internal) [0x00000] i…
23:37 pigdude joined
sorear evalbot control restart 23:38
23:38 p6eval left 23:39 p6eval joined, ChanServ sets mode: +v p6eval
sorear niecza: eval "say 2 + 2" 23:39
p6eval niecza v3-14-g3605ac1: OUTPUT«Unhandled exception: System.NotSupportedException: RunAndCollect not yet supported.␤␤Server stack trace: ␤ at System.Reflection.Emit.AssemblyBuilder..ctor (System.Reflection.AssemblyName n, System.String directory, AssemblyBuilderAccess access, Boolean
..corlib_internal) [0x00000] i…
donri colomon: FYI they're all described and linked at modules.perl6.org/ 23:41
cosimo: *
sorry colomon
colomon donri: I was wondering why you were telling me that. :)
23:42 leprevost joined 23:44 dromedary left, franek joined, s1n joined
sorear diakopter: oops. RunAndCollect was added to Mono on Feb 9 23:46
diakopter: I guess I'll revert that to just Run for now