|
»ö« | 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. |
|||
| ash_ | oh, yah, i can understand that | 00:00 | |
| 1e60 is big | |||
| colomon | I've got it working in my project by simply skipping all the initial 0s, and expressing 1e60 as 10 ** 60, so that it gracefully switches to floating point. | 00:01 | |
|
00:10
[Coke] left
|
|||
| sorear | There must be a cleverer algorithm out there somewhere | 00:12 | |
|
00:13
sorear sets mode: +o colomon
|
|||
| colomon | sorear: probably in general, but I dunno about with the Perl 6 specific characteristics. (like 0.000001 should be a Rat, but 0.000000000000000000000000000001 a Num) | 00:14 | |
| rakudo: say 3.14159265358979323846264338327950288 | |||
| p6eval | rakudo 11cbd4: OUTPUT«===SORRY!===PAST::Compiler can't compile node of type BigInt» | ||
|
00:15
sorear sets mode: +vvvv dalek p6eval _ilbot2 IRSeekBot
|
|||
| sorear | even just str2num conversion is a bit interesting | 00:16 | |
| at one point the GHC parser converted strings to Num-equivalent through a FatRat-equivalent | |||
| leading to much hilarity a few years later when some smartalec tried to use 1e-999999 in a program | 00:17 | ||
|
00:18
lestrrat is now known as lest_away,
[Coke] joined
|
|||
| sorear | rakudo: foo(1,2,3; 4,5,6) | 00:19 | |
| p6eval | rakudo 11cbd4: OUTPUT«===SORRY!===Unable to parse postcircumfix:sym<( )>, couldn't find final ')' at line 11» | ||
| sorear | std: foo(1,2,3; 4,5,6) | 00:20 | |
| p6eval | std 31419: OUTPUT«===SORRY!===Undeclared routine: 'foo' used at line 1Check failedFAILED 00:01 112m» | ||
| sorear | alpha: foo(1,2,3; 4,5,6) | ||
| p6eval | alpha 30e0ed: OUTPUT«Confused at line 10, near "(1,2,3; 4,"in Main (file <unknown>, line <unknown>)» | ||
| sorear | pugs: foo(1,2,3; 4,5,6) | ||
| p6eval | pugs: OUTPUT«*** No such subroutine: "&foo" at /tmp/qbSAxXLWNk line 1, column 1 - line 2, column 1» | ||
| colomon | sorear... huh. Actually, it occurs to me that a smart version of a naive conversion routine might automatically Do The Right Thing wrt Rat versus Num. | 00:22 | |
|
00:25
azert0x left
00:26
kensanata left
|
|||
| colomon | okay, I'm not sure whether to be proud or ashamed of this code: | 00:32 | |
| $int-part.Int + [+] $frac-part.comb.kv.map(-> $i, $d { $d eq '0' ?? 0 !! $d.Int / (10 ** ($i + 1) }); | |||
| well, certainly mildly ashamed for the missing paren. | 00:33 | ||
|
00:35
micahjohnston joined
|
|||
| colomon | rakudo: say ~("14159265358979323846264338327950288".comb(/. ** 1..4/)) | 00:36 | |
| p6eval | rakudo 11cbd4: OUTPUT«1415 9265 3589 7932 3846 2643 3832 7950 288» | ||
|
00:36
micahjohnston left,
[Coke] left
00:40
masonkramer_ joined,
masonkramer left,
masonkramer_ is now known as masonkramer
00:51
\shade\ left
00:52
shade_ joined
|
|||
| colomon | if a few people could pound on github.com/colomon/str2num, I'd appreciate it. I think I've got it basically working now. Not the most efficient algorithm for sure, but as far as I can tell (tired as I am) this version works pretty well. | 00:59 | |
| writing more tests would be good. | 01:00 | ||
| :) | |||
| off to my in-laws' to get some sleep now.... | |||
|
01:03
cjk101010 left
01:05
colomon left
01:07
uniejo joined
01:13
japhb left
01:14
whiteknight left
|
|||
| uniejo | perl6: role A { method a { say "a" } }; class B does A {}; B.new().a() | 01:17 | |
| p6eval | rakudo 11cbd4: OUTPUT«Could not find sub &say in 'a' at line 11:/tmp/w7XZWIStA8 in main program body at line 11:/tmp/w7XZWIStA8» | ||
| ..elf 31419, pugs: OUTPUT«a» | |||
| sorear | pugs: \(1,2,3; 4,5,6).WHAT.say | 01:26 | |
| p6eval | pugs: OUTPUT«***  Unexpected "\\(" expecting program at /tmp/I4zvlSCKzd line 1, column 1» | ||
| sorear | pugs: say WHAT \(1,2,3; 4,5,6) | ||
| p6eval | pugs: OUTPUT«***  Unexpected "\\(" at /tmp/4EbqdDPmI5 line 1, column 10» | ||
| diakopter | pugs: (\.(1,2,3; 4,5,6)).WHAT.say | 01:27 | |
| p6eval | pugs: OUTPUT«*** Cannot cast from VUndef to Pugs.AST.Types.VCode (VCode) at /tmp/XHf5g0iSDN line 1, column 2-18» | ||
| diakopter | O.o | ||
|
01:28
redicaps joined
01:33
felliott joined
01:37
plobsing joined
01:40
shade_ left,
shade_ joined
01:41
drbean_ is now known as drbean
01:50
japhb joined
01:52
snarkyboojum joined
01:55
ashleydev left
01:57
jaldhar joined
02:00
zorgnax joined
02:08
lest_away is now known as lestrrat
02:09
meppl left,
christine left,
nadim left,
tomaw left,
felipe left,
Gothmog_ left,
ingy left,
opx^away left
02:10
Grrrr left,
Grrrr joined,
meppl joined,
christine joined,
nadim joined,
tomaw joined,
Gothmog_ joined,
ingy joined,
opx^away joined,
card.freenode.net sets mode: +o ingy
02:11
uniejo left
02:14
shade_ left,
shade_ joined
02:16
x19290 joined
|
|||
| x19290 | Question about Rakudo/Parrot: | 02:17 | |
| When I | |||
| $ perl6 --target=pir -o 123.pir -e 123.say | |||
| and | |||
| $ parrot 123.pir | |||
| I get syntax errors. What's wrong? | |||
| sorear | 1. using --target with -e is not working properly last I heard | 02:18 | |
| x19290 | echo 123.say > 123.p6 | 02:19 | |
| sorear | 2. you just tried to load 123.pir in a clean Parrot enviroment - Rakudo installs custom opcodes, which changes the assembly syntax | ||
| x19290 | How to install the 'custom' opcode? | 02:20 | |
| sorear | by running 'perl6' instead of 'parrot' | 02:21 | |
| 123.pir can only be loaded from inside a rakudo process | |||
| x19290 | is there no easy way to run 123.pir? | 02:22 | |
| sorear | I don't think there's /any/ way to run 123.pir | 02:23 | |
| precompilation is not suitable for general use at this time | |||
| it's only useful for bootstrapping | |||
| x19290 | I think perl6 will have a compiler mode like javac | 02:24 | |
| Is it wrong? | |||
| sorear | our build system uses perl6 --target=pir to compile the standard library, then pastes the output into the compiler | ||
| oh yes, it *will* | |||
| plobsing | sorear: have you tried using PBC instead? dynops work in that medium (modulo load order issues) | ||
| x19290 | you mean --target=pbc? | 02:25 | |
| sorear | plobsing: 1. it's not possible to generate PBC from PCT-based compilers 2. even if it did work, it wouldn't, because rakudo needs to control its own initialization | 02:26 | |
|
02:26
ciphertext left
|
|||
| sorear | getting AOT compilation to work in the general case is a GSoC-sized project | 02:26 | |
| you're welcome to take it on now, but I'd wait till 2011 | |||
| sorear is having trouble with slicels | 02:27 | ||
|
02:27
colomon joined,
sorear sets mode: +o colomon
|
|||
| pmichaud | good evening, #perl6 | 02:27 | |
| sorear | good evening, pmichaud | 02:28 | |
| pmichaud: can you briefly explain how foo(1,2,3; 4,5,6) is expected to work? | |||
| pmichaud | sorear: that's still a bit of speculation (more) | 02:31 | |
| sorear: my plan at this point is that multiple statements in an arglist results in a slicel instead of a parcel | |||
| frew | pmichaud: where do you keep your slides again? | 02:32 | |
| pmichaud | and converting a slice to a Capture causes things to not collapse | ||
| s/collapse/flatten | |||
| frew is making links etc in blog post | |||
| pmichaud | frew: pmichaud.com/2010/pres/ | ||
| colomon | o/ | ||
| frew | perfect | ||
| thanks | |||
|
02:33
ciphertext joined
|
|||
| frew | pmichaud: what are the keys for this? I see that space and enter go forward, what about backwards? | 02:34 | |
| pmichaud | N and P work | ||
| so should pgup and pgdn | |||
| and there are links at the bottom, if you can make the window tall enough | |||
| frew | ahhh | ||
| I was wondering why I couldn't see those | |||
| my laptop must be too short | 02:35 | ||
| x19290 | sorear: I've learned that in somedayperl6 will have | ||
| pmichaud | yeah, they're done with floating blocks in the HTML | ||
| x19290 | a compiler mode like javac. Thank you. | ||
| pmichaud | Spork has been really good for generating slides for my presentations; I have lots of things I'd like to do differently with it, but ENOTUITS | ||
| (fixing the layout and navigation is one of them) | 02:36 | ||
| frew | pmichaud: eh, that's how it goes. | ||
| mine are using javascript etc and that has other issues | |||
| pmichaud | one of my first significant Perl 6 projects (besides the compiler itself) is likely to be a WikiCreole to HTML translator, followed shortly by a slideshow presenter based on that :) | 02:37 | |
| I sure wish those Perl 6 folks would hurry up and release something so that I can do that. :) :) | |||
| frew | hahahaha | ||
| shouldn't you be able to do that now? | |||
| that's just a matter of tuits right? | 02:38 | ||
|
02:38
x19290 left
|
|||
| pmichaud | yes, it's still ENOTUITS on that :) | 02:38 | |
| frew | of course | ||
| sorear | What day was -perl6? | 02:39 | |
| pmichaud | although maybe I'll work on it during my plane trip in July. | ||
| sorear wonders what good a hyperlink in a slide does | |||
| pmichaud | It would be *really* cool if I could give a presentation that was labeled "powered by Rakudo Perl" :) | ||
| frew | sorear: so you can follow doc at home? | ||
| pmichaud | sorear: while giving a presentation, I can click on the link to jump to the site directly | 02:40 | |
| and yes, what frew++ said | |||
| frew | pmichaud: I'm actually pretty amazed at how easy it is to work on a plane, maybe because of the lack of distractions? | ||
| I got 3 things that I'd been planning on doing for a couple months done on the flight up and down | |||
| pmichaud | Sometimes working on a plane works for me, sometimes not. Often I'm just glad to have some time to rest :) | ||
| frew | sure | 02:41 | |
| pmichaud | but I've also been known to do some pretty significant branch work on a plane :) | ||
| (much easier now that we have git) | |||
| frew | indeed | ||
| colomon | I've never had a seat / laptop combination I could comfortable open on a plane. :( | 02:42 | |
| but I don't fly much. | |||
| otoh, I get good work done when we're driving somewhere on vacation. | |||
| frew | colomon: I find it interesting that just shaving a couple inches off my 13 inch laptop made it comfortable | ||
| pmichaud | plane work is one of the (many) reasons I went for an ultra-small notebook. | 02:43 | |
| sorear | Frighteningly, I don't think I've ever been on an airplane | ||
| pugssvn | r31420 | lwall++ | [STD] differentiate dup prefix message from bad infix for bbkr++ | ||
| pmichaud | afk for a moment, running up to my room to grab a dr pepper. They seem to be hard to find around here. | ||
| TimToady never flew till he was 19 | 02:44 | ||
| colomon | TimToady: don't know if you saw, I came up with a beautiful, terrible way to handle the decimal number issue: | 02:46 | |
| sorear has a few months yet, then | |||
| colomon | [+] $int-part.comb.reverse.kv.map(-> $i, $d { $d.Int * (10 ** $i) }) + [+] $frac-part.comb.kv.map(-> $i, $d { $d.Int / (10 ** ($i + 1)) }) | 02:47 | |
|
02:47
ciphertext left
|
|||
| TimToady wonders if colomon has Tourette's... | 02:47 | ||
| colomon | It works properly because **, *, /, and + do the Right Thing wrt to types. | ||
| TimToady | yay (I think) | 02:49 | |
| colomon | it's good news, but for sure we'll have to find a more efficient approach in the long run. | ||
| possibly even the middle run. :) | |||
| pmichaud | ...and maybe even in the short run. :) | ||
| I'm not a fan of those **'s, though. | 02:50 | ||
| colomon | ;) | ||
| pmichaud | Seems like we should be able to do things incrementally. | ||
| colomon | yeah, I'm sure we can. just lose the beautiful functional programming style of it if we do it the sensible way. | ||
| *we just | |||
| sorear | just as long as 1e-99999999 doesn't attempt to allocate a 12 megabyte integer | 02:51 | |
| TimToady | well, the compiler should spot it and do strength reduction for us :) | ||
| colomon | actually, there is a functional way to do it in p6: | ||
| $int-part.comb.reverse Z 1, 10, 100 ... * -> $d, $pot { $d.Int *$pot } | 02:52 | ||
| TimToady | \o/ | 02:53 | |
| colomon | (that's untested, but it ought to work) | ||
| pmichaud | I do like that form much better :) | 02:54 | |
| TimToady | .comb(/\d/) unless you've removed _ | ||
| colomon | TimToady: nice. that is a good way to remove it all right. | ||
| does \d only match '0' .. '9'? | |||
| pmichaud | matches any unicode digit | ||
| colomon | (ie do we have to worry about funky unicode digits) | ||
| pmichaud | we eventually have to worry about funky unicode digits | 02:55 | |
| (iirc) | |||
| sorear | Is there a simple, exact algorithm to parse C numbers? | ||
| TimToady | but what do .Int do with it, is the Q | ||
| sorear | Emphasis on the exact | ||
| 0.1 cannot be represented exactly as a Num; have fun parsing 0.123456789 | |||
| colomon | well, I'm thinking once this works it should probably be used for .Int, too. | ||
| sorear: 0.1 is a Rat in p6 | |||
|
02:56
Limbic_Region left
|
|||
| colomon | TimToady: which is why I was wondering how to write a "single-digit to Int" algorithm. Easy enough for ascii digits... | 02:56 | |
| TimToady | should be in the unicode tables | 02:57 | |
| sorear | it's the NumericValue property | ||
| colomon | do we have an easy way of getting at that? | ||
| TimToady | blizkost to Perl 5? :) | 02:58 | |
| pmichaud | colomon: no, not presently. | ||
| colomon: I suspect ICU provides that property somewhere, but Parrot doesn't expose it yet. | |||
| sorear | ICU? | ||
| TimToady | you could borrow the tables that sorear++ came up with for STD | ||
| colomon | oh, interesting. sorear++ | 02:59 | |
| pmichaud | colomon: this is a place where I'd not have perfect become the enemy of good enough (for now) :-) | ||
| colomon | :) | ||
| TimToady | and if you grab those tables you can probably dump ICU, for the most part... | 03:00 | |
| pmichaud | ...at the startup cost of initializing the tables | ||
| unless they're in C...? | |||
| TimToady | or implementing mmap | ||
| pmichaud | or mmap might work | 03:01 | |
| if they're in C we could make something work. | |||
| colomon | rakudo: (1, 10, 100 ... *).munch(20).map({ .WHAT.say }).eager | ||
| sorear | the STD tables are designed to be processed using a minimum number of PerlIO traps | ||
| p6eval | rakudo 11cbd4: OUTPUT«Int()Int()Int()Rat()Rat()Rat()Rat()Rat()Rat()Rat()Num()Num()Num()Num()Num()Num()Num()Num()Num()Num()» | ||
|
03:01
pnate left
|
|||
| sorear | they aren't quite properly aligned for mmap() | 03:01 | |
| colomon | hmmm, not quite right yet. | ||
| TimToady | yet | ||
|
03:01
pnate joined
|
|||
| pmichaud | well, they're static, so we could certainly make a static C data structure for them, and some opcodes to do what we want. | 03:01 | |
| sorear | also, they currently only contain Blank and GeneralCategory | 03:02 | |
| pmichaud | That might in fact be a Big Win, rather than waiting for Parrot to figure out how it's going to handle things. | ||
|
03:02
snarkyboojum left
03:03
meppel joined
|
|||
| sorear | ok, I'll do that soon | 03:04 | |
| sorear loves designing data structures and has already worked out a nice format for this | |||
| colomon | sorear++ | 03:06 | |
|
03:08
meppl left
03:10
Guest39268 left
03:17
snarkyboojum joined
03:18
agentzh joined
|
|||
| colomon | 'night, all. | 03:22 | |
| pmichaud | 'night, colomon++ | ||
| colomon | pmichaud, TimToady: hope to see you in the morning for a bit. | ||
| pmichaud | colomon: same here. I think we'll be in the union, either downstairs in the lobby area or in the BOF room | 03:23 | |
| (but perhaps check on irc first, or if you're unable to find us) | |||
| (cell # sent in /msg) | |||
|
03:35
molaf joined
03:46
skangas joined
03:49
snarkyboojum left
03:51
ashleydev joined
03:56
ciphertext joined
04:04
snarkyboojum joined
|
|||
| sorear | Maybe we should just use ICU... I don't feel very good about stealing my STD data source hack for Rakudo | 04:11 | |
| It involves die unless $] == 5.012001; and lots of scraping of files in @INC/unicore/lib | 04:12 | ||
|
04:13
JimmyZ joined
|
|||
| dalek | meta: r342 | stefa...@cox.net++ | trunk/vicil/ (2 files): [vicil] Adopt Parrotish arguments model - native array + native hash. It's anyway. Also, it cuts the circularity issues involved in Parcel having methods which take arguments. |
04:21 | |
|
04:24
skids left
04:25
mjk joined,
shade_ is now known as shade\
04:26
ashleydev left
04:30
patspam left
04:36
skids joined
04:38
mjk left
05:00
molaf left
05:09
ash_ left
05:16
kaare joined
05:17
kaare is now known as Guest10194
|
|||
| dalek | p-rx: 9157c78 | pmichaud++ | (2 files): Allow hyphens and single-quotes in subrule calls. |
05:32 | |
| p-rx: f0bed9b | pmichaud++ | (2 files): Allow hyphen and single-quotes in NQP identifiers. |
|||
| p-rx: a3d5c5b | pmichaud++ | build/PARROT_REVISION: Bump PARROT_REVISION to get debugging fix. |
|||
| p-rx: ebaf06c | pmichaud++ | (2 files): Add ResizablePMCArray .delete and .exists . |
|||
| p-rx: 4ee17c4 | pmichaud++ | src/stage0/ (4 files): Update bootstrap. |
|||
|
05:40
orafu left
05:42
orafu joined
05:57
tylercurtis left
05:59
meppel left,
Su-Shee joined
06:07
cjk101010 joined
06:09
jakk joined,
jakk left
06:11
nadim left
06:12
nadim joined
06:17
Su-Shee_ joined
06:21
Su-Shee left
06:25
nadim left
06:26
justatheory left
06:29
nadim joined
06:32
zorgnax left
|
|||
| quietfanatic | rakudo: class A {our $.x = 4}; say A.new.x | 06:33 | |
| p6eval | rakudo 11cbd4: OUTPUT«Method 'x' not found for invocant of class 'A' in main program body at line 11:/tmp/HfotnSJZki» | ||
| quietfanatic | I'm gonna submit that as a bug. | ||
|
06:35
agentzh left
06:43
gfx joined
06:48
snarkyboojum left
06:49
Su-Shee_ is now known as Su-Shee
07:02
mberends joined
07:16
thepler left,
TiMBuS joined
07:28
Trashlord joined,
mberends left
07:33
quietfanatic left
07:42
mberends joined
07:55
kensanata joined
07:58
fridim joined
07:59
thepler joined
08:01
[particle] left
08:02
ejs joined
08:03
spinclad left
08:05
[particle] joined
08:06
tadzik joined
08:07
ejs left
08:08
ejs joined
08:13
thebird joined
08:20
skids left,
skids joined
08:24
JimmyZ left
08:29
stepnem joined
08:30
Su-Shee left,
Su-Shee joined
08:43
plobsing left
08:57
kensanata left
09:23
lestrrat is now known as lest_away
09:27
mjk joined
09:31
redicaps left
09:40
agentzh joined
09:46
masak joined
09:47
stepnem left,
fridim left
|
|||
| mberends | new directions to the Belgian Perl Workshop: brussels.the-hub.net/public/contact.html | 09:48 | |
| masak | o/ | 09:49 | |
| mberends | o/ | ||
| masak | I made moderate progress with the pls proof-of-concept yesterday. | 09:50 | |
| found two bugs which I promptly saved away and ignored. | 09:51 | ||
|
09:51
pmurias joined
|
|||
| mberends | at least the TDD finds the bugs, instead of the end user :) | 09:53 | |
| masak | :) | ||
|
09:54
ciphertext_ joined,
ciphertext left,
ciphertext_ is now known as ciphertext
09:55
nsh left
09:56
nsh_ joined
|
|||
| pmurias | sorear: re vicil is intended to be used together with perlesque or a standalone thing? | 09:57 | |
| sorear | I don't know yet | 10:01 | |
| it's more an exercise in clarifying the future than anything else | |||
|
10:01
ciphertext left
10:03
ciphertext joined
10:04
azert0x joined
|
|||
| jnthn | morning o/ | 10:12 | |
| moritz_ | \o | 10:13 | |
| "morning" | |||
| masak grins | |||
| jnthn | It is still in my current timezone. :P | ||
| 11:23 or so here in England | |||
| moritz_ | wow, England is UTC + 1:10 now! :-) | 10:14 | |
| masak | moritz_: don't tease jnthn, he's just woken up... :P | ||
| jnthn | :P | 10:15 | |
| True. :P | 10:16 | ||
| masak | jnthn: it's OK, I didn't wake up long ago either. :) | 10:17 | |
| jnthn | :-) | ||
| Yes, I seem to recall our preferred waking up times worked out very well last hackathon. :-) | 10:18 | ||
| masak | not to mention our preferred going-to-bed times! | 10:19 | |
| jnthn | :-) | 10:20 | |
| masak | if I do `run("something that works") or otherwise()`, when is &otherwise called? | ||
| jnthn | I forget what run returns... | 10:21 | |
| rakudo: say &run.perl.signature | |||
| p6eval | rakudo 11cbd4: OUTPUT«Method 'signature' not found for invocant of class 'String' in main program body at line 11:/tmp/gcljS5uMUl» | ||
| jnthn | oh ffs | ||
| I forget what run returns...! | |||
| masak | coffee for jnthn! | ||
| jnthn | rakudo: say &run.signature.perl | ||
| p6eval | rakudo 11cbd4: OUTPUT«:(Any $commandline)» | ||
| jnthn | That's not going to answer what I wanted anyway. | ||
| masak | jnthn: it returns an Int but a Bool. | ||
| jnthn | oh | 10:22 | |
| Well, I guess or cares about truth? | |||
| masak | I hope so. | ||
| otherwise, what would be the point? | |||
| jnthn | I'd imagine it does, in which case the answer is "when it's but True" | ||
|
10:22
mjk left
|
|||
| jnthn | However, but True only started working very recenlty in Rakudo. | 10:22 | |
| So run may be out of date with respect to that. | 10:23 | ||
| masak submits rakudobug | |||
| jnthn | oh huh, the Belgian Perl Workshop has moved?! | ||
| mberends | o/ jnthn. yes, brussels.the-hub.net/public/contact.html | 10:24 | |
| jnthn | moritz_: I plan to be at YAPC::EU before the conf | ||
| moritz_: Some of the Monday, all of the Tuesday. | 10:25 | ||
| mberends: Cool | 10:27 | ||
| mberends: Don't suppose you have heard anything about any pre-conference meetup? | |||
|
10:28
agentzh left
|
|||
| mberends | jnthn: no, we probably all received the same email | 10:28 | |
| jnthn: but I'd be happy to meet up near there quite early | |||
| jnthn | mberends: I more meant, night before the conference, for pivo ;-) | 10:29 | |
| mberends | heh, jnthn is not and early-morning person :) | 10:30 | |
| jnthn | omg cake van?! | ||
| brb | |||
|
10:34
[Coke] joined
|
|||
| jnthn | wow | 10:34 | |
| The village my family lives in now has a van that drives around the village selling cake. :-) | |||
| When I was a kid we only got ice-cream that way. :-) | 10:35 | ||
| colomon | jnthn: when I was a kid, we lived far enough away from town that the ice-cream truck only came by a couple of times a summer. :) | 10:37 | |
| jnthn | wow :-) | ||
| colomon | so, I went to a quick talk on functional programming in Perl 5 yesterday. | ||
| most everything they talked about is built-in / easier in p6. | 10:38 | ||
| except, we don't have memoize yet! | |||
|
10:38
JimmyZ joined
|
|||
| arnsholt | colomon: I'm sure that can be arranged =) | 10:38 | |
| colomon | arnsholt: me too, I'm just trying to make sure that the Right People are thinking about it. | 10:39 | |
| jnthn | colomon: I'm sur ethere's an is remembered or similar trait | ||
| That you can put on a sub to get that effect | |||
| I think it's in spec somewhere. | |||
| colomon | seriously?! | ||
| TimToady++ | |||
| jnthn | Unless it was a bit of the spec I read in a dream. ;-) | ||
| jnthn tries to find it | |||
| colomon | hmmm, it's not "remembered" | ||
| arnsholt | If it was in a dream we can always update reality to reflect that =D | ||
| colomon | it seems like memoize should be easy to do in p6, whether it's a module or a trait we need to implement | 10:40 | |
| jnthn | Found | 10:41 | |
| is cached | |||
| colomon | and given Rakudo's current speed, it seems like it would be very useful. ;) | ||
| jnthn | In S06 | ||
| If only we had .wrap working again, we could probably implement it already. :-)_ | 10:43 | ||
| colomon | .wrap? | 10:44 | |
| jnthn | colomon: aye | 10:45 | |
| colomon: The thing that lets you wrap things around a routine | |||
| Then it's just | 10:46 | ||
| tadzik | rakudo: my @arr = (1, 2, 3, 4, 5); @arr ~~ 5 | ||
| p6eval | rakudo 11cbd4: ( no output ) | ||
| tadzik | rakudo: my @arr = (1, 2, 3, 4, 5); say 'ok' if 5 ~~ @arr | ||
| p6eval | rakudo 11cbd4: ( no output ) | ||
| tadzik | hrm, repl is more verbose | ||
| rakudo: my @arr = (1, 2, 3, 4, 5); say 'ok' if @arr ~~ 5 | 10:47 | ||
| p6eval | rakudo 11cbd4: OUTPUT«ok» | ||
| jnthn | multi trait_mod:<is>(Routine $r, :$cached!) { $r.wrap(sub (|$c) { if is_cached($c) { ...retrun cached... } else { run and cache } }); } | ||
| tadzik | what's the difference between this two? | ||
|
10:47
JimmyZ left
|
|||
| colomon | @arr ~~ 5 converts @a to a scalar, the number of elements, ie 5 | 10:47 | |
| jnthn | If you want to grep through an array for values, you want | 10:48 | |
| @arry ~~ *,$value,* | |||
| tadzik | looks weird, but I think I get it | 10:49 | |
| jnthn | * menas "match anything" | ||
| tadzik | how about 5 ~~ @arr, how does it work? | ||
| jnthn | Puts 5 in list context, rendering a one-item list | ||
| So it's true if @arr only contains one element and it's 5 | |||
| Smart-match is not symmetric. | |||
| tadzik | mhm | 10:50 | |
| jnthn | The type of the thing on the right hand side always decides. | ||
|
10:54
cognominal left
10:56
cognominal joined
11:00
redicaps joined
11:01
cognominal left,
cognominal joined
|
|||
| pugssvn | r31421 | pmurias++ | [smop] much faster handling of .ri files | 11:06 | |
|
11:09
gfx left
|
|||
| colomon | loliblogged: justrakudoit.wordpress.com/2010/06/24/euler-2/ | 11:09 | |
|
11:11
stepnem joined
11:13
Intensity left
|
|||
| jnthn afk for a bit | 11:17 | ||
| tadzik | ~(1, 1, *+* ... 4000000) | 11:23 | |
| I don't get it, the *+* part | |||
| looks a bit like Camelia, but what does it do? | |||
| colomon | tadzik: if * is used as a term in for an operator, it generates a closure. | 11:24 | |
| so *+* is the same as { $^a + $^b } | 11:25 | ||
| tadzik | hmm | ||
| colomon | the same trick is used there with * !% 2 | ||
| the only difference is the * + * closure takes two arguments, and the * !% 2 takes only one | 11:26 | ||
| that's based on the number of *s in the expression. | |||
| tadzik | alright, I get that one. But this *+*. In the closure you wrote, it gets the first one from the left and first from the right? | ||
| redicaps | rakudo: grammar word {token TOP{\w+}}; word.parse("foo"); | ||
| p6eval | rakudo 11cbd4: ( no output ) | ||
| tadzik | no, that makes no sense | ||
| redicaps | rakudo: grammar word {token TOP{\w+}}; word.parse("foo"); | ||
| tadzik | how does it know to take the last two? | ||
| p6eval | rakudo 11cbd4: ( no output ) | 11:27 | |
| colomon | tadzik: the closure just takes two | ||
| tadzik | hmm | ||
| colomon | the series operator, if it has a closure with N arguments, takes the last N arguments that were generated | ||
| tadzik | ah | ||
| what is the series operator here? | |||
| colomon | ... | ||
| tadzik | mhm | 11:28 | |
| at the first glance it looks more magical than Haskell to me | |||
| masak | rakudo: grammar word {token TOP{\w+}}; say word.parse("foo"); | 11:29 | |
| p6eval | rakudo 11cbd4: OUTPUT«foo» | ||
| colomon | it's actually built out of very simple ideas, but it does take a while to get used to them. | ||
| tadzik | it's magic anyway ;) | 11:30 | |
| like bogosort. It's easy to understand, but it's magic | 11:31 | ||
| masak | bogosort is magic? :) | 11:32 | |
| tadzik | well, the wikipedia implementation is, at the first glance | ||
| masak | rakudo: my @a = 3, 2, 1, 5, 4; @a.=pick until [<=] @a; say @a.perl | ||
| p6eval | rakudo 11cbd4: OUTPUT«[3]» | ||
| masak | uhm :) | ||
| tadzik | especially when you see the Java solution below | ||
| masak | rakudo: my @a = 3, 2, 1, 5, 4; @a.=pick(*) until [<=] @a; say @a.perl | ||
| p6eval | rakudo 11cbd4: OUTPUT«[1, 2, 3, 4, 5]» | 11:33 | |
| masak | \o/ | ||
| tadzik | hmm | ||
| arnsholt | masak: Bogowin! =D | ||
| tadzik | rakudo: my @a = 3, 2, 1, 5, 4; @a.=pick * until [<=] @a; say @a.perl | ||
| p6eval | rakudo 11cbd4: OUTPUT«Could not find sub &until in main program body at line 11:/tmp/FdJZ19PMQl» | ||
| tadzik | there has to be () around *, hm? | ||
| masak | tadzik: that's two-terms-in-a-row. | ||
| tadzik | mhm | ||
| masak | tadzik: and that's not allowed :) | ||
| tadzik: so yes, method calls must have either the colon or parens. | |||
| moritz_ | pick: * | ||
| tadzik: either .pick(*) or .pick: * | 11:34 | ||
| tadzik | hmm | ||
| what kind of syntax is 'pick: *'? | |||
| rakudo: my @a = 3, 2, 1, 5, 4; @a.=pick: * until [<=] @a; say @a.perl | |||
| moritz_ | method call syntax | ||
| p6eval | rakudo 11cbd4: OUTPUT«[1, 2, 3, 4, 5]» | ||
| tadzik | yeah, but how it works? | ||
| arnsholt | You put a colon after the method name instead of parens around the arglist | 11:35 | |
| moritz_ | it takes the rest of the statement as argument list | ||
| arnsholt | $obj.method: $a, $b, $c | ||
| tadzik | nice | ||
| moritz_ | with the exception of statement modifiers, which are not part of the argument list | ||
|
11:35
[Coke] left
|
|||
| tadzik | even more TIMTOWDY | 11:35 | |
| *towtdy | 11:36 | ||
| masak | "Yt"? | ||
| :) | |||
| moritz_ | y. | ||
| wow, just read about a wimbledon match | 11:37 | ||
| that was aborted after ten hours because it got too dark | |||
| score: 59:59 in the 5th set, not yet decided :-) | |||
| masak | crazy. | ||
| moritz_ | that's something I really admire, that none of the players gave up | 11:38 | |
| after all even a standard 3 hours game of tennis is hard work | |||
| masak | how can I do a MAIN sub which optionally accepts a --foo flag with no value, the presence of which translates into a Bool? | 11:40 | |
| tadzik | (1..*).list.reverse.shift | ||
| is reverse what breaks everything? | |||
| moritz_ | masak: (Bool :$foo) | 11:41 | |
| in the signature | |||
| colomon | tadzil: yes | ||
| *tadzik | |||
| masak | tadzik: what do you expect that to return? :) | ||
| moritz_ | reversing an infinite list is bound to cause problems | ||
| colomon | you can't revers... what moritz_ said. | ||
|
11:41
ejs left
|
|||
| tadzik | masak: and what do you think? :) pop didn't work either, so I tried shift :) | 11:41 | |
| masak | tadzik: I'm asking because I don't know. :) | 11:42 | |
| moritz_ | what's the last item of an infinite list anyway? | ||
| masak | moritz_: that didn't work for me. Nominal type check failed for parameter '$foo'; expected Bool but got Any instead | ||
| moritz_: that's when it's not supplied. | |||
| I think there's an RT ticket for that. | |||
| moritz_ | oh. | ||
| I think there was a patch that was supposed to fix the case of --/value | 11:43 | ||
| maybe that broke it | |||
| rakudo: sub MAIN(Bool :$foo) { } | |||
| p6eval | rakudo 11cbd4: ( no output ) | ||
| moritz_ | works here when not present | ||
| masak | hm. | ||
| moritz_ | are you sure you didn't forget the : ? | 11:44 | |
| masak | seems I get that error, but not there. | ||
| rakudo: sub MAIN(Bool :$foo) { say $foo.WHAT } | |||
| p6eval | rakudo 11cbd4: OUTPUT«Any()» | ||
| masak | right. I tried to use it as a Bool() later, and it blew up. | ||
| and that's what the RT ticket was about, too. | 11:45 | ||
| so, nevermind. this is all workaroundable. | |||
| moritz_ | urks | ||
| is this specific to MAIN? | |||
| masak | nope. | ||
| moritz_ | ah | ||
| masak | all non-supplied tyoed nameds. | ||
| moritz_ | that explains why I wasn't aware of it | ||
|
11:47
[Coke] joined
11:51
envi^home joined
11:52
tadzik left
|
|||
| takadonet | morning all | 11:58 | |
| masak | takadonet: mroing! | 11:59 | |
| takadonet | masak: how are u? | 12:00 | |
| moritz_ | who is that mr. oing? | ||
| masak | :) | ||
| takadonet: I'm good. thankful for the relative efficiency of the climate control inside. :) | 12:01 | ||
| takadonet: how are u? | |||
| takadonet | masak: doing good, extremely busy lately | 12:02 | |
| masak | takadonet: aye, same here. | 12:03 | |
|
12:05
felipe joined
|
|||
| dalek | p-rx: a915b78 | bacek++ | (2 files): Add bitwise operators |
12:07 | |
| masak | rakudo: say ~(1, 1 ... &[+])[^10] | 12:08 | |
| p6eval | rakudo 11cbd4: OUTPUT«1 1 1 1 1 1 1 1 1 1» | 12:09 | |
| moritz_ | huh. | ||
| masak | closures bug? | ||
| moritz_ | wait | ||
| masak | or am I doing something wrong? | ||
| moritz_ | that's old series syntax | ||
| masak | rakudo: say ~(1, 1, &[+] ... *)[^10] | ||
| p6eval | rakudo 11cbd4: OUTPUT«get_attr_str() not implemented in class 'Perl6MultiSub' in 'infix:<...>' at line 1 in main program body at line 11:/tmp/x5Trgy3XKZ» | ||
| masak submits rakuodbug | |||
| moritz_: if that's the old syntax, then I like the new syntax better. | 12:10 | ||
| colomon | rakudo: say ~(1, 1, &[+] ... 50) | ||
| p6eval | rakudo 11cbd4: OUTPUT«get_attr_str() not implemented in class 'Perl6MultiSub' in 'infix:<...>' at line 1 in main program body at line 11:/tmp/9OU1aHEom6» | ||
| colomon | rakudo: say ~(1, 1, *+* ... 50) | ||
| p6eval | rakudo 11cbd4: OUTPUT«1 1 2 3 5 8 13 21 34» | 12:11 | |
| moritz_ | I guess it's related to &[+] referring to a multi | ||
| colomon | moritz_: yes | ||
| I'm not sure the &[+] can actually work here. | |||
| masak | why not? | ||
| colomon | ... needs to know how many arguments the closure takes. | ||
| masak | ah. | ||
| colomon | how many does &[+] take? | ||
| masak | two. | ||
| colomon | or zero | ||
| masak | zero!? | 12:12 | |
| colomon | rakudo: say infix:<+>() | ||
| moritz_ | for [+] to return 0 | ||
| p6eval | rakudo 11cbd4: OUTPUT«0» | ||
| moritz_ | and for [*] to return 1 etc. | ||
| the default values | |||
| colomon | rakudo: say infix:<*>() | ||
| masak | huh. | ||
| p6eval | rakudo 11cbd4: OUTPUT«1» | ||
| masak | well, the ... operator clearly chooses the two-args one here, no? | 12:13 | |
| moritz_ | where? | ||
| or for [~] to return an empty string, for that matter | |||
| masak | moritz_: in the case of the ... series above. | ||
| moritz_ | in which case? | ||
|
12:14
[Coke] left
|
|||
| masak | 1, 1, &[+] ... * | 12:14 | |
| colomon | looks to me like it doesn't know what one to choose | ||
| masak | I mean, ideally. | ||
| moritz_ | why? | ||
| colomon | what's your rule for that? | ||
| masak | that this isn't a zero-args case. | ||
| moritz_ | what if there's another infix:<+> with three arguments? | ||
| colomon | rakudo: say (1, 1, { rand } ... *).munch(10) | 12:15 | |
| moritz_ | the general solution is probably known, and neither specced nor implemented | ||
| p6eval | rakudo 11cbd4: OUTPUT«110.03712539919385450.5533102571881830.2906026487207280.5188719889966540.7733171349245680.4927070330798780.3392575986627760.39404857995979» | ||
| masak | then choose that for all but the third element. | ||
| this sounds a lot like ruoso++'s thinking around the reduce sub. | |||
| moritz_ | and that is to do a partial binding, taking off as many elements of a list as can possibly used by the dispatch | ||
| colomon | (ie, zero-arg closures are legal in series op) | ||
| TimToady | &[+] is specced to choose the 2-arg case | ||
| colomon | TimToady++ | 12:16 | |
| masak | that settles it. thanks. | ||
| colomon | there's the bug, then. :) | ||
| TimToady | S03:4686 | 12:17 | |
| shower & | 12:18 | ||
| moritz_ | rakudo: multi sub a($a, $b) { $a + $b }; multi sub a(Int $a, Int $b) { $a + $b }; say ~(1, 1, &a ... *)[^10] | 12:19 | |
| p6eval | rakudo 11cbd4: OUTPUT«get_attr_str() not implemented in class 'Perl6MultiSub' in 'infix:<...>' at line 1 in main program body at line 11:/tmp/UHpiQT8yte» | 12:20 | |
| moritz_ | so it's not only the arity | ||
| masak includes that in the ticket | 12:21 | ||
| moritz_: $makefile.say("\tinstall -D $file ~/.perl6/$file"); | |||
| that -D option is -d on Mac OS X. | |||
| moritz_ | and -d means something completely different on linux | 12:22 | |
| -d, --directory | |||
| treat all arguments as directory names; create all components of | |||
| the specified directories | |||
| hilarity ensured | |||
| masak | I see two options: | 12:23 | |
| (1) mkdir -p | |||
| (2) detect OS or, more specifically, the way `install` works. | |||
| moritz_ | (1) is probably more straight forward | ||
| masak | any objections to (1)? | ||
| ciphertext | colomon: speaking of series, i had a few comments and questions the other day, because I had been working on a new patch (to replace the one i submitted that used a special 'scmp' operator) | 12:24 | |
| phenny | ciphertext: 18 Jun 10:28Z <colomon> tell ciphertext I've paused for the moment (on series), but I still have a list of things that need doing and a notion that this is a pretty good time to be doing them. | ||
|
12:26
bluescreen joined,
bluescreen is now known as Guest89026
|
|||
| colomon | ciphertext: yes? | 12:28 | |
| masak | rakudo: say "abcdefabc".rindex("b") | ||
| p6eval | rakudo 11cbd4: OUTPUT«Method 'rindex' not found for invocant of class 'Str' in main program body at line 11:/tmp/bKU9XHf9bg» | ||
| masak | alpha: say "abcdefabc".rindex("b") | ||
| p6eval | alpha 30e0ed: OUTPUT«7» | ||
| masak submits rakudobug | |||
| ciphertext | colomon: ok, first, i had a question about character series. Namely, how should something like 'A'...'DD' behave? should it be the same as 'A'...'D' or 'A'...'Z','AA'...'DD'? | 12:32 | |
| colomon | it's almost the same as 'A'...'D' | ||
| ciphertext | colomon: 'almost'? | ||
| colomon | well, is the same, I suppose. | ||
| ciphertext | ok | ||
| colomon | it's 'A'...^'DD' that would be different from 'A'...^'D' | 12:33 | |
| rakudo: say 'A' ... 'DD' | 12:34 | ||
| p6eval | rakudo 11cbd4: OUTPUT«ABCD» | ||
|
12:34
bphillips joined
|
|||
| ciphertext | second, i was going to point out that the current version doesn't support closures on the rhs (to determine endpoint). I actually have this done in my version (github.com/ciphertext/rakudo/blob/m....pm#L310), but there are a lot of other differences too. | 12:35 | |
| colomon | there is a difference internally ... 'A'...'D' ends because the series hits 'D', while 'A'...'DD' ends because the next element ('E') is on the opposite side of 'DD' than 'D' is. | 12:36 | |
| masak | \o/ first installed project with pls! | 12:38 | |
| colomon | \o/ | 12:39 | |
| slavik | o/ | ||
|
12:40
aCiD2 joined,
masonkramer left,
masonkramer joined
|
|||
| TimToady | colomon: I suspect that for strings, anything other than exact match is going to be un-dwimmy | 12:41 | |
| rakudo: say 'a' ... 'zzz' | 12:42 | ||
| p6eval | rakudo 11cbd4: | ||
| ..OUTPUT«abcdefghijklmnopqrstuvwxyzaaabacadaeafagahaiajakalamanaoapaqarasatauavawaxayazbabbbcbdbebfbgbhbibjbkblbmbnbobpbqbrbsbtbubvbwbxbybzcacbcccdcecfcgchcicjckclcmcncocpcqcrcsctcucvcwcxcyczdadbdcdddedfdgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzeaebecedeeefegeheiejekelemeneoepeqereseteuevewex… | |||
| moritz_ | rakudo: say 26**3 | ||
| p6eval | rakudo 11cbd4: OUTPUT«17576» | ||
| slavik | perl6: say 2**64 | ||
| p6eval | pugs: OUTPUT«18446744073709551616» | ||
| ..elf 31421, rakudo 11cbd4: OUTPUT«1.84467440737096e+19» | |||
| slavik | grr | 12:43 | |
| TimToady | commuting & | ||
| slavik | TimToady: perfect person to ask :) | 12:44 | |
| moritz_ | slavik: at least two implementations agree (though they are both wrong) | ||
| slavik | moritz_: they are not 'wrong' but I would expect automatic bignum | ||
| moritz_: or do you mean wrong in the sense of the 'not following spec' | 12:45 | ||
| moritz_ | right | ||
| wrong == different answer than specced | |||
| rakudo: say (2**64).WHAT | |||
| p6eval | rakudo 11cbd4: OUTPUT«Num()» | ||
| slavik | moritz_: in rakudo's case, this has to do with parrot? | ||
| moritz_ | slavik: that's one way to look at it. If parrot supported native bigints, rakudo would support it too | 12:46 | |
| slavik | docs.parrot.org/parrot/1.9.0/html/s...m.pmc.html | ||
| moritz_ | there are at least two caveats with this | 12:47 | |
| three, I think | |||
| slavik | do tell | ||
| :) | |||
| moritz_ | 1) bignum != bigint | ||
| slavik | agreed | 12:48 | |
| colomon | ciphertext: my quick impression looking at your version is that you've implemented some nice new stuff and broken some stuff at the same time. Is yours passing all the tests? (afk for a bit, getting ready to commute) | ||
| moritz_ | 2) it's not "native" in the sense that an integer register can hold a bignum (or bigint, if it exists) PMC | ||
| 3) it's only available when people have GMP installed, and parrot's configure.pl detects it | |||
| ciphertext | colomon: i don't think it passes everything, no... i haven't had a chance to work on it much in the last few days. | 12:49 | |
|
12:49
redicaps left
|
|||
| slavik | moritz_: gmp? | 12:49 | |
| ahh | 12:50 | ||
| gnu bignum? | |||
| moritz_ | slavik: the math library that parrot uses under the hood | ||
| slavik | so if I have libgmp-dev installed, I should get bignum in perl6 and 2**64 in rakudo will output '18446744073709551616' ? | ||
| moritz_ | nope; because of caveat 2) | 12:51 | |
| parrot has this model of 'vtables' | |||
| and there's one to coerce to integer | |||
|
12:52
pmurias left
|
|||
| moritz_ | called get_integer, iirc | 12:52 | |
| and it *has* to return a native parrot int | |||
| which is broken design, if you consider bigints | |||
| because "12244(many digits more)234234".Int boils down to a vtable call | |||
| (it doesn't have to for Perl 6 objects, but if it doesn't, HLL interop is in danger) | 12:53 | ||
| slavik | parrotbug? | ||
| moritz_ | so coercions to int or num prevent us from just using big numbers | ||
| slavik: parrot design bug, if you want | 12:54 | ||
| slavik | ouch :( | ||
| moritz_: any idea if they are working on a fix? | |||
|
12:54
redicaps joined
|
|||
| moritz_ | I don't think it's high priorty for most parrot hackers | 12:54 | |
| slavik | :( | ||
|
12:56
redicaps left
|
|||
| colomon | ciphertext: will you have some availability for a long-distance hackathon over the weekend? | 13:02 | |
| I think we can finish ... if we put our heads together. | |||
| moritz_ | masak: I've tried to play with tcurtis' optimization framework, and promptly hit two show-stopper bugs (first one is already fixed) | ||
| ciphertext | probably... what time(s)? | ||
| moritz_ | it seems every project needs a user to keep 'em honest | ||
|
13:03
JimmyZ joined
|
|||
| masak | moritz_: aye. | 13:03 | |
|
13:03
Guest10194 left
|
|||
| colomon | ciphertext: what timezone are you in? | 13:05 | |
| ciphertext | colomon: u.s. central (GMT-6) | 13:07 | |
| colomon | I'm eastern. | 13:08 | |
| maybe late morning or early afternoon? | |||
|
13:08
stepnem left
13:09
JimmyZ left
|
|||
| colomon | may have to play it by ear around my son's napping schedule. :) | 13:09 | |
|
13:09
stepnem joined
|
|||
| ciphertext | that should work. | 13:09 | |
| colomon | in the meantime, we should try to think of test cases. :) | 13:10 | |
| moritz_ | speaking of test cases | ||
| colomon | remember that series doesn't have to work on just Strs and numbers. ;) | ||
| moritz_ | I noticed that somebody re-vamped some of the series tests | ||
| and changed file names | |||
| somebody needs to adapt t/spectest.data accordingly at some point | 13:11 | ||
| I'll try to do that tonight if nobody beats me to it | |||
| colomon | looks like files were actually added? | 13:12 | |
| moritz_ | added, and series-simple is gone it seems | ||
| colomon | oh, right, that's just the .rakudo ghost in my ls | ||
| pmichaud | good morning, #perl6 | 13:13 | |
| colomon | I've gotta get a move on here, and my rakudo is out-of-date and dirty, anyway. but maybe later today.... | ||
| o/ | |||
| pmichaud: heading your way... | |||
| pmichaud | colomon: we're in the hospitality suite, 2nd floor | ||
| colomon | be there in about 30 | 13:14 | |
| afk | 13:15 | ||
|
13:15
colomon left,
felliott left
|
|||
| moritz_ | pmichaud: did you have a parrot BOF/metting/whatever? if yes, how did it go? | 13:15 | |
|
13:16
cjk101011 joined
13:17
cjk101010 left
|
|||
| masak | morning, pm. | 13:17 | |
| ok, I have now pushed a pls proof-of-concept. github.com/masak/proto/tree/pls | 13:18 | ||
| moritz_ | and morning, right :-) | ||
| masak | I'd be very happy to hear if people get the same results using it as I do. | ||
| pmichaud | moritz_: there was a room reserved for parrot bof, and we had a couple of meetings there | 13:19 | |
| mainly it was a meeting to brainstorm suggestions for parrot based on rakudo's experiences | 13:20 | ||
| masak | to help me test it (1) check out/update the 'pls' branch from the 'proto' repo. (2) optionally run 'make' on it (3) run './proof-of-concept' and see JSON::Tiny fetch, build and test. the tests fail. (4) run './proof-of-concept --force'; the tests should run again, and then JSON::Tiny should install into ~/.perl6/lib. | ||
| moritz_ | so you fetch it even though it's bundled? | 13:21 | |
| masak | "it"? | ||
| I don't understand the question. | |||
| moritz_ | JSON::Tiny | ||
| masak | ah, yes. sure. | ||
| because pls makes no guarantees as to having the latest JSON::Tiny. | 13:22 | ||
| it has the one it has. | |||
|
13:22
stepnem left
|
|||
| moritz_ | I'll try as soon as my rakudo buid finishes | 13:22 | |
| masak | cool. thanks. | 13:23 | |
| kolibrie | TimToady: I found out that I do not have to leave for the airport until 11:00. Do you have time if I stop by for fifteen minutes some time before then to discuss the flow diagram from my talk? | ||
| masak | the output is very verbose and confused right now. but that's because it's a proof-of-concept, not a finished product :) | ||
| moritz_ | env PERL6LIB='/Users/masak/gwork/proto/lib' perl6 --target=pir --output=lib/JSON/Tiny.pir lib/JSON/Tiny.pm | 13:25 | |
| ===SORRY!=== | |||
| Unable to find module 'JSON::Tiny::Actions' in the @*INC directories. | |||
| masak shouldn't have committed Makefile | |||
| moritz_ | does the Makefile properly declare dependencies? | ||
| masak | remove it, ufo, and make again :) | ||
| mathw | o/ | 13:26 | |
| moritz_ | masak: ./proof-of-concept has a hardcoded perl6 path | ||
| masak | no, Makefiles don't need to consider deps, because deps are already installed when the project tries to build. | ||
| dalek | kudo: 18682c8 | pmichaud++ | build/PARROT_REVISION: Bump PARROT_REVISION. |
||
| masak | moritz_: oh! | ||
| masak checks | |||
| moritz_ | masak: I mean dependencies inside the makefile, so that parallel make works | ||
| masak | moritz_: the sheband one? | ||
| moritz_: I couldn't get 'env' to work here. | 13:27 | ||
| moritz_: I wouldn't know how to "declare dependencies" within a Makefile. | |||
| moritz_ | what did you try? #!/usr/bin/envperl6 ? | ||
| masak: foo: bar | |||
| masak: only builds foo if bar is already built | |||
| mathw | masak: When you can spare a moment, it's time for Form.pm to be abducted | ||
| masak | mathw: sure. I can spare a moment. are there any questions? | 13:28 | |
| moritz_: hm. | |||
| moritz_: that would complicate the ufo script a bit, but otherwise it'd work. | 13:29 | ||
| moritz_ | masak: proof-of-concept reports that json is already installed ... which it is not | ||
| masak | moritz_: sounds like a bug. | ||
| moritz_ | though I have an old project.state lying around | ||
| masak | moritz_: did it create a poc-projects.state file for you? | ||
| that shouldn't matter. | |||
| moritz_ | yes | ||
| $ cat poc-projects.state | |||
| { "json" : { "state" : "installed" } } | |||
| masak | huh. | ||
| moritz_: did the proof-of-concept script at least appear to install JSON::Tiny? | 13:30 | ||
| mathw | masak: actually no, it seems to have worked perfectly | ||
| moritz_ | masak: nope | ||
| masak | mathw: \o/ | ||
| moritz_: /o\ | |||
| moritz_: what went wrong? | |||
| mathw | \o/ | ||
| mathw goes back to Haskell | 13:31 | ||
| moritz_ | masak: nopaste.snit.ch/21536 | ||
| masak | moritz_: rm poc-projects.state | ||
| try again. | |||
| moritz_ rms, and tries again | |||
| masak | that's another file I shouldn't have pushed... | 13:32 | |
| moritz_ | masak: nopaste.snit.ch/21537 | ||
|
13:32
Woody2143 left
|
|||
| masak | I got that too at one point. | 13:33 | |
| didn't investigate, but it seemed a "cd" in qx[] persisted to the next &run or something... | |||
| moritz_: does cache/json/Makefile look OK? | |||
|
13:34
Intensity joined
|
|||
| moritz_ | masak: yes, looks like a typical ufo generated Makefile | 13:34 | |
| masak | moritz_: and cd-ing into cache/json and doing 'make' works, too? | ||
| moritz_ | yes | 13:35 | |
| masak | if you enter a debug line `say "cd $cwd && make" above line 234 in proof-of-concept, what does it say? | 13:36 | |
| er, s:2nd/"/";`/ | |||
| moritz_ | should I first remove poc-projects.state again? | ||
| masak | not necessary. | ||
| it should be at 'fetched' now, which only saves some time. | 13:37 | ||
| moritz_ | cd /home/moritz/src/proto/cache/json && make | 13:38 | |
| now it gets to the failing test | |||
| masak | huh. | ||
| so it didn't work the time it created the Makefile, but it worked the time after? | |||
| ay ay ay. | |||
| then there is indeed some cwd interference which I haven't patched. | 13:39 | ||
| moritz_ | got to the test failure, reported status "built" | ||
|
13:39
plobsing joined
|
|||
| masak | that's correct. | 13:39 | |
| now try ./proof-of-concept --force | |||
| moritz_ | and installed it with --force | ||
| masak | \o/ | ||
| thanks. | |||
| moritz_ | how do I uninstall now? | ||
| :-) | |||
| \o/ indeed | |||
| masak | not sure uninstall is even theoretically possible. | 13:40 | |
| because of dependencies. | |||
|
13:40
skids left
|
|||
| masak | and because what constitutes 'install' is up to the Makefile of the project. | 13:40 | |
| moritz_ | right | ||
| masak | I'll be happy if I get 'update' working :) | ||
| the semantics of 'update' are only strange, not impossible. | |||
| moritz_ | that's why linux distribution package managers install into local dirs first, built archives from that and install them under the control of the package manager | 13:41 | |
| masak | they're "pretend for a moment that the project is absent, try to install it, and then reset the state to "installed" regardless of what happened'. | ||
| moritz_ | e.g. dpkg-buildpackage installs into debian/$somewhere/ first, and creates a .deb from the contents of debian/$somewhere | 13:42 | |
| masak | moritz_: I guess one could simply 'rm' all modules from ~/.perl6/lib that occur in the project's lib dir, and then remove the project from the cache, too. | 13:43 | |
| TimToady | kolibrie: I'm just sitting here in the hostility room. | ||
| masak | that could work. | ||
| kolibrie | TimToady: okay, I'll be over in a bit | ||
| TimToady | it's back on the 2nd floor | 13:44 | |
| moritz_ | hostility? | ||
| nice name for a room | |||
| like, 101 in 1984 | |||
| masak | "Hostility is Friendliness" | ||
| moritz_ | :-) | 13:45 | |
| TimToady | *hospitality | ||
| Su-Shee | "hostility is fiendliness". easily corrected. ;) | 13:47 | |
| moritz_ finds in funny that in English "host" can both mean somebody who lets you stay in your hous, and "army" (which sometimes drives you out of your hous) | |||
|
13:48
[Coke] joined
|
|||
| sbp | "cleave" is another autoantonym | 13:57 | |
| I think there are some others too. oh, "sanction" | |||
| masak | it's a wonder we manage to communicate at all. | ||
| sbp | most of the time we don't | ||
| masak | :) | 13:58 | |
| PerlJam | shared human experience does wonders for communication | ||
|
13:58
Guest23195 joined
|
|||
| PerlJam | (we're really going to have problems when the aliens show up though) | 13:58 | |
| moritz_ finds that he uses .pairs much more often that .kv to loop over hashes (and arrays, for that matter) | 13:59 | ||
| s/that/than/ | |||
| masak | make: *** No targets. Stop. | 14:00 | |
| g'ah! I wish I knew why it says that. | |||
| and then the next time, it works. | |||
| OH! | |||
| moritz_ | try to add a call to pwd before make | ||
| masak tries closing the file handle | |||
|
14:01
colomon joined
|
|||
| masak | moritz_: I had tried that already. it showed the proto dir. | 14:01 | |
| now it works! | |||
| moritz_ | \o\ | ||
| masak | /o/ | 14:02 | |
| pmichaud | .oO(those look an awful lot like TIE fighters to me...) |
||
|
14:02
[Coke] left
|
|||
| TimToady | >ö< <-- X-wing | 14:02 | |
| moritz_ | pmichaud: don't know if you had your "Cool Perl 6" talk yet... comb instead of split would be more idiomatic | ||
| wouldn't that be |o| for the TIE fighters? :-) | 14:03 | ||
| pmichaud | moritz_: I couldn't figure out how to do it with comb at the time (and was in a rush) | ||
| PerlJam | (o) for Vader's | ||
|
14:03
rv2733 joined
|
|||
| moritz_ | pmichaud: ok | 14:03 | |
| pmichaud | sure, |o| is the TIE fighter when it's coming straight at you. \o\ looks like a tie-fighter as it's making a swooping pass at you. | ||
| masak | :) | 14:04 | |
| moritz_ | relatvisticly distorted TIE figher :-) | ||
| colomon | |o| | ||
| pmichaud | .oO( touchdown? ) |
14:05 | |
| PerlJam | Next thing you know we're got ascii animation of the entire star wars end-of-movie fight scene | ||
| s/we're/we've/ | |||
| TimToady | )O( # TIE fighter in a convex mirror | 14:06 | |
| PerlJam | www.asciimation.co.nz/ | ||
| masak | :) | ||
|
14:07
rlb3 joined
|
|||
| moritz_ | )O( |O| (O) |O| resonance! | 14:07 | |
|
14:07
rlb3 left
14:08
rlb3_ joined
14:11
rlb3 joined
14:12
ajs joined
|
|||
| masak | now that the proof of concept works, it would be fun to see if Emmentaler can finally be built. | 14:14 | |
|
14:15
rlb3_ left
|
|||
| dalek | kudo: bf5bbd4 | pmichaud++ | src/core/ (2 files): Turn Array.exists into List.exists, write it a bit cleaner. |
14:15 | |
| kudo: 7e3ddca | pmichaud++ | src/core/EnumMap.pm: Redo EnumMap.exists . |
|||
| colomon | rakudo: my @a = 'a'...'f'; say (@a[2..*]).munch(20) | 14:17 | |
| p6eval | rakudo 11cbd4: ( no output ) | ||
| moritz_ | that looks rakudobuggy | 14:18 | |
| colomon | it is, I was trying to do it as an example for pmichaud++ | ||
| (I talked in person for the other bits of the conversation... freaky!) | |||
| moritz_ | woah there. Don't get used to it! | 14:19 | |
|
14:19
felliott joined
|
|||
| colomon | moritz_: don't worry, I've got a few hours more. :) | 14:20 | |
| moritz_ | :-) | ||
| cono | munch == batch ? | ||
| colomon | cono: yes | ||
| moritz_ | munch = destructive batch | 14:21 | |
| colomon | batch is going to be history. | ||
| I think? | |||
| moritz_ | yes | ||
| cono | it's destruct aray? | 14:22 | |
| moritz_ | yes, just like ship | ||
| erm | |||
| shift | |||
| cono | @a[2..3].munch(2) - like splice in perl5 ? | ||
| moritz_ | don't know if it works on array slices | 14:23 | |
| splice exists too | |||
| .munch(5) is calling .shift 5 times | |||
| cono | ah, I got it, thanks :) | ||
| batch - just copy? | 14:24 | ||
| moritz_ | yes | 14:25 | |
| .batch($x) was the same as .[^$x] | |||
| pugssvn | r31422 | colomon++ | Intial version of new trig test support code. | ||
| cono | "batch is going to be history" it means that it will be removed in next versions? | 14:26 | |
| colomon | that was my understanding. but I could be wrong. | ||
| moritz_ | and remoed from the spec | ||
| cono | :( | ||
| colomon | cono: as far as I know, .batch(N) is exactly the same as .[^N] | 14:28 | |
| cono | ah, that's why | 14:29 | |
| understand | |||
| colomon | batch was defined on iterators, and we try not to expose iterators to the user now. | 14:30 | |
|
14:31
spinclad joined
|
|||
| masak | both my talks were accepted for YAPC::EU. I didn't expect that :) conferences.yapceurope.org/ye2010/talk/2896 conferences.yapceurope.org/ye2010/talk/2898 | 14:31 | |
| colomon | rakudo: my @a = 'a' ... 'z'; say @a[*/2] | ||
| p6eval | rakudo 11cbd4: OUTPUT«n» | ||
| masak | maybe I'll even have to finish one of them before the conference this time. | 14:32 | |
| arnsholt | Congrats. Wish I could attend them | 14:33 | |
| moritz_ should try to sneak in a lightning talk at least | |||
|
14:33
thebird left
|
|||
| arnsholt | Especially the parsing one sounds cool | 14:33 | |
|
14:33
thebird joined
|
|||
| masak | arnsholt: :) | 14:33 | |
| pmichaud | masak: looks like you got more talks accepted than I did. :) | ||
| masak | arnsholt: still need to implement some of the things for that talk. | ||
| arnsholt | =D | ||
| Now you have incentive ;) | 14:34 | ||
| masak | pmichaud: huh. :) | ||
| arnsholt: exactly! | |||
| pmichaud | gee, it lookslike one of my talk submissions got lost | ||
| hmmmmm | |||
| oh well, I'm happy enough with just one. :) | 14:35 | ||
|
14:35
thebird left
14:39
thebird joined,
lest_away is now known as lestrrat
|
|||
| pmichaud confirms his talk. | 14:39 | ||
|
14:39
plobsing left
14:41
lestrrat is now known as lest_away
14:43
lest_away is now known as lestrrat,
ash_ joined
14:44
estrabd_afk is now known as estrabd
|
|||
| masak | std: my (@xxx, @yyy, @zzz); for @xxx; @yyy; @zzz -> $x; $y; $z { ... } | 14:44 | |
| p6eval | std 31422: OUTPUT«===SORRY!===Missing block at /tmp/0Ied7MayNn line 1:------> my (@xxx, @yyy, @zzz); for @xxx⏏; @yyy; @zzz -> $x; $y; $z { ... } expecting any of: desigilname twigilParse failedFAILED 00:01 114m» | ||
| masak thought so | 14:45 | ||
|
14:45
alester joined,
rlb3 left
14:46
lestrrat is now known as lest_away
14:50
[particle] left
|
|||
| TimToady | masak: that is very ancient p6 | 14:52 | |
|
14:52
cygx joined
|
|||
| masak | TimToady: it's from A04. :) | 14:52 | |
| just checking that STD is saner than that nowadays. | 14:53 | ||
| moritz_ | where A stands for Ancient :-) | ||
| pmichaud worries about the notion of "ancient p6". | |||
| masak | and S stands for "Sane" :P | ||
| moritz_ | pmichaud: why? | ||
| pmichaud | it's been around long enough that we can have things that are "ancient? | ||
| " | |||
|
14:54
[particle] joined
|
|||
| moritz_ | pmichaud: "ancient" is always relative. Talking about human history has a different notion of "ancient" than talking about creation of the universe | 14:54 | |
| masak | pmichaud: I don't think there's something negative in the fact that Perl 6 has evolved during the past 10 years. | 14:55 | |
| colomon | btw, try one at integrating the new str2num code into Rakudo: | ||
| pmichaud | I forgot my smiley again. | ||
| colomon | > say 3.14159_26535_89793_23846_26433_83279_50288 3.925520848 | ||
| ooo, that paste doesn't work right here. | |||
| > say 3.14159_26535_89793_23846_26433_83279_50288 | |||
| 3.925520848 | |||
| rakudo: say 3.14159_26535_89793_23846_26433_83279_50288 | |||
| p6eval | rakudo 7e3ddc: OUTPUT«===SORRY!===PAST::Compiler can't compile node of type BigInt» | ||
| moritz_ | rakudo: say (3.92 - 3.14) / 3.14 | 14:56 | |
| p6eval | rakudo 7e3ddc: OUTPUT«0.248407643312102» | ||
| moritz_ | well, 25% error... | ||
| masak | moritz_: if you arrive to Pisa on the 1st, make sure to see "Gioco del Ponte"! wikitravel.org/en/Pisa#Do | ||
|
14:57
Woody2143 joined
|
|||
| colomon | take 2: | 14:57 | |
| > say 3.14159_26535_89793_23846_26433_83279_5028 3.14159265358979 | |||
| pmichaud | rather than get a bigger slice, colomon++ is trying to make a bigger pie. :-) | ||
| colomon | 3.14159265358979 | ||
| masak | moritz_: oh wait. "last sunday of June". nvm. | ||
| would have been fun to see, though. :) | |||
| moritz_ | masak: pity. But thanks for the link anyway | ||
| cygx | hi | 14:58 | |
| moritz_ | hi cygx | ||
| masak | moritz_: it's the first link I find that says that there's more than the tower to see :P | ||
| cygx | moritz_: any thoughts on github.com/moritz/try.rakudo.org/ra...ter/DESIGN | ||
| masak | cygx! \o/ | ||
| moritz_ | cygx: I've only glanced over it; looks sane so far | 14:59 | |
| cygx: I'll have to defer detailed reading for a few hours due to external constraints | 15:00 | ||
| cygx | moritz_: ;) | ||
| moritz_: that's ok, as I had to defer implementing anything of that due to my lacking knowledge of perl5 | 15:02 | ||
|
15:02
[particle] left,
charsbar joined
|
|||
| jnthn | pmichaud: Only one of mine got accepted to, fwiw. | 15:02 | |
| *TOO | |||
| cygx | moritz_: I'll push what I did so far to the repository; would be nice if someone could look at it and tell me if I did something completely retarded | 15:03 | |
| moritz_ | cygx: if you have any Perl 5 questions, don't hesitate to ask in private message, or in #perlde on irc.perl.org if you speak German | ||
| cygx: sure, will look at it (but also deferred to later tonight) | |||
|
15:04
lest_away is now known as lestrrat
|
|||
| cygx | moritz_: will do; nothing urgent comes to mind, though - I'm good so far | 15:05 | |
|
15:05
[particle] joined
15:06
meppl joined
15:07
lestrrat is now known as lest_away,
rtward joined
|
|||
| ash_ | you could cheat save yourself the db if you just keep the connection to the browser open | 15:07 | |
| ash_ see comet, server push, long polling, hidden iframe | 15:08 | ||
| cygx | ash_: there are a lot of things that can go wrong with that approach: timeouts, proxies,... | ||
| moritz_ | accidentally closed browser windows | ||
| etc. | |||
| I'm find with a db | |||
| it makes for a more traditional and easier to understand design | 15:09 | ||
| ash_ | i'd image a closed browser would result in a new session anyway, unless your doing the sessions on remote ip's | ||
| cygx | ash_: actually, long polls are used in case of blocking on rakudo output | ||
| ash_ | (which can be bad for people behind a router) | ||
| moritz_ | cygx: any preference for a db? | ||
| (so that I can know what to set up) | 15:10 | ||
| mysql, postgres, sqlite should all be fine | |||
| and easy to install | |||
| cygx | moritz_: not really - Postgres would most likely be the most robust solution | ||
| moritz_ | ok | ||
|
15:12
skids joined
|
|||
| colomon | started spectest, now have a bit of time to work on $work. :) | 15:13 | |
| ash_ | if you need any help cygx i have a bit of experience with the web, i'd be more than happy to help out if you want help | 15:14 | |
| colomon | [particle]: o/ | 15:15 | |
| [particle] | hola, colomon | ||
| pmichaud | \o/ particle++ | ||
| moritz_ | so much for $work, he? :-) | ||
| colomon | ;) | 15:16 | |
| [particle] | howdy, pmichaud | ||
| glad we had that chat yesterday | |||
| pmichaud | same here :) | ||
| [particle] | i'm downloading kubuntu 10.04 now, i'm gonna try developing there | ||
| colomon | moritz_: it's so weird actually knowing people on the channel IRL. :) | 15:17 | |
| guess I'm going to have to try to make it to Europe one of these days. | |||
| pmichaud | colomon: who are you calling weird?!? ;-) | ||
| moritz_ | colomon: right, i fealt the same after the Copenhagen Perl 6 hackathon with jnthn, masak, arnsholt, baest and others | 15:18 | |
| masak | it's good for morale to meet at least once a year :) | ||
| moritz_ | indeed | ||
| masak | makes it so much real. | ||
| cygx | ash_: I did some web-development as well, but not for several years and not in perl, so your help is appreciated | 15:19 | |
| moritz_ | also for the climate | ||
| pmichaud | looks like we'll have a Pisa hackathon on Aug 3. | ||
| masak | and for the in-jokes :) | ||
| moritz_ | it feels so much easier to yell at somebody you've never seen | ||
| pmichaud: that's great | |||
| colomon | moritz_: :) | ||
| cygx | ash_: I'd like to give developing the frontend a shot, but I'll need some time to familiarize myself with perl; I'll remember to start bugging you when think start going wrong ,) | ||
| masak | moritz_: or, flip-wise, it's harder to be empathic with someone you haven't. | ||
| moritz_ | masak: right | 15:20 | |
| masak | s/\./seen./ | ||
| cygx | *think --> things ups ;) | ||
| [particle] has to make a yapc::eu some day | |||
| moritz_ | [particle]: where some day == Aug 2nd 2010 :-) | 15:21 | |
| [particle] | ah, if only.... | ||
| pmichaud | we should probably plan for a Rakudo Star BOF on Aug 4, too. | 15:22 | |
| ash_ | cygx: alright, if your going to do the front end with javascript, for an interactive terminal, i'd suggest jquery, it will make your life a lot easier | ||
| moritz_ | pmichaud: +1 | ||
| www.perlmonks.org/?node_id=846326 I wonder how much of that is YAPC::NA inspired :-) | 15:23 | ||
| colomon | I was just explaining to pmichaud and TimToady that I'm taking one more vacation on my own next month, and then I figure I don't get to go anywhere without my family for at least 11 months. | ||
| masak likes that pmichaud++'s talk "Rakudo Star -- A usable Perl 6 release" is filed under the "Core Perl" track | 15:24 | ||
|
15:25
patch joined
|
|||
| cxreg was poking around trying to make FakeDBD::Pg. even if someone else does it first it's fun | 15:26 | ||
|
15:26
kensanata joined
|
|||
| moritz_ | cxreg: which route are you going? direct NCI, or use parrot's existing bindings? | 15:27 | |
| cxreg: if you have a github account (or create one), I'm sure we can arrange commit access to FakeDBI for you | 15:28 | ||
| hugme: list projects | 15:29 | ||
| hugme | moritz_: I know about Math-Model, Math-RungeKutta, book, fakedbi, gge, hugme, ilbot, json, november, nqp-rx, nqpbook, perl6-examples, perl6-wtop, process-cmd-args, proto, pugs, rmp, star, svg-matchdumper, svg-plot, tardis, temporal-flux-perl6syn, try.rakudo.org, tufte, web, yapsi | ||
| moritz_ | yes, fakedbi is in there | ||
|
15:29
moritz_ sets mode: +v hugme
15:32
Trashlord left
|
|||
| cygx | ash_: I'll do the server-side part of the frontend first; until that's done, the client-side code currently in the repository should be sufficient | 15:33 | |
| ash_: once the client-server communication has be worked out, switching to a Jquery solution might be a good idea to add some 'polish' | 15:34 | ||
| cxreg | moritz_: NCI for now, i havent looked at parrot's bindings | ||
| moritz_ | cxreg: if you're interested, here are the tests for them: svn.parrot.org/parrot/trunk/t/library/pg.t | 15:35 | |
| ash_ | cygx: have you thought about doing it in perl6? (just curious) | 15:38 | |
|
15:38
kensanata left
|
|||
| cygx | ash_: I have, but I think the first iteration should stay in perl5 | 15:42 | |
| mberends | that epic tennis match has resumed at Wimbledon | 15:43 | |
| moritz_ | mberends: continuation based tennis match :-) | ||
| I guess it'll be over rather quickly | |||
| mberends | lol | ||
| 11 hours, 68-68 in the final set | 15:44 | ||
| masak | wow. | ||
| ash_ | an 11 hour tennis match? o.0 thats crazy... | ||
| cygx | ash_: the codebase shouldn't become too large and is fairly modular, so migrattion to p6 is definitely an option | 15:45 | |
| moritz_ | my experience from table tennis is that if long-time tied games are interrupted for longer, they are usually decided pretty quickly after the interruption | ||
| jnthn is watching Slovakia trying to hold on to a lead over Italy | |||
| That'd be a lovely upset. :-) | |||
| moritz_ | indeed | 15:46 | |
| beating the world champion | |||
| ash_ | cygx: i was thinking it might nice to see if rakudo was up to the task more to find out where its not up to the task so we can fix it :P | ||
| real world examples of rakudo are always good test cases | |||
| colomon | the problem with work is std::cout << "got here" << endl; instead of say "got here"; | ||
| examples++ | |||
| $work, I mean. | |||
| moritz_ | ash_: It's pretty obvious to me that rakudo has many weaknesses in the areas of IO and IPC | 15:47 | |
| ash_: I don't know if a real-life example is really needed to prove that | |||
| jnthn: your time to say \o/ :-) | |||
| *turn | 15:48 | ||
| ash_ | yeah, but you could do most of the interactive console without IPC (i think) and the IO issues don't seem like a show stopper, it would have to have a slightly different design that doesn't involve threads, but i think it could work | 15:49 | |
| moritz_ | I don't think the current design involves threads... or does it? if so, where? | ||
| ash_ | blocking io causes a second thread in the strategy cygx described | 15:50 | |
| cygx | moritz_: the controller has to listen to both the frontent and rakudo | 15:51 | |
| *frontend | |||
| moritz_ | cygx: I'd prefer async IO over threads there, but in the end it's the implementor's choice | ||
| TimToady | std: #`〝 comment 〞 | 15:52 | |
| p6eval | std 31422: OUTPUT«Use of uninitialized value in vec at CursorBase.pm line 548.ok 00:01 108m» | ||
| TimToady | sorear: ^^ | ||
| cygx | moritz_: async io is fine with me; the current design still has some 'issues' anyway | ||
| colomon | TDD works much better if your tests are correct... | ||
| wait! I need tests for the tests! | |||
| moritz_ | colomon: :-) | ||
| TimToady | sorear: I'll let you fix that one, since it's in the guts of the DFA | ||
| moritz_ calls it a day | 15:53 | ||
| colomon | oh wait, the test was correct, it's the code that's wrong. | 15:54 | |
| pugssvn | r31423 | lwall++ | [tryfile] find uniprops in . | 15:55 | |
| ash_ | who tests the tests? | ||
| :P | |||
| moritz_ | and who tests the tests that test the tests? | ||
| colomon | who tests the testman? | ||
| moritz_ proposes a meta-circular testing scheme where the tests test themselves | 15:56 | ||
| colomon | "1 of 1 tests succeeded" | ||
| \o | |||
| \o/ | |||
| see moritz_ -- $work! | |||
| pugssvn | r31424 | lwall++ | [STDeco] remember $?LONGNAME of module; use that to form name of .syml file | ||
| r31424 | (this fixes the bug where it puts Test::Util's .syml in the wrong dir) | |||
|
16:01
justatheory joined
|
|||
| TimToady | rakudo: say '␍'.ord | 16:02 | |
|
16:02
Wolfman2000 left
|
|||
| p6eval | rakudo 7e3ddc: OUTPUT«9229» | 16:02 | |
| TimToady | darn | ||
| rakudo: say ''.ord | |||
| p6eval | rakudo 7e3ddc: OUTPUT«10» | ||
| ash_ | is that right? | ||
| colomon | ash_: yes | 16:03 | |
| ash_ | i thought  was a unicode newline | ||
| TimToady | I was hoping p6eval would also translate ␍ | ||
| colomon | oh, I dunno. | ||
| ash_ |  | ||
| oh is its p6eval thats translating it? | 16:04 | ||
|
16:04
cdarroch joined,
cdarroch left,
cdarroch joined
|
|||
| masak | yes. | 16:04 | |
| TimToady | rakudo: say ' | 16:05 | |
| p6eval | rakudo 7e3ddc: OUTPUT«===SORRY!===Confused at line 11, near "say '\x{16}"» | ||
| TimToady | |||
| jnthn | moritz_: Yes, \o/ indeed! Not so sure that Sunday will give me anything to \o/ about though. ;-) | ||
| pugssvn | r31425 | colomon++ | [t/spec] Fudge hyper.t to work in Rakudo again. | 16:06 | |
| pmichaud | jnthn: ping | 16:07 | |
|
16:07
ashleydev joined
|
|||
| jnthn | pmichaud: pong | 16:07 | |
| pmichaud | are you aware of anything that is currently using WHENCE in master? | ||
| jnthn | pmichaud: Some of the BUILD code may be (more) | 16:08 | |
| pmichaud: However, we don't have a way to make WHENCEs yet | |||
| pmichaud: So we're not relying it even if it's there | |||
| pmichaud | so I suspect it's not presently using it. | ||
| okay, that's what I wanted to know. | |||
| jnthn | *on it | ||
| Yeah, afaik you can just rip out whatever's there and do it how you like | |||
| pugssvn | r31426 | colomon++ | [t/spec] Fudge zip.t to work in Rakudo again. | ||
| jnthn | Without any adverse effects | ||
| pmichaud | I may (temporarily) remove the BUILD code (that's the piece I was looking at) | 16:09 | |
| jnthn | pmichaud: Well, if you leave in the non-WHENCE bits, then yes | ||
| Should be fine. | |||
| pmichaud | right, that's what I meant. | ||
| jnthn | OK :-) | ||
|
16:11
Ross joined
|
|||
| colomon | rakudo: say ~(42, 24, * % * ... 0) | 16:12 | |
| p6eval | rakudo 7e3ddc: OUTPUT«42 24 18 6 0» | ||
| cognominal go for a movie not taxing my brain before switching to full masak mode. | 16:13 | ||
| *goes | |||
| masak | cognominal: enjoy! | ||
| colomon | rakudo: say ~(42, 24, * % * ... 0)[*-2] | 16:14 | |
| p6eval | rakudo 7e3ddc: OUTPUT«6» | ||
| cognominal | A-Team abeilt dubbed. French suburbia... :( As it mattered for that kind of movie. | ||
| colomon | rakudo: say ~(42, 23, * % * ... 0)[*-2] | 16:15 | |
| p6eval | rakudo 7e3ddc: OUTPUT«1» | ||
| colomon | rakudo: say ~(42, 23, * % * ... 0) | ||
| p6eval | rakudo 7e3ddc: OUTPUT«42 23 19 4 3 1 0» | ||
| colomon | rakudo: say ~(42, 1, * % * ... 0) | ||
| p6eval | rakudo 7e3ddc: OUTPUT«42 1 0» | ||
| colomon | I like. | ||
|
16:16
kst joined,
jaldhar left,
cjk101011 left
|
|||
| colomon | www.perlmonks.org/?node_id=772778 | 16:16 | |
| cognominal | Anyway I think I have found my problem | 16:17 | |
| > my $tree = $_=["01"]; my @path=[0,1]; for @path.kv -> $i, $offset { when Array { die "offset $offset at position $i in path {@path.perl} for tree {$tree.perl} too large" if $offset >= +@($_); $_ = $_[$offset] ; }} | 16:18 | ||
| pugssvn | r31427 | colomon++ | [t/spec] Refudge for Rakudo, and add a couple of tests which are variants on failing tests. | ||
| cognominal | offset 0 1 at position 0 in path [[0, 1]] for tree ["01"] too large | ||
| TimToady | sorear: also, the lexer doesn't seem to count ^M as whitespace | ||
| cognominal | it seems that rakudo does not like $_ changed in a when. Needs to golf it further. | ||
| colomon | rakudo: say ~(24, 42, * % * ... 0) | 16:19 | |
| p6eval | rakudo 7e3ddc: OUTPUT«24 42 24 18 6 0» | ||
| cognominal | don't know it is a bug or a misuse. | ||
| afk& | |||
| colomon | rakudo: say ~(1, 42, * % * ... 0) | ||
| p6eval | rakudo 7e3ddc: OUTPUT«1 42 1 0» | ||
| colomon | moritz_++ | 16:20 | |
| masak | swimming & | 16:23 | |
|
16:23
masak left
|
|||
| colomon | rakudo: (1, 1/2, 1/4, ... 0).[^5].map({.perl}).join(', ').say | 16:26 | |
|
16:26
Ross left
|
|||
| p6eval | rakudo 7e3ddc: ( no output ) | 16:26 | |
|
16:27
Ross joined
|
|||
| colomon | rakudo: (1, 1/2, 1/4, ... 0).[^5].say | 16:28 | |
| p6eval | rakudo 7e3ddc: ( no output ) | ||
| colomon | rakudo: (1, 1/2, 1/4 ... 0).[^5].say | ||
| p6eval | rakudo 7e3ddc: OUTPUT«10.50.250.1250.0625» | ||
| pmichaud | jnthn: ping | 16:29 | |
| colomon | std: (1, 1/2, 1/4, ... 0) | 16:30 | |
| p6eval | std 31422: OUTPUT«ok 00:01 110m» | ||
| colomon | rakudo: (1, { 1 / ((1 / $_) + 1) } ... 0).[^5] | 16:33 | |
| p6eval | rakudo 7e3ddc: ( no output ) | ||
|
16:33
aCiD2 left
|
|||
| moritz_ doesn't know how he deserved colomon's last ++ | 16:33 | ||
| colomon | perlmonks link above. | 16:34 | |
| appears you came up with (42, 24, * % * ... 0)[-2] for finding the GCD | 16:35 | ||
| TimToady just impressed Damian with it. :) | |||
| [*-2], I mean. | 16:36 | ||
| PerlJam | colomon++ that's cool | ||
| moritz_ | colomon: ah, very old stuff | 16:37 | |
| colomon | but still very worth a ++ for you. :) | ||
|
16:38
gbacon joined
|
|||
| ash_ | std: my @a = 1; say @a[-1]; | 16:40 | |
| p6eval | std 31427: OUTPUT«===SORRY!===Unsupported use of [-1] subscript to access final element; in Perl 6 please use [*-1] at /tmp/cwFRpYMiJz line 1:------> my @a = 1; say @a[-1]⏏;Parse failedFAILED 00:01 114m» | ||
| jnthn | pmichaud: pong | 16:42 | |
|
16:42
mberends left
|
|||
| pmichaud | jnthn: I have some questions about 'is copy' | 16:43 | |
|
16:43
Ross left
|
|||
| pmichaud | jnthn: when doing something like sub abc(@foo is copy) { ... } | 16:43 | |
| currently we create an ObjectRef to point to the cloned array. Any particular need/reason for the ObjectRef, as opposed to binding the array directly? | 16:44 | ||
| jnthn | pmichaud: It may well date back to a pervious model of doing things. | 16:46 | |
| er, previous | |||
| pmichaud: oh | 16:47 | ||
| Maybe constraints | |||
| But...no probably not. | |||
| pmichaud: I'd say make it look how things in the lexpad normally look for arrays. | |||
| So if that involves getting rid of the ObjectRef that's probably fine. | 16:48 | ||
| TimToady | rakudo: say ~(1,3,5...3) | ||
| p6eval | rakudo 7e3ddc: ( no output ) | ||
| TimToady | S03:1937 | 16:50 | |
|
16:51
Chillance joined
|
|||
| pmichaud | jnthn: okay, and it's okay if I make the scalar "is copy" look like a scalar would? ;-) | 16:53 | |
| jnthn | erm | ||
| Probably | |||
| The test suite will call you on it if not. ;-) | |||
| Or masak. ;-) | 16:54 | ||
| pugssvn | r31428 | lwall++ | [STD] worry about extra comma before series operator | ||
| moritz_ | TimToady++ # that's something I often got wrong | ||
| jnthn | pmichaud: I think there's some ticket about is copy and hashes also. | 16:55 | |
| pmichaud | jnthn: okay. | ||
| jnthn | Or something along those lines | ||
| pmichaud | I'm likely to refactor that a bit (nothing huge) | ||
| jnthn | I suspect the whole is copy thing is out of date with regard to current state. | ||
| pmichaud | right | 16:56 | |
| jnthn | I haven't updated it at all | ||
| So unless you did, it'll be out of date. | |||
| pmichaud | and since I'm cleaning up variables, whence, etc. | ||
| it seems like a good time to address | |||
| jnthn | Aye, go for it. | ||
| Should be easy enough. | |||
| colomon | rakudo: say ~(1, 1, -> *@a { [+] @a } ... 20000) | 16:57 | |
| p6eval | rakudo 7e3ddc: OUTPUT«1 1 2 4 8 16 32 64 128 256 512 1024 2048 4096 8192 16384» | ||
|
16:58
tomdbs98 joined
|
|||
| colomon | TimToady: see? ;) | 16:58 | |
|
16:59
tomdbs98 left
17:00
macdaddy joined
|
|||
| moritz_ | now that's evil stuff! | 17:00 | |
|
17:00
macdaddy is now known as Guest73864
17:01
envi^home left
17:03
Ross joined
|
|||
| colomon | rakudo: say ~(1, -1/2, 1/4 ... 0).[^5] | 17:05 | |
| p6eval | rakudo 7e3ddc: OUTPUT«1 -0.5 0.25 Any() Any()» | ||
| TimToady | rakudo: say ~(2,3,5 ->*@a { my $n = @a[*-1]; repeat while $n !% any(@a) { ++$n } } ... 100) | 17:06 | |
| p6eval | rakudo 7e3ddc: OUTPUT«===SORRY!===Confused at line 11, near "say ~(2,3,"» | ||
|
17:06
[Coke] joined
|
|||
| colomon | rakudo: say ~(2,3,5, ->*@a { my $n = @a[*-1]; repeat while $n !% any(@a) { ++$n } } ... 100) | 17:06 | |
| TimToady | : say ~(2,3,5, ->*@a { my $n = @a[*-1]; repeat while $n !% any(@a) { ++$n } } ... 100) | ||
| p6eval | rakudo 7e3ddc: OUTPUT«Divide by zero in 'infix:</>' at line 3580:CORE.setting in 'infix:</>' at line 3245:CORE.setting in 'infix:<%>' at line 3250:CORE.setting in 'negate' at line 1 in <anon> at line 1 in 'Any::join' at line 718:CORE.setting in 'List::Str' at line 2373:CORE.setting | ||
| ..in ma… | |||
| TimToady | : say ~(2,3,5, ->*@a { my $n = @a[*-1]; repeat while $n !% any(@a) { ++$n }; $n } ... 100) | 17:09 | |
| pugssvn | r31429 | colomon++ | [t/spec] Fix typos, refudge for Rakudo. | ||
| TimToady | rakudo: say ~(2,3,5, ->*@a { my $n = @a[*-1]; repeat while $n !% any(@a) { ++$n }; $n } ... 100) | 17:10 | |
| p6eval | rakudo 7e3ddc: ( no output ) | ||
| TimToady | rakudo: say ~(2,3,5, ->*@a { my $n = @a[*-1]; repeat while $n !% any(@a) { ++$n }; $n } ... 50) | ||
| p6eval | rakudo 7e3ddc: OUTPUT«2 3 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50» | ||
|
17:11
meppl left,
rv2733 left
|
|||
| TimToady | rakudo: say ~(2,3,5, ->*@a { my $n = @a[*-1]; repeat while $n % any(@a) { ++$n }; $n } ... 50) | 17:11 | |
| p6eval | rakudo 7e3ddc: OUTPUT«2 3 5 30» | ||
|
17:12
xuser joined
|
|||
| PerlJam | TimToady: don't you want an $n++ before the while loop? | 17:12 | |
| TimToady | rakudo: say ~(2,3,5, ->*@a { my $n = @a[*-1] + 2; $n++ while $n !% any(@a); $n } ... 50) | ||
| PerlJam | or that. | ||
| p6eval | rakudo 7e3ddc: OUTPUT«2 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49» | ||
| TimToady | PerlJam: it's a repeat, so it's supposed to do the ++$n first | 17:13 | |
| colomon | rakudo: say ~(2,3,5, ->*@a { my $n = @a[*-1] + 2; $n++ while [||] ($n <<!%<< @a); $n } ... 50) | 17:15 | |
| p6eval | rakudo 7e3ddc: OUTPUT«2 3 5 7 11 13 17 19 23 29 31 37 41 43 47» | ||
|
17:15
thebird left
|
|||
| colomon | rakudo: say ~(2,3,5, ->*@a { my $n = @a[*-1] + 2; $n++ while [||] ($n <<!%<< @a); $n } ... 100) | 17:15 | |
| p6eval | rakudo 7e3ddc: OUTPUT«2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97» | ||
| colomon | rakudo: say ~(2,3,5, ->*@a { my $n = @a[*-1] + 2; $n += 2 while [||] ($n <<!%<< @a); $n } ... 100) | 17:16 | |
| p6eval | rakudo 7e3ddc: OUTPUT«2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97» | ||
| TimToady | rakudo: say ~(2,3,5, ->*@a { my $n = @a[*-1] + 2; $n++ while $n !% all(@a); $n } ... 50) | ||
| p6eval | rakudo 7e3ddc: OUTPUT«2 3 5 7 11 13 17 19 23 29 31 37 41 43 47» | 17:17 | |
| moritz_ | rakudo: say ~(2,3,5, ->*@a { my $n = @a[*-1] + 2; $n+=2 while $n !% all(@a); $n } ... 50) | 17:19 | |
| p6eval | rakudo 7e3ddc: OUTPUT«2 3 5 7 11 13 17 19 23 29 31 37 41 43 47» | ||
| pmichaud | rakudo: say ~(2,3,5, ->*@a { my $n = @a[*-1] + 2; $n+=2 while $n !% all(@a); $n } ... 50) | ||
| p6eval | rakudo 7e3ddc: OUTPUT«2 3 5 7 11 13 17 19 23 29 31 37 41 43 47» | ||
| pmichaud | rakudo: say ~(2,3,5, ->*@a { my $n = @a[*-1] + 2; $n+=2 while $n !% all(2..sqrt(@a)); $n } ... 50) | ||
|
17:19
pyrimidine joined
|
|||
| p6eval | rakudo 7e3ddc: OUTPUT«2 3 5 7 9 11 13 15 17 19 23 25 29 31 35 37 41 43 47 49» | 17:20 | |
| pmichaud | rakudo: say ~(2,3,5, ->*@a { my $n = @a[*-1] + 2; $n+=2 while $n !% all(2..sqrt(@a[*-1])); $n } ... 50) | ||
| p6eval | rakudo 7e3ddc: OUTPUT«2 3 5 7 9 11 13 17 19 23 25 29 31 37 41 43 47 49» | ||
| moritz_ | sqrt(@) is probably a dangerous assumptioin | 17:21 | |
| pmichaud | moritz_: yes | ||
| moritz_ | but I don't know enough number theory to prove it :-) | ||
| pmichaud | it is dangerous :) | ||
| rakudo: say ~(2,3,5, ->*@a { my $n = @a[*-1] + 2; $n+=2 while $n !% all(@a.grep( * < sqrt($n)); $n } ... 50) | |||
| p6eval | rakudo 7e3ddc: OUTPUT«===SORRY!===Unable to parse postcircumfix:sym<( )>, couldn't find final ')' at line 11» | ||
| pmichaud | rakudo: say ~(2,3,5, ->*@a { my $n = @a[*-1] + 2; $n+=2 while $n !% all(@a.grep( * < sqrt($n))); $n } ... 50) | 17:22 | |
| p6eval | rakudo 7e3ddc: OUTPUT«2 3 5 7 9 11 13 17 19 23 25 29 31 37 41 43 47 49» | ||
| pmichaud | rakudo: say ~(2,3,5, ->*@a { my $n = @a[*-1] + 2; $n+=2 while $n !% all(@a.grep( * <= sqrt($n))); $n } ... 50) | ||
| p6eval | rakudo 7e3ddc: OUTPUT«2 3 5 7 11 13 17 19 23 29 31 37 41 43 47» | 17:23 | |
| jnthn afk for a while, noms and beers | |||
| moritz_ | who did the md5 implementation via parrot recently? cosimo? or cognominal? (just remember it was a ^co guy :-) | 17:25 | |
| ah, cosimo++ | |||
| just found it on github | 17:26 | ||
|
17:26
stepnem joined
17:30
xuser left
17:35
patrickas joined
17:37
perlygatekeeper joined
|
|||
| sorear | good morning #perl6 | 17:39 | |
| moritz_ | oh hai sorear | 17:40 | |
| patrickas | good evening #perl6 | 17:41 | |
| :-) | |||
| moritz_ | hi patrickas | ||
| pugssvn | r31430 | moritz++ | [docs/feather] remove some outdated links | 17:43 | |
| patrickas | hello moritz_ what's new in perl6land ? | ||
| moritz_ | patrickas: lots of people have fun at YAPC::NA | ||
| patrickas | so I heard :-) and YAPC::EU is getting close too ! | 17:44 | |
| moritz_ | patrickas: I've tried to play with the new PAST optimization framework - but no luck so far :/ | ||
| found two bugs in a row | 17:45 | ||
| patrickas | :-) | ||
| speaking of optimizations | |||
| rakudo: say ~(2,3,5, ->*@a { my $n = @a[*-1] + 2; $n+=2 while $n !% all(2..sqrt($n)); $n } ... 50); | |||
| p6eval | rakudo 7e3ddc: OUTPUT«2 3 5 7 11 13 17 19 23 29 31 37 41 43 47» | ||
| pugssvn | r31431 | moritz++ | [docs/feather] remove another broken link | 17:46 | |
| patrickas | seems to be strangly faster than pmichaud's (using @a.grep( * <= sqrt($n)) ) ... I suppose grep is really not optimized for such tasks | ||
| maybe for big enough numbers the grepped version may be faster again | 17:47 | ||
| moritz_ | yes, might be different | ||
| PerlJam | patrickas: pm's version does O(N) sub calls per iteration, whereas 2..sqrt($n) does not | 17:50 | |
| patrickas | PerlJam I don't think so ... | ||
| moritz_ | PerlJam: define N :-) | ||
| PerlJam | N==+@a | 17:51 | |
| patrickas | pmichaud's version is cleaning all items form @a that are bigger than sqrt($n) before working on them | ||
| so effectively it is O(sqrt(n)) too ... it is just the grep that is adding a small constant tot he time | 17:52 | ||
| PerlJam | patrickas: The only difference between the two is one has 2..sqrt($n) and the other has @a.grep(* <= sqrt($n)), right? | 17:55 | |
| patrickas | right | ||
| moritz_ | the real interesting question is how big sqrt($n) is in comparison to @a | 17:57 | |
| and how that changes for later values in the sequence | |||
| TimToady | you could use 2,(3,5...sqrt($n)) to at least avoid dividing all the even numbers | ||
| PerlJam | moritz_: yeah, at some point the calls to the anonymous sub (and possibly the recomputation of sqrt($n)) in the grep version will no longer swamp the time it takes to generate 2..sqrt($n) | 17:59 | |
|
18:01
bphillips left
|
|||
| patrickas | TimToady: I must me missing something :-( | 18:02 | |
| raudo: say ~(2,3,5, ->*@a { my $n = @a[*-1] + 2; $n+=2 while $n !% all(2,(3,5...sqrt($n))); $n } ... 50); #Is that what you mean ? | |||
| TimToady | yes | ||
| patrickas | rakudo: say ~(2,3,5, ->*@a { my $n = @a[*-1] + 2; $n+=2 while $n !% all(2,(3,5...sqrt($n))); $n } ... 50); | ||
| p6eval | rakudo 7e3ddc: ( no output ) | 18:03 | |
| patrickas | it is taking so much time I have not been able to calculate it for n = 10 yet :-) | ||
| rakudo: say ~(2,3,5, ->*@a { my $n = @a[*-1] + 2; $n+=2 while $n !% all(2,(3,5...sqrt($n))); $n } ... 5); | |||
| p6eval | rakudo 7e3ddc: OUTPUT«2 3 5» | ||
| patrickas | rakudo: say ~(2,3,5, ->*@a { my $n = @a[*-1] + 2; $n+=2 while $n !% all(2,(3,5...sqrt($n))); $n } ... 10); | ||
| p6eval | rakudo 7e3ddc: ( no output ) | 18:04 | |
| patrickas | rakudo: say ~(2,3,5, ->*@a { my $n = @a[*-1] + 2; $n+=2 while $n !% all(2,(3,5...sqrt($n))); $n } ... 7); | ||
| p6eval | rakudo 7e3ddc: ( no output ) | ||
| PerlJam | throw in a little memoization and it should get much quicker :) | ||
| TimToady | only if hashing two arguments and looking them up is faster than a simple modulus | 18:05 | |
| patrickas | It's shocking that the ... operator is so slow! or is it something else I am not getting ? | 18:07 | |
| pmichaud | it's not ... that is slow here, it's all() and *@a and stuff like that. | 18:08 | |
| moritz_ | patrickas: I guess it's because ... has to handle so many different cases | ||
| patrickas | pmichaud: but the only difference bwteen TimToady's version and mine is that his uses ... to get the odd numbers while mine uses .. to get them all | 18:09 | |
| moritz_: Yes of course it should be slower but I would have expected some kind of a constant factor | |||
| it times out while coputing the primes less smaller than 7 ... I would say there is a bug | 18:10 | ||
| PerlJam | patrickas: you don't know that it's not a constant :) | ||
| patrickas | maybe the ... is never termination ? because the end of the range is a real ? | ||
| PerlJam | (a really big constant) | ||
| I presume that all(2,3,5...sqrt($n)) forces the complete evaluation of the sequence? | 18:12 | ||
|
18:12
justatheory left
|
|||
| PerlJam | er, with the proper syntax | 18:12 | |
| pugssvn | r31432 | sorear++ | [Cursor] Re-special-case \r in \h; Perl/Blank doesn't cover it after all | 18:13 | |
| TimToady | rakudo: say ~(2,3,5...50) | ||
| p6eval | rakudo 7e3ddc: OUTPUT«Unable to figure out pattern of series in main program body at line 1» | ||
| TimToady | rakudo: say ~(2,(3,5...50)) | ||
| p6eval | rakudo 7e3ddc: OUTPUT«2 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49» | ||
| TimToady | that why the extra parens | ||
| patrickas | hehhe got it | 18:14 | |
| rakudo: say (2,(3,5...sqrt(5))); | |||
| p6eval | rakudo 7e3ddc: | ||
| ..OUTPUT«235791113151719212325272931333537394143454749515355575961636567697173757779818385878991939597991011031051071091111131151171191211231251271291311331351371391411431451471491511531551571591611631651671691711731751771791811831851871891911931951971992012032052072092112132152172192212232… | |||
| PerlJam | patrickas: nice | ||
| patrickas | it is never terminating :-) | ||
| colomon | known bug. | 18:15 | |
| patrickas | colomon now you tell me :-) | ||
| TimToady | we were discussing it earlier :) | ||
| colomon | :) | ||
| I was hacking rather than IRCing. :) | |||
| patrickas | hehe colomon++ someone's gotta do the work | 18:17 | |
| slavik | wait ... | ||
| rakudo: say 2**64 | |||
| p6eval | rakudo 7e3ddc: OUTPUT«1.84467440737096e+19» | ||
| slavik | aww :( | ||
| patrickas | and TimToady-- for suggesting an "optimization" using a known bug being discussed earlier and confusing me :-) | ||
| pugssvn | r31433 | sorear++ | [Cursor] Unused Unicode blocks should be initialized to "", not undef | ||
| colomon | slavik: I'm figuring on taking a stab at proper bigints after R* | ||
| sorear | TimToady: both bugs you told me in scrollback are now fixed. | ||
| slavik | colomon: I will buy you a beer | ||
| colomon | sorear++ | 18:18 | |
| slavik | or vodka | ||
| vodka is better imo | |||
|
18:18
rindolf joined
|
|||
| rindolf | Hi all. | 18:18 | |
| colomon | I prefer scotch | ||
| or cider | |||
| slavik | eww | ||
| PerlJam | patrickas: you can always do 3,5...sqrt($n).Int | 18:19 | |
| sorear | Hello rindolf | 18:20 | |
| rindolf | sorear: hi. | 18:21 | |
| TimToady | or .ceiling | ||
| colomon | patrickas: 2, 3, 5 ... sqrt(50) should work fine, but if the end point is less than the last LHS value, you'll have trouble. | ||
| patrickas | PerlJam TimToady nope :( | ||
| colomon you are right | |||
| PerlJam | I guess .Int truncates | 18:22 | |
| patrickas | it's the fact that it is smaller than 5 not that it's a real | ||
| PerlJam | ah | ||
| colomon | sure, all Reals are well-ordered. ;) | 18:24 | |
| patrickas | rakudo: say max(4,6); | ||
| PerlJam | yeah, but that doesn't mean it wasn't the source of a bug :) | ||
| p6eval | rakudo 7e3ddc: OUTPUT«Unable to handle non-closure Ordering yet in 'Any::max' at line 1362:CORE.setting in 'max' at line 1560:CORE.setting in main program body at line 11:/tmp/j0xtf8Q_mV» | ||
| colomon | patrickas: you want | 18:25 | |
| rakudo: say [max] 4, 6; | |||
| or | |||
| p6eval | rakudo 7e3ddc: OUTPUT«6» | ||
| colomon | rakudo: say 4 max 6 | ||
| p6eval | rakudo 7e3ddc: OUTPUT«6» | ||
| patrickas | oh it's an operator! | ||
| TimToady | $x max= $y | ||
| patrickas | i wouldn't have guessed from the error message! | ||
| colomon | the sub version of max wants a closure | 18:26 | |
| sorear | I think I'm going to add to Sprixel/VICIL something like FORTH's CODE | ||
| colomon | FORTH! | ||
| sorear | a routine declarator, with lower-than-Perl6-level code in it | 18:27 | |
| colomon | rakudo: say ([minmax] 2, 4, 5, 2, 3).perl | ||
| p6eval | rakudo 7e3ddc: OUTPUT«2..5» | ||
| sorear | this will make it possible to define the Scalar, Parcel, and Capture classes - they can't be defined in Perl 6 because the binder needs them | 18:28 | |
| colomon | rakudo: say ([minmax] 2, 4, 5, 2, 3).bounds.perl | ||
| p6eval | rakudo 7e3ddc: OUTPUT«(2, 5)» | ||
| sorear | thoughts? | 18:29 | |
| patrickas | rakudo: say ~(2,3,5, ->*@a { my $n = @a[*-1] + 2; $n+=2 while $n !% all(2,(3,5...(5 max sqrt($n)))); $n } ... 50); #So this seems to be fastest | 18:30 | |
| p6eval | rakudo 7e3ddc: OUTPUT«2 3 5 7 11 13 17 19 23 29 31 37 41 43 47» | ||
| patrickas | BTW is there a Benchmark.pm6 yet ? | ||
|
18:31
justatheory joined
|
|||
| PerlJam | patrickas: I started github.com/perlpilot/benchmark | 18:31 | |
| patrickas: there may be others. | |||
| It looks like the spec says to return Nil in the 3,5...4 case, but for the prime problem, it looks like returning 3,5 would be more useful. | 18:33 | ||
| colomon | I think it's supposed to return just 3 for 3, 5 ... 4 | 18:35 | |
| ? | |||
| I'm sure I understand how 3, 5 would be more useful. so you don't have to say 5 max sqrt? | |||
| PerlJam | yes, I was just thinking that. | 18:36 | |
|
18:36
[particle] left
|
|||
| PerlJam | rakudo: say 3,5...5 max sqrt(100); | 18:38 | |
| p6eval | rakudo 7e3ddc: OUTPUT«3579» | ||
| PerlJam | interesting | ||
| colomon | I think making the left hand the pattern and the right hand the limit works better. so that 3, 5 ... 4 would be 3 | 18:39 | |
| PerlJam | colomon: S03:1937ish says ''if a supplied limit value is on the "wrong" side of the first of those values, Nil is returned'' | ||
| colomon | "first" | 18:40 | |
| this is the second. | |||
| PerlJam | ah, yes. | ||
| I'm a little slow today | |||
| colomon | no worries. | ||
| and I just spent an hour discussing this stuff with pmichaud and TimToady, because the tests had changed and I was trying to figure out if they were still correct. | 18:41 | ||
| PerlJam | if the LHS is a list, the series op only cares about the last 2 values in the list right? | 18:42 | |
|
18:43
spinclad left
18:45
gbacon left
|
|||
| PerlJam | colomon: I mean ... if 3,5...4 returns 3, what should this do? 1,3,5,7,9...4 | 18:46 | |
| PerlJam reads the spec | |||
| oh, yes. 1,3 is what I would expect and that's what the spec says | 18:47 | ||
| TimToady++ | 18:48 | ||
|
18:48
[particle] joined
|
|||
| colomon | dunno if that works yet, mind you. | 18:48 | |
| rakudo: say 1, 3, 5, 7, 9 ... 4 | 18:49 | ||
| p6eval | rakudo 7e3ddc: | ||
| ..OUTPUT«135791113151719212325272931333537394143454749515355575961636567697173757779818385878991939597991011031051071091111131151171191211231251271291311331351371391411431451471491511531551571591611631651671691711731751771791811831851871891911931951971992012032052072092112132152172192212232… | |||
|
18:49
patspam joined
|
|||
| PerlJam | looks like not :) | 18:49 | |
| colomon | so my new decimal number code is 8x slower than the old code. | ||
| guess it's still too slow to incorporate. | |||
| must optimize.... | |||
| slavik | colomon: run it on top of ghc :P | 18:50 | |
| PerlJam | rakudo: my @a = 13; 1,3...@a | 18:51 | |
| p6eval | rakudo 7e3ddc: ( no output ) | 18:52 | |
| PerlJam | rakudo: my @a = 13; say 1,3...@a | ||
| p6eval | rakudo 7e3ddc: OUTPUT«135791113» | ||
|
18:52
gbacon joined
|
|||
| moritz_ | it runs up to 13? | 18:52 | |
| that's... kinda weird | |||
| PerlJam | rakudo: my @a = 1,3,5,7; my @b = 25..35; say ~(@a..@b); | 18:57 | |
|
18:57
rtward_ joined
|
|||
| p6eval | rakudo 7e3ddc: ( no output ) | 18:57 | |
|
18:57
rtward_ left
|
|||
| PerlJam | rakudo: my @a = 1,3,5,7; my @b = 25..35; say ~(@a...@b); | 18:58 | |
| p6eval | rakudo 7e3ddc: OUTPUT«1 3 5 7 9 11 13 15 17 19 21 23 25 26 27 28 29 30 31 32 33 34 35» | ||
|
19:00
rtward left
19:04
cono left
19:06
cono joined
|
|||
| diakopter | shell out to perl | 19:07 | |
|
19:07
Mowah left
19:09
ashleydev left
|
|||
| patrickas | is 1,1...2 supposed to return Nil? | 19:11 | |
|
19:11
rtward joined,
araujo left
|
|||
| pmichaud | patrickas: what would the increment be in that case? I'm guessing it acts like an increment of zero. | 19:12 | |
| colomon | increment of zero, yes | ||
| moritz_ | so infinite number of 1s? | ||
| patrickas | currently it returns an infinite lis of 1 | 19:13 | |
| but | |||
| colomon | moritz_: that's my understanding. | ||
| patrickas | I could argue that 2 is on the wrong side :-) | ||
| "if a supplied limit value is on the "wrong" side of the first of those values, Nil is returned" | |||
|
19:14
Ross left
|
|||
| patrickas | since both sides .succ and .prec are the wrong sides :-) | 19:14 | |
| 1,1...1 would be an infinite list though | 19:15 | ||
| not a theoretical question .... I am asking to see if I should fix it or not :-) | |||
| colomon | no, it would be just 1 | ||
|
19:16
araujo joined,
TiMBuS left,
Fozo joined
19:17
Ross joined
|
|||
| moritz_ | does anybody want to do next week's challenge? | 19:18 | |
| I'm running out of ideas | |||
| pmichaud | question: | ||
| my $b = [1,2,3]; sub abc($x is copy) { $x[0] = 4; }; abc($b); | |||
| does $b change? | |||
| moritz_ | I fear it does | ||
| pmichaud | my $b = [1,2,3]; sub abc($x is copy) { $x[0] = 4; }; abc($b); say $b.perl; | ||
| (I'm asking what the spec says should happen, not what rakudo currently implements) | 19:19 | ||
| moritz_ | my answer was about what the spec says | ||
| or how I think I understand the spec | |||
|
19:20
meppl joined
|
|||
| patrickas | colomon: which part of the spec is that? 1,1...1 is 1? | 19:20 | |
|
19:20
justatheory left
|
|||
| pmichaud | (colomon just left) | 19:22 | |
|
19:22
colomon left
|
|||
| PerlJam | patrickas: "If any value in the series is C<eqv> to the limit value, the series terminates, including that final limit value." | 19:23 | |
| patrickas: S03:1812 | 19:24 | ||
| patrickas | PerlJam: Thanks | ||
|
19:24
lue joined
|
|||
| lue | Hello! | 19:24 | |
| Fozo | hmmmm | 19:33 | |
| pugssvn | r31434 | moritz++ | [feather/sccript] be more specific about where to find t/ | 19:34 | |
| Fozo | HeLlO | ||
| moritz_ | hi | ||
|
19:39
tylerni6 joined,
justatheory joined
19:42
tylerni7 left
|
|||
| pugssvn | r31435 | moritz++ | [util] remove now unneeded logic from version_h.pl; replace it by somthing rather simple | 19:43 | |
|
19:44
gbacon left
19:45
stepnem left
19:54
patrickas left
|
|||
| pugssvn | r31436 | moritz++ | [util] be more consistent with argument passing | 19:58 | |
| moritz_ | I'm currently trying to run the generation of syn documents under a different user name | 20:00 | |
| it's... not amusing | |||
| info: 990 smartlinks found and 990 broken in 820 test files (227 test files had no links). | |||
| so it seems to find not a single test file. Urks. | 20:01 | ||
| lue | That's odd. | 20:04 | |
|
20:05
Psyche^ joined
20:08
whiteknight joined
|
|||
| pugssvn | r31437 | moritz++ | [Text::SmartLinks] do not die when one file cannot be parsed | 20:08 | |
| r31437 | | |||
| r31437 | Since the default is to recursively find all .pod and .pm files, it kinda | |||
| r31437 | makes sense to only warn if one of them is invalid, instead of dying horribly | |||
| r31437 | and dragging everything else down. | |||
|
20:09
Su-Shee left,
Patterner left,
Psyche^ is now known as Patterner
|
|||
| pugssvn | r31438 | moritz++ | [Text::SmartLinks] moritz-- cannot write Perl 5 code anymore | 20:09 | |
| moritz_ | of course that doesn't fix the generation at all :( | 20:10 | |
|
20:12
rindolf left
|
|||
| TimToady | std: 1,2,3, ... 10 | 20:13 | |
| p6eval | std 31436: OUTPUT«Potential difficulties: Comma found before apparent series operator; please remove comma (or put parens around the ... listop, or use 'fail' instead of ...) at /tmp/sWXCl1l3VJ line 1:------> 1,2,3,⏏ ... 10ok 00:01 113m» | ||
| PerlJam | TimToady++ | 20:14 | |
|
20:15
nimiezko joined
|
|||
| moritz_ | hum, the problem seems to be elsewhere | 20:16 | |
| it includes the .t files inline in the specs | 20:17 | ||
| but still reports the smartlinks as broken | |||
|
20:21
Guest73864 left,
ashleydev joined
20:24
rtward left
|
|||
| pugssvn | r31439 | moritz++ | [feather/script] synopsis htmls are now generated by the perlcabal user | 20:25 | |
|
20:26
Guest89026 left
|
|||
| moritz_ | if anybody notices some rendering errors, 404s or so on perlcabal.org/syn/, please ping me | 20:27 | |
|
20:30
patspam left
|
|||
| pmichaud | afk for a while # commuting | 20:34 | |
| arnsholt | moritz_: The most important one for me (S05) works at least, so I'm not complaining =) | 20:35 | |
|
20:37
patspam joined
|
|||
| sorear | moritz_: I wonder how hard it would be to get all the perlcabal .pm6 files and fragments run through STD_hilite | 20:37 | |
| I debitrotted that with that in mind... | |||
|
20:38
Sanitoeter left
20:40
nimiezko left
|
|||
| pugssvn | r31440 | lwall++ | [STD] also collect $?LONGNAME on module Foo {} form, if first declaration | 20:44 | |
|
20:47
gbacon joined
|
|||
| pugssvn | r31441 | lwall++ | [t/spec] fix CR on two test files, add svn props | 20:49 | |
| r31442 | lwall++ | [S03] qualify misleading assertion re 1,2,3...$n when $n < 3 | 20:55 | ||
|
20:55
cygx left
20:56
spinclad joined
|
|||
| sorear | TimToady: What are we up to on snaptests? | 20:57 | |
|
20:57
patspam left
|
|||
| TimToady | just running one right; should know in about 15 minutes, but I'm hoping for ~96% | 20:58 | |
| *right now | |||
|
21:01
lest_away is now known as lestrrat
21:05
Chillance left
21:07
pyrimidine left
|
|||
| sorear | After my A $x; my B $y; $x := $y; what values can I legally assign to $x? $y? | 21:09 | |
|
21:11
Guest23195 left
|
|||
| TimToady | we're at 95.76% now | 21:14 | |
|
21:23
gbacon left
21:25
macdaddy joined
21:26
macdaddy is now known as Guest5815
21:31
Ross left
21:36
kensanata joined
21:44
Sanitoeter joined
21:45
lichtkind joined
|
|||
| lue | afk | 21:45 | |
| lichtkind | greetings | 21:46 | |
| is end of june still the rakudo target? | 21:53 | ||
|
21:55
tylerni6 is now known as tylerni7,
tylerni7 left,
tylerni7 joined
|
|||
| ash_ | which raukudo target? | 21:56 | |
| lichtkind | target date | 21:57 | |
| for star | |||
| ash_ | to be released "by july 29" | 21:59 | |
| rakudo.org/node/73 | |||
| lichtkind | thank you very much | 22:00 | |
|
22:05
cj left,
skangas left
22:06
cj joined
22:08
d4l3k_ joined
22:09
dalek left,
d4l3k_ is now known as dalek
22:24
ash_ left
22:26
estrabd is now known as estrabd_afk
22:33
Sanitoeter left
22:35
quietfanatic joined
|
|||
| TimToady | quietfanatic: o/ | 22:35 | |
| quietfanatic | hey | ||
| so I was wondering | |||
| rakudo: class A {has $.x = rand}; say A.new.x | |||
| p6eval | rakudo 7e3ddc: OUTPUT«Could not find sub &rand in <anon> at line 11:/tmp/rlUBmjp7Ec in main program body at line 11:/tmp/rlUBmjp7Ec» | ||
| quietfanatic | Why don't we have rand during build time? | ||
|
22:35
Sanitoeter joined
|
|||
| TimToady | beats me | 22:36 | |
| rakudo: say rand | |||
| p6eval | rakudo 7e3ddc: OUTPUT«0.692584724255966» | ||
| TimToady | perhaps it's the same lexical scope problem in class blocks we've always had | 22:37 | |
| if rand is in CORE | |||
| rakudo: my $a = 42; class A { has $.x = $a; }; say A.new.x | |||
| p6eval | rakudo 7e3ddc: OUTPUT«Lexical '$a' not found in <anon> at line 11:/tmp/XIEFY1zH5p in main program body at line 11:/tmp/XIEFY1zH5p» | ||
| TimToady | that one | ||
| quietfanatic | ah, I see | ||
| There doesn't seem to be any workaround save for making a custom BUILD | 22:38 | ||
| TimToady | rakudo: class A { has $.x = CORE::rand; }; say A.new.x | ||
| p6eval | rakudo 7e3ddc: OUTPUT«Can not find sub CORE::rand in <anon> at line 1 in main program body at line 11:/tmp/ZIawOLSCLn» | ||
| quietfanatic | Or passing a parameter to new instead | 22:39 | |
| TimToady | rakudo: our sub foo { rand }; class A { has $.x = foo; }; say A.new.x | 22:40 | |
| p6eval | rakudo 7e3ddc: OUTPUT«0.70248685786234» | ||
| TimToady | there's a workaround | ||
| pmichaud | dhmmmmm | ||
| I'm a little surprised that plain rand didn't work. | |||
| yes, it's likely the same bug. But this one is also more easily fixable. | |||
| quietfanatic | I thought I tried that but I guess I didn't | ||
|
22:49
Patterner left,
pragma_ is now known as tits
22:50
tits is now known as pragma_
22:53
Psyche^ joined,
Psyche^ is now known as Patterner
|
|||
| cxreg | en.wikipedia.org/wiki/Guillemets#Pr..._Languages | 23:10 | |
|
23:10
saaki left
|
|||
| cxreg | that's either wrong or outdated, right? | 23:10 | |
| TimToady | «» is more like shell quoting, but their example isn't exactly incorrrect | 23:12 | |
|
23:14
kensanata left,
rv2733 joined
23:15
saaki joined
23:23
felliott left
23:25
skids left
23:29
ash_ joined
23:35
justatheory left
23:39
azert0x left
23:41
Patterner left
23:42
rv2733 left
23:50
rgrau_ joined
23:51
Fozo left
23:53
justatheory joined
23:55
Psyche^ joined
23:56
Psyche^ is now known as Patterner
23:59
jrtayloriv joined
|
|||