»ö« | perl6.org/ | nopaste: paste.lisp.org/new/perl6 | evalbot usage: 'perl6: say 3;' or rakudo:, alpha:, pugs:, std:, or /msg p6eval perl6: ... | irclog: irc.pugscode.org/ | UTF-8 is our friend!
Set by lichtkind on 5 March 2010.
diakopter can't wait for the appearance of the first #perl6 groupie who was born *after* Perl 6 was announced 00:01
colomon jnthn: will be ready to bug you a bit for help with Xop and Zop in ten or so minutes. will that work for you?
diakopter (referring to the punch card talk above)
jnthn colomon: I think I'll still be op then. :-) 00:02
colomon \o/
TimToady hey, Fortran was proposed before I was born (barely) 00:03
sorear I'm about 7 years older than P6 00:04
00:04 payload joined
TimToady std: 1,2 Z+ 2,3 Z* 3,4 00:05
p6eval std 30094: OUTPUT«===SORRY!===␤"Z+" and "Z*" are non-associative and require parens at /tmp/DBhrMGvayU line 1:␤------> 1,2 Z+ 2,3 Z* ⏏3,4␤FAILED 00:01 108m␤»
TimToady that's probably adequate for now
00:05 rv2733 joined
jnthn Aye. It's conservative. 00:05
TimToady and parens don't hurt semantically, I think 00:06
std: 1,2 Z+ 2,3 Z+ 3,4 00:08
p6eval std 30094: OUTPUT«ok 00:01 106m␤»
TimToady and that still is list associative
00:08 eternaleye left 00:10 eternaleye joined
colomon okay, officially on a break from $work. 00:13
pugssvn r30095 | lwall++ | [S03] take conservative approach to differing X or Z metaops for now 00:15
jnthn :-)
Officially appreciating Erdinger.
00:23 mssm left 00:24 yinyin joined
colomon > zipwith(&infix:<~>, 'a'..'c', 2..4).eager.perl.say 00:25
("a2", "b3", "c4")
Not quite the same syntax as TimToady suggested, but I think this will do for a first step. 00:26
00:26 yinyin left
colomon > crosswith(&infix:<~>, 'a'..'c', 2..4).eager.perl.say 00:26
("a2", "a3", "a4", "b2", "b3", "b4", "c2", "c3", "c4")
TimToady well, except for the need to () any comma lists in the absense of ; lists
sorear &sub is a self-evaluating form? 00:27
colomon but that's only an issue if you're calling it as a sub, yes?
jnthn sorear: It means "give me the sub oeject" rather than calling it. 00:28
sorear yes
that's what I meant
TimToady it's a noun marker
jnthn noun my verb!
colomon is going to have to understand how ; works in argument lists sometime... is it implemented in rakudo yet?
jnthn No 00:29
We do ne have slicels.
It's a bit...complicated.
colomon Then I think my keep-it-simple instincts are on track here. :)
jnthn Maybe.
:-)
Yes, keep it simple is good.
sorear what does ; do anyway 00:30
TimToady allows you to send in multiple parcel lists without lots of extra parens
primarily for multi-dimensional subscripting 00:31
00:31 yinyin joined
TimToady so @a[1,2; 3,4; 5,6] is equiv to @a[(1,2),(3,4),(5,6)] 00:31
except not 00:32
you'd have to write @a[ slice (1,2),(3,4),(5,6) ] or some such
since by default [] supplies a flattening context 00:33
also used for things like zip(1,2; 3,4; 5,6) 00:35
colomon oh blast, parsing issues. 00:43
> say (1, 3 X- 4, 1).eager.perl
((1, -4), (1, 1), (3, -4), (3, 1))
TimToady STD currently forces that with a lookahead to \S, making it a longer token than X, but even if we didn't, infix:<X> is later, which should break the tie in favor of the metaop 00:46
colomon huh. we've definitely got infix:<X> later. 00:48
TimToady rakudo doesn't really do LTM right yet
colomon I thought STD didn't have infix:<X>? Or has that changed since this morning?
TimToady yes :)
because I want &infix:<X> to be meaningful
well, it might work anyway, but doesn't hurt to have it there for now 00:49
assuming one could write &infix:<RRRRRleg> and get something 00:50
jnthn Does that need to work? :-/
colomon: Maybe try to do the same \S lookahead forcing-it trick that STD does.
colomon rakudo: 1 RRRRRRRRleg 2; say &infix<RRRRRleg>(3, 4) 00:51
p6eval rakudo 1c75cf: OUTPUT«Could not find non-existent sub &infix␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
TimToady not sure rakudo pays attention to non-literals for its current LTM
colomon rakudo: 1 RRRRRRRRleg 2; say &infix:<RRRRRleg>(3, 4)
p6eval rakudo 1c75cf: OUTPUT«1␤»
colomon I removed infix:<X> altogether, now I get 00:52
> say (1, 3 X- 4, 1).eager.perl
Could not find non-existent sub crosswith
I'm trying to call it with
make PAST::Op.new( :name("crosswith"), :pasttype('call'), $base_opsub );
jnthn colomon: &crosswith
If you defined it in Perl 6
colomon I realize $base_opsub probably needs magic to convert...
ooo.
jnthn wtfiblogged! use.perl.org/~JonathanWorthington/journal/40247 00:53
colomon so, as long as that's re-compiling, how do I go from the string "&infix:<+>" (say) to a reference to the actual function, in Actions.pm? 00:55
00:55 lestrrat is now known as lest_away
jnthn For now 00:56
PAST::Var.new( :name("&infix:<+>"), :scope('package') )
(in the future they should probably be lexical and imported...but the above is what works now).
colomon jnthn++ 00:57
00:57 cotto joined 00:58 snarkyboojum left, dual left
colomon come on, compile faster! 01:00
jnthn Yeah, it suddenly feels slower of late. :-/ 01:02
colomon crazy people keep on adding routines for it to compile!
> say (1, 3 X- 4, 1).eager.perl 01:03
(-3, 0, -1, 2)
> say (1, 3 X~ 4, 1).eager.perl
lue hello!
colomon ("14", "11", "34", "31")
o/
lue If it compiles on my system in decent time, then it's optimized. :) 01:04
jnthn colomon: \o/
colomon lue: I hate to say it, but there's a decent chance that if it compiles on your system in decent time, then it's lobotimized. :)
01:05 dual joined
colomon jnthn: now compiling with Zop enabled. 01:06
TimToady
.oO(Zop! Pow! Bang!)
jnthn :-D 01:07
lue
.oO(It's SpecificationMan!)
01:09 Chillance left
TimToady if we really want to confuse everyone, we should define an op named infix:<op> 01:09
lue rakudo: say 3 op 4 01:10
p6eval rakudo 1c75cf: OUTPUT«Confused at line 11, near "say 3 op 4"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
TimToady which curries the arguments while leaving the actual base function unspecified
(3 op 4)(&[+]) :) 01:11
colomon > say (1, 3 Z, 4, 1).eager.perl
((1, 4), (3, 1))
01:11 snarkyboojum joined
lue rakudo: say oop 34 # should turn 34 into the name of an empty class 01:11
p6eval rakudo 1c75cf: OUTPUT«Could not find non-existent sub &oop␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
colomon > say (1, 3 Z* 4, 1).eager.perl
(4, 3)
lue rakudo: say ((3 op 4)(&[+])) 01:12
p6eval rakudo 1c75cf: OUTPUT«Confused at line 11, near "say ((3 op"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
snarkyboojum colomon: total w00tness
lue rakudo: say "I work"
p6eval rakudo 1c75cf: OUTPUT«I work␤»
colomon > say (1..* Z, 'a'..*).batch(10).perl
((1, "a"), (2, "b"), (3, "c"), (4, "d"), (5, "e"), (6, "f"), (7, "g"), (8, "h"), (9, "i"), (10, "j"))
TimToady \o/ 01:13
colomon > say (1..* Z~ 'a'..*).batch(10).perl
("1a", "2b", "3c", "4d", "5e", "6f", "7g", "8h", "9i", "10j")
snarkyboojum colomon: o/
colomon There are still parser issues to work out, but the basic functionality is there. :)
lue ō\ we salute you, colomon \o/ \o/ \o/ 01:14
TimToady HOP HOP HOP
jnthn :-)
jnthn is going to HOP off to bed in a moment
colomon It was actually kind of disturbingly easy. (I know I said that this morning, but still try.) jnthn++ and TimToady++ for a lot a solid ideas in there...
jnthn colomon: Any more questions before I go?
colomon I think the magic incantation you gave me back there was all I need.
01:15 mikehh left
colomon thank you! 01:15
01:15 mikehh joined, kcwu joined
jnthn \o/ 01:15
TimToady |o| # touchdown 01:16
lue \o\ \o\ \o/ hooray! \o/ /o/ /o/ 01:17
rakudo: say 3++
p6eval rakudo 1c75cf: OUTPUT«Cannot assign to readonly value␤current instr.: '&die' pc 16934 (src/builtins/Junction.pir:399)␤»
snarkyboojum imagine what it'd be like if everyone really started raising their hands when someone built/commited something cool (think of a room in a hackathon) - would be quite amusing I'd say 01:20
jnthn The Perl 6 wave!
jnthn slurps a tiny bit of slivovica for his cold
lue The Perl 6 cold & flu medicine! 01:21
01:21 cotto left
jnthn OK, sleepies. Night all o/ 01:24
01:24 justatheory left
colomon > say (1, 3 ZR- 10, 20).eager.perl 01:24
(9, 17)
just in case anyone was wondering....
jnthn: night.
TimToady I was :)
jnthn oh my, that's awesome 01:25
colomon the converse is less than awesome:
> say (1, 3 RZ- 10, 20).eager.perl
Null PMC access in invoke()
jnthn aww
ok, really sleeping!
o/
colomon \o
TimToady o/
lue \o
lichtkind o/ 01:28
good night
01:29 wknight8111 left
lue is trying to prove the probability of winning $1M in Deal or No Deal (when you don't ever take the deal) is 1/26 01:29
01:29 lest_away is now known as lestrrat 01:33 rv2733 left
diakopter o| 01:33
lue hello! 01:34
diakopter o|o
oo| 01:35
o/_o
lue oop
01:36 xomas left
colomon feels kind of silly that he only just now worked out what the S in question was. 01:37
01:38 cotto joined
lue it's the fourth letter :P 01:39
colomon It's the first letter, actually. ;) 01:40
lue Q-U-E-*S*-T-I-O-N pretty sure it's number 4. 01:41
colomon \S is the regex for "non-space", so if you ran it against question, it would be q, number 1. 01:42
That's what I was missing -- I thought \S was some fancy code, but it's just basic old-fashioned Perl.
01:44 justatheory joined
colomon TimToady: tell me you didn't already add tests for X and Z... 01:46
:)
TimToady I just work here.
sjohnson he also knows a thing or two about perl! 01:47
01:48 justatheory left
lue And he has the power to cause the equivalent of Noah's Ark's flood! 01:48
colomon is crossing his fingers that the <?before S> thing works in Rakudo...
lue what does \S mean? 01:50
TimToady not \s
sjohnson translation: means matches anything \s DOESN'T match 01:52
ie, matches non-space
lue speaking of matching, have any other file-test operators been added/improved? 01:53
colomon lue: a few. 01:55
lue \o/
colomon still plenty of them to do.
lue had the file size file-test been improved upon for ~~ ? 01:57
I remember it doing funny things...
colomon The spec changed. It returns true or false for ~~.
you have to call it directly to get the size. 01:58
and it's named .s again.
lue easier for us then :)
what use would boolean be for size?
colomon it's now considered "non-empty". 01:59
:z got axed as a result.
Really, it was a spec bloodbath. 02:00
all triggered by your implementation.
lue YES!!!! I CAUSED A BLOODBATH! (oh wait, that's not good...)
colomon no, it's good. that's how we make progress. 02:01
lue So 0=empty, 1=not-empty [?]
(the blood better not be literal)
02:01 lichtkind left
lue --mode="tv" --target="mystery_diagnosis" & 02:02
colomon rakudo: say "/etc/passwd" ~~ :s
p6eval rakudo 1c75cf: OUTPUT«1␤»
colomon rakudo: say "/etc/pasdsdafa" ~~ :s
p6eval rakudo 1c75cf: OUTPUT«0␤»
colomon rakudo: say "/etc/passwd".s
p6eval rakudo 1c75cf: OUTPUT«813␤»
colomon This still isn't quite to spec. The spec talks about something called IO in there. But I've no idea how to make that work... 02:03
(ie it should be "/etc/passwd".IO.s)
02:11 cognominal left
pugssvn r30096 | colomon++ | [t/spec] Refudge for Rakudo without infix:<Z>. 02:16
02:16 ShaneC left 02:28 fda314925 joined, rv2733 joined
colomon S32-str/uc.rakudo..................................perl6(10389) malloc: *** error for object 0x4500200: non-page-aligned, non-allocated pointer being freed 02:33
*** set a breakpoint in malloc_error_break to debug
perl6(10389) malloc: *** error for object 0x33cfb20: Non-aligned pointer being freed (2)
*** set a breakpoint in malloc_error_break to debug
ugh 02:34
works fine when I run it alone. indeed, with TODO passes. :\ 02:35
02:38 snarkyboojum left
dalek kudo: 2f19219 | (Solomon Foster)++ | src/ (3 files):
Rough but working implementations of Xop and Zop. (Had to disable X and Z to make this work, alas, but I'm sure we'll work around that shortly.)
02:40
kudo: 366b529 | (Solomon Foster)++ | build/Makefile.in:
Add metaops.pm to the build.
pugssvn r30097 | colomon++ | [t/spec] Fudge heavily to get some of the cross-metaop tests running in Rakudo. 02:46
02:49 ShaneC joined 02:50 snarkyboojum joined 02:57 alester left
colomon rakudo: say (2, 2 ... *).batch(10).perl 03:02
p6eval rakudo 1c75cf: OUTPUT«(2, 2, 2, 2, 2, 2, 2, 2, 2, 2)␤»
pugssvn r30098 | colomon++ | [t/spec] Create zip-metaop.t to test the new Zop. 03:05
dalek kudo: f676705 | (Solomon Foster)++ | t/spectest.data:
Turn on S03-operators/cross-metaop.t, add new S03-operators/zip-metaop.t.
03:08
lue --return
03:12 astrojp left 03:17 cdarroch left
quietfanatic alpha: sub infix:<op> ($a, $b) {return {$_.($a, $b)}}; say (3 op 4).(&infix:<+>) 03:18
p6eval alpha 30e0ed: OUTPUT«7␤»
TimToady ^_^ 03:26
lue are you happy timtoady? 03:28
03:38 quietfanatic left
lue afk 03:44
Tene sorry guys, today fell apart. I'm sleeping shortly. I'll try again tomorrow. 03:45
03:47 quietfanatic joined, bkeeler left 03:48 rv2733 left
sorear what? 03:50
Tene sorear: I was going to work on HLL interop, and then life got in the way again.
sorear define 'work on HLL interop' 03:53
have you by any chance seen my proposed changes to PDD-31/S21
(I haven't really been talking about them because I'm not certain they'll work; I want to get blizkost closer to working before I do a formal specification change request) 03:54
Tene sorear: I haven't. 03:55
03:56 maerlinian joined
sorear Tene: what part of HLL stuff are you doing? 04:02
Tene sorear: I need to get the API for HLL library loading etc. worked out and implemented. 04:03
I did the majority of it months back, and got stuff like defining a class in Perl 6 and subclassing it in Ruby and instantiating it in scheme working.
sorear ooh
Tene It's kinda bitrotted since then, there was a new API proposal, etc.
sorear new API proposal? 04:04
I've got a rather simple proposed API addition which I'm using in the blizkost plan
Tene I would love to look at it. 04:05
04:07 snarkyboojum left
sorear I'm adding two optional named parameters to get_exports which control PMC munging for languages that need it 04:10
munge => Hash, munge_default => Any
will be strings in most cases
there's an example in context in github.com/jnthn/blizkost/raw/9fb04.../SEMANTICS 04:11
Tene I'll read that tomorrow.
Any other documents I should queue up?
sorear no
I've been not working very efficently 04:12
Tene OK, thanks. :)
I'll let you know.
sorear too many shiny things, I keep distracting myself
Tene I know the feeling.
sorear it's hard being a magpie in #perl6
04:33 mantovani left, mantovani joined 04:47 justatheory joined, justatheory left
pugssvn r30099 | lwall++ | [viv] unbitrot the --p6 option, can now reproduce STD.pm exactly 05:15
05:17 ShaneC left
pugssvn r30100 | lwall++ | [zip-metaop.t] Z+ and ... are non-associative, so use parens to avoid parsefail 05:28
TimToady std: 1..* Z+ 3, 2 ... * 05:30
er, hello, evalbot? 05:31
p6eval std 30098: OUTPUT«===SORRY!===␤"Z+" and "..." are non-associative and require parens at /tmp/QvAVH8xnbs line 1:␤------> 1..* Z+ 3, 2 ... ⏏*␤FAILED 00:01 108m␤»
TimToady colomon: ^^ 05:32
sorear I'm not sure whether to love or hate zavolaj's export mechanism 05:36
it uses block scope for the module, then declares the stuff it wants to export as 'our' in the default package 05:37
05:39 ShaneC joined
TimToady that's more or less how it's supposed to work, though the default package itself might be a lexical package, not under GLOBAL:: 05:46
I believe STD puts EXPORT::DEFAULT:: as lexically scoped packages, actually 05:48
sorear TimToady: but doesn't that make module Other; use NativeCall; fail? 05:50
TimToady the importer has to be aware of the structure, of course
sorear it seems to me like the most correct way would be to inject symbols into the caller's lexical scope 05:51
TimToady STD pulls in a module's symbol table from a .syml file, and knows to look down into EXPORT::
sorear not GLOBAL
TimToady that's what it does 05:52
our has nothing to do with GLOBAL, really
unless the current package happens to be stored under GLOBAL
and imports all default to lexial
*ical
sorear Zavolaj's NativeCall.pm looks like: #( no file-scoped module declaration here! ) class PrivateThingy1 { ... } class Thing2 {... } sub exported {...} 05:53
what happens if I say 'use NativeCall;', if it is not "inject symbols into GLOBAL"?
TimToady import is supposed to be lexical. rakudo still cheat all over the place in a p5-ish way 05:54
*cheats
it keeps lots of things in packages that are supposed to be lexical 05:55
sorear moreover, if I say: "module User; use NativeCall;" - do the symbols go into GLOBAL or User/
TimToady neither
!!!
sorear given that NativeCall doesn't actually export anything, it just declares package-scope subs outside a package
TimToady they go into the the current lexical scope by default
according to spec 05:56
not according to rakudo
lue goodnight
TimToady o/ 05:57
rakudo still looks for functions in packages, which hasn't been in the spec for years.
sorear the spec also says that you need to use traits to export
TimToady it's just sugar for putting a link into EXPORT:: 05:58
this is specced
S11:87
and note that EXPORT is a lexical package, as if you'd said 'my module EXPORT' 05:59
that's how STD does it; I doubt rakudo does 06:00
(yet)
sorear it doesn't use EXPORT:: either; it just happens to monkey symbols into GLOBAL:: where the main program happens to find them
this is either disgusting code, or code I don't understand at all
TimToady the design is to avoid GLOBAL, but rakudo is designed around parrot, which was designed around P5-Think
with the way STD does it, almost nothing ends up in GLOBAL unless it is explicitly put there 06:01
I doubt they'll fix this before Rakudo *, but you never know 06:02
sorear S11:46: At the start of any file, the current namespace is GLOBAL
TimToady sure, so 'our' in that spot is how you put stuff into GLOBAL:: if you want 06:03
but mostly we don't want
sorear I was looking for examples of trait exportation and the one I found worked that way 06:04
putting them in GLOBAL
TimToady well, if you look in src/perl6/syml/*.syml after making STD, you'll find almost no references to GLOBAL except for the top level package names 06:05
almost everything is done lexically, including exports 06:06
and imports
06:07 am0c joined
TimToady rakudo is still in the P5 age here; they've borrowed a lot of the parser, but haven't actually managed to borrow much of the symbol table structure yet, mostly due to parrot limitations 06:08
they also haven't really done settings right yet either as outer lexical scopes 06:09
06:10 ShaneC left
TimToady std: CORE::pi 06:13
p6eval std 30100: OUTPUT«ok 00:01 107m␤»
TimToady std: SETTING::pi
p6eval std 30100: OUTPUT«ok 00:01 105m␤»
TimToady std: UNIT::OUTER::pi
p6eval std 30100: OUTPUT«ok 00:01 105m␤»
sorear I get the impression you're not terribly happy with the direction things are going
TimToady they're going the right direction in most ways, but some things are (of necessity) on the back burner 06:14
I just hope people won't rely too heavily on the ways rakudo * will do it wrong. 06:15
std: UNIT::OUTER::nonesuch
p6eval std 30100: OUTPUT«Undeclared name:␤ 'UNIT::OUTER::nonesuch' used at line 1␤ok 00:02 105m␤»
TimToady rakudo: say CORE::pi 06:16
p6eval rakudo f67670: OUTPUT«Null PMC access in invoke()␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
TimToady rakudo: say pi
p6eval rakudo f67670: OUTPUT«3.14159265358979␤»
TimToady rakudo: say Num::pi 06:17
p6eval rakudo f67670: OUTPUT«Null PMC access in invoke()␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
TimToady rakudo: say SETTING === CORE
p6eval rakudo f67670: OUTPUT«Could not find non-existent sub &SETTING␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
sorear rakudo: say CORE 06:19
p6eval rakudo f67670: OUTPUT«Could not find non-existent sub &CORE␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
TimToady rakudo is still basically stuck in prelude semantics rather than setting semantics
06:22 UjinT34 joined
pugssvn r30101 | colomon++ | [t/spec] Improve descriptions for zip-metaop tests a bit. 06:24
colomon TimToady: thanks for the fix.
TimToady np 06:25
std: say UNIT::OUTER::Num::pi 06:35
p6eval std 30101: OUTPUT«ok 00:01 107m␤»
06:36 doublec left
TimToady sleep & 06:37
06:38 doublec joined 06:56 kaare joined 06:57 kaare is now known as Guest24764 06:58 maerlinian left 07:03 Su-Shee joined 07:09 ShaneC joined 07:12 ShaneC left
jhuni I have been wondering what happened to reduction ops (eg [+]) in rakudo? 07:22
rakudo: say [+] ^5;
p6eval rakudo f67670: OUTPUT«Confused at line 11, near "say [+] ^5"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
07:23 brushie__ joined, brushie_ left
sorear rakudo: say ^5 07:23
p6eval rakudo f67670: OUTPUT«01234␤»
sorear rakudo: say [+] (^5)
p6eval rakudo f67670: OUTPUT«Confused at line 11, near "say [+] (^"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
colomon jhuni: There was a major rewrite of Rakudo a few months back. Some of the metaoperators like [+] have not been added back in yet.
I'm actually kind of hoping to get to that today. :) 07:24
rakudo: say (^5).reduce(&infix:<+>)
p6eval rakudo f67670: OUTPUT«Method 'count' not found for invocant of class 'Perl6MultiSub'␤current instr.: 'perl6;Any;reduce' pc 296719 (src/gen/core.pir:21673)␤»
colomon hmmm.... 07:25
jnthn: help? (when you wake up...) 07:26
rakudo: say (^5).reduce(*+*)
p6eval rakudo f67670: OUTPUT«10␤»
07:26 Bzek joined
jhuni colomon: I look forward to using reduction ops in the future 07:26
=/
colomon jhuni: me too. :)
07:46 vamped joined 07:58 mikehh left 07:59 cls_bsd left 08:00 barney joined, jferrero joined 08:03 dakkar joined 08:11 jhuni left 08:13 iblechbot joined 08:26 meppl joined 08:27 cls_bsd joined 08:33 nsh left
sorear R* is basically just the normal Apr10 monthly, yes? 08:33
IllvilJa jnthn: Welcome to Sweden! Good luck refactoring your life!
08:33 nsh joined
sorear jnthn: Is there any particular reason why Blizkost inherits from PCT::HLLCompiler? As far as I can tell, we aren't actually using any of its features, and it's just one more piece of software for me to understand 08:35
08:36 Trashlord left 08:39 rv2733 joined 08:44 stepnem left 08:47 stepnem joined 08:48 M_o_C joined 08:51 am0c left 08:54 mssm joined, quester joined 09:00 cosimo joined 09:07 cosimo left 09:08 iblechbot left, iblechbot joined
vamped sorear still there? 09:11
sorear yes 09:13
?
vamped last I heard, Rakudo * is NOT the regular April montly release. Also April's release is 4/23 (see rakudo/docs/release_guide.pod). pmichaud stated goal of releasing R* a week following the monthly release: ~29th 09:15
09:20 agentzh joined
quester Good evening, or the local time of your choice... 09:20
vamped sorear: disclaimer: that news is a couple of weeks old, and I have not read every line of backlog. 09:21
o/ quester
quester \0 vamped
jnthn morning 09:23
No, Rakudo * will not just be regular April release. 09:24
IllvilJa: Thanks! :-)
vamped oh - i must'v missed a discussion. good thing I disclaimered :p
jnthn vamped: Huh? I was agreeing with you. 09:25
I think...
jnthn needs coffee
vamped lol - misread. i, perhaps, need bed.
jnthn sorear: We inherit from that in order to implement the standard HLL compiler interface, so language interop works. But that may be a little out of date now. 09:26
sorear Well, except for the minor nit that we override every single method 09:27
sorear is currently trying to figure out if he can safely rm -ffff src/pmc/p5invocation.pmc 09:28
09:28 lestrrat is now known as lest_away
jnthn erm 09:28
Given that's the thing that handles arg marshalling
Then probably not unless you replaced that. 09:29
sorear I want to do arg marshalling at the PIR level
I still mostly don't understand what I'm doing here, though
currently figuring out how p5invocation is even used 09:30
jnthn oh
OK, you've missed something important.
sorear missed? or never saw?
jnthn It handles marshalling in terms of, going from Parrot's call sig to Perl 5's stack based model 09:31
In Parrot, method invocation is a two step process
1) find_method gives back something invokable
2) You invoke it with arguments
Those two can be as far apart as you like.
sorear Oh.
And p5invocation is the Callable that you return from #1?
jnthn Right. 09:32
sorear Is the return value of find_method bound to the invocant, or does it take $self as an argument?
jnthn And on invoke it takes the args from the Parrot data structure that contains them and sticks 'em on the Perl 5 stack.
09:32 mssm left
jnthn The latter, iirc. 09:32
sorear I'd like to share as much code as possible between method invocation and sub calls 09:33
since in p5 $foo->meth() is just UNIVERSAL::can($foo, 'meth')->($foo) 09:34
jnthn *nod*
Makes sense to do that.
I don't think Blizkost as I had it ever got so far as sub calls.
Only method calls.
Either way, I expect you'll need *something* to do the C-level work of taking args from the Parrot call_sig - even if they have been nicely wrapped - and putting them on the Perl 5 stack. 09:35
sorear yes
not sure exactly what or where yet 09:36
jnthn So even if you rename it / do it different, the code in P5Invocation is probably kinda useful in that sense. :-)
TimToady, sorear: Rakudo got supprot for lexical import recently, fwiw. It's the default now. use Test lexically imports plan, etc. 09:40
Just haven't worked out all the kinks yet. 09:41
Nor have we really got the notion of "lexical packages" laid down.
(Got a good idea of how to do those though.)
sorear jnthn: Is it sensical for an invocation object to be a closure? 09:43
as opposed to a custom PMC
jnthn It can be
As long as it supports the invoke vtable method, it should work.
sorear so what I'm thinking I'll do for the immediate term is
1. merge p5{scalar,hash,array,sub} into p5sv and implement methods for the basic interesting operations, including call (which takes only p5sv arguments) 09:44
2. write a get_exports method which wraps svs into Parrot objects; invocations are simply closures that wrap and forward to call 09:45
->tomorrow
unrelatedly: Zavolaj's export mechanism is ... weird. Is it really supposed to be exporting traits into GLOBAL instead of CALLER? 09:46
vamped i'm suggesting that it would be clearer to have types named: Int32, Int64, etc rather than bigint, verybigint. 09:50
sorear vamped: who are you talking to? 09:51
vamped what happens down the road when int's need to get bigger, and the names "big" and "verybig" are already used up?
sorear pokes jnthn
jnthn The intermediate term plan sounds pretty good. :-)
vamped anyone who wan't to listen
jnthn vamped: See S09 - it specs a whole bunch of types named like that
vamped k. i'll look. maybe it's addressed there. 09:52
jnthn sorear: And yes, Zavolaj is written the way it is because of the way various things are in Rakudo at the moment.
It pre-dates *any* lexical import support, which only landed last week.
sorear exporting traits in a non-head-explodey way isn't implemented?
jnthn *sigh*
sorear wasn't
sorry
09:53 Trashlord joined
sorear (maybe I should sleep, if I'm making others *sigh*) 09:53
jnthn Yeah, welcome to live as a Perl 6 implementor
Trashlord just execute sleep(8hours) and you'll be fine
jnthn Doesn't matter how much your haul ass to deal with stuff one bunch of people think matters, you've still got another bunch whining about their pet thing. 09:54
sorear I think this is what "patches welcome" was invented for
sorear off
jnthn Aye 09:55
sorear: Anyway, see you...sleep well :-)
09:55 yinyin left
vamped thinks he's read S09 before, and then tried to come up with a good idea that already existed 09:57
jnthn :-) 09:58
10:02 masak joined
masak oh hai, #perl6 10:02
10:02 agentzh left
jnthn morning, masak 10:03
masak god morgon, jnthn. how's the cold developing? 10:05
jnthn For the first time, it actually feels like it might be in the early stages of going away. 10:06
If I'd been able to sleep well the last couple of nights, it may be doing better.
And yours?
masak it sounds like my cold is one or two days ahead of yours.
you have some nice improvements to look forward to :)
(and yes, sleep definitely helps) 10:07
jnthn :-)
Yeah, I think partly being blocked up doesn't help.
(with sleeping) 10:08
masak right.
jnthn Though think partly I'm just still getting used to my new surroundings too.
masak nod.
jnthn ooh, excitingly I now officialy exist in Sweden. :-) 10:09
jnthn has a personnummer :-)
masak congratulations :)
that's a big step in the life as a Swede. :)
jnthn Yes, I was rather taken aback when attempting to order a couple of books online at the weekend...and failing because the site wanted my personnummer! 10:10
masak .oO( well, obviousl... oh wait )
jnthn :-) 10:11
Not obvious compared to anywhere else I've been. :-)
mathw that sounds unexpected 10:16
jnthn mathw: Well, in the UK you don't need any kind of ID to do most things. :-) 10:19
Or at least, most day-to-day things.
masak The social codes around this number are interesting. You're expected to leave it to bookstores, hospitals, the police etc without thinking about it. It's a public datum. But asking another person for theirs is a slight faux pas.
vamped sounds similar to the american social security number 10:20
jnthn That doesn't sound so surprising, in a sense.
masak I know the SSNs of my whole family, I think. but no-one else. 10:21
10:24 mj41 left
jnthn gets the impression he's meant to memorize his personnummer 10:24
arnsholt I think it's slightly harder to hijack someone's life with a Nordic person number, compared to the SSN
masak jnthn: well, duh! :)
arnsholt jnthn: It'll happen naturally, by force of repetition =)
jnthn hehe
arnsholt At least that's what happened once I turned 18 and had to use it for all kinds of stuff =) 10:25
jnthn Yeah...in the UK, I think I used my SSN a couple of times a year...
masak arnsholt: do Norwegian personnummer look like Swedish ones?
arnsholt masak: 11 digits. Birth date and five random ones
mathw jnthn: for some reason, I know my NI number despite almost never needing it 10:26
arnsholt Middle digit of the five indicates gender. Even for f, odd for m
mathw jnthn: it's possibly because it just happens to be very easy to remember in pattern
masak arnsholt: huh. we only have 10 digits. :)
10:26 mj41 joined
jnthn Oh wow, it never occured to me that the structure of the number could imply something about me too. :-) 10:26
arnsholt masak: Huh. Any discernible data in it?
masak arnsholt: YYMMDD, for one thing. 10:27
arnsholt It's DDMMYY here ^^
jnthn oh, wow...yes.
10:27 payload left
jnthn hadn't noticed that at all 10:27
masak arnsholt: then there's a dash or, if you're >100 years old, a plus.
jnthn Er, that makes it rather easier to remember.
arnsholt jnthn: I believe that's part of the point =D 10:28
masak arnsholt: then four digits, two of which give region of birth, one which gives the sex, and the last which is a checksum digit.
jnthn: *lol*
arnsholt Funky. Good idea with the dash/plus thing
jnthn
.oO( From your personnummer, I can see that we have compatible star signs, you're female, and you're from a nice bit of Sweden. Let's get married! )
10:29 lest_away is now known as lestrrat, UjinT34 left
jnthn had expected it was just a random sequence. 10:29
I'm impressed how much they've crammed in there. :-)
This does mean that if you know how the checksum works, and where somebody is from, and their date of birth, you can derive their personnummer though? 10:30
Or get down to a small number of possibilities?
vamped is finally nodding of. good night (/localtime) 10:31
jnthn vamped: o/
masak probably still dozens of possibilities, I think.
10:32 vamped left
jnthn masak: ah, ok 10:32
masak jnthn: but it's a cool question: which personnummer could I have ended up with, given who I am and where I"m from?
jnthn A nice simple Perl 6 example code. :-)
masak ah! for once, the Swedish Wikipedia article is more detailed than the English-language one! :) sv.wikipedia.org/wiki/Personnummer_i_Sverige 10:33
jnthn: I could have gotten anything between 48 and 54 as the first two of my last four digits, it seems. 10:34
jnthn tries to work out if one of those region codes means "not born in Sweden" 10:38
10:38 huf left
masak jnthn: one does. you'll find it. :) 10:39
but the article also says that the region system is not in use anymore. I don't know why. 10:40
jnthn Ah, OK. 10:41
masak oh! it's because there were region number overflows, people got falsely assigned the Foreigner region, and there was public dissent! cool!
jnthn Hmm. I guess if more than 10,000 people are born on the same day, they has a fail. :-)
masak also, the easy-to-guess reason was a factor. 10:42
jnthn Yeah, was gonna say...
hehe...I can see there's a high opinion of foreigners. ;-) 10:43
"Oh noes! I don't want a personnummer like one of those foreign people!"
:-)
10:43 fridim joined
masak how should I put this? :) 10:43
it's not xenophobia as such.
jnthn You don't have to. :-)_
masak but people probably felt at a disadvantage in job interviews and the like. 10:44
jnthn Yeah
masak treating people unfairly is one of the worst sins ever in Sweden. :P
jnthn has been reading the "how to understand Sweden" style books he's been given 10:45
masak :) 10:46
10:46 nadim joined
mathw my Country $sweden .= new(); $sweden.^methods(:local)>>.say; 10:47
what more do you need
masak mathw++
mathw do countries come with full introspection? 10:48
masak (but don't parallelize .say)
mathw but figuring out which character came from which entry is part of the fun...
jnthn I dunno, with the amount of Swedish I know at the moment, the parallelism may not make a difference to me yet. ;-)
masak :)
jnthn may well have found himself some Swedish teacher though o/
mathw the only thing I know how to say in Swedish is rude 10:49
jnthn Teach me!
Then I'll know *not* to say it. :-)
arnsholt jnthn: So, what's your impression of Sweden, from the books? =)
mathw I don't think it's the kind of thing you can say by accident
masak as opposed to when I wanted to say CAO3 草 ("grass") to my language partner, and it came out as CAO4 肏 instead. she innocently told me she didn't know the English term, though I could tell she did. 10:54
jnthn arnsholt: Pretty positive. IIUC, avoiding conflict and valuing consensus are both important things, and I like the sound of those, so... :-)
masak: Did you ever find out what it meant?
masak jnthn: I knew it even before that.
jnthn: still quite embarassing. need to learn tones better. :/
arnsholt I think foreigners are allowed to struggle with the tones, but yeah it's hard 10:55
jnthn: That sounds about right for Norway, and Sweden too I think. It fits my temperament pretty well 10:57
masak: What does the other word mean though? O=)
masak arnsholt: I'm afraid I never learnt the English term for it... :> 10:58
arnsholt Oh, I see ^^
jnthn arnsholt: If you put it into Google langauge... :-)
...like I did... :-)
arnsholt Good idea, and now I see
masak it's an interesting character. 10:59
arnsholt I did something similar in French once. Meant to say "baissé", said "baisé". Ooops
masak the upper part means "to enter", and the lower part means "meat".
jnthn lol!
arnsholt Heh. Nice one
masak it's not found in many dictionaries. 11:00
jnthn masak: ...so the whole meaning is to cook or something? ;-)
masak jnthn: "or something" :)
Su-Shee arnsholt: thanks to german bakery, we still think "baiser" means kissing in a friendship-like way - imagine saying innocently "baise-moi" (which I would have done twice if I didn't knew the movie..) 11:01
masak jnthn: I'm enjoying re-reading use.perl.org/~JonathanWorthington/journal/39772 11:05
jnthn: the @chips>>.dip for 1..10; line. is it guaranteed to be thread safe? 11:06
jnthn masak: Depends if your dip supports concurrent chip dipping, I guess. 11:07
masak it's an ordinary scalar dip.
what do we expect to happen?
hejki concurrent chip dipping sounds like eating with two hands
masak more like three hands in this example.
11:07 ruoso left
masak or at least three chips. 11:08
jnthn
.oO( the sound of 3 hands dipping )
masak *lol*
jnthn masak: I suspect things need to be threadsafe by default to the degree that we don't crash and burn. 11:09
masak hm.
jnthn masak: But how much the built-in data types give you thread safety, I don't know.
masak: It's kinda not spec'd yet, though mostly because it's kinda not been implemented yet.
hejki masak: well like a chip between every finger
masak hejki: exactly. 11:10
11:10 cosimo joined
masak hejki: that also shows the problem that might occur. 11:10
hejki ye.. some of the chips might fall off or get uneven amount of dip compared to others
jnthn Or maybe you have a bunch of phillosiphers all having a chips and dips party.
hejki :)
masak hejki: which chip increases the dip count first? they all go down basically simultaneously.
hejki that too
jnthn ...erm, I think I spelt something rong. 11:11
masak quick, hit the undo button!
hejki feel-o cyphers
jnthn yes, but it leaves zombies 11:12
oops, wrong window
masak ETOOBIZARRE 11:13
jnthn masak: Worse, the context was Excel. 11:14
:-)
11:14 Chillance joined
masak shudders 11:14
jnthn The VBScript code that generated the Excel was...terrifying and unmaintainable.
(yes, this is all a pile of hate :-)) 11:15
One of those cases of "nobody else could figure out how to deal with the thing so it came to me"
11:19 xinming_ is now known as xinming
mathw embarks on a battle with Excel himself 11:24
jnthn mathw: Fun, ain't it. 11:25
:-/
mathw no 11:30
we have this crazy template I have to use
really misusing excel, actually
and somebody's broken it
so it's even crazier
jnthn In this case, it's "just" an excel exporter. 11:33
mathw well 11:34
jnthn Which has to be re-written because the old one did - no joke - order of magnitude 100,000 SQL queries to produce one of the data sets!
mathw that sounds pretty nasty to me
ow!
and you can't even blame excel for that
I'm not sure there are many things at all for which it's appropriate to do 100,000 SQL queries 11:35
jnthn no, just idiotic previous developers who thought that they'd do multiple SQL queries in a tight loop...and were long gone by the time the loop hit 80,000 iterations.
(yes, that's a few * 80,000 round trips to the database!) 11:36
m6locks haha
mathw well at least by being gone, they avoid a terrible fate at your hands 11:40
jnthn Yes...lucky them. 11:41
mathw but they may be inflicting similar ills on other people
jnthn I'm not quite sure I'd know what to say aside "epic fail" 11:42
mathw how about "go back to school"?
jnthn Yeah, that too.
11:52 MAK_ joined
m6locks i was "unable" to excute tools/test_summary.pl cos it nearly killed all activity on this laptop 11:55
rx.rakudo got stuck 11:56
and this monstah perl6-process was eating 2g of memory ;P
now running spectest, it's more comfy
11:57 MAK_ left
mathw jnthn: NativeCall looks very neat 11:58
jnthn mathw: Using it is quite neat. On the inside it needs some TLC yet.
mathw it's... remarkably short 11:59
jnthn :-) 12:00
mathw thanks to the pir:: namespace, it seems
jnthn Yes, that helps.
mathw I keep wondering when we'll be in a position where it's sensible to start looking at a GObject binding project 12:01
but I think I should make masak happy by doing more on Form.pm before Rakudo *
(it's also a lot easier)
12:03 envi^home joined 12:08 lestrrat is now known as lest_away
mathw I still love the stuff you can do with trait_mod:<is> though 12:10
just replace the routine with a different one, yeah, sure... 12:11
12:15 avar left 12:16 quester left
borup mathw: a GObject binding based GObject introspection would be neat 12:20
mathw borup: that's what I thought :)
best way to go about binding GTK these days I think
no point trying to do it by hand
okay so we only support GIR-supported versions, but I think for Perl 6 we could cope with that 12:21
12:21 cosimo left
borup yes no point in supporting really old versions 12:21
mathw especially not when it's hard work 12:22
plus then it extends fairly easily to anything else that has GIR
jnthn I guess if you can write custom meta-classes you can make the GObject introspection just work out a lot like Perl 6 introspection too :-)
mathw yes
that's the kind of way I was thinking
but I must polish up Form.pm before I embark on anything 12:23
because I need to actually finish something
jnthn :-)
borup I did a bit of the old Gtk2 bindings, not hard as such but work
mathw I did some stuff on the c++ bindings years ago
that was fairly heavy
although not as bad as it could've been
anyway, time for band practice
borup gtk2-perl has some nice helper tools 12:25
12:26 cosimo joined 12:29 takadonet joined
takadonet morning everyone 12:29
colomon morning! 12:30
12:31 iblechbot left
jnthn morning, colomon! 12:33
colomon so, are you brave enough to try to sort out how to parse infix:<X> and infix:<Z> now? :) 12:34
<?before \S> didn't help. :( 12:36
12:41 ruoso joined 12:43 payload joined
jnthn aww :( 12:43
colomon: Just doing lunch now, then gotta do a couple of chores, but can look later :-) 12:44
colomon \o/ 12:45
12:49 dakkar left
colomon rakudo: say ((1, 1, *+* ... *) Z~ 'a'..*).batch(20).perl 12:50
p6eval rakudo f67670: OUTPUT«("1a", "1b", "2c", "3d", "5e", "8f", "13g", "21h", "34i", "55j", "89k", "144l", "233m", "377n", "610o", "987p", "1597q", "2584r", "4181s", "6765t")␤»
colomon rakudo: say ((1, 1, *+* ... *) Z- 1..*).batch(20).perl 12:51
p6eval rakudo f67670: OUTPUT«(0, -1, -1, -1, 0, 2, 6, 13, 25, 45, 78, 132, 220, 363, 595, 971, 1580, 2566, 4162, 6745)␤»
colomon rakudo: say ((1, 1, *+* ... *) ZR- 1..*).batch(20).perl
p6eval rakudo f67670: OUTPUT«(0, 1, 1, 1, 0, -2, -6, -13, -25, -45, -78, -132, -220, -363, -595, -971, -1580, -2566, -4162, -6745)␤»
colomon rakudo: say ((1, 1, *+* ... *) ZR/ 1..*).batch(20).perl 12:53
p6eval rakudo f67670: OUTPUT«(1/1, 2/1, 3/2, 4/3, 1/1, 3/4, 7/13, 8/21, 9/34, 2/11, 11/89, 1/12, 13/233, 14/377, 3/122, 16/987, 17/1597, 9/1292, 19/4181, 4/1353)␤»
m6locks hmm t/spec/S02-builtin_data_types/sigils-and-types.rakudo fails test no. 16
12:59 lest_away is now known as lestrrat, fridim left
colomon m6locks: test no 16 is marked TODO, no? 13:00
13:00 ignacio_ joined
colomon not ok 16 - Bag does Associative # TODO Associative role 13:00
masak rakudo: Associative 13:07
p6eval rakudo f67670: ( no output )
13:08 ignacio_ left
m6locks colomon: i'm not sure 13:09
if it is, then its ok
colomon Hmmm... what does your system think test 16 is? 13:10
make t/spec/S02-builtin_data_types/sigils-and-types.t 13:11
jnthn I think Bag is actually the one that's todo... 13:16
13:16 M_o_C left
masak aye. 13:17
13:18 ignacio_ joined
arnsholt "Prolog is after all a simple and logical language" Badum-tish ^^ 13:18
masak so is Lisp. and Smalltalk. 13:20
any remaining complexity stems completely from the problems you're trying to solve. solve easier problems! :P 13:21
13:24 Exodist left 13:25 [particle] left, colomon left 13:26 jaldhar left 13:27 rv2733 left, simcop2387 left, hercynium left 13:29 yahooooo left 13:30 [particle] joined, Exodist joined, jaldhar joined, ned left
jnthn bbs - chores, stroll, systemka 13:31
13:31 iblechbot joined 13:32 colomon joined, yahooooo joined 13:35 hercynium joined 13:37 arthur-_ left, arthur-_ joined 13:44 payload left 13:48 payload joined 13:49 skeptical_p joined 13:51 dakkar joined
colomon rakudo: say (5/4, 6 Z- 4, pi)>>.round.perl 13:55
p6eval rakudo f67670: OUTPUT«(-3, 3)␤»
colomon word.
13:59 nihiliad joined
sECuRE what exactly does Z- do? 14:01
masak sECuRE: pairwise subtraction.
sECuRE ah, i see 14:02
colomon just used [@p2 Z+ (@p1 Z- @p2)>>.round] in code and had it work properly.
arnsholt Nice! 14:03
If a bit hard to read for the uninitiated =)
jnthn back 14:05
Wow...scary!
masak I'm glad TimToady took the conservative road on subprecendence. 14:07
colomon masak: I'm not 100% sure I'm glad; but then, I've got most of the meta-op precedence all messed up at the moment anyway, so I'm perhaps not the best person to ask... 14:08
masak I think overall, subprecedence would have been harder to implement. 14:09
colomon hmmmm, I think tests are needed, actually.
masak being conservative in the spec basically means not having to implement an extra layer of complexity.
14:09 payload left
jnthn Well, it also makes it an error for now, meaning if we do want it later, it means making something that would have failed to compile work, rather than changing semantics. 14:12
colomon which is a good, sensible policy. 14:13
masak 'reserved for future use'. 14:14
colomon wants to work on [op] so bad it almost hurts, but has oodles of $work and no freaking idea how to make the grammar handle [op]...
masak work on [$work], then! :P 14:15
colomon though just for reference... [@p2 Z+ (@p1 Z- @p2)>>.round] was for $work. ;) 14:16
masak \o/ 14:20
14:21 payload joined, ignacio_ left 14:26 arthur-_ left 14:27 arthur-_ joined
TimToady colomon: I hope you only wanted to round what was in the parens 14:29
colomon TimToady: yes!
TimToady oh, yes, I see you used @p2 twice 14:30
ENOCAFFEINE
colomon hyper-ops might have been more appropriate for that code, but we don't have them yet in Rakudo, and zip-ops did the job quite nicely. 14:31
14:33 daemon left, daemon joined
TimToady masak: actually, subprecedence would be trivial to implement; there is a hard design issue in deciding how Xop relates to X though 14:37
are they all looser? tighter? do they match at X, or some other Xop? 14:38
masak TimToady: ok.
TimToady but generating the new precedence is just taking list infix precedence, f=, and gluing it together with the subprecedence to get f=t= or some such 14:39
string comparison takes care of the rest
masak one thing I've long wanted to ask...
there are two 'types' if string comparison around. 14:40
they differ in what happens when the two strings match up to the length of the shortest one.
seems Parrot/PIR does one thing, and Perl 6 does the other.
I encountered that when I ported PGE to GGE.
TimToady in Perl, if the shorter one is the exact prefix of the longer, the shorter one always comes first 14:41
does parrot do the old stupid space-padding trick?
like BASIC?
masak I'm not sure, but maybe.
I'll do some empirical tests when time permits. 14:42
it does some kind of padding, because I had to do it manually in Perl 6 to make things work.
TimToady in other words, we pad with chr(0)
masak nod.
TimToady except we don't pad, we just give up if we run out of shorter string. :) 14:43
masak aye. 14:44
TimToady in fact, cmp always gives up on the first non-matching char
on precedence, I do worry from time to time that people will expect hyper-infixes to be list infix precedence 14:45
currently they track their base op's precedence, unlike Z and X 14:46
masak consider it a live experiment :) 14:47
TimToady consider that people may have to live with the consequences for 100 years
masak :-/ 14:48
TimToady we still have C's botched precedence table 14:49
masak wasn't aware it was so botched 14:51
TimToady in the neighborhood of bitwise ops, particularly 14:52
masak is that why Kernighan says never to combine those and arithmetical ops? 14:53
14:53 justatheory joined
TimToady I remember complaints about it when I started learning C :) 14:53
masak in this video, I believe: video.ias.edu/stream&ref=270 14:54
the only precedence I *know*, deep down, to be wrong is the precedence of 'instanceof' in Java...
TimToady and little things like logical not being treated very tightly as a symbolic unary 14:57
and splitting the relative comparisons from the equality
masak o.O
TimToady we had to combine those to get chaining operators in p6
masak probably for the best... 14:58
TimToady allowing = inside of ?: is also a mistake; C really parses it like ?(): 14:59
it should just fail
std: 1 ?? $_ = 2 !! $_ = 3
14:59 justatheory left
p6eval std 30101: OUTPUT«===SORRY!===␤Assignment not allowed within ??!! at /tmp/HZsgXHRai3 line 1:␤------> 1 ?? $_ ⏏= 2 !! $_ = 3␤ expecting an infix operator with precedence tighter than item assignment␤FAILED 00:02 108m␤» 14:59
masak std: 1 ?? $_ := 2 !! $_ := 3
p6eval std 30101: OUTPUT«===SORRY!===␤Precedence too loose within ??!!; use ??()!! instead at /tmp/s4pEsJOcrv line 1:␤------> 1 ?? $_ ⏏:= 2 !! $_ := 3␤ expecting an infix operator with precedence tighter than item assignment␤FAILED 00:01 106m␤» 15:00
masak std: 1 ?? 2 !! $_ := 3
p6eval std 30101: OUTPUT«ok 00:01 106m␤»
TimToady but that's treating the whole thing as the lhs of :=
masak std: 1 ?? 2
p6eval std 30101: OUTPUT«===SORRY!===␤Found ?? but no !!; possible precedence problem at /tmp/3bj3EWMnoS line 1 (EOF):␤------> 1 ?? 2⏏<EOL>␤ expecting any of:␤ POST␤ postfix␤ postfix_prefix_meta_operator␤FAILED 00:01 106m␤»
TimToady which is a semantic error
masak nod.
15:01 Guest24764 left
TimToady 'course, the ?: problem may have more to do with yacc than with precedence 15:01
15:02 justatheory joined
masak ??!! is not technically a trinary in Perl 6, is it? 15:02
15:02 justatheory left
masak it's more like two binary ops which can't occur on their own. 15:03
well, !! can, I guess, but then it means ! !
hm, ?? can too, in term position...
std: my $a; ??$a
p6eval std 30101: OUTPUT«===SORRY!===␤Preceding context expects a term, but found infix ?? instead at /tmp/TXpMsfGs8w line 1:␤------> my $a; ??⏏$a␤FAILED 00:01 106m␤»
masak guess not :)
15:04 nihiliad left
masak std: my $a; !!$a 15:04
TimToady I suspect it disallows !! too
p6eval std 30101: OUTPUT«ok 00:01 106m␤»
TimToady or...not...
masak it shouldn't.
because it actually makes sense sometimes.
TimToady well, arguably, you can always replace that with ?
masak hm, I guess ?? makes as much sense...
but !! is the common idiom.
TimToady ah, it's only as an infix that it complains 15:05
std: 1 !! 2
p6eval std 30101: OUTPUT«===SORRY!===␤Ternary !! seems to be missing its ?? at /tmp/N9UrQ3gAdu line 1:␤------> 1 !!⏏ 2␤FAILED 00:01 106m␤»
TimToady std: sub prefix:<??> {...}; ??$_ 15:06
p6eval std 30101: OUTPUT«ok 00:01 108m␤»
masak \o/
TimToady the generic error is last in STD with an LTM of '' to make all the other rules take precedence 15:07
15:07 nihiliad joined
TimToady though the ?? is a special case 15:08
iirc
but the user's grammar is derived from the standard, so the user's method overrides 15:09
15:17 ash_ joined 15:19 payload left 15:20 cognominal joined, barney left 15:22 masak left 15:26 payload joined
TimToady so, actually, in string comparison, we consider the first non-existent character to be -1, not 0 15:33
if the longer string is all chr(0) in the remainder, it still comes after.
15:35 ash_ left 15:36 Psyche^ joined
TimToady and maybe parrot is 0-padding instead 15:37
or maybe parrot is using strncmp :)
which can't compare strings containing nulls! 15:38
15:38 ash_ joined
jnthn I *really* hope not! 15:38
TimToady rakudo: say "a\0b" cmp "a\0c"
p6eval rakudo f67670: OUTPUT«-1␤» 15:39
TimToady whew :)
jnthn phew
:)
TimToady rakudo: say "a\0" cmp "a"
p6eval rakudo f67670: OUTPUT«1␤»
TimToady good 15:40
jnthn Got an example handy like that where it gets it wrong?
TimToady I wasn't the one who thougt it might be wrong
jnthn Ah, ok
15:40 Patterner left, Psyche^ is now known as Patterner
TimToady rakudo: say "a " cmp "a" 15:41
p6eval rakudo f67670: OUTPUT«1␤»
TimToady seems okay to me
ash_ rakudo: say "a " eqv "a"; 15:43
p6eval rakudo f67670: OUTPUT«0␤»
TimToady there don't appear to be any tests though
ash_ eqv seems to take white space into consideration, if its a must
TimToady that would be LHF for someone to knock off
ooh, that's wrong
no wait 15:44
0 is false
so that's right
ash_ rakudo: say "a " eqv "a"; say "a" eqv "a";
15:44 k23z__ joined
p6eval rakudo f67670: OUTPUT«0␤1␤» 15:44
TimToady seems right
other than bitwise tests, the only comparison test involving \0 is ok("\0" eq "\0", "eq on strings with null chars"); 15:46
long term, this seems...inadequate...
only looking in t/spec/S03-operators though 15:47
15:49 ignacio_ joined 15:54 skeptical_p left
colomon I wish there were some way to convince newcomers that writing tests is important. 15:56
I suspect that good spectests are likely to outlast any of the current implementations of Perl 6...
pugssvn r30102 | lwall++ | [comparison.t] add some tests involving \0 15:58
16:05 ash_ left
pugssvn r30103 | lwall++ | [S03/equality] make sure eq and ne don't do padding semantics 16:05
16:05 ash_ joined 16:06 SmokeMachine joined, rgrau joined 16:07 envi^home left
pugssvn r30104 | lwall++ | [S03/relational.t] more tests to detect bad comparison semantics involving padding 16:11
TimToady there, I wrote my tests for the year :)
[particle] thank you for your contribution; you will be punished. 16:12
16:13 ignacio_ left 16:23 Bzek left 16:24 cdarroch joined, cdarroch left, cdarroch joined 16:34 ash__ joined 16:37 ash_ left, ash__ is now known as ash_ 16:40 ash_ left 16:41 justatheory joined 16:52 araujo left, araujo joined 17:01 cosimo left
pmichaud good afternoon, #perl6 17:13
jnthn hello, pmichaud 17:14
17:14 uniejo joined 17:15 payload left
TimToady hi 17:17
17:23 iblechbot left
colomon pmichaud: \o 17:24
pmichaud: I don't know how much you've backlogged, but we might have gotten carried away yesterday. :)
pmichaud colomon: I haven't backlogged at all. 17:32
colomon: carried away with...?
jnthn Meta-operators... :-) :-)
pmichaud oh, did you all start on the implementation for those?
jnthn colomon++ most certainly did :-) 17:33
colomon rakudo: say (1..* Z~ 'a'..*).batch(10).perl
p6eval rakudo f67670: OUTPUT«("1a", "2b", "3c", "4d", "5e", "6f", "7g", "8h", "9i", "10j")␤»
jnthn rakudo: say (1..* ZR~ 'a'..*).batch(10).perl
p6eval rakudo f67670: OUTPUT«("a1", "b2", "c3", "d4", "e5", "f6", "g7", "h8", "i9", "j10")␤»
17:33 riffraff joined
TimToady we add Z because people kept asking for zipwith 17:33
*added
colomon I thought we added it because it was more consistent, not to mention cool. 17:34
were there actual user requests for it? ;)
jnthn There can be more than one reason. :-)
TimToady we never add anything for only one reason
of course, anything we add is cool by definition. :)
but yes, it is more consistent 17:35
colomon anyway, we have rough versions of !op, Rop, Xop, and Zop working now.
there is still some finesse required to make things completely kosher.
[particle] can we add a reset op that gets us back to STD?
TimToady o.o
[particle] :P 17:36
TimToady you make it sound like rakudo is out ahead of STD here...
std: say (1..* ZR~ 'a'..*).batch(10).perl 17:37
p6eval std 30104: OUTPUT«ok 00:01 108m␤»
pmichaud I'm disappointed that I haven't been able to play too, but keep up the great work.
I'll try to write up a public message explaining my situation a bit later today.
colomon pmichaud: if there's anything we can do to help... 17:38
TimToady I think delaying R* can also be on the table.
colomon nod 17:39
pmichaud yes, I was just discussing that in /msg with jnthn
I'll write up a summary of my situation a bit later today, and then let folks here brainstorm how this might/will affect R* 17:40
and then I'll likely go along with consensus opinion
I also hope to know in the next 6-8 hours where things stand here. 17:41
in the meantime, if there needs to be a "final arbiter" ("pumpking") to make decisions in my absence, I delegate that to jnthn++ 17:42
jnthn Uh-oh. :-)
pmichaud (I don't plan to be absent, but my schedule is not my own at the moment.)
jnthn pmichaud: I'll do my best. :-)
[particle] jnthn: as pumpking, you also have the stick of delegation.
jnthn prods [particle]++ :-)
pmichaud jnthn: if you're doing your best, then we have absolutely nothing to worry about :-) :-) 17:43
TimToady you can hurt someone with a carrot too, if it's big enough
jnthn It was a *gentle* prod. :-)
TimToady well, nobody ever even does their best, so it's not worth guilt tripping over in any case
at some point we must all rely on Providence to supply what we lack personally... 17:45
jnthn :-) 17:46
[particle] is that another word for lazyweb?
TimToady I was thinking of it in the Quaker sense. 17:47
17:47 quietfanatic left
[particle] ah, the capital of rhode island. 17:47
TimToady yes, as in H.P. Lovecraft. 17:48
whose grave I have visited :)
[particle] :)
pmichaud okay, I have to disappear again for a while. bbl. 17:56
jnthn o/ 17:57
17:57 uniejo left
colomon \o 18:00
18:03 hercynium left
jnthn -> finding food 18:09
back in an hour or so
18:10 dakkar left 18:16 hercynium joined 18:25 alester joined 18:28 hercynium left 18:30 payload joined 18:36 synth joined 18:37 rgrau left
k23z__ enjoys tea+pfefferminz schokolade 18:39
Su-Shee just managed to get a volume discount in a chocolate online shop. ;) 18:40
k23z__ is wondering what chocolate Su-Shee bought :) 18:41
Su-Shee www.zotter.at :)
18:43 supernovus joined
k23z__ Su-Shee, wow that looks nice , which ? 18:44
supernovus So, I am working on a new version of Temporal. I do have one question. Does something like Temporal belong in the "minimal" core, or should it be an external library?
Su-Shee k23z__: well all with nuts in it for starters ;)
18:44 mberends joined
k23z__ Walnu􏿽xCC􏿽x88sse 18:46
Su-Shee and pistaches and almonds and hazelnuts and everything with sheep's milk.. 18:47
k23z__ I never ate chocolate with sheep's milk in it to be honest :) 18:48
is it different from chocolate with cow milk ?
18:48 justatheory left
Su-Shee I can recommend sheep's and goat's milk actually. I use them like regular cow's milk in coffee or for cooking and all and they all taste slightly "sweeter" and less hmm.. cantdescribeit. buffalo milk is also _very_ nice. 18:49
TimToady supernovus: as it stands, Temporal is too overengineered to go into the core. 18:50
however, civil Date and Time types that handle gregorian time might be fine there as a default
18:51 justatheory joined
supernovus So far, my Temporal implementation is based on masak's "Temporal Flux" specification (parser and formatter for ISO8601), but also includes a parser and formatter for RFC2822, and a custom formatter based on the Date::Format library from Perl 5. I personally think that the functionality is useful, but may be overkill for the core. 18:51
TimToady for both Temporal and IO, we need to figure out the "easy things should be easy" part, and put that part into core 18:52
both of those have historically been more in the 'hard things should be possible'
"Beware the Turing Tarpit, where everything is possible, and nothing is easy." 18:53
k23z__ need to try these milks some tme ...
supernovus It should let you do things like: my $event = DateTime.new("2010-06-22"); my $now = DateTime.new; my $howlong = $event - $now; say "Yay, I'll be 31 in $howlong";
TimToady --Alan Perlis
s/nothing/nothing of interest/ 18:54
actually, I'm not sure either of those are Turing tar-pits from that definition.
they just kinda turned into normal tarpits... 18:55
anyway, they both tend to suffer from too much orthogonality
18:55 lichtkind joined 18:58 uniejo joined
supernovus As long as IO::Socket::INET sticks around in some form... I use that one a lot. 19:03
Even if it gets separated out as a non-core/setting library. I think that may be the best thing for Temporal too. 19:05
19:09 payload left
TimToady seems to me INET should imply socket already 19:09
19:10 riffraff left
TimToady and in general, IO should be concentrating on naming external objects by their identity, and let the system figure out how to get them. 19:11
19:11 rv2733 joined
supernovus I don't know about the client side. I use the daemon functionality of the IO::Socket::INET, It was the foundation of my SCGI library. 19:14
19:15 payload joined, justatheory left
TimToady not saying that you shouldn't be able to get at the socket abstraction (or is it non-abstraction) layer, but I just consider that 90% of occurrences of the word Socket in a user's program is a design failure 19:16
I also consider having to prefix Date or Time with Temporal:: all the time is also a design failure 19:27
19:32 ShaneC joined 19:36 iblechbot joined
jnthn back 19:36
takadonet welcome back jnthn 19:39
lichtkind is rule statement_control:sym<default> { <sym> <block> } same as rule statement_control { 'default' <block> } ?
jnthn sorta :-) 19:40
<sym> matches default
So in that sense, yes. 19:41
TimToady but there are multiple statement_control rules, so not in that sense
jnthn std: multi regex foo($x) { a }; multi regex foo($x, $y) { b }; 19:54
p6eval std 30104: OUTPUT«ok 00:01 109m␤»
jnthn Ooh. :-)
.oO( there's fun to be had there... )
19:55
TimToady indeed, but the primary criterion is still LTM, and ordinary multi is inside that 19:57
jnthn The way those interact makes my head hurt. :-)
TimToady I'd ignore multi inside regex for now; I don't think STD uses it anyway
jnthn I wasn't entirely sure STD would even allow it at the point I tried it. :-) 19:58
TimToady that's just semantics, so STD doesn't care
lichtkind jnthn TimToady thanks
is default a special word?
TimToady only as meaning the same as 'when *' 19:59
i.e. in a switch statement
lichtkind but not in <default> ?
TimToady that's just a string that <sym> knows how to match, and perhaps also ends up the name of the eventual operator 20:00
other than that, just a name to uniquely identify the rule; there's no requirement that you use <sym> 20:01
20:01 justatheory joined 20:06 jferrero left 20:10 uniejo left 20:17 elmex left
lichtkind TimToady: thanks 20:17
20:18 elmex joined 20:27 M_o_C joined 20:34 elmex left 20:40 M_o_C left, ignacio_ joined 20:48 cbk joined
cbk HI everyone. 20:49
mberends HI!
cbk If you all don't mind, I was looking at some old perl 6 code that I have and tried to run it and got this error message: Too many positional parameters passed; got 1 but expected 0 in Main (file src/gen_setting.pm, line 324) 20:51
This code worked before...?
did something change in my absence?
spinclad how old?
mberends plenty changed 20:52
cbk back around rakudo #16
any tips on what to look for in my code so I can fix it? 20:53
spinclad yes, a lot has changed. i don't recall that error message existing back then.
cbk I
jnthn #16 is...certainly old. :-)
I wonder if that was before the new binder.
mberends cbk: how about pasting your code and output on paste.lisp.org/new/perl6
cbk No i didn't have that problem back then. Only now that I try to run it
20:53 elmex joined
jnthn The old one didn't care about if you had an empty signature and passed parameters...due to a bug. That got fixed. 20:53
Alternatively, it could be a Rakudo problem too. 20:54
mberends that's why it's interesting to reproduce the error on a few more systems
cbk mberends, I will post the code... 20:55
[particle] jnthn: i need to talk to you about rakudo's needs from parrot in preparing for R*. i'll be around tomorrow, shall we chat then? 20:58
jnthn [particle]: That sounds good. 21:00
[particle]: As far as I know, my schedule is pretty flexible tomorrow. 21:01
I've things to do, but they needn't happen at any particular time in general.
[particle] excellent. i'm out the door for the next 7 hours or so, but i'll be around tomorrow
jnthn kk 21:02
21:03 ruoso left
cbk mberends, sorry paste.lisp.org does not look like it's working. 21:03
jnthn oh, hmm, the bot is missing here I think 21:04
cbk: If you managed to post it somewhere and have a url, just paste the url in here. 21:05
cbk ok
mberends or try another paste server eg nopaste.snit.ch/ 21:06
cbk I put the code up here on my site: independentcomputing.biz/?q=node/31 21:09
mberends cbk: got it, will try locally right now 21:10
cbk the only output I get is the error I had listed: Too many positional parameters passed; got 1 but expected 0 in Main (file src/gen_setting.pm, line 324)
21:12 rgrau joined
mberends cbk: over here on very latest Rakudo it says: "You can not add a regex to a module; use a class, role or grammar". Have you had that message. 21:16
cbk no, just the one that I had listed before. 21:18
Too many positional parameters passed; got 1 but expected 0 in Main (file src/gen_setting.pm, line 324)
mberends cbk: I'll play around with it in the next couple of hours
cbk I don't think I'm not using the latest. I'm using the perl6 thats on fedora 12 21:19
so you think it's the regex
mberends cbk: things have changed quite a lot in Rakudo in the past 3 months
cbk at the top 21:20
ya I see.
mberends they seem fine, but may need to be enclosed in a grammar
cbk ok
21:21 IllvilJa left
cbk time to download that perl 6 book :) 21:21
mberends :) 21:22
21:22 huf joined 21:23 daemon left, daemon joined 21:29 ignacio_ left 21:33 bkeeler joined 21:41 mberends left 21:43 bkeeler left 21:45 ignacio_ joined 21:49 mberends joined, TiMBuS joined 21:50 Su-Shee left 21:51 eternaleye left 21:52 eternaleye joined 21:54 bkeeler joined 21:57 payload1 joined 21:58 eternaleye left 22:03 jmarti joined 22:09 eternaleye joined 22:12 wknight8111 joined 22:17 Chillance left 22:19 Chillance joined, SmokeMachine left 22:24 nihiliad left 22:26 ShaneC1 joined, brushie__ left, brushie__ joined 22:28 ShaneC left 22:30 daemon left 22:32 daemon joined, fda314925 left 22:33 fda314925 joined
supernovus Well, be back tomorrow. Hopefully, I'll have a Temporal that can do DateTime objects (with ISO8601 parsing and formatting), and will supply a 'now' sub that will return a DateTime object representing 'right now'. Time zone adjustments and Duration objects coming next (with conversions, like say Duration.new("2.5H").in(:minutes) ). Then Temporal Math... A DateTime +/- DateTime will return a Duration. A DateTime +/- Duration will 22:35
TimToady um, please don't use Duration for civil times
Durations are defined only as the difference between two Instants 22:36
ascent_ supernovus: you overflowed irc buffer at "A DateTime +/- Duration will" 22:37
TimToady S02:1213 22:38
jnthn TimToady: When you have an s/a/b/ what kind of thingy does it produce?
supernovus TimToady: I should say Gregorian::Duration. 22:39
TimToady that's an awful name
not your fault I know :)
jnthn TimToady: (s/a/b/).WHAT.say # say what?
22:39 rv2733 left
supernovus ascent_: A DateTime +/- DateTime will return a Duration. A DateTime +/- Duration will return a DateTime. (and all of this is referring to the Gregorian:: Civil time implementations.) 22:40
TimToady well, in p5 terms it'd return a Match object
we can't use Duration for that, or we'll confuse people
we were talking earlier about calling them Durances, as in "durance vile" 22:41
which is usually measured in civil units
22:41 daemon left
TimToady "2 hours" is not a well formed concept with respect to Durations 22:42
22:42 daemon joined
TimToady Durations don't know anything about the snap-to-grid semantics that civil times need 22:43
supernovus I'm using the names from S32/Temporal. I haven't deviated the names from what masak had started on. As per S32/Temporal, initializing a raw DateTime or Duration object with any attributes other than 'tai' will delegate to the Gregorian:: versions.
TimToady we will certainly be renaming Duration 22:44
one way or another...
22:44 ShaneC joined
TimToady Period maybe 22:45
mberends don't journeys and film shows have durations that are imprecise?
TimToady point is, S02 has already claimed it as a technical term 22:46
22:46 ShaneC1 left, xomas joined, xomas left, xomas joined
TimToady if S32 wants it, we'll have to come up with a different technical term for the difference between to Instant values 22:47
22:47 alester left
TimToady *two 22:47
Period is also use both precisely and imprecisely 22:48
I suspect most such time words will be
22:49 supernovus left, szbalint left, meppl left, eiro left, eiro joined, szbalint joined 22:50 ascent_ left 22:51 ascent_ joined
mberends right. S02:1210 "Duration The difference between two Instants" (TAI points) 22:51
TimToady thinking of renaming that to Period, maybe 22:52
if S32 wants to keep on with it 22:53
or maybe Interval? I suppose that would upset some mathematicians... 22:54
we already call intervals Ranges
mberends hmm, that suggests repetition.
22:54 supernovus joined
jnthn Span? 22:54
TimeSpan?
supernovus Gah, something went wrong, and I lost my connection. 22:55
22:55 drake1 joined
mberends but Duration suggests continuity. 22:55
supernovus I hadn't noticed that Instant and Duration were now in S02. I'm assuming the versions shown in S32 should be exiled. In which case, Period or TimeSpan would be a suitable replacement.
TimToady well, I'm willing to give Duration to S32 if we can come up with a better term for an absolute timespan 22:56
mberends doesn't like timespan, but technically it wins
drake1 just had a look at the parrot system seems pretty easy. do you think perl6 would be able to run on www.gangsterfreak.com/file:doc/comp...t/api.html too?
jnthn I've always found it very clear in terms of what it means.
Even if it feels slightly...something. 22:57
bkeeler rakudo: if "foo.bar.baz" ~~ /(.*) \. (.*)/ { say "$0 $1" }
p6eval rakudo f67670: ( no output )
bkeeler alpha: if "foo.bar.baz" ~~ /(.*) \. (.*)/ { say "$0 $1" }
p6eval alpha 30e0ed: OUTPUT«foo.bar baz␤» 22:58
bkeeler no backtracking?
jnthn Odd.
rakudo: say "aaaab" ~~ /a*b/ 22:59
p6eval rakudo f67670: OUTPUT«aaaab␤»
jnthn rakudo: say "aaaab" ~~ /(a*)b/
p6eval rakudo f67670: OUTPUT«aaaab␤»
jnthn oh gah
rakudo: say "aaaab" ~~ /(.*)b/
p6eval rakudo f67670: OUTPUT«␤»
jnthn rakudo: say "aaaab" ~~ /.*b/ 23:00
p6eval rakudo f67670: OUTPUT«aaaab␤»
jnthn oh hmm
23:00 jql left
jnthn fajl. 23:00
bkeeler Is that Swedish for 'fail'? ;)
jnthn bkeeler: Maybe. ;-)
mberends drake1: it's unlikely, to be honest 23:01
TimToady hmm, Interim maybe
jnthn preferred Duration and Interval to that one, fwiw.
bkeeler rakudo: say "aaaab" ~~ /[.*]b/ 23:02
p6eval rakudo f67670: OUTPUT«aaaab␤»
jnthn oh
it won't backtrack over a capture? :-/
That's...not fun.
bkeeler rakudo: say "aaaab" ~~ /$<foo>=[.*]b/ 23:03
p6eval rakudo f67670: OUTPUT«aaaab␤»
jnthn Oh
So just parens. Hm.
bkeeler Most odd 23:04
23:04 hicx174 left
drake1 mberends: it works a bit like the PIR 23:04
only alot more open for extensions 23:05
bkeeler Where do nqp-rx bug reports go?
supernovus I'll finish implementing the TimeDate/Gregorian::TimeDate stuff for tomorrow. Until naming conventions can be decided up, I'll use TimeSpan in Temporal to represent, well, time spans/durations.
23:06 mberends left
drake1 the shell nature of it makes it completely strong 23:06
jnthn bkeeler: Maybe to the github tracker 23:07
TimToady could just be Span for all of me. 23:08
23:08 iblechbot left
jnthn TimToady: I don't mind Span 23:08
TimToady I don't much like CamelCase
jnthn TimToady: Yeah, maybe that's why TimeSpan feels odd. 23:09
TimToady not to mention DateTime
jnthn (I like CamelCase quite a bit, but I recognize we don't use it so much in Perl 6.
)
TimToady it's one of those things I prefer to leave for others to use :)
jnthn Sure
Well, consistency++
23:10 mberends joined, hicx174 joined, snarkyboojum joined
jnthn oh lol 23:11
> my $x = "peer"; $x ~~ s/p/b/; say $x;
beer
mberends \o/
TimToady yahoo
jnthn thinks he'll have a beer to celebrate 23:12
...hmm, maybe I should run the spectests first. ;-)
TimToady jntn has no peers :)
supernovus Anyway, I'm out. I'll put out the library with DateTime and TimeSpan intact, but such that a quick s/DateTime/Newname/g will be easy. :)
mberends :)
TimToady supernovus++
jnthn supernovus++ # nice work :-) 23:13
supernovus I will also make an updated version of the S32/temporal.pod to go along with the changes.
jnthn std: $x ~~ s[rolf] = 'rofl'
p6eval std 30104: OUTPUT«===SORRY!===␤Variable $x is not predeclared at /tmp/QtSwzfYzQc line 1:␤------> $x⏏ ~~ s[rolf] = 'rofl'␤ expecting any of:␤ POST␤ postfix␤ postfix_prefix_meta_operator␤FAILED 00:01 107m␤»
jnthn ...that looks...curious. 23:14
supernovus Anyway, be back tomorrow.
TimToady o/
bkeeler jnthn: \o/ for beer! 23:15
23:15 justatheory left, rgrau left
jnthn TimToady: Where does STD parse the s[...] form? 23:15
23:15 supernovus left
TimToady probably sibble 23:15
jnthn Or is sibble content with finding just one thingy?
23:15 constant joined
TimToady if you use brackets, it only wants one thing, followed by some kind of assignop 23:15
jnthn oh! 23:16
OK
I had somehow thought sibble was more general that just for s/// style thingies.
OK, that makes life rather easier.
23:17 payload1 left
jnthn I don't think I can quite get the same factoring as STD has right now with the starters/stoppers and all that fun, though. :-( 23:17
23:17 payload2 joined
TimToady I'm all in favor of making life easier, considering it usually finds some way to make itself harder some other way... 23:17
jnthn I'd leave it for now in STD.
23:17 k23z__ left 23:18 payload left
jnthn As far as I can follow it, we don't quite have the whole arbitary quotes stuff in place just yet. 23:18
And that's quite a bite to chew.
TimToady yes, you really need real LTM and derived grammars for all that 23:19
jnthn rakudo: "a" eq "a\0"
p6eval rakudo f67670: ( no output )
TimToady you don't say 23:20
jnthn TimToady: Did you patch equality.t? :-)
23:20 lisppaste3 joined
TimToady I believe I did. 23:20
jnthn I think you missed some statement seperators. :-)
ok(!("a" eq "a\0"), "eq doesn't have null-padding semantics") 23:21
ok(!("a" eq "a "), "eq doesn't have space-padding semantics")
23:21 jmarti left
jnthn aye, that was in 23:21
*it
TimToady of course, that's the one I *didn't* run tryfile on...
jnthn phew, I thought I was going to have to work out why on earth a patch to add s/// support would break equality.t! 23:22
TimToady even gives me a nice error:
Two terms in a row (previous line missing its semicolon?) at t/spec/S03-operators/equality.t line 23
jnthn We need to steal that. :-)
TimToady: You patching, or I can?
23:22 payload2 left
pugssvn r30105 | lwall++ | [S03/equality.t] missing semis 23:23
drake1 how stable is the Parrot?
diakopter *crickets*
TimToady "This Parrot is stable!"
23:24 lichtkind left
drake1 nice 23:24
jnthn I hope that isn't biological definition of...
</montypython>
TimToady I dunno, hoses pine for the stables...
*horses
I don't know what hoses pine for
diakopter someone had better leave the barn door open
japhb fjords, of course -- where all their water comes from 23:25
drake1 with a UID it shouldn't matter much, atm
diakopter spent all day fighting "enterprise" software from various billion-dollar companies. 23:26
TimToady a billion doesn't go as far as it used to...
diakopter ... a billion there, pretty soon we're talking about real money 23:27
drake1 shell pipes in Perl6 are open("|printer") as usual?
TimToady Yeah, well, it's always a billion there, and never a billion here.
drake1: not specced, I think 23:28
drake1 not in IO draft
would like to try the new regex actually 23:30
with perl5 modifier it seems
for the old ones 23:31
mberends drake1: the perl5 modifier was implemented only in Pugs, but that has bitrot 23:32
TimToady I don't know if rakudo supports the :P5 option
drake1 ok
TimToady std: m:p5/ ! /, / ! / 23:33
p6eval std 30105: OUTPUT«===SORRY!===␤Unrecognized adverb :p5(1) at /tmp/FdTFLBKDLQ line 1:␤------> m:p5⏏/ ! /, / ! /␤ expecting colon pair (restricted)␤FAILED 00:01 107m␤»
TimToady std: m:P5/ ! /, / ! /
p6eval std 30105: OUTPUT«===SORRY!===␤Unrecognized regex metacharacter (must be quoted to match literally) at /tmp/gkKb4EbNdd line 1:␤------> m:P5/ ! /, / ⏏! /␤ expecting regex atom␤FAILED 00:01 130m␤»
japhb At one point I would swear one of the implementations implemented :P5 perversely by using PCRE.
TimToady STD parses P5 regexen though
drake1 beware of the grammar force hehe 23:34
interesting concept with the <pattern meta> or how it's called 23:35
23:35 japhb left
dalek kudo: 8b09f69 | jonathan++ | (5 files):
Implement first cut of s/// syntax. Uses .subst under the hood, so it's as capable/incapable as .subst.
23:35
TimToady assertions?
colomon \o/ patch!
TimToady drake1: yes, the new pattern syntax is quite nice in many ways. STD.pm uses it heavily to parse Perl . svn.pugscode.org/pugs/src/perl6/STD.pm 23:37
drake1 all the modifiers I always had to put are now implicitly switched on 23:38
jnthn colomon: Figured I should do something useful today. :-)
TimToady drake1: one of the major (re)design principles was picking the right defaults
jnthn colomon: ...well, I guess the Excel stuff was useful in terms of getting me paid. :) 23:39
mberends TimToady: (quite nice) you're so modest!
TimToady I wasn't the only participant in that redesign.
drake1 TimToady: with simple patterns I use sed, so the x was a must. and the {}e's seems nice :)
s,seems,seem, sry. tired reflex cats 23:41
jnthn
.oO( i can haz reflex? )
23:42
drake1 at the ..'s probably
23:43 mssm joined
jnthn > my $x = "peer"; $x ~~ s[p] = 'b'; say $x; 23:44
beer
\o/
mberends yay! 23:45
jnthn If anyone wants the op= form, they can do it 'emselves. :-)
bkeeler But then you might need to "$x = "peer"; $x ~~ s[r] = ''; say $x;"
jnthn (it's probably not so had akshually...)
> my $x = "peer"; $x ~~ s[r] = ''; say $x 23:46
pee
:-D
mberends it may be LHF for someone...
TimToady buncha juvies...
jnthn mberends: It's not so hard, I'm just feeling lazy. :-)
TimToady pugs: my $x = "a1b"; $x ~~ s[\d] += 41; say $x 23:47
p6eval pugs: OUTPUT«Error eval perl5: "if (!$INC{'Pugs/Runtime/Match/HsBridge.pm'}) {␤ unshift @INC, '/home/p6eval/.cabal/share/Pugs-6.2.13.14/blib6/pugs/perl5/lib';␤ eval q[require 'Pugs/Runtime/Match/HsBridge.pm'] or die $@;␤}␤'Pugs::Runtime::Match::HsBridge'␤"␤*** '<HANDLE>' trapped by operat…
jnthn TimToady: hey, that's just teasing me. :-P 23:48
TimToady Can I interest you in a HsBridge I have for sale?
drake1 how would perl6 cope with a fifo-setup in comparison to older version? 23:49
jnthn Transactions between Americans and Brits involving bridges don't have the best history. ;-)
23:49 payload joined
TimToady hey, that's just teasing me. :P 23:50
jnthn even dropped by Lake Havasu City once to see it. :-)
TimToady drake1: I have no idea what you mean.
mberends drake1: push pop shift and unshift are still the same
drake1 sweet 23:51
TimToady or are you talking about SysV fifos?
drake1 yes
and other open file-descriptors
TimToady well, we do have object pipes, which map rather well to such things 23:52
drake1 great
TimToady but nobody has bothered with the SysV primitives yet
and, of course, nobody has actually implmented the object pipes yet either 23:53
drake1 light stuff
TimToady but we have lazy iterators, which comes out to much the same thing
drake1 something like www.gangsterfreak.com/file:gp/fir_experiment.png in perl5 with the STDIN <> iterator, how is that in perl6?
TimToady I have no idea how your picture relates to your words. 23:55
drake1 to iterate over the STDIN 23:56
23:56 mssm left, eternaleye left
drake1 and set the record separators 23:56
TimToady I still have no idea how your picture relates to your words. 23:57
drake1 just a one-liner example
jnthn colomon: So...X and Z non-meta just got commented out?
colomon: oh, search fail...I just found them.
23:58 eternaleye joined
TimToady you can get all the lines from $*IN.lines 23:58
rakudo: say $*IN.lines
p6eval rakudo f67670: OUTPUT«Land der Berge, Land am Strome,Land der Äcker, Land der Dome,Land der Hämmer, zukunftsreich!Heimat bist du großer Söhne,Volk, begnadet für das Schöne,vielgerühmtes Österreich,vielgerühmtes Österreich!Heiß umfehdet, wild umstrittenliegst dem Erdteil du inmitten,einem starken
..Herzen …
jnthn colomon: Is the actual problem that it hits X and then fails to parse X~ for example? 23:59
TimToady hmm, looks like they're autochopped even
drake1 TimToady: like while($*IN.lines) ?
jnthn for