»ö« | 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,4FAILED 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 &infixcurrent 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 &oopcurrent 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 valuecurrent 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 1ok 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 &SETTINGcurrent instr.: '_block14' pc 29 (EVAL_1:0)» | ||
sorear | rakudo: say CORE | 06:19 | |
p6eval | rakudo f67670: OUTPUT«Could not find non-existent sub &COREcurrent 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 assignmentFAILED 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 assignmentFAILED 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_operatorFAILED 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; ??⏏$aFAILED 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 !!⏏ 2FAILED 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«01» | 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__ | WalnuxCCx88sse | 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_operatorFAILED 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 atomFAILED 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 |