»ö« | 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. |
|||
00:02
snarkyboojum left
|
|||
mberends | sleep & | 00:09 | |
00:09
mberends left
00:10
xabbu42 joined
|
|||
TimToady | Grimnir_: Well, we try to be good, and very often that's the same as nice, but sometimes not. | 00:13 | |
Grimnir_ | sorry, I wasn't referring to the whole channel. you were good, I got nice help and all :) | 00:14 | |
TimToady | what I mean is, well, let me give you an example. I once had a stomach tumor removed. This was simultaneously Very Good, and Not Nice. | 00:18 | |
sometimes the job of a community is for us to grind the rough spots off of each other, and that can also be Very Good, and Not Nice. | 00:19 | ||
00:19
quietfanatic_ joined
00:20
quietfanatic left,
quietfanatic_ is now known as quietfanatic
|
|||
Grimnir_ | I'm sorry if I have been a bit too rough. I just got excited about perl6 from the speak | 00:21 | |
Tene | k23z__: You're right that, say, asking for python help in here would be offtopic, but asking about how Perl 6 compares to python certainly isn't offtopic. No programming language stands completely alone, especially one still under development like Perl 6. | ||
k23z__: It's very important to look at other languages for inspiration, to see what they've done right or wrong, to inform our decisions. | |||
Failure to learn from the mistakes of others is a very unfortunate failure to make. :) | |||
TimToady | Grimnir_: we all need to simultaneously learn more sensitivity while growing thicker skins, which is a neat trick. :) | 00:22 | |
Grimnir_ | TimToady: and I'm sorry to hear about the tumor, but great to hear that it was removed | ||
Tene | much better than having it inserted. :) | 00:23 | |
TimToady | my tummy had bitrot | ||
but it's been more than six years now, so I'm probably fine, for some definition not including sanity | 00:24 | ||
Grimnir_ | that reminds me... I was taking a CS course about concurrency programming (CSP to be specific) and they had made a CSP-implementation in Python. the problem with python is their GIL (Grand Interpreter Lock) which made it impossible to run different threads at the same time (multitasking but not running in parallel). if someone made a CSP-implementation in Perl6, would it be possible to run different threads on different processors? | 00:26 | |
Tene | Grimnir_: Perl 6 has a lot of ideas about concurrency. Unfortunately, the implementations haven't caught up yet. | 00:27 | |
Grimnir_: Parrot, which Rakudo is built on, has significant problems (nonfunctional) in its threading capabilities. | |||
Grimnir_ | Tene: ok | 00:28 | |
Tene offlines to actually get some work done on Rakudo. | |||
00:31
colomon joined,
SmokeMachine joined
00:34
colomon left
|
|||
TimToady | Grimnir_: we don't have a GIL, and try to define everything as lexically as possible so they they aren't shared between threads unless absolutely necessary | 00:38 | |
we also try to make as many things immutable values as practically possible, which also allows lockless sharing | |||
Grimnir_ | nice | ||
TimToady | well, that's the theory | ||
Grimnir_ | so message passing could work nicely | 00:39 | |
TimToady | that's the intent | ||
one of the intents | |||
Grimnir_ | I will be looking forward to that :) | ||
TimToady | and, in fact, feed operators, ==> and <==, are basically message queues | ||
object pipes | 00:40 | ||
Grimnir_ | ooh | ||
TimToady | and I have some ideas about an object having a current owner as it gets passed around, which might help on the locking front as well | 00:41 | |
there's also the whole STM business, which is actually prototyped in pugs | |||
00:41
[synth] joined
|
|||
TimToady | and might scale better than locking solutions, for some set of problems | 00:41 | |
Grimnir_ | what's STM? | 00:42 | |
TimToady | but mostly it's just about not baking serial assumptions into the language where it's not needed | ||
software transactional memory | |||
Grimnir_ | aah, yeah | ||
TimToady | may also turn out to be a toy, we'll have to hedge our bets on that one. | 00:43 | |
Tene feels a little bit grumpy about re-doing HLL interop again. | |||
TimToady | what we really need is Transactional Memory, not just the Software part | ||
00:44
synth left
|
|||
TimToady | Tene: it's okay to feel grumpy over that. | 00:44 | |
Grimnir_: but we might be able to use a notion related to STM, which is that time can be virtual, and temporarily out of joint in a Heisenbergian way, as long as a transaction manager can find a consistent way to mesh all the changes | 00:46 | ||
which is sort of another way about not caring about sync issues when you don't need to | 00:47 | ||
Tene | I don't feel so well... might just take a nap instead. | 00:48 | |
TimToady | which is sort of the fundamental way p6 looks at all parallelism | ||
I was out of sorts yesterday. | |||
and naps are good. | |||
Grimnir_ | sounds interesting | ||
TimToady | I'm good at handwaving these things. :) | ||
I just keep hoping that someone who really knows what they're doing picks up some of the cues and implements it all, and that we've designed things well enough to stay out of their way. | 00:50 | ||
Grimnir_ | hmm... that wouldn't be me :) | ||
00:50
jferrero left
|
|||
TimToady | well, but you could be their First User. :) | 00:51 | |
Grimnir_ | that would be cool := | ||
:) | |||
it would be nice if I could use perl for CSP-programming | |||
k23z__ | TimToady: I would like to write a wiki page on Perl6 on the transition from Perl -> Perl6 , what wiki should I write on ? | ||
I mean I want to start to write it and ask for advice after I write a bit some of it | 00:52 | ||
TimToady | sounds kinda more bloggy, but I'm not the expert on that kind of thing | ||
but yeah, certainly one could start writing and then figure out where to poke it | 00:53 | ||
00:53
broquaint left
|
|||
k23z__ | then I'll keep it in my private repo | 00:53 | |
and will unveil when its consistent | |||
00:54
broquaint joined
|
|||
TimToady | and thank you for developing a thicker skin earlier today :) | 00:54 | |
Grimnir_ | is there a perl 6 syntax highlight for vim? | ||
TimToady | yeah, used to be in the pugs repo, but moved out to gitland somewhere | 00:55 | |
see the bottom of perl6.org/whatever/ | 00:56 | ||
Grimnir_ | nice, thanks | 00:57 | |
k23z__ | the one on github that alester wrote I think | 00:58 | |
00:59
payload joined
|
|||
TimToady | well, lotsa people wrote it | 01:00 | |
Grimnir_ | is it illegal to have code before sub declarations? | 01:04 | |
TimToady | no, unless the code is illegal :) | ||
Grimnir_ | bleh, I forgot a ; | 01:05 | |
TimToady | do you mean call forward | ||
ah, that would do it. | |||
Grimnir_ | it's incredible that I still happen to forget that bleeding semicolon :) | ||
TimToady | rakudo doesn't always give you a decent error on that particular error | ||
01:06
justatheory left
|
|||
TimToady | std: my $x = 1sub foo {...} | 01:06 | |
p6eval | std 29969: OUTPUT«===SORRY!===Two terms in a row at /tmp/1YwjjmuKiQ line 2:------> <BOL>⏏sub foo {...} expecting any of: POST bracketed infix infix or meta-infix postfix postfix_prefix_meta_operator statement modifier | ||
..loopFAILED 00:01 108m» | |||
TimToady | that one could be better | ||
I think p5 would conjecture a missing semicolon there | |||
std: { 42 }{ 43} | 01:07 | ||
p6eval | std 29969: OUTPUT«ok 00:01 105m» | ||
TimToady | right | ||
std: my $x = 1{ 42; } | 01:10 | ||
p6eval | std 29969: OUTPUT«===SORRY!===Unexpected block in infix position (two terms in a row, or previous statement missing semicolon?) at /tmp/4bQaPyZno5 line 2:------> <BOL>⏏{ 42; } expecting any of: POST bracketed infix infix or meta-infix | ||
..postfix postfix_p… | |||
TimToady | there, picks up that one | ||
Tene | k23z__: There's the Perl 6 wiki: www.perlfoundation.org/perl6/index.cgi | 01:14 | |
lue | is there any sort of verbose command so seeing what fails/wins is easier? | 01:16 | |
Tene | I don't know of a command to do that beyond just running the test files directly. | 01:22 | |
okay, got some tea, waking up a bit. Lemme look again. | 01:27 | ||
Grimnir_ | what's the syntax for "make a list of all elements in the list greater than $x"? | 01:30 | |
TimToady | rakudo: say grep * > 5, ^10 | ||
p6eval | rakudo 9a9450: OUTPUT«Method 'Num' not found for invocant of class 'Block'current instr.: 'perl6;Mu;' pc -1 ((unknown file):-1)» | ||
TimToady | rakudo: say grep { $_ > 5 }, ^10 | 01:31 | |
p6eval | rakudo 9a9450: OUTPUT«6789» | ||
TimToady | alpha: say grep * > 5, ^10 | ||
p6eval | alpha 30e0ed: OUTPUT«6789» | ||
TimToady | that what you want? | ||
Grimnir_ | not exactly. actually I'm trying to make the quicksort example, but I can't find out | 01:32 | |
what does "^10" mean? | 01:34 | ||
pugssvn | r29970 | lwall++ | [STD] speculate missing semicolon when ws between two terms crosses \n | ||
TimToady | same as 0 ..^ 10 | ||
Grimnir_ | ah | ||
TimToady | well, grep { $_ > $pivot }, @list for that | 01:35 | |
should have a function for grepping into two lists somewhere | 01:36 | ||
maybe classify, but probably unimplemented | 01:37 | ||
Grimnir_ | Nominal type check failed for parameter '@liste'; expected Positional but got Int insteadNominal type check failed for parameter '@liste'; expected Positional but got Int insteadNominal type check failed for parameter '@liste'; expected Positional but got Int insteadNominal type check failed for parameter '@liste'; expected Positional but got Int instead[A[A[A[A | ||
whoops | |||
sorry | |||
my terminal fucked | |||
Tene | perl6: my @list = 1..10; my @g = grep { $_ > 5 }, @list; say @g; | 01:38 | |
p6eval | elf 29969: OUTPUT«Use of uninitialized value $_ in numeric gt (>) at (eval 124) line 4.Undefined subroutine &GLOBAL::grep called at (eval 124) line 4. at ./elf_h line 5881» | ||
..pugs, rakudo 9a9450: OUTPUT«678910» | |||
TimToady | I guess we leave elf in there to make pugs and rakudo look good :) | 01:39 | |
lue | elf: say "hi" | ||
p6eval | elf 29970: OUTPUT«hi» | ||
lue | elf: say 1..3 | ||
p6eval | elf 29970: OUTPUT«123» | ||
lue | elf: say 1..* | ||
p6eval | elf 29970: OUTPUT«Undefined subroutine &GLOBAL::whatever called at (eval 125) line 3. at ./elf_h line 5881» | ||
lue | how did it know what it was if it's undefined? :) | 01:40 | |
01:40
colomon joined
|
|||
lue | hey colomon o/ | 01:40 | |
colomon | \o | ||
Grimnir_ | as far as I recal, there was a more neat way to do it instead of using grep? | 01:41 | |
TimToady | classify, as I mentioned above | 01:43 | |
01:43
snarkyboojum joined
|
|||
TimToady | but it's probably not quite right for a qsort partition | 01:44 | |
alpha: my @list = (1, 2, 3, 4); my (:@even, :@odd) := classify { $_ % 2 ?? 'odd' !! 'even' }, @list; say @even; say @odd | 01:45 | ||
p6eval | alpha 30e0ed: OUTPUT«rtype not setin Main (file <unknown>, line <unknown>)» | ||
TimToady | alpha: my @list = (1, 2, 3, 4); my (:@even, :@odd) := |classify { $_ % 2 ?? 'odd' !! 'even' }, @list; say @even; say @odd | 01:46 | |
p6eval | alpha 30e0ed: OUTPUT«rtype not setin Main (file <unknown>, line <unknown>)» | ||
TimToady | ah well | ||
alpha: say classify { $_ % 2 ?? 'odd' !! 'even' }, 1,2,3,4; | 01:47 | ||
p6eval | alpha 30e0ed: OUTPUT«Could not find non-existent sub classifyin Main (file src/gen_setting.pm, line 324)» | ||
colomon is trying to figure out what happened here while he was at rehearsal... | |||
quietfanatic | alpha: my @list = (1, 2, 3, 4); {($^a % 2 ?? @^b !! @^c).push: $^a}.(@list, my @even, my @odd); say @even; say @odd | 01:48 | |
p6eval | alpha 30e0ed: OUTPUT«1 2 3 4» | ||
quietfanatic | hmm | ||
TimToady | colomon: learning, we hope :) | ||
quietfanatic | alpha: my @list = (1, 2, 3, 4); {(($^a % 2) ?? @^b !! @^c).push: $^a}.(@list, my @even, my @odd); say @even; say @odd | ||
p6eval | alpha 30e0ed: OUTPUT«1 2 3 4» | ||
quietfanatic | alpha: my @list = (1, 2, 3, 4); {(($^a % 2) ?? @^b !! @^c).push: $^a}.(all(@list), my @even, my @odd); say @even; say @odd | 01:49 | |
p6eval | alpha 30e0ed: OUTPUT«all(1, 2, 3, 4)» | ||
quietfanatic | :[ | ||
TimToady | nice fangs | ||
quietfanatic | It's not autothreading over the block. | 01:50 | |
lue | I would think you need to define $a... | ||
Tene | lue: classify would be a good function to write and/or test. | ||
Heh, there you are. | |||
I didn't notice you in the scrollback, so I thought you were AFK. | 01:51 | ||
quietfanatic | lue: the ^ in $^a makes it a placeholder parameter. | ||
Tene | I find myself reluctant to make significant changes here, remembering pmichaud as having strong opinions about how HLL library loading should be. | ||
quietfanatic | alpha: my @list = (1, 2, 3, 4); my @even; my @odd; @list.grep({push ($_ % 2 ?? @odd !! @even), $_}); say @even; say @odd | 01:52 | |
p6eval | alpha 30e0ed: OUTPUT«2413» | ||
lue | And why does pmichaud matter? He's not the creator of rakudo or anything. :D </sarcasm> | ||
01:53
xabbu42 left
|
|||
quietfanatic | alpha: sub classify (@a, &cond) { | 01:55 | |
p6eval | alpha 30e0ed: OUTPUT«Unable to parse block; couldn't find final '}' at line 10, near ""in Main (file <unknown>, line <unknown>)» | ||
quietfanatic | whoops | ||
alpha: sub classify (@a, &cond) {my %r; for @a {%r{&cond($_)} = $)}; return %r;}; say classify ((1, 2, 3, 4), {$_ % 2 ?? 'odd' !! 'even'}); | 01:56 | ||
p6eval | alpha 30e0ed: OUTPUT«Confused at line 10, near "= $)}; ret"in Main (file <unknown>, line <unknown>)» | ||
quietfanatic | alpha: sub classify (@a, &cond) {my %r; for @a {%r{&cond($_)} = $_}; return %r;}; say classify ((1, 2, 3, 4), {$_ % 2 ?? 'odd' !! 'even'}); | ||
p6eval | alpha 30e0ed: OUTPUT«Not enough positional parameters passed; got 1 but expected 2in Main (file src/gen_setting.pm, line 324)» | ||
quietfanatic | alpha: sub classify (@a, &cond) {my %r; for @a {%r{&cond($_)} = $_}; return %r;}; say classify (@(1, 2, 3, 4), {$_ % 2 ?? 'odd' !! 'even'}); | ||
p6eval | alpha 30e0ed: OUTPUT«Not enough positional parameters passed; got 1 but expected 2in Main (file src/gen_setting.pm, line 324)» | 01:57 | |
pugssvn | r29971 | lwall++ | [STD] rearrange conditionals as to likelihood, remove redundant condition | 02:03 | |
lue | rakudo: say 16**5 | 02:08 | |
p6eval | rakudo 9a9450: OUTPUT«1048576» | ||
lue | rakudo: say 16**6 | ||
p6eval | rakudo 9a9450: OUTPUT«16777216» | ||
lue | And our total this hour..... $9780764571404 worth in bug fixes! Thanks for the donations! Our bot volunteers are here, waiting to receive YOUR bug reports! | 02:10 | |
quietfanatic | That's more than the national debt! | 02:11 | |
wait, it's not. | 02:12 | ||
colomon | rakudo: (Q:PIR{%r = get_hll_global 'say'})(34) | ||
p6eval | rakudo 9a9450: OUTPUT«Null PMC access in invoke()current instr.: '_block14' pc 29 (EVAL_1:0)» | ||
lue | (it's the barcode number I got off the back of TI-84 Plus Graphing Calculator for Dummies) | ||
quietfanatic | alpha: (Q:PIR{%r = get_hll_global 'say'})(34) | ||
p6eval | alpha 30e0ed: OUTPUT«34» | ||
02:12
lue is now known as Hackathon
|
|||
quietfanatic | rakudo: (Q:PIR{%r = get_hll_global '&say'})(34) | 02:12 | |
p6eval | rakudo 9a9450: OUTPUT«34» | ||
quietfanatic | Aha! | ||
colomon | quietfanatic: nice. | ||
rakudo: (Q:PIR{%r = get_hll_global '&infix:<&&>'})(4,5) | 02:13 | ||
p6eval | rakudo 9a9450: OUTPUT«Null PMC access in invoke()current instr.: '_block14' pc 29 (EVAL_1:0)» | ||
colomon | rakudo: (Q:PIR{%r = get_hll_global '&infix:<+>'})(4,5) | ||
p6eval | rakudo 9a9450: ( no output ) | ||
colomon | rakudo: say (Q:PIR{%r = get_hll_global '&infix:<+>'})(4,5) | ||
p6eval | rakudo 9a9450: OUTPUT«9» | ||
Hackathon | And another conundrum solved. That's what happens, when you donate bug reports *large game show guy smile* | ||
quietfanatic | colomon: Having to do a symbolic lookup every time you call a meta op seems unwieldy to me. | 02:14 | |
Hackathon --reset | |||
02:14
Hackathon is now known as lue
|
|||
colomon | quietfanatic: first make it work... ;) | 02:14 | |
quietfanatic | ay. | ||
TimToady | someone might optimize it in the next ten or twenty years | 02:16 | |
quietfanatic | Especially for user-defined meta-op subs. They'll expect to be passed the sub itself. | ||
lue | let's use SQL! Nothing bad has EVER happened to people who use SQL :) | 02:17 | |
I've heard of SQL injections, but that gives it antibodies (right?) :D | 02:19 | ||
colomon | rakudo; say pir::get_hll_global__SC("&infix:<+>")(3, 4) | 02:20 | |
rakudo: say pir::get_hll_global__SC("&infix:<+>")(3, 4) | |||
p6eval | rakudo 9a9450: OUTPUT«The opcode 'get_hll_global_s_p' (get_hll_global<2>) was not found. Check the type and number of the argumentscurrent instr.: 'perl6;PCT;HLLCompiler;evalpmc' pc 972 (compilers/pct/src/PCT/HLLCompiler.pir:538)» | ||
colomon | rakudo: say pir::get_hll_global__CS("&infix:<+>")(3, 4) | 02:21 | |
p6eval | rakudo 9a9450: OUTPUT«7» | ||
Grimnir_ | how does an array with one element get treated? can it be interpreted as a scalar in a multi sub for instance? ( multi sub snot ($blah) { ... } ? ) | ||
lue | Grimnir_: look | 02:22 | |
rakudo: my $a=(3,4,5,6); say $a | |||
p6eval | rakudo 9a9450: OUTPUT«3 4 5 6» | ||
lue | the magic(?) of 楽土 | ||
Grimnir_ | so it doesn't really matter if you call it $a or @a? | ||
TimToady | rakudo stringifies its one argument | ||
s/rakudo/say/ | 02:23 | ||
yes, it does | |||
rakudo: my @a = 3,4,5,6; say @a | |||
p6eval | rakudo 9a9450: OUTPUT«3456» | ||
TimToady | notice the difference | ||
lue | When I first saw that, I was quite surprised at the leniency myself. I still don't fully understand the purpose, I just know it turns beginners' heads :) | 02:24 | |
Grimnir_ | so what does "my $a = (2,3,4);" actually mean? what is $a? | ||
lue | rakudo: my $a=(2,3,4); say $a.WHAT | 02:25 | |
p6eval | rakudo 9a9450: OUTPUT«Seq()» | ||
TimToady | it's a Seq, which is basically a readonly array. but any array-ish thing, when stringified, puts ' ' between elements | ||
but when you pass the elements as separate args to say, that doesn't happen | |||
lue | rakudo: say (2,3,4); say (2,3,4).WHAT | 02:26 | |
p6eval | rakudo 9a9450: OUTPUT«234Parcel()» | ||
Grimnir_ | ok, I'm getting a bit confused here :) | 02:28 | |
so there's also lists and arrays? | 02:29 | ||
alpha: (1,2,3).WHAT.say | |||
p6eval | alpha 30e0ed: OUTPUT«List()» | ||
lue | Don't worry, unless you plan on contributing to 楽土. Then you run. | ||
:) | |||
Grimnir_ | rakudo: (1,2,3).WHAT.say | ||
p6eval | rakudo 9a9450: OUTPUT«» | ||
Grimnir_ | rakudo: say (1,2,3).WHAT | 02:30 | |
p6eval | rakudo 9a9450: OUTPUT«Parcel()» | ||
Grimnir_ | hmm... | ||
lue | ...now THAT is an interesting error! | ||
masakbot --report-bug --which="latest" | |||
Grimnir_ | alpha: say (1,2,3).WHAT | 02:31 | |
p6eval | alpha 30e0ed: OUTPUT«List()» | ||
lue | don't forget, master is a rewriting of how it all works, to bring it close to STD.pm | 02:32 | |
rakudo: my List @a=(1,2,3); say @a.WHAT | |||
p6eval | rakudo 9a9450: OUTPUT«()» | ||
lue | hm | ||
Grimnir_ | is master the one to be preferred to use? | ||
lue | if you are of the bleeding edge/contributors, yes. If not, it's your choice. Both have features the other don't. | 02:33 | |
If you want laziness, use master. If you want to define your own operators, use alpha (right now). At this point, it depends on what you want :) | 02:34 | ||
Grimnir_ | I guess I just want to try out Perl 6 :) | ||
TimToady | don't we all | 02:35 | |
lue | Grimnir_ if you want to contribute code to rakudo, then download the latest version thru git. If not, then go to the rakudo website and download the latest tarball. | 02:37 | |
Grimnir_ | ok, I don't understand the difference between list, seq and array. I'm trying to make a quicksort routine with "pattern matching" with multi subs. how can I make a multi sub quicksort for one element? "sub quicksort ($elem) { ... }" ? | ||
colomon | sub quicksort (@array where {@array.elems == 1}) { ... } | ||
Grimnir_ | ooh, nice | 02:38 | |
TimToady | sub quicksort ([$head]) | ||
02:38
nihiliad left
|
|||
colomon | ooh, nicer. | 02:38 | |
Grimnir_ | lue: so it's not a good idea to get the code from git if I only want to try it out? | ||
quietfanatic | rakudo: multi count (@list is copy) {@list.pop; return 1 + count(@list)}; multi count ($one) {return 1}; say count(3, 4, 5) | ||
p6eval | rakudo 9a9450: OUTPUT«No applicable candidates found to dispatch to for 'count'current instr.: '_block14' pc 29 (EVAL_1:0)» | ||
colomon | (I'm still not used to jnthn's new tricks.) | 02:39 | |
lue | (assistance requested from experts) It doesn't matter. (I really need assistance in answering; I'm a `beginner' myself) | ||
quietfanatic | rakudo: multi count (@list is copy) {@list.pop; return 1 + count(@list)}; multi count ($one) {return 1}; say count([3, 4, 5]) | ||
p6eval | rakudo 9a9450: OUTPUT«maximum recursion depth exceededcurrent instr.: 'parrot;P6object;HOW' pc 54 (runtime/parrot/library/P6object.pir:98)» | ||
quietfanatic | Doesn't work. | 02:40 | |
02:42
eternaleye left
|
|||
lue | My recommendation is thru git. It's not at the point where a tarball is (IMO) the best option, because the git is updated every hour :) | 02:42 | |
Grimnir_ | I can't get "multi sub quicksort ([$head])" to work | 02:43 | |
TimToady | std: my $x = 1sub foo {...} | ||
p6eval | std 29971: OUTPUT«===SORRY!===Two terms in a row (previous line missing its semicolon?) at /tmp/KSn7OvoapB line 2:------> <BOL>⏏sub foo {...} expecting any of: POST bracketed infix infix or meta-infix postfix | ||
..postfix_prefix_meta_operator statement mod… | |||
TimToady | that's better | 02:44 | |
02:45
eternaleye joined
|
|||
TimToady | if you're passing a list as flat args, you just want ($head) vs ($head,*@tail) | 02:47 | |
colomon | Seems to me I tried to write quicksort that way about eight months ago and it was a disaster... | 02:50 | |
(flat args, I mean) | |||
Tene | use.perl.org/~JonathanWorthington/journal/40196 is relevant | 02:53 | |
02:54
wknight8111 left
|
|||
lichtkind | gut navht | 02:54 | |
lue | night o/ | ||
lichtkind | night lue | ||
colomon | \o | ||
02:54
lichtkind left
|
|||
Tene | Grimnir_: what are the sigs of the other multis? | 02:56 | |
Grimnir_: are you using multi ([$head, *@tail]) {} ? | |||
Grimnir_: 'cos that's what I tried my first time doing that. It won't work 'cos it's ambiguous, 'cos *@tail can be empty. | 02:57 | ||
if you really want to do it like that, though, try: | 02:58 | ||
multi sub qs([$pivot, *@list where { +@list > 0 }]) { | |||
dalek | kudo: 3633cb8 | (Solomon Foster)++ | src/Perl6/Grammar.pm: Add infix_prefix_meta_operator and !op to the grammar. |
||
kudo: dee7104 | (Solomon Foster)++ | src/ (2 files): First attempt to create an action for !op. |
|||
kudo: df80392 | (Solomon Foster)++ | src/ (3 files): Change !op to generate an explicit call to an infix_prefix_meta_operator function. |
|||
Tene | which WFM | ||
dalek | kudo: 19c36a8 | (Solomon Foster)++ | src/ (5 files): Merge branch 'metanot' |
||
Grimnir_ | Tene: I use multi sub quicksort (@array) | ||
ok, so an array is always an array, no matter the size | 02:59 | ||
Tene | Yes. | ||
It's entirely possible there's a bug in the dispatcher. You'll have to check with jnthn, who is likely busy with convention stuff or sleeping right now. | 03:00 | ||
use.perl.org/~JonathanWorthington/journal/40196 is jnthn's blog post talking about using multi subs and signature unpacking to implement quicksort. | |||
He uses the empty list as his base case, instead of the unary list. | |||
TimToady | that might be about alpha | ||
Tene | TimToady: Feb 19 | 03:01 | |
lisppaste3 | tene pasted "list-size-based dispatch and unpacking for Grimnir_" at paste.lisp.org/display/96038 | 03:02 | |
colomon wonders how long it is going to take pmichaud to explain to him where the !op implementation goes wrong.... because it will be easy to knock out a couple more metaops along the same lines... :) | 03:04 | ||
Tene | okay, I think I know the order I'll sort this out in. | 03:08 | |
Now to go socialize and forget it all before I get a chance to work on it. | |||
Grimnir_ | how do you push an element on an array? | 03:11 | |
push @array, $elem ? | |||
Tene | or @array.push($elem) | ||
either | |||
Grimnir_ | hmm... can't get that example to work | 03:14 | |
but later | 03:15 | ||
I'm going to bed now | |||
cheers | |||
TimToady | night | ||
colomon | o/ | ||
lue | night o/ | ||
03:16
supernovus joined
|
|||
dukeleto | jnthn: nice to see that blizkost is getting some love | 03:17 | |
supernovus | So, I'm planning to move my website over to Perl 6 in one week. Not sure how it'll go yet. It's hosted on a 256 MB RAM VPS, but I'm going to try anyway. In less than a week I've managed to make the Perl 6 version of my custom CMS support 90% of the front-end facing side of things for the website. | 03:20 | |
03:21
elmex left
|
|||
supernovus | Oou, did I see Blizkost news? | 03:21 | |
lue | you want to run a website on P6 (interesting concept) | ||
? | |||
dukeleto | supernovus: blizkost got updated to be working again, since parrot calling conventions changed | ||
supernovus: github.com/jnthn/blizkost/commits/master | 03:22 | ||
supernovus | lue: Yeah. My current website runs on a highly custom CMS written in non-Moose, non-strict Perl 5... I have rewritten the entire engine in Perl 6. | ||
lue | Cool. (so it actually works? Wow) | ||
03:23
elmex joined
|
|||
supernovus | lue: Yeah, and it's fairly fast using SCGI. I do cheat a bit by pre-compiling libraries into .pir from .pm but the source is entirely Perl 6 :-) | 03:23 | |
For the record, I am using the January release of Rakudo (so what is now known as the 'alpha' branch), as a lot of my code does not compile under the new master (yet). | 03:25 | ||
lue | OK, now your initial statement makes complete sense :D | ||
03:26
lue is now known as Hackathon
03:28
am0c joined
|
|||
Hackathon | Sorry for the delay. Our grand total this hour is... $99999999999998 worth of bug fixes (around £3.4) | 03:28 | |
Thanks for your donations! Our robot operaters are standing by for YOUR bug reports! | |||
03:28
Hackathon is now known as lue
|
|||
supernovus | I am rather impressed with the performace of SCGI versus "normal" CGI. November may benefit from the SCGI library, at least until mod_perl6 works with versions of Parrot/Rakudo post November last year... | 03:29 | |
Hmm, I always seem to be here when masak isn't. Please let him know that I would like to help out with the Temporal Flux project. Getting some nice Time + Date stuff into Perl 6 would be a great pleasure! | 03:32 | ||
lue | are you talking about the TARDIS or the Temporal part of STD.pm? | 03:33 | |
s/STD.pm/Specs/ | |||
supernovus | lue: Well, masak had a project last year to rewrite the Temporal stuff from the Specs, and has a branch in github with the work he did. It was meant to make working with time/date stuff as simple as possible. But there hasn't been any commits since last year, and I'm not sure what happened to the project. If TARDIS is the new name, then great, I'm the world's biggest Doctor Who fan as well ;-) | 03:35 | |
lue | TARDIS is the codename for a timetraveling debugger masak and snarkyboojum are working on | ||
TARDIS = Time-Augmented Relative Debugging In Style (or something like that) | 03:36 | ||
supernovus | Nice. Well, it wasn't the debugger I had been following, but the new version of Temporal that masak had planned. Debugging is always nice though. Unfortunately, the only debugging library I ever wrote was loosely based on Damian's "Smart::Comments" and as source filters are no more in Perl 6, I'm not sure how to make comments be "more than comments" when a module is loaded using Perl 6. | 03:38 | |
lue | If you look a little back in the backlogs, then I came up with a plethora of Dr Who related codenames for this debugger | 03:40 | |
Debugging A Lot of Erroneous Kode (DALEK) :) | 03:42 | ||
supernovus | Nice! :-D | 03:46 | |
Well, hopefully, next Saturday I'll be able to say that my primary website is running Perl 6. I may still have the "archives" using my old engine until I get all of the documents ported over, but it should hopefully be a fairly smooth transition. IF the VPS handles a constantly running Perl 6 based SCGI process... | 03:48 | ||
03:48
hercynium joined
|
|||
supernovus | The only thing that worries me is, that a perl 6 script that runs in 5 seconds on my Quad Core 2.3 ghz, 4 GB RAM PC, takes about 30 seconds to run on my Dual Core 1.3 ghz, 1 GB RAM netbook... and I have no idea what the VPS is like CPU wise, but it only has 256 MB of RAM... :-P Now, SCGI renders things that the CGI script takes 5 seconds to, in 500 ms on my PC, so hopefully, it will help on the VPS as well... | 03:54 | |
lue | I have a CPU < 1GHz and 384MiB ram (twice that swap space) If it runs fine on my computer, it runs fine on any computer :) | 03:59 | |
supernovus | lue: Sounds good. I just double checked, and the VPS is actually 128 MB of physical memory (if there is such a thing in Xen) and 256 MB of swap space... but I'm crossing my fingers. The SCGI on my home computer works so well, I'm hoping it will do as well on the VPS :-) | 04:01 | |
lue | it's a Powerbook G3 Pismo. It can't get much worse :D | 04:02 | |
supernovus | Up until two days ago, I had a Dual P3 450mhz with 512 MB of RAM, which was built in 1998, sitting in my storage room. I think THAT probably would have been worse than the Powerbook ;-) | 04:04 | |
04:04
lue is now known as Hackathon
|
|||
Hackathon | And our total this hour is... £18 worth in bug fixes! (the equivalent in USD is too big to display, so we will be using pounds sterling throughtout the rest of the hackathon) | 04:05 | |
04:05
am0c left
|
|||
Hackathon | Remember, bug fix donations are welcome! And for this hour, the dollar amount of a bug report is doubled if sent in coherent 日本語! | 04:06 | |
04:06
Hackathon is now known as lue
|
|||
colomon | rakudo: my $a = 10; $a &&= 11; say $a | 04:07 | |
p6eval | rakudo 19c36a: OUTPUT«Null PMC access in invoke()current instr.: '!assign_metaop' pc 16783 (src/builtins/Junction.pir:319)» | ||
colomon | oh good, it's not just !&& that doesn't work. | ||
04:09
_jaldhar left
04:11
am0c joined
04:12
_jaldhar joined
|
|||
dalek | kudo: 54be6dd | (Solomon Foster)++ | src/Perl6/Grammar.pm: Comment noting a big hole in the !op implementation. |
04:12 | |
supernovus | Anyway, have a good nght all. I'll let you know how my website migration to Perl 6 goes. :-) | 04:13 | |
quietfanatic | colomon: shouldn't the precedence of !op be the same as that of op? | 04:14 | |
colomon | quietfanatic: and do you know how to implement that? :) | ||
quietfanatic | Nope : ) | ||
colomon | That's why I left a nice note hoping that someone who does will see it. :) | ||
04:15
supernovus left
|
|||
quietfanatic | colomon: is there a way to find the precedence of an operator? If so you could probably do that to $<infix>...or not, because infix gets called after infix_prefix_meta_op | 04:16 | |
ghrm... | |||
lue --go-away & | |||
quietfanatic | In that case, you'd put the <O()> after <infix> inside token infixish rather than infix_prefix_meta_operator... | 04:19 | |
but how would you get the precedence of $<infix>? | |||
04:22
kfo left
04:24
kfo joined
04:25
am0c left
04:28
wolf2k_ubuntu left
04:37
Trashlord joined
04:43
snarkyboojum left
04:46
_jaldhar is now known as jaldhar
|
|||
lue | hellos to all! | 04:49 | |
rakudo: say Doctor.WHO | 04:52 | ||
p6eval | rakudo 54be6d: OUTPUT«Could not find non-existent sub &Doctorcurrent instr.: '_block14' pc 29 (EVAL_1:0)» | ||
lue | rakudo: say "Doctor".WHO | 04:55 | |
p6eval | rakudo 54be6d: OUTPUT«Str» | ||
04:55
kfo left
05:04
ingy joined
|
|||
ingy | hi | 05:04 | |
lue | hello | 05:05 | |
ingy | I was wondering if anyone could tutor me for 5 mins in p6 | ||
I just got some basic q-s | |||
I got rakudo installed | 05:06 | ||
I could ask here or go private | |||
maybe I'll just ask here and wait to get kicked off or told to rtfm | |||
so far I can't seem to findTFM :\ | 05:07 | ||
i want to write a tiny script that uses a tiny module | |||
so the first q is file extensions for those? | |||
quietfanatic | The closest thing to a FM is the Spec, at perlcabal.org/syn/ | 05:08 | |
05:08
uniejo joined
|
|||
quietfanatic | file extensions for modules? | 05:08 | |
ingy | quietfanatic: yeah my task only needs a tiny bit of knowledge | ||
quietfanatic | oughta be .pm just like Perl 5 | ||
ingy | hmm ok | ||
I guess having it sit next to the p5 version won't work :) | 05:09 | ||
quietfanatic | Er, yeah :| | ||
ingy | next q then is how to alter the p6 @INC | ||
quietfanatic | though I believe (though I'm not sure) that you can specify the module name as a string in p6 | ||
ingy | also is the script .pl or .p6? | ||
quietfanatic | anyway... | ||
It's called @*INC in p6 | 05:10 | ||
ingy | ok, will try that | ||
ok | |||
quietfanatic | You could use either .pl or .p6. I use .p6 usually | ||
ingy | great | ||
quietfanatic | but I also use .pl a lot. | ||
ingy | next q is the `use` syntax | ||
quietfanatic | ought be more or less the same as p5 | 05:11 | |
as in: use My::Module; | 05:12 | ||
ingy | > perl6 hello_world.p6 | 05:13 | |
Could not find non-existent sub &use | |||
:\ | |||
quietfanatic | If you're a beginner, you can find a lot of information at perl.org/ | ||
Er | |||
hm... | |||
I mean perl6.org | |||
ingy | Um, I have about 100 modules on CPAN :) | ||
quietfanatic | (embarassing mistake there) | ||
I meant perl6.org/ It was a typo! | 05:14 | ||
ingy | oh | ||
:) | |||
yeah I looked at perlgeek.de/en/article/5-to-6 from there | 05:15 | ||
and it has nothing on modules | |||
quietfanatic | Anyway, it looks like 'use' may be borken currently... | ||
ingy | so I came here | ||
really??!! | |||
quietfanatic | my sentiments exactly | ||
ingy | is there a stable tag to pull from? | 05:16 | |
quietfanatic | Rakudo recently underwent a large refactor, so many things that used to work don't | ||
ingy | I see | ||
quietfanatic | the branch now known as 'alpha' has the older, more stable version | ||
I know that it can use 'use' | |||
ingy | will it know to grab the correct parrot?? | ||
quietfanatic | It oughta | ||
ingy | will you be here for a few? | 05:17 | |
quietfanatic | yeah. | ||
ingy | k, bbiab | 05:18 | |
:) | |||
05:22
kfo joined
05:26
k23z__ left
|
|||
ingy | quietfanatic: I'm feeling a little dumb here, but I'm not sure if I've properly switched to the alpha branch | 05:29 | |
can you tell me how to check, or just how to do it | |||
? | |||
quietfanatic | Hmm, I had a little trouble with that myself, to tell you the truth | ||
Let's see... | |||
ingy | I did | 05:30 | |
git checkout -b alpha origin/alpha | |||
quietfanatic | yeah something like that | ||
actually | |||
I had a -t in there somewhere | |||
ingy | what is something that I can look at to make sure it's right? | 05:31 | |
quietfanatic | Hmm... | ||
TimToady | alpha: (1...*).batch(10) | ||
p6eval | alpha 30e0ed: OUTPUT«Sorry, lazy lists and infinite ranges are not yet implementedin sub » | ||
quietfanatic | There's that :) | ||
TimToady | rakudo: (1...*).batch(10).say | ||
p6eval | rakudo 54be6d: OUTPUT«12345678910» | ||
quietfanatic | I think he wants something he can look at before he compiles... | 05:32 | |
but I don't know what that would be | |||
05:32
orafu left
|
|||
TimToady | I dunno, I just work here. | 05:33 | |
ingy | quietfanatic: right | ||
hi TimToady | |||
ltns | |||
TimToady | likewise | ||
you still up Seattle way? Taiwan? can't keep track of you... | |||
05:33
orafu joined
|
|||
quietfanatic | try looking at build/PARROT_REVISION | 05:33 | |
it'll say 43487 for alpha | |||
and 44705 for master | |||
ingy | ah | ||
git log | 05:34 | ||
:D | |||
it looks right | |||
quietfanatic | er, right :) | ||
ingy | Feb 1 moritz | ||
k | |||
TimToady: in Seattle. Taiwan visit soon. | 05:35 | ||
I'm trying to add p6 support to my new programming lang :) | |||
TimToady | it'll be another week or so till the new master gets back all of what alpha does, but then it will have all that and much cleaner innards | ||
ingy | awesome | ||
TimToady | including laziness | ||
ingy | I picked the wrong day to learn p6 | 05:36 | |
TimToady | heh, you'll still recognize much of the MOP, I suspect | ||
ingy | TimToady: what about impatience? | ||
XD | |||
araujo | morning | ||
ingy, doing a new lang? | |||
ingy | yeah | ||
it might take me all weekend to finish it | 05:37 | ||
so don't hold your breathe | |||
;) | |||
araujo | a whole weekend to finish a new lang??, why so long? | ||
;) | |||
ingy | I'm not a young man anymore :\ | 05:39 | |
TimToady | yeah, tell me about it... :) | ||
ingy | TimToady: at least you still got all your hair | 05:41 | |
and your one good eye ;) | |||
TimToady | well, the mustache is about half gray now, and the hair is starting in | ||
oh, I got half a good stomach too :) | 05:42 | ||
pity about the brain | |||
ingy | TimToady: your brain is pretty messed up, but it's one of my all time favorite brains. I was actually telling my gf about your brain earlier today! | 05:44 | |
05:44
quietfanatic_ joined
|
|||
ingy | I was telling her when you called that coin flip "sides!" | 05:44 | |
05:45
quietfanatic left,
quietfanatic_ is now known as quietfanatic
|
|||
TimToady | quietfanatic's X server is flapping for some reason | 05:46 | |
ingy | quietfanatic: the alpha build failed. I think I needed to delete the old parrot build. retrying... | ||
quietfanatic | I always use the --gen-parrot option myself | ||
which gets and builds parrot as well as rakudo | |||
TimToady | and makes sure to get the appropriate version | 05:47 | |
lue | unless someone mucks up the Configure script :D | 05:48 | |
ingy | quietfanatic: I did, but it didn't get the older parrot | ||
TimToady | ah, yeah, probably have to blow a newer one away then | 05:49 | |
or sometimes crud hangs around | |||
ingy | yep. it's all done now. use works. | 05:51 | |
TimToady | yay! | ||
ingy | now to get this thing working | ||
brb | |||
uniejo thinks that if s[<rule>] returns $/ in a way that can be assigned to we can say something like s[<rule>]<*><Year>++ (that is if the rule contains subrules having a Year token) | 05:52 | ||
05:54
am0c joined
|
|||
ingy | araujo: I'm writing the prototype for the new lang in Python. That's one thing slowing it down :) | 05:56 | |
05:56
cognominal left
|
|||
TimToady | ingy: well, I plan to get up really early to help support the hackathon in copenhagen, so I probably oughta wander off to bed pretty soon, but it's nice to hear from you | 05:58 | |
ingy | TimToady: likewise, if this works proceeds well, I might be around here more | 05:59 | |
TimToady: when's the virtual hackathon starting? | 06:00 | ||
TimToady | not sure, but it's nine hours different, so their 10am is our 1am :/ | 06:01 | |
I don't plan to get up quite *that* early... | |||
ingy | haha | 06:02 | |
does it happen here? | |||
TimToady | yeah | 06:03 | |
ingy | awesome. I'll poke my head in if possible | ||
TimToady | and if not, I'm sure there will be pointers | ||
ingy | k k | ||
I got a basic p6 script/module combo working btw | |||
oh, can I load a module called Foo.p6?? | 06:04 | ||
before you drift off... | |||
for now I call it Foo6.pm :\ | |||
06:04
gfx joined
|
|||
TimToady | in theory the interpreters can tell from the initial declaration which perl it is | 06:05 | |
one trick is that I often have a .pm in Perl 6, and a corresonding .pmc in p5 | |||
ingy | haha | ||
araujo | ingy, aah, that explain sit | 06:06 | |
:) | |||
TimToady | wc STD.pm 5759 20618 173552 STD.pm | ||
ingy | I happen to have the two modules sitting next to each other in this case | ||
TimToady | wc STD.pmc 99938 253658 2103714 STD.pmc | ||
we could probably allow a .pm6 | 06:07 | ||
ingy | I have a script/module ported to 9 languages all in one dir | 06:08 | |
lue Hackathon | |||
ingy | not a common situation | ||
06:08
lue is now known as Hackathon
|
|||
Hackathon | and this hour, our total is... £700 worth in bug fixes! (The equivalent amount in USD is 400 digits long!) Thank you, and our bot volunteers are waiting for your bug reports! | 06:09 | |
Hackathon lue | |||
06:09
Hackathon is now known as lue
|
|||
ingy | TimToady: .pm6 might help the rest of the programs in the world (like vim etc) that work from file extensions | 06:09 | |
lue | .oO(geez I'm mixing up commands right now) |
||
ingy | *shrug* | 06:10 | |
lue | there's actually a command you can put in the last line of your file so vim can at least format it as P6 | ||
ingy | nod | 06:11 | |
python3 seems to just use .py | |||
lue | I prefer .p6 myself just because it looks cooler :) | ||
TimToady | well, py3 isn't that much different from py2 | ||
ingy | although py3 is not quite the drastic change that p6 is | 06:12 | |
jynx | |||
lue | I can attest to that. Just some compatibility breaks in py3 | ||
06:12
athenot left
|
|||
TimToady | we have some compatibility breaks in p6 too :) | 06:12 | |
ingy | haha | ||
kinda like when using perl broke all the sed scripts ;) | 06:13 | ||
lue | I would love to have the program recognize things with an extension of .楽土 :) | ||
ingy | XD | ||
lue | (another crazy idea from Life, The Universe, and Everything) | 06:14 | |
ingy | that's frickin awesome | ||
06:14
athenot joined
|
|||
lue | lemme see... | 06:15 | |
TimToady | hmm, .珠 | ||
or .珠六 | 06:16 | ||
ingy | .茶 | ||
only lue's extension printed for me | 06:17 | ||
irssi+screen+linux+bsd+termcap != unicode-fun | 06:18 | ||
lue | what is that, TimToady? chinese? | ||
TimToady | either chinese or japanese | ||
lue | > perl6 p6test.楽土 | ||
hello world! | |||
ingy | lots of chinese is japanese | ||
lue: what is your char? | 06:19 | ||
TimToady | or vice versa | ||
ingy | I love it | ||
lue | char? | ||
ingy | your extension character | ||
TimToady | well, it doesn't care about the name of the main executable at all | ||
it's the module names that have more convention | |||
lue | the sign of a good program, not relying on extensions :) | 06:20 | |
araujo | ingy, any link for your new language? | ||
TimToady | well, I'm gonna turn in. | ||
night all! | |||
o/ | |||
lue | o/ | 06:22 | |
uniejo | night & morning here | ||
lue | (IBus is messing with my typing :/ Ah well, I'll live) | ||
ingy | hey, it works | ||
totally done | |||
thanks all | |||
I'll check it in now... | |||
lue | 楽土の卓と (lets hope I got THAT right... (I really ought to LEARN jp at some point, then I'll know the right kanji)) | 06:24 | |
ingy | github.com/ingydotnet/cdent/tree/ma...llo-world/ | 06:25 | |
Perl 6, represent! | |||
lue | ur doing it rong! | 06:26 | |
perl6 --represent #:) | |||
ingy | whatever that last kanji thing was, my terminal is fux0r'd | ||
lue | it (hopefully) said rakudo's waker. | 06:27 | |
ingy | ctl-l finally seems to have worked | ||
lue | japanese is fun. I will always believe that in the programming biz, it's a job requirement :D | ||
ingy | I like that thinking | 06:28 | |
it's like learning Haskell though :\ | |||
lue | I don't see what's hard about it (I haven't studied yet but still). The only difficult thing would be how much you have to learn, I find kanji quite `simple' | 06:29 | |
It's like using @ to represent at, or $ for scalar :) | |||
06:31
mikehh left
|
|||
lue | ゼルダの伝説 時のオカリナ If anyone knows what that says without looking it up, then you're as obssesed as I am :D | 06:32 | |
06:32
mikehh joined
06:36
new_per6_hacker joined
|
|||
quietfanatic | lue: it's not 卓と it's タクト, and it's not "waker" it's just baton. | 06:36 | |
lue: Oh I know exactly what that says btw | |||
06:36
mberends joined
|
|||
lue | ah yeah. I think of Wind Waker, where I got it from :) | 06:37 | |
06:37
Trashlord left
|
|||
lue | you're as obsessed as me :D | 06:37 | |
new_per6_hacker | mberends can you host slides of your presentation somewhere | ||
yesterday's presentation | |||
quietfanatic | lue: I basically grew up playing Zelda 1 on NES. | ||
mberends | new_per6_hacker: svn.pugscode.org/pugs/docs/talks/p6...010.03.odp | 06:38 | |
lue | The literal translation for the jp title of Spirit Tracks is Steam Whistle of Earth btw (that's a much cooler name) | ||
moritz_ | good morning | ||
lue | guten tag! | 06:39 | |
moritz_ stretches and yawns | |||
mberends | hi moritz_, were you a good sleeper? | ||
lue | mberends+=odp | ||
moritz_ | mberends: mostly, yes. Thanks | ||
mberends slept very well, having practiced doing that many times | 06:40 | ||
lue | I almost wish I were there (but I don't speak Danish (or is it Denmarkese)) | 06:41 | |
moritz_ | neither do I | ||
lue | you must get by with esperanto then :D | ||
mberends | lue Danish not required, these people are very English-friendly | ||
moritz_ | for some values of esperanto :-) | ||
06:42
mikehh left
|
|||
lue | 2+2=5 (for very large quantities of 2) | 06:42 | |
mberends | moritz_: shall I bring you your packet of stroopwafels? | 06:46 | |
uniejo guesses that large quantities of 2 needs to be represented as bigint | |||
lue | not BigInt. VeryBigInt :) | 06:47 | |
mberends waits for the VeryVeryBigBoolean to land ;) | 06:49 | ||
lue | I want QuantumBoolean :) | 06:50 | |
moritz_ | mberends: yes please | 06:56 | |
I'm also ready for breakfeast - what about you? (and masak and jnthn?) | |||
lue | what time is it o'er there? | 06:58 | |
moritz_ | 8am | 06:59 | |
lue: QuantumBoolean exists (True|False) | |||
06:59
am0c left
|
|||
lue | 9 hours difference between you and me (about) | 07:00 | |
moritz_ | it's amazing that we find any common uptime :-) | ||
ingy | hi moritz_ | 07:01 | |
07:02
am0c joined
|
|||
pugssvn | r29972 | moritz++ | [t/spec] slight re-fudges for Rakudo | 07:03 | |
lue | I am up at a long range of day :) | ||
moritz_ | hi ingy | ||
lue | just not 11PM-8AM typically (unless it's a weekday, then my not here time is longer) :) | 07:04 | |
new_per6_hacker | Is perlito also a perl6 implementation? | 07:05 | |
moritz_ | new_per6_hacker: it's an implementation of a small subset of Perl 6 | ||
07:05
snarkyboojum joined
|
|||
new_per6_hacker | It didn't have a mentions in mberends ppt | 07:05 | |
07:06
lue is now known as Hackathon
|
|||
Hackathon | and at this hour, the total is... £2400 worth in bug fixes ! (the equivalent in USD is 65536 digits long! It's also equivalent to €7000) | 07:08 | |
new_per6_hacker | Sorry it has | ||
Hackathon | Thanks to all our volunteers, and remember our robot operators are standing by for YOUR bug reports! | 07:09 | |
07:09
Hackathon is now known as lue
|
|||
lue | (yes, I am treating the hackathon similar to a telethon. I warned you :D) | 07:11 | |
07:11
mberends left
|
|||
lue | time for my bed (which is not in Copenhagen :( ) | 07:13 | |
lue --sleep & | |||
07:13
borup left
|
|||
new_per6_hacker | Does the Perl 6 spec have its own releases | 07:14 | |
07:15
borup joined
|
|||
new_per6_hacker | Does the perl 6 specification have its own releases? | 07:17 | |
07:26
k23z__ joined,
k23z__ left,
k23z__ joined
07:28
saleem joined
|
|||
diakopter | new_per6_hacker: not yet | 07:34 | |
07:36
diakopter sets mode: -o diakopter
|
|||
new_per6_hacker | ok, I thought specification makes a release and then the implementations try to match them | 07:40 | |
So there is specification release and a corresponding implementation release | 07:41 | ||
07:42
mberends joined
|
|||
diakopter | nope | 07:43 | |
the specification responds to the implementations and vice versa | |||
08:00
new_per6_hacker left
08:05
PZt left
|
|||
pugssvn | r29973 | baest++ | Untodo some passing tests | 08:06 | |
r29974 | baest++ | Unfudge another passing test | 08:07 | ||
08:10
iblechbot joined
|
|||
ingy | zomg! | 08:11 | |
I just added python3 support to github.com/ingydotnet/cdent/tree/ma...llo-world/ | |||
in python 2 to print without a newline was: print "foo", | 08:12 | ||
just add a comma | |||
now it's: print("foo", end="") | |||
FAIL | |||
the parens are required too, as it is now a function call | 08:13 | ||
08:14
gbacon left
|
|||
mberends | the Breakfast Club is impressed :) | 08:14 | |
that is, masak moritz arnsholt and /me | 08:16 | ||
ingy | greetings Breakfast Club | 08:17 | |
08:17
fridim joined
|
|||
diakopter | ingy: today I'm feeling Dronish | 08:20 | |
ingy | diakopter: time to get your Leet on! | 08:25 | |
mberends | walking to Copenhagen hackathon & | 08:28 | |
08:28
mberends left
08:29
Trashlord joined
08:30
eternaleye left
|
|||
baest | hehe, "Unfortunately Patrick Michaud (?Pm?) is able to participate" from the hackathon wiki, whoops should have been unable :) | 08:30 | |
08:34
eternaleye joined
08:37
uniejo left
08:52
PZt joined
08:58
gfx left
09:14
rv2733 left
09:26
uniejo joined
09:28
martinro joined
|
|||
moritz_ | arrived at Copenhagen hackathon | 09:28 | |
jnthn | oh hai | ||
09:29
masak joined
|
|||
masak | OH HAI from the hackathon in Copenhagen! \o/ | 09:29 | |
09:31
mberends joined
|
|||
masak | lue: the .WHAT.say error has been reported already, I believe. | 09:31 | |
not that I blame you for not knowing that :) | |||
rakudo: (1,2,3).WHAT.say | 09:32 | ||
p6eval | rakudo 54be6d: OUTPUT«» | ||
baest | jnthn++ # your + fix worked | 09:34 | |
masak | rakudo: my $a = 10; $a &&= 11; say $a | 09:36 | |
p6eval | rakudo 54be6d: OUTPUT«Null PMC access in invoke()current instr.: '!assign_metaop' pc 16783 (src/builtins/Junction.pir:319)» | ||
masak submits rakudobug | |||
rakudo: my $a = 10 && 11; say $a | |||
p6eval | rakudo 54be6d: OUTPUT«11» | ||
jnthn | baest: \o/ | ||
masak | rakudo: my $a = 10; $a = $a && 11; say $a | ||
p6eval | rakudo 54be6d: OUTPUT«11» | ||
masak | so the error has to do with the &&= operator. | 09:37 | |
snarkyboojum | hello Copenhagen hacker dudes - I hope the hackage goes well :) | 09:38 | |
baest | rakudo: say 3.14159265358979323846264338327950288419716939937510e0; | 09:39 | |
p6eval | rakudo 54be6d: OUTPUT«Multiple Dispatch: No suitable candidate found for 'multiply_float', with signature 'PNP->P'current instr.: 'perl6;Perl6;Actions;_block5211' pc 200060 (src/gen/perl6-actions.pir:10706)» | ||
masak | rakudo: my $a = 0; $a ||= 11; say $a | ||
p6eval | rakudo 54be6d: OUTPUT«Null PMC access in invoke()current instr.: '!assign_metaop' pc 16783 (src/builtins/Junction.pir:319)» | ||
baest | why are we doing a perl -e "" > src/gen/core.pir? Is that to ensure that core is built every time? | 09:43 | |
jnthn | baest: We have no core setting for the stage 1 | 09:44 | |
moritz_ | baest: I think because there are two build stages | ||
jnthn | baest: So we just empty that file for the first stage. | ||
moritz_ | for the first stage we don't need core.pir, ... jnthn was faster | ||
baest | :) | ||
uniejo | rakudo: say 0.0000000000000000000000000000000 | ||
09:44
saleem left
|
|||
p6eval | rakudo 54be6d: OUTPUT«Nominal type check failed for parameter '$b'; expected Int but got Num insteadcurrent instr.: 'perl6;Rat;gcd' pc 318987 (src/gen/core.pir:37592)» | 09:44 | |
jnthn | I used to have two different .pir files for stage 1 and stage 2, but it was mostly duplication. | ||
moritz_ | hugme: list projects | ||
hugme | moritz_: I know about book, gge, hugme, ilbot, json, november, nqp-rx, nqpbook, perl6-examples, proto, svg-matchdumper, svg-plot, temporal-flux-perl6syn, tufte, web | ||
phenny | hugme: 28 Feb 05:00Z <lue> tell hugme it's great to have you back! | ||
baest | ok, thanks it's just taking a while to rebuild | ||
moritz_ | hugme: show nqp-rx | 09:45 | |
hugme | moritz_: the following people have power over 'nqp-rx': PerlJam, TimToady, [particle], jnthn, masak, moritz_, pmichaud. URL: github.com/perl6/nqp-rx/ | ||
masak | snarkyboojum: did you have a chance to check the source code updates of tardis? | ||
moritz_ | arnsholt: want commit access? what's your github ID? | ||
arnsholt | I'm arnsholt at Github as well | ||
snarkyboojum | masak: yep - sure did | ||
moritz_ | hugme: add arnsholt to nqp-rx | 09:46 | |
hugme | moritz_: You need to register with freenode first | ||
masak | snarkyboojum: nice! the two first tests pass! :) | ||
moritz_ | dang. | ||
masak | hugme: hug hugme | 09:49 | |
hugme hugs hugme | |||
snarkyboojum | masak: aye :) was hoping to quiz you on it through the week and try my hand at doing something semi-productive :) | ||
moritz_ | hugme: add arnsholt to nqp-rx | ||
hugme | moritz_: You need to register with freenode first | ||
masak | snarkyboojum: right now, making the next test pass would be more than semi-productive :) | ||
moritz_ | hugme: I am. Stupid bot. | ||
masak | hugme: add arnsholt to nqp-rx | ||
hugme | masak: You need to register with freenode first | ||
jnthn | hugme: add arnsholt to nqp-rx | ||
hugme | jnthn: You need to register with freenode first | ||
masak hugs hugme | |||
there's a bug in hugme. | |||
moritz_ | ORLY? | ||
:-) | |||
mberends | hugme: hug /me | ||
hugme hugs /me | |||
masak | YA RLY. | ||
09:49
am0c left
|
|||
snarkyboojum | masak: look like a nice challenge :) | 09:49 | |
09:49
hugme left
|
|||
masak | snarkyboojum: but expect git collisions, because I'll be trying to do the same. :) | 09:49 | |
snarkyboojum | masak: excellent - probably the best way for me to learn .. i.e. have a go and then see how it should be done ;) | ||
masak | I don't necessarily think that the double effort will be wasted. it's more a case of ending up on the same wavelength. | ||
yes, exactly. | |||
I see it's happening already. :) | |||
09:50
hugme joined
|
|||
snarkyboojum nods | 09:50 | ||
moritz_ | hugme: add arnsholt to nqp-rx | ||
hugme | moritz_: You need to register with freenode first | ||
moritz_ | $w->{identified} is undef. Dang. | ||
09:50
hugme left
|
|||
masak turns on tdd-harness | 09:50 | ||
let's go! :) | |||
09:50
hugme joined
|
|||
moritz_ | hugme: add arnsholt to nqp-rx | 09:51 | |
hugme | moritz_: You need to register with freenode first | ||
09:51
hugme left
|
|||
Trashlord | heh | 09:51 | |
masak: how's it going buddy? | |||
masak | Trashlord: there's electricity, wifi, and a practically unlimited supply of liquid here. could be worse :P | 09:52 | |
Trashlord: also, all the people around me are talking about Perl 6, which makes me very happy. :) | 09:53 | ||
09:53
Su-Shee joined
|
|||
jnthn | docs.parrot.org/parrot/latest/html/...t.pod.html | 09:53 | |
masak: huh, where da liquid? | 09:54 | ||
masak | jnthn: to your left :) | ||
s/left/right/ | |||
Su-Shee | long night? ;) | ||
masak | or short, depending on how you see it. | ||
I've seemingly been running on hacker fuel for the past two nights. slept 4 and 5 hours, respectively. not nearly as tired as I should be. | 09:55 | ||
09:56
hugme joined
|
|||
Trashlord | woah | 09:56 | |
that's awesome | |||
masak | snarkyboojum: also, if you get stuck, better to chat me up than to struggle in isolation. | ||
Trashlord | I once sat in front of the computer, coding, for 37 hours straight | ||
I should do it again sometime | |||
masak | that sounds singularly unhealthy :) | ||
09:56
krr joined
|
|||
Trashlord | of course | 09:56 | |
snarkyboojum | masak: yep - will/would do | ||
Trashlord | I could not fall back asleep | ||
masak | Trashlord: what did you work on? | ||
Trashlord | I don't even remember | 09:57 | |
it was ~7 years ago | |||
all I remember is that I tried to go to sleep at around 5am, after being up for almost 2 days straight, but couldn't fall asleep, so I just lied in my bed | 09:58 | ||
masak | Trashlord: I've had one or two all-nighters with GGE, in the most intense parts of the implementing. | ||
but that was 'intentional'. | |||
jnthn | Telling the truth in bed is overrated. | ||
Trashlord | ha | 09:59 | |
masak | jnthn++ # grammar nazi punster | ||
Trashlord | well, English is not my first language, I always have an internal debate: Lied, or Layed? Laying, or Lying? | 10:00 | |
masak | Trashlord: grammar.quickanddirtytips.com/lay-v...s-lie.aspx | ||
Trashlord | ha, thanks | ||
dalek | kudo: 3113ee8 | jonathan++ | t/spectest.data: S02-literals/quoting-unicode.t needs to be marked as needing ICU. |
10:02 | |
masak | we've established here in meatspace that it's an ablaut phenomenon. | ||
Trashlord | hm | 10:03 | |
so I just lied down on my bed | 10:04 | ||
masak | Trashlord: or "I just laid on my bed". | ||
Trashlord | thanks for that | 10:05 | |
I didn't know you could say it that way | |||
moritz_ | hugme: add arnsholt to nqp-rx | 10:06 | |
hugme hugs arnsholt. Welcome to nqp-rx! | |||
jnthn | pir::set__SP | ||
moritz_ | arnsholt: finally works now; sorry for the many rouge hilights | ||
masak | rakudo: IO.WHAT.say | ||
p6eval | rakudo 54be6d: ( no output ) | ||
masak | that's rt.perl.org/rt3/Ticket/Display.html?id=68594 -- that one's still open. | ||
rakudo: [].WHAT.say | 10:07 | ||
p6eval | rakudo 54be6d: OUTPUT«Null PMC access in elements()current instr.: 'perl6;SeqIter;get' pc 13990 (src/builtins/Routine.pir:113)» | ||
masak | jnthn: that's rt.perl.org/rt3/Ticket/Display.html?id=72960 | ||
arnsholt | rakudo: my $a = 3; say "$a".WHAT; # jnthn | ||
p6eval | rakudo 54be6d: OUTPUT«Int()» | ||
baest | moritz_: heh, it worked fine, but was printing 0101011 stuff in top of the core.pir and therefore wouldn't compile :) | 10:08 | |
dalek | kudo: 125e872 | jonathan++ | src/metamodel/ClassHOW.pir: Make sure type objects are marked as scalars, so we .WHAT.say works on various things it was fail on before. |
||
jnthn | PAST::Op.new( :pirop('set SP'), $thingy ) | ||
arnsholt | moritz_: No problem. irssi only highlights me if my nick is on the beginning of the line | ||
10:09
gbacon joined
|
|||
moritz_ | great | 10:09 | |
masak | #perl6 will be especially inscrutable for non-hackathoners today. | ||
Trashlord | you guys like psychedelic trance? | 10:10 | |
uniejo | rakudo: say ^"a" # psychedelic trance (timeout) | 10:11 | |
masak | Trashlord: generally, I tend to like a firm grip on reality better. | ||
p6eval | rakudo 54be6d: ( no output ) | ||
moritz_ | gist.github.com/321596 | ||
arnsholt | Trashlord: I've listened to Dire Straits a lot recently =) | 10:12 | |
moritz_ | arnsholt: me too (but not only recently :-) | ||
jnthn | oh hai moritz_, I gived you an RT ticket. | ||
:-) | |||
masak | moritz_: me too (but not only Dire Straits :-) | 10:13 | |
wow, it's so amazing to be back in a fast code-compile-test loop. | 10:15 | ||
moritz_ | fast? then it can't be based on rakudo :/ | ||
moritz_ takes a look at S11 | |||
it has a very interesting loop | 10:17 | ||
S11:204 | 10:18 | ||
and below | |||
baest: any success with debugging by print statements yet? | 10:19 | ||
masak | moritz_: it is based on Rakudo. | ||
moritz_: and it's fast, compared to GGE. | |||
moritz_ | so we need find_module_defining, load_module, $scope.install_alias | ||
baest | moritz_: no, it prints on top of the generated pir :) and that doesn't compile well | 10:21 | |
moritz_ | ouch | ||
baest | any pointers on how to debug something in actions. There is a computation going wrong and I'm not sure which numbers it's using. It is possible to debug that somehow? | 10:22 | |
masak | baest: using print statements? | 10:24 | |
masak is a traditionalist | |||
moritz_ | masak: the problem is that action statements also print PIR to STDOUT | 10:25 | |
baest | yes | ||
I like prints as well | |||
masak | :( | ||
moritz_ | masak: so debug statements and desired output is mixed => BOOM | ||
masak | that's... unfortunate. | ||
print to $*ERR? | |||
is that possible in nqp? | 10:26 | ||
baest wouldn't know | |||
10:27
orafu left,
orafu joined
|
|||
arnsholt | jnthn: "Can't form :w list from non-constant strings (yet) at [stage2...]" sound familiar? | 10:29 | |
jnthn | arnsholt: no. That's...very odd. :-/ | 10:30 | |
10:31
nadim joined
10:37
masak left
10:38
snarkyboojum left
10:39
jonasbn joined
|
|||
jonasbn | morning ppl | 10:39 | |
moritz_ | \o/ jonasbn :-) | ||
jonasbn | is the sub MAIN and sub USAGE working? | 10:40 | |
jonasbn needs CLI arguments | |||
moritz_ | jonasbn: I think USAGE never worked | ||
10:41
masak joined
|
|||
jonasbn | okay, but for MAIN, any examples around, the docs are pretty skinny | 10:41 | |
moritz_ | oops, doesn't work in master | ||
perlgeek.de/blog-en/perl-5-to-6/14-main-sub.html that's how it should work | 10:42 | ||
jonasbn | :) | 10:43 | |
10:44
quietfanatic left
|
|||
jonasbn | so should I file a rakudo bug or should I just move on... | 10:44 | |
masak | I think MAIN worked to an extend in alpha. | 10:45 | |
s/extend/extent/ | |||
moritz_ | jonasbn: please do both :-) | ||
masak | Perl 6 is a lot about doing both. :) | 10:46 | |
10:46
meppl joined
10:47
krr left
10:48
szabgabx left
|
|||
baest | MAIN was called in alpha, dunno how much it did | 10:49 | |
colomon | o/ | 10:50 | |
re the &&= bug -- the bug actually is in &&, more or less. | |||
masak | baest: it did everything up to named parameters or something like that. | ||
colomon | the issue seems to be that there is no &infix:<&&> | 10:51 | |
masak | colomon: yes. jnthn++ explained that to me in meatspace. | ||
still a bug, though. | |||
colomon | it also means I had two working versions of the !op meta yesterday. | ||
masak | there's no &infix:<&&> because && is special, because it short-circuits. | ||
colomon | my first version worked, but I only tried testing it with !&&, so I thought I didn't. | 10:52 | |
s/I/it | |||
masak | std: 3 !&& 4 | ||
p6eval | std 29974: OUTPUT«ok 00:01 107m» | ||
colomon | rakudo: say 3 !+ 4 | ||
p6eval | rakudo 125e87: OUTPUT«0» | ||
colomon | rakudo: say 3 !+ -3 | ||
p6eval | rakudo 125e87: OUTPUT«1» | ||
masak | std: 3 !+ 4 | 10:53 | |
p6eval | std 29974: OUTPUT«===SORRY!===Can't negate + because additive operators are not iffy enough at /tmp/1dJHhjj6i4 line 1:------> 3 !+⏏ 4FAILED 00:01 105m» | ||
masak submits rakudobug | |||
not iffy enough. | |||
colomon | not iffy enough?! | ||
masak | right. that's what I said. :) | ||
colomon: irclog.perlgeek.de/perl6/2009-02-01#i_878319 | 10:54 | ||
colomon | anyway, now I don't know which implementation of !op is the right one to have. | ||
baest | wheee success in debugging actions. Just edit resulting actions.pir and make src/gen/perl6.pbc :) and then compile the perl6 | 10:56 | |
colomon | masak: I see "iffy" there, but I don't see much in the way of explanation that I understand? | 10:57 | |
masak | colomon: ok, so an iffy operator is one which produces a boolean-ish answer. | 10:58 | |
colomon: basically, all the logical ops, comparison ops, and %. | |||
colomon | masak++ 3 | 11:00 | |
masak | two terms in a row :P | 11:01 | |
colomon | Is there a way to dump unpushed changes in git? | 11:03 | |
other than just blowing away your tree, I mean? | |||
masak | colomon: git reset --hard <commithash> | 11:04 | |
colomon | masak++ | ||
masak | the old commits can still be accessed through 'git reflog'. | 11:05 | |
11:07
payload left
|
|||
jonasbn | how do I shrink an array? | 11:09 | |
masak | jonasbn: @a = @a[0..$shorter]; | 11:10 | |
jonasbn | I need splice | ||
perl5 splice | |||
masak | there's a splice. | ||
at least in alpha. | |||
jonasbn | ah okay | ||
masak | I just tend not to use it much :P | ||
colomon | rakduo: my @a = 1..10; say @a.perl | 11:11 | |
masak | (especially since I've seen how it's implemented :P) | ||
jonasbn | I love it, since programing perl 1. ed. which had a marvellous explanation | ||
ah | |||
hehehe | |||
colomon | rakudo: my @a = 1..10; say @a.perl | ||
p6eval | rakudo 125e87: OUTPUT«[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]» | ||
colomon | rakudo: my @a = 1..10; say @a.splice(2,3,'a'..'c').perl | 11:12 | |
p6eval | rakudo 125e87: OUTPUT«[3, 4, 5]» | ||
colomon | right. | ||
akudo: my @a = 1..10; say @a.splice(2,3,'a'..'c').perl; say @a.perl | |||
rakudo: my @a = 1..10; say @a.splice(2,3,'a'..'c').perl; say @a.perl | |||
p6eval | rakudo 125e87: OUTPUT«[3, 4, 5][1, 2, "a", "b", "c", 6, 7, 8, 9, 10]» | ||
colomon | (it's too early here.) | ||
11:13
payload joined
|
|||
masak | do we have Array.grab ? | 11:14 | |
I think jonasbn just found a use case for it :) | |||
colomon | not that I know of it. | ||
what does .grab do? | |||
masak | it's sort of a mutating .pick | ||
jonasbn | masak: bingo | ||
masak | :) | ||
colomon | choose something random and eliminate it from the array? | 11:15 | |
jonasbn | colomon: it is the technique I use in Games::Bingo, so I do not have to search a large array every time a number is called | 11:16 | |
colomon | it would be pretty easy to cut-n-paste the .pick code and hack it to do that. | ||
tricky bit might be a proper refactor. | |||
basically that's exactly what .pick does internally now. | 11:17 | ||
I was actually going to change that, because it would be more efficient to not change the internal array when an item is picked. | 11:18 | ||
masak | rakudo: sub x(&) {};x | 11:20 | |
p6eval | rakudo 125e87: OUTPUT«Not enough positional parameters passed; got 0 but expected 1current instr.: 'x' pc 179 (EVAL_1:77)» | ||
masak | rakudo: sub x(&) {};x(42) | ||
p6eval | rakudo 125e87: OUTPUT«Nominal type check failed for parameter '(null)'; expected Callable but got Int insteadcurrent instr.: 'x' pc 180 (EVAL_1:77)» | ||
masak | rakudo: sub x(&) {};x({say "OH HAI"}) | ||
p6eval | rakudo 125e87: ( no output ) | ||
masak | alpha: sub x(&) {};x | ||
p6eval | alpha 30e0ed: OUTPUT«Cannot take substr outside stringin Main (file <unknown>, line <unknown>)» | ||
masak | grr. | 11:21 | |
11:29
payload left,
payload joined
|
|||
colomon | so, I get 25678 passing tests this morning. | 11:29 | |
I want to challenge the hackathoners to make it 30,000. | 11:30 | ||
sorry, 26,000 thousand | |||
masak | that's 26 million... | ||
jonasbn | colomon: then you might have to show, we are in the design phase, then lunch then, nap, then beer | ||
colomon | see earlier too early comment. | 11:31 | |
arnsholt | Yeah. I don't think I'm able to write tests that fast ^^ | ||
colomon | 26,000 | ||
11:31
jonasbn is now known as jonafk
|
|||
colomon | it's only 322 tests to bring back on-line or write. | 11:31 | |
masak | colomon: it's a good idea. | 11:32 | |
colomon: most people are caught up in a discussion up at the whiteboard right now. | |||
colomon: they are talking about S11-ish things. | |||
they seem to be making good, concrete progress, and are about to take action. | 11:33 | ||
colomon | \o/ | ||
baest | rakudo: say 3.14159265358979323846264338327950288419716939937510e0; | 11:37 | |
p6eval | rakudo 125e87: OUTPUT«Multiple Dispatch: No suitable candidate found for 'multiply_float', with signature 'PNP->P'current instr.: 'perl6;Perl6;Actions;_block5211' pc 200064 (src/gen/perl6-actions.pir:10706)» | ||
mberends | the S11 meeting thinks it has reached consensus, now to write it up... | ||
masak | ++mberends | 11:38 | |
baest | colomon: right now 3.14159265358979323846264338327950288419716939937510e0 is evaluated to 3.86496357207557 in rakudo. Not very precise :) I'm looking into it and it's because the base num is overflowing | 11:39 | |
colomon | baest: yeah, I know. | ||
baest | colomon: oh | ||
colomon | I tried to fix it a week ago with no luck. | ||
baest | damn | 11:40 | |
colomon | please take a crack at it! | ||
you may see a fix that I missed | |||
baest | I'm not sure I have a clue on howto. If we only have int to store the base in, then we will have problems | 11:41 | |
colomon | one thing I thought of but didn't try was storing base as the number of zeroes needed for base, rather than the actual number. | ||
so instead of base == 1000, you'd have base == 3, and then use 10 ** base in the calculations. | 11:42 | ||
baest | that could work | ||
I will try if that overflows somewhere else :) | |||
masak | "Perl 6: pi is 3.8; we're working on it..." | ||
colomon | but there are still possible math issues to finesse... | ||
k23z__ | 3.8 :) | 11:43 | |
masak | "Perl 6: reinventing the circle" | ||
11:43
payload left
|
|||
baest | actually on my computer: ./perl6 -e 'say pi()'; returns 3.14159265358979 | 11:43 | |
masak | \o/ | ||
moritz_ | baest: ship it! | 11:44 | |
colomon | rakudo: say pi | ||
p6eval | rakudo 125e87: OUTPUT«3.14159265358979» | ||
colomon | it is specified carefully so the overflows don't happen. :) | ||
baest | rakudo: say pi(); | 11:45 | |
p6eval | rakudo 125e87: OUTPUT«Could not find non-existent sub &picurrent instr.: '_block14' pc 29 (EVAL_1:0)» | ||
colomon | rakudo: say pi.Rat(1e-10).perl | ||
p6eval | rakudo 125e87: OUTPUT«312689/99532» | ||
baest | colomon: oh, it is changed from a sub to a constant? | ||
colomon | baest: yes | ||
baest | I just implemented that sub... | ||
colomon | I'm not sure we have the constant properly set up (as per spec), but we do have the constant. | ||
baest | heh, ok, the pi.t calls the sub so I implemented it | 11:46 | |
colomon | pi.t is a sad, sad test file. :) | 11:47 | |
arnsholt | Which one of them? O=) | ||
baest | arnsholt: both | ||
arnsholt | Hehe | ||
11:50
iblechbot left
|
|||
k23z__ | I'm so tired, I cannot distinguish red from white on the numbers that irssi associates with a channel | 11:52 | |
jnthn | alpha: subset Even of Int { $^n % 2 == 0 }; say Even.WHAT | ||
p6eval | alpha 30e0ed: OUTPUT«Confused at line 10, near "{ $^n % 2 "in Main (file <unknown>, line <unknown>)» | ||
k23z__ | so when I look at the screen I cannot say exactly if someone wrote a new message on a channel or its just my vision ... | ||
jnthn | alpha: subset Even of Int where { $^n % 2 == 0 }; say Even.WHAT | ||
p6eval | alpha 30e0ed: OUTPUT«()» | ||
masak | rakudo: sub foo(Int $a, $b) {}; foo("OH HAI") | 11:54 | |
p6eval | rakudo 125e87: OUTPUT«Nominal type check failed for parameter '$a'; expected Int but got Str insteadcurrent instr.: 'foo' pc 186 (EVAL_1:79)» | ||
masak | jnthn: it surprises me that it does the type check in this case, rather than fail on not-enough-required arguments. | ||
rakudo: class A { method foo(&c) { &c() }; method bar() { foo({ say self.WHAT }) } }; A.new.bar | 11:57 | ||
p6eval | rakudo 125e87: OUTPUT«Could not find non-existent sub &foocurrent instr.: 'perl6;A;bar' pc 551 (EVAL_1:237)» | ||
masak | rakudo: class A { method foo(&c) { &c() }; method bar() { self.foo({ say self.WHAT }) } }; A.new.bar | 11:58 | |
p6eval | rakudo 125e87: OUTPUT«A()» | ||
masak | rakudo: class A { method foo(&c) { &c() } }; class B { method bar() { A.new.foo({ say self.WHAT }) } }; B.new.bar | ||
p6eval | rakudo 125e87: OUTPUT«B()» | 11:59 | |
masak | what if I wanted the above to print «A()» instead? | ||
rakudo: class A { method foo(&c) { &c() } }; class B { method bar() { A.new.foo(method { say self.WHAT }) } }; B.new.bar | |||
p6eval | rakudo 125e87: OUTPUT«Not enough positional parameters passed; got 0 but expected 1current instr.: 'perl6;B;_block120' pc 893 (EVAL_1:359)» | ||
masak | hrm. | ||
rakudo: class A { method foo(&c) { &c(self) } }; class B { method bar() { A.new.foo(method { say self.WHAT }) } }; B.new.bar | 12:00 | ||
p6eval | rakudo 125e87: OUTPUT«A()» | ||
masak | ah. | ||
moritz_ | rakudo: class A { method foo(&c) { c(self) } }; class B { method bar() { A.new.foo(method { say self.WHAT }) } }; B.new.bar | ||
p6eval | rakudo 125e87: OUTPUT«A()» | 12:01 | |
moritz_ | masak: you don't need that & inside the method | ||
masak | moritz_: yeah, I just like the &c() form for clarity. | ||
moritz_ | bad golfer, no wine gum :-) | ||
masak | it's not a bug! | ||
12:02
jonafk is now known as jonasbn
|
|||
TimToady | abstraction, sedition, uglification, and derision... | 12:03 | |
12:03
iblechbot joined
12:04
TimToady sets mode: +vvvv buubot dalek hugme iblechbot,
TimToady sets mode: +vv ilogger2 IRSeekBot,
TimToady sets mode: +vvv lisppaste3 p6eval phenny
12:05
mikehh joined
|
|||
masak .oO( Don't drink and deride... ) | 12:05 | ||
jonasbn: how's the bingo going? | 12:07 | ||
baest | colomon: hmm, the base = 50 thing doesn't work well also. Also the fraction (14159265358979323846264338327950288419716939937510) is -4650192984935729434 so overflow there also | 12:08 | |
wow that was a lot of alsos :) | |||
mberends | baest: why didn't you also begin with an also? | 12:09 | |
baest | mberends: I didn't know I wanted to go overboard at that point :) | 12:10 | |
jonasbn | masak: okay | ||
mberends | baest: also a good point | ||
colomon | also, bother. | ||
baest | oh well, rakudo 1 baest 0 | 12:11 | |
jonasbn | what it the main hub for Perl6 documentation? | 12:13 | |
perl6.org | |||
? | |||
colomon | perlcabal.org/syn/ | ||
moritz_ | perl6.org | ||
perlcabal.org/syn/ is "just" spec | |||
TimToady | we're trying to send everyone to perl6.org first, just to weed out all the butterflyphobes | 12:14 | |
mberends | jonasbn: depends on the kind of document. the Perl 6 wiki is very open for collaboration www.perlfoundation.org/perl6 | ||
moritz_ | and perl6.org is supposed to link to them all :-) | ||
TimToady | it flits from one to the other | 12:15 | |
moritz_ wears a butterfly right now | |||
mberends | moritz_++ really does! | ||
masak | my door is a butterfly. | 12:16 | |
TimToady | moritz_++ is a Manly Man, not threatened by a wee bug. | ||
masak .oO( bugme ) | |||
12:16
fridim left
|
|||
masak | there are so many readings of that! | 12:16 | |
TimToady | E2MANY | 12:17 | |
pmichaud | good morning, #perl6 | ||
colomon | o/ | ||
TimToady | good morning, pmichaud++ | ||
masak | pmichaud! \o/ | ||
jnthn | morning, pmichaud :-) | ||
baest | rakudo: say 3.2e0; | 12:18 | |
p6eval | rakudo 125e87: OUTPUT«3.2» | ||
baest | rakudo: say 3.14159265358979323846264338327950288419716939937510e0; | ||
12:18
cognominal joined
|
|||
p6eval | rakudo 125e87: OUTPUT«Multiple Dispatch: No suitable candidate found for 'multiply_float', with signature 'PNP->P'current instr.: 'perl6;Perl6;Actions;_block5211' pc 200064 (src/gen/perl6-actions.pir:10706)» | 12:18 | |
pmichaud | how goes hackathon? Anything specific needed from me at the moment? | 12:19 | |
baest | oh, well, atleast I can fix that one, if not correct handling of that big numbers | 12:20 | |
colomon | infodump for pmichaud: I got two different versions of the meta op !op working yesterday -- luckily both are committed, the second on top of the first. Definitely still needs work, I know, and you may want to switch back to the first version, which is more like the op= implementation. | ||
pmichaud | colomon: I'll review it in a bit | ||
colomon | baest: what if we kept a running tab on the numbers? | ||
jnthn | pmichaud: Hackathon is going well :-) | 12:21 | |
pmichaud: Very productive discussion on modules stuff. | |||
colomon | so if it's 3.1415, you first see the 3, and store that. then you see the . and toggle a flag. then you see the 1 and add 1/10, then the 4 and add 4/100s, and so on. | ||
pmichaud | the multiple dispatch error above simply means that parrot doesn't know how to multiply a num with a PMC | ||
(with a specific type of PMC, likely a Perl6Str or a Num) | 12:22 | ||
colomon | afk # getting ready for church | ||
pmichaud | colomon: yes, that's the correct approach, except you don't need to look for the '.' because the parser has already located it for you | ||
baest | pmichaud: I have a fix for that, posting that in a sec on rt | ||
colomon: yes, sound like a good way and when we overflow with the 10^someint along the way we just stop | 12:23 | ||
12:25
kfo left
|
|||
moritz_ | github.com/moritz/rmp -- Rakudo Module finding Prototype | 12:26 | |
12:27
kfo joined
12:28
krr joined
12:31
kfo left
|
|||
moritz_ | hugme: reload | 12:32 | |
hugme | moritz_: reloaded successfully | ||
moritz_ | hugme: show rmp | ||
hugme | moritz_: sorry, I don't know anything about 'rmp' | ||
TimToady | hugme: hug everyone | ||
hugme hugs everyone | |||
moritz_ | hugme: reload | 12:33 | |
hugme | moritz_: reloaded successfully | ||
moritz_ | hugme: show rmp | ||
hugme | moritz_: the following people have power over 'rmp': PerlJam, TimToady, [particle], arnsholt, jnthn, masak, mberends, moritz_, pmichaud. URL: github.com/moritz/rmp/ | ||
12:34
kfo joined
|
|||
pmichaud | hugme: hug successfully | 12:35 | |
hugme hugs successfully | |||
moritz_ | pmichaud, TimToady: we need some opinions... clearly we will have multiple locations where modules can be found (currently in @*INC). Should module loading without a specific version always look in all of them, and look for the highest version? | 12:37 | |
pmichaud | "best match", iirc | 12:38 | |
moritz_ | alternative would be to look only in the first location, and if a module is found, its highest version is used | ||
pmichaud | it's best match among all locations | ||
baest | how do convert a str to an integer in pir? | ||
moritz_ | ok. | ||
that's my preference as well | |||
TimToady | I agree | ||
moritz_ | baest: assign it to an $I0 register | ||
pmichaud | baest: $I0 = $S0 | ||
moritz_ | $I\d :-) | 12:39 | |
TimToady | it should be best match even with respect to the officially installed modules, which might not be in a directory at all | ||
pmichaud | thus "location" :-) | ||
TimToady | at some abstract level, you take all the official and unofficial modules, and treat them as a single query | ||
baest | thanks | 12:40 | |
moritz_ | TimToady, pmichaud: that answers our question sufficiently, thanks you | ||
12:42
kfo left
|
|||
ingy | I just got my new language to generate the JavaScript module from a handcoded ast | 12:43 | |
I guess I could easily add a p6 generator now | |||
but maybe I'll sleep first | |||
jnthn | <trait>* [where <EXPR('m=')> ]? # (EXPR can parse multiple where clauses) | 12:44 | |
oops! | 12:45 | ||
12:52
kfo joined
12:54
new_perl6_hacker joined
|
|||
pmichaud | std: say &infix:<!+>; | 12:54 | |
p6eval | std 29974: OUTPUT«ok 00:01 109m» | ||
pmichaud | std: say &infix:<xyz>; | ||
p6eval | std 29974: OUTPUT«ok 00:01 107m» | 12:55 | |
TimToady | well, it's really just punting there | ||
pmichaud | yes, I guessed. What should happen? | ||
TimToady | std: say &foo | ||
p6eval | std 29974: OUTPUT«ok 00:01 108m» | ||
pmichaud | is there a &infix:<!+> ? | ||
TimToady | doesn't even care about that &fo | ||
&foo | |||
I sincerely doubt it considering it's not iffy | 12:56 | ||
pmichaud | okay, how about some other iffy operator, then? | ||
TimToady | and in any case, I think of it as a higher order function, not as a generated function | ||
though that's a possible implementation strategy | |||
pmichaud | okay, that's the answer I was after, then | 12:57 | |
(it's higher-order, not generated) | |||
so, &infix:<+=> doesn't really exist as a generated function? | |||
TimToady | on the other hand, if someone wants to name the thing... | ||
then we might force generation | |||
just to have an identity | |||
we'd like people to treat these all as real functions, even when they are abstract | 12:58 | ||
pmichaud | originally I went with generation here, but then I'm not sure how to force generation simply given the &infix:<...> reference | ||
TimToady | and, in some sense, we have to, if we want to nest higher-order functions | ||
in X!%, what are we passing cross? | 12:59 | ||
presumably &[!%] | |||
pmichaud | right | ||
that's one of the reasons I went with generation | |||
TimToady | well, and it gives it to the optimizer to play with, someday | 13:00 | |
pmichaud | so, you're now tending to think of these as generated functions? | ||
moritz_ | std: package FOO; | 13:01 | |
TimToady | I tend to think that I shouldn't care one way or the other :) | ||
p6eval | std 29974: OUTPUT«ok 00:01 104m» | ||
TimToady | as long as the abstraction doesn't spring a leak | ||
but generation has the advantage of doing the function composition at compile time, for some def thereof | 13:02 | ||
pmichaud | right | ||
masak | here's what's bothering me: MyClass.new( :hashattr{ foo => 42 } ) does the right thing, but MyClass.new( :arrayattr[1, 2, 3] ) does the wrong thing in Rakudo. | 13:03 | |
pmichaud | masak: we're still working out list issues, sadly. | ||
masak: you're expecting :arrayattr to bind to an array? | 13:04 | ||
TimToady | yes. same problem if you write it arrayattr => [1,2,3] | ||
it assigns, and ends up with one element, containing an array | 13:05 | ||
baest | should there be a pi() sub or just the constant | ||
TimToady | there is no pi sub | ||
constants-as-subs is a p5-think | 13:06 | ||
masak | pmichaud: I'm not sure I'm expecting binding semantics excatly. (jnthn-san explained that this causes other problems, such as action-at-a-distance) | ||
pmichaud: I do expect the initialization not to introduce an extra layer of array, like the corresponding assignment does. | |||
TimToady | we were speculatin' that there's something value vs object going on here | ||
pmichaud | masak: I've never been clear what sort of semantics should go with the named attribute initialization | ||
baest | TimToady: ok, maybe we did a sub which returned pi constant. And the test mentions pi().... But I'll fix it | ||
masak | right. | ||
pmichaud: that's why I'm doing my best to be clear on this thing. :) | 13:07 | ||
TimToady | rakudo: 2() | ||
pmichaud | baest: at one time in the past, pi() was considered another way to access the constant. That's no longer the case. | ||
p6eval | rakudo 125e87: OUTPUT«invoke() not implemented in class 'Integer'current instr.: '_block14' pc 29 (EVAL_1:0)» | ||
TimToady | baest: see ^^ | ||
pmichaud | baest: I'm guessing the spectest suite is fossilized there. | ||
so, with :arrayattr([1,2,3]) what is the correct semantic? | 13:08 | ||
baest | pmichaud: ok, I unfossilize it in this regard | ||
TimToady: yep | |||
TimToady | and type names are also constants, but when you invoke them you get a coercion | 13:09 | |
maybe copy binding is the closest thing here | 13:10 | ||
pmichaud | "copy binding"? | ||
oh,c reate a copy and bind to it? | |||
TimToady | sub foo (@x is copy) | ||
just guessing | 13:11 | ||
and not answering your ([]) form necessarily | |||
pmichaud | troo | ||
13:12
new_perl6_hacker left
|
|||
TimToady | though by the usual paren vs comma rules, it should not be hidden in a parcel unless you say ([],) | 13:12 | |
if we keep going that way | |||
assuming :a() maps to a => () | |||
13:13
payload joined
|
|||
pmichaud | yes, I'm envisioning that :a([1,2,3]) and :a(1,2,3) could be distinct | 13:13 | |
TimToady | that mislikes me | ||
13:13
Trashlord left
|
|||
TimToady | oh, wait | 13:14 | |
the right one is (), not [] | |||
pmichaud | correct | ||
TimToady | so it doesn't mislike me | ||
pmichaud | :a[1,2,3] and :a([1,2,3]) are currently the same. | ||
(and should be, imo) | |||
TimToady | that's good, I think, the problem is assignment vs binding, I still think | ||
but seems that copying vs referencing should be the choice of the attribute | 13:15 | ||
pmichaud | so, :arrayattr(1,2,3) versus :arrayattr([1,2,3]) | ||
TimToady | binding a parcel vs binding an array | ||
pmichaud | one might expect the first to produce an array with three elements, and the second to produce an array with one. | 13:16 | |
13:16
quester joined
|
|||
TimToady | most wouldn't, though | 13:16 | |
pmichaud | well, I'm following the my @a = 1,2,3 versus my @a = [1,2,3] reasoning | ||
TimToady | and can be forced with ([],) | ||
13:17
rv2733 joined
|
|||
TimToady | that's assignment though | 13:17 | |
pmichaud | yes | ||
average-p6-programmer often won't see the difference between binding and assignment | 13:18 | ||
unlses of course we make it that they need to see that difference :-| | |||
*unless | |||
TimToady | well, the BUILD thinks it's doing binding, if you do it with the sig | 13:19 | |
pmichaud | okay, I'm fine with it being binding | ||
TimToady | in general, binding is cleaner than assignment, except when it isn't | 13:20 | |
pmichaud | does it become an eager binding? | ||
TimToady | binding to $.attr is presumably different from binding to $.attr is rw, maybe | ||
pmichaud | I guess it remains lazy | ||
13:21
payload left
|
|||
pmichaud | :arrayattr(lines()) # slurps input lines, or no? | 13:21 | |
maybe "is copy" implies an eagerness there? | |||
TimToady | to the first approximation, I think we go with assumptions of immutability and FP, and then see where that leaves us with OO problems | ||
it can still be lazy if cloning an immutable generator | 13:22 | ||
I've been trying to bias iterators toward assuming you can clone one whenever you want | |||
pmichaud | a recurring theme seems to be that immutability and FP seems to go out the window once arrays are involved :-| | ||
TimToady | since that's more the FP worldview than the OO | 13:23 | |
pmichaud | (bias iterators) okay, that's a good guidepost | ||
TimToady | and basically, force people to throw in an eager or whatever if they need it before the thing gets cloned | ||
I think we have to go with FP sanity here, long term, and live with the OO consequences | 13:24 | ||
we already tell people in p5, "Don't modify the array while you're iterating it!" | 13:25 | ||
(or write your iteration explicitly with shift) | |||
13:26
colomon left
|
|||
TimToady | and maybe requiring an occaisional 'is copy' is like requiring an occasional 'eager' | 13:27 | |
pmichaud | masak: so, my short (and highly unsatisfactory) answer is that I'm still struggling to get lists, arrays, and iterators in general to work properly, so the fact that they don't quite work in object attribute initialization doesn't surprise me much. | ||
TimToady | and we blame the FP and OO folks for being immiscible :) | ||
masak | pmichaud: I understand completely. | 13:28 | |
pmichaud: this is an old problem, though. it exists in alpha as well. | |||
TimToady | I do think it's okay, however, if multiple objects end up with attributes that reference the same array | 13:29 | |
pmichaud | TimToady: array attributes, also? | ||
I mean, certainly we expect scalar attributes to do that | 13:30 | ||
TimToady | (though note also that [1,2,3] composes a new array, so doesn't generally share like $array would) | ||
pmichaud | what about :arrayattr(@b) ? | ||
so, if I have :array1(@b) and :array2(@b) ... ? | 13:31 | ||
masak | rakudo: role A { class B {} } | ||
p6eval | rakudo 125e87: ( no output ) | ||
TimToady | that would presumably bind a readonly ref ? | ||
pmichaud | as attributes? | ||
XYZ.new( :array1(@b), :array2(@b) ) # @.array1 is ro? | |||
masak | :/ | 13:32 | |
I'd expect them to be rw and distinct. | |||
pmichaud | Right. | ||
masak | where 'distinct' does not involve deep copying, of course. | ||
just one level down. | |||
TimToady | well, you can't have that and also not have [] turn into a single element | 13:34 | |
masak submits rakudobug | |||
baest | rakudo: say 3.14159265358979 | 13:35 | |
p6eval | rakudo 125e87: OUTPUT«No applicable candidates found to dispatch to for 'infix:<div>'current instr.: 'perl6;Rat;new' pc 319571 (src/gen/core.pir:37782)» | ||
TimToady | and we can force value semantics with 'is copy', so the default should be otherwise, methinks | ||
masak | TimToady: ok. sounds like a Scylla/Carybdis design issue, then. | 13:37 | |
newbies will either be forever surprised by double array layers, or by strange readonly binding-ish semantics. | |||
TimToady | or they'll just cargo-cult 'is copy' all over every BUILD | 13:38 | |
pmichaud | how does one get a rw-able array attribute, then? | 13:39 | |
TimToady | which rw are you referring to? | ||
pmichaud | s/get/initialize/ | ||
class XYZ { has @!a }; XYZ.new(:a( what do I put here to initialize @!a but leave it rw in the class?) ) | 13:40 | ||
TimToady | :a(1,2,3) might do it | 13:41 | |
pmichaud | but :a(@b) wouldn't? | ||
TimToady | it's also possible that BUILD defaults $! parameters differently | 13:42 | |
pmichaud | did you mean $! attributes? | ||
oh, I see | |||
TimToady | I mean parameters | ||
I'm trying to work it all with the already-existing signature binding semantics | |||
pmichaud | yes, I'd like that | 13:43 | |
TimToady | (whatever those are...) | ||
pmichaud | I speculated with jnthn++ a couple of months ago that attribute initialization was really a form of signature binding | ||
TimToady | at least when it is done in the sig | ||
we can still write a custom BUILD | |||
maybe an implicitly written BUILD assumes 'is copy' on parameters...hard to know these things in the middle of the night | 13:45 | ||
baest | I have a patch which fixes some of the problems with large floating point with exponent parts. It's #73392 | 13:50 | |
13:50
arthur-_ joined
|
|||
pmichaud | baest: looking | 13:50 | |
13:52
payload joined
|
|||
pmichaud | baest: you're expecting $I2 to go negative on overflow? | 13:53 | |
13:53
jmarti joined
|
|||
TimToady | shower & | 13:53 | |
pmichaud | this particular approach is still very limiting -- it means we only get the precision available for integers, not for floats | ||
pugssvn | r29975 | baest++ | Update pi test to not mentioning pi function and add a atan(1)*4 test | 13:54 | |
pmichaud | i.e., $I2 will overflow well before we've reached the limits of float precision | ||
baest | pmichaud: ok, so you want that as a Num instead? | ||
pmichaud | I'd prefer to get rid of the *= 10 | 13:55 | |
and be using mul instead of div | |||
and this seems to only fix the problem associated with exponentials, while not resolving the issue with large decimals | |||
(seems like any fix ought to be handling both) | |||
baest | pmichaud: yes, there is no fix of the last part which uses Rat, I just move some code in order to not calculate base when not needed | 13:58 | |
masak | how do I write a method .modify if I don't want an original object in $orig to be affected by $orig.=modify ? | 14:01 | |
I thought doing this would be enough: method modify() { #`[ stuff ]; self.bless(self.CREATE, :new($stuff)) } | |||
14:03
akl left
|
|||
pmichaud | masak: I'm afraid I don't follow the question | 14:03 | |
to me, .= implies mutation | 14:04 | ||
if you're asking "how do I create a method that creates a new object", then it can just do .new | |||
masak | pmichaud: when I assign with objects, $a = $b, I get the same object in both variables, right? | ||
pmichaud | masak: yes. | 14:05 | |
moritz_ | masak: method modify($self is rw:) { } # something like that? | ||
pmichaud | more precisely, $a and $b both refer to the same object | 14:06 | |
but I don't see how that applies to your original question yet | |||
masak | well, I'm experiencing action at a distance here. | ||
but I'm starting to suspect it's really my fault. | |||
14:06
akl joined,
akl left,
akl joined
|
|||
masak | not sure I know myself how to solve it. | 14:07 | |
pmichaud | if .modify changes the invocant, then that's the issue | ||
masak | no, what I wanted was actually something clone-y, which left objects intact and cloned every time it made a change. | ||
pmichaud | then .modify should simply be producing a new object | ||
masak | but what I got was the old objects being replaced by the new ones in variables I didn't even touch. | ||
pmichaud | and $a.=modify does what you want | 14:08 | |
masak | I suspect that's because I did the $a = $b thing. | ||
so if I first do $a = $b and then $b.=modify, does $a change too? | |||
pmichaud | it shouldn't. | ||
masak | then I have a bug for you. | ||
14:08
frettled sets mode: +o masak
|
|||
masak | let me golf it a bit more. | 14:09 | |
pmichaud | but more to the point, $b .= modify shouldn't change the original $b (unless .modify itself is modifying self) | ||
masak | it doesn't. | ||
but it replaces the object in $a with the object that .modify produces. | |||
which is... less than awesome. | |||
pmichaud | we may have a stray copy from the old assignment semantics lying around, then. | 14:10 | |
do you have a short nopastable example? | |||
masak | working on it. | ||
pmichaud | okay | ||
I'm sure I can fix quickly. | |||
masak | \o/ | ||
this is alpha, by the way. | |||
haven't tested with master. | |||
masak hides :) | |||
pmichaud | oh, I don't make any claims for alpha atm | 14:11 | |
moritz_ spectests RT #73278 - any objections to applying it if it produces no errors? | |||
14:12
TiMBuS joined
|
|||
pmichaud | moritz_: reviewing | 14:12 | |
moritz_ | (with fixed whitespaces) | 14:13 | |
masak | alpha: class A { method x() { self.bless(self.CREATE) } }; my A $a.=new; my $b = $a; say $a.WHICH; $b.=x(); say $a.WHICH; | ||
pmichaud | I don't like the hash initialization at the beginning (of each invocation) | ||
p6eval | alpha 30e0ed: OUTPUT«4786436650364047864366382800» | ||
masak | pmichaud: there it is. | ||
rakudo: class A { method x() { self.bless(self.CREATE) } }; my A $a.=new; my $b = $a; say $a.WHICH; $b.=x(); say $a.WHICH; | |||
p6eval | rakudo 125e87: OUTPUT«4759646509047247596465090472» | ||
moritz_ | pmichaud: should it be moved to an outer scope? | ||
masak | ...and fixed in master. argh! :/ | ||
pmichaud | moritz_: not sure. In some sense it perhaps should be matching against the grammar's sigil rule | 14:14 | |
either that or just turned into a package variable and set via INIT | |||
baest | pmichaud: I'm not sure how you would do the multiplication. Wouldn't that involve div later? Right now, it's adding parts of the number one digit at the time | 14:15 | |
pmichaud | baest: one moment | 14:16 | |
masak | hm. adding .clone to $b = $a seems to be a workaround for now. | ||
moritz_ | pmichaud: trying it with a package variable now | 14:17 | |
pmichaud | moritz_: the code doesn't feel as clean as I think it ought to be, but I'm okay with applying it for now. | 14:20 | |
jnthn | pmichaud: grr. I just ran into the fact that P6protoobject is a class. That means if you try and mix into a proto-object, we then try to derive a subclass of it and do the mix-in (fine), but then when building a proto-object for that derived class we end up with something C3 linearization will balk at. | ||
masak | phenny: tell snarkyboojum that when he wakes up, he might want to take a look at the new code I just pushed to github.com/masak/tardis -- variable assignments now work! \o/ | 14:21 | |
phenny | masak: I'll pass that on when snarkyboojum is around. | ||
jnthn | (or long story short, mix-ins to protoobjects can't work :-/) | ||
(without changing the way P6object does things) | |||
masak | awww. :/ | ||
pmichaud | jnthn: what sort of changes to p6object ? | 14:22 | |
jnthn | Dunno | ||
I guess making p6protoobject into a role we mix in rather than being a class would cut it. | |||
Not sure how much disruption that would cause though. | |||
pmichaud | I'm not entirely comfortable with roles in parrot. | 14:23 | |
(they may be fine, I just haven't seen good examples to work from.) | |||
jnthn | I'm not entirely comfortable with proto-objects being a different Parrot class. | ||
(than the actual instance) | |||
But that's an even bigger change and fix. | |||
pmichaud | oh, same here as well. At the time I created P6protoobject I didn't find that I had much choice | ||
jnthn | (means we need all those :U, :D etc style things.) | ||
pmichaud | mixins didn't seem to be available, so I had to derive a new type. | 14:24 | |
jnthn | Deriving a new type is fine. | ||
TimToady | after cogitating in the shower, I think defaulting all $!attr parameters to 'is copy' is the right default; we can perhaps have 'has $!attr is ref' to override without forcing the user to write an explicit BUILD | ||
pmichaud | ? | ||
(? was to jnthn) | |||
jnthn | The problem is that if you subclass a proto-object itself, then the proto-object for that also tries to inherit from P6protoobject. | 14:25 | |
pmichaud | oh! | ||
jnthn | then it ends up multiple times in the inehritance hierarchy in a way that C3 can't cope with. | ||
So you get a linearization FAIL. | |||
pmichaud | when do we subclass a protoobject? | ||
masak | TimToady: I haven't followed all the consequences of that yet, but I think I like it. | ||
14:25
wknight8111 joined
|
|||
jnthn | pmichaud: well, I wanted to do SomeThing but SomeRole | 14:26 | |
Primarily because it allows a neat implementation of subset. :-) | |||
14:26
payload left
|
|||
TimToady | masak: it gets you most of what you expect from assignment semantics without the extra baggage. it's also a no-op on something that is already immutable | 14:26 | |
pmichaud | in that case, would it work to derive from the class for SomeThing and not the class of the protoobject ? | ||
TimToady | well, not quite a no-op, it still wants the eventual container to be modifiable, but it doesn't have to clone the value | 14:27 | |
pmichaud | i.e., use the protoobject to get to the base SomeThing class, derive from that, then create a new protoobject | ||
jnthn | No, because then when you re-bless, the thing you re-bless into isn't actually a subclass of the protoobject. :-( | ||
masak | TimToady: do we get rid of the extra layer of [] with :lolimanarrayattr[1,2,3] ? | ||
TimToady | but a default of value semantics when initializing objects feels like good encapsulation | ||
it should | 14:28 | ||
masak | \o/ | ||
then I have no further wishes. | |||
jnthn | pmichaud: I can think of workarounds for this particular case. | ||
TimToady | it will, though copy the array, if it can't do some kind of COW | ||
pmichaud | I don't understand "isn't actually a subclass of the protoobject" | ||
jnthn | I don't see an obvious easy fix for the general mix-in-to-a-protoobject case. | ||
masak | TimToady: that feels natural, too. | ||
TimToady | speccing it | 14:29 | |
pmichaud | at the p6-level, protoobjects aren't a subclass | ||
jnthn | The problem isn't at the P6 level. | ||
The problem is that the Parrot level != the P6 level | |||
And so while this all *should* work great, the mis-match screws us up. | |||
pmichaud | jnthn: I think you're not following me, then. | ||
jnthn | I think you're not following me either. | 14:30 | |
masak | ++TimToady | ||
jnthn | :-) | ||
The rebless_subclass op needs an exact subclass. | |||
At a Parrot level. | |||
masak | a Japanese user gasps at a Rakudo error message: twitter.com/nullpon/status/10119603769 -- hopeably the gasp is gue to the messages A-ness rather than LTA-ness. | ||
s/gue/due/ | 14:31 | ||
pmichaud | jnthn: when we have SomeThing but SomeRole, that's doing an inplace modification of SomeThing? | ||
jnthn | No | ||
clone SomeThing | |||
And then inplace on the clone | |||
pmichaud | okay | ||
jnthn | essentially bit is $lhs.clone does $rhs | ||
pmichaud | so, I'm saying we don't do that | ||
jnthn | Or similar. | ||
pmichaud | don't clone SomeThing | ||
14:31
rgrau joined
|
|||
jnthn | That isn't the problem. | 14:31 | |
jonasbn | I HATE when the compiler is right and I am wr0ng | ||
jnthn | We have to, or we turn the original proto-object into a subtype. :-) | 14:32 | |
pmichaud | nonono | ||
masak | jonasbn: luckily, that doesn't happen all that often in my experience :P | ||
pmichaud | don't clone Something, just create the new class with the but and then create a protoobject for it | ||
14:33
xinming_ is now known as xinming
|
|||
jnthn | I really, really don't follow. | 14:33 | |
but is just implented in terms of does | 14:34 | ||
does itself delegates to the meta-model. | |||
pmichaud | just a sec | ||
if I have 3 but SomeRole, what happens? | |||
jnthn | 3.clone does SomeRole | ||
well | 14:35 | ||
Not quite that akshually | |||
But close. | |||
pmichaud | right, I need the real details here :) | ||
anyway, that's close enough | |||
jnthn | That is actually how I have it here. | ||
pmichaud | the problem is the 3.clone step won't really work for a protoobject | ||
jnthn | Ah? | ||
What will it end up doing? | 14:36 | ||
pmichaud | well, it clones the protoobject, but as you say, that's a class that we can't derive from | ||
jnthn | Oh, I think I see maybe why... | ||
Well, yes, the problem is that we need to derive from it. :-( | |||
pmichaud | I'm saying that instead of cloning the protoobject and deriving from it, derive from a base class instance and then use that to create a new protoobject | 14:37 | |
jnthn | But I want to nextsame() to the ACCEPTS in the protoobject. | ||
Basically all I wanted to do here was | |||
1) take a protoobject | |||
pmichaud | the new protoobject will have an ACCEPTs | ||
jnthn | 2) mix in an ACCEPTS method | ||
Yes, but I actually don't need the new proto-object | 14:38 | ||
It's a throw-away, essentially. | |||
TimToady | jonasbn: if you want a compiler that is Always Right, try Haskell :) | ||
pmichaud | jnthn: okay, it's clear that I'm not understanding any of this, then. :-) | 14:39 | |
jnthn | Anyway, I guess trying to implement subset in some pure Perl 6-y way when we've got an awkward mis-match between Parrot and Perl 6 handling of proto-object stuff is just Too Idealistic. | ||
pmichaud | I'm fine if we change the handling of protoobjects in P6object | 14:40 | |
I'm not sure *how* to change it, but I'd be fine with doing it (assuming we don't break anything API level) | |||
the fact that protoobjects create a new subtype isn't API as far as I'm concerned. | |||
that's something that was done as a workaround to not having appropriate mixin capabilities in Parrot. | 14:41 | ||
jnthn | Unfortunately, I don't see how we can avoid that without the :U/:D style modifiers. | ||
Otherwise we end up in the wrong ACCEPTS all the time | |||
And I'm not sure how to handle those easily outside of Perl 6 space. | |||
pmichaud | ACCEPTS is (afaik) purely a Perl 6 item. it's not part of P6object | 14:42 | |
jnthn | ah, that's true. | ||
pmichaud | I've theorized putting ACCEPTS into P6object (and might have even done it), but my earlier comment that it doesn't have to be handled via subclassing applies | 14:43 | |
jnthn | Either way, it's all a rather big refactor that'll take some time and planning. | ||
So I'd rather not do that right now. | |||
pmichaud | well, whatever approach you decide to take I'm fine with. | ||
jnthn | I'll do something workaround-ish for subset now. | ||
pmichaud | that seems best. | ||
pugssvn | r29976 | lwall++ | [S06,S12] make attributive parameters default to 'is copy' binding | ||
r29976 | make easy way for an attribute to override this with 'is ref' | |||
pmichaud | baest: still around? | 14:44 | |
jnthn | And we can re-visit this when considering object model stuff overall. | ||
(e.g. when looking at knownhow/compact structs/multiple backends.) | |||
baest | pmichaud: yep | ||
pmichaud | baest: instead of building the denominator by successive multiplications by 10, I'd prefer to build it by successive multiplications of 0.1 | ||
and we need to be doing this for both exponential and non-exponential values | 14:45 | ||
baest | pmichaud: ahh, that make sense. I didn't get that at all | ||
moritz_ | pugs: 1/7 | ||
p6eval | pugs: ( no output ) | ||
moritz_ | pugs: say 1/7 | ||
p6eval | pugs: OUTPUT«0.1428571428571428571428571428571428571429» | ||
pmichaud | colomon++ had suggested that infix:</> was the correct way to handle this, and I suspect that may be correct. | 14:46 | |
I have to go -- bbiab | 14:47 | ||
masak submits rakudobug | |||
that was just a test of my new Emacs macro :P | |||
pugssvn | r29977 | moritz++ | test for RT #73262: 7**(-1) should not be 0 | 14:48 | |
TimToady | I always misread rebless as reb-less | 14:49 | |
14:51
am0c joined
|
|||
pmichaud | back | 14:55 | |
dalek | kudo: d4d58aa | moritz++ | t/spectest.data: more tests |
14:56 | |
kudo: 201e027 | moritz++ | src/core/Int.pm: Int**Int does not produce an Int if the RHS is negative Fixes RT #73262 |
|||
pmichaud | anyway, in the non-exponential case, we may be able to generate the appropriate value by calling &infix:</> instead of Rat.new(), and letting that decide whether we produce a Rat or Num (or other) result. | ||
baest | pmichaud: that last thing with infix:</> was that to me? If it is I'm confused | ||
pmichaud: ahh, ok | |||
make sense | |||
pugssvn | r29978 | moritz++ | [t/spec] re-fudge arith.t for rakudo | 14:57 | |
r29978 | | |||
r29978 | Also remove a test which is now in S03-operators/names.t | |||
pmichaud | oh, wait | ||
pmichaud thinks | |||
oh, nm. | 14:58 | ||
masak submits rakudobug | |||
now I also have my macro as a simple key binding :) | |||
this will enable me to shave a few milliseconds off the whole routine. | |||
pmichaud | .oO( masak replaces his sledgehammer with a jackhammer ) |
14:59 | |
moritz_ | pmichaud: might I ask you to look at #73244 (the Big Grammar Patch) soon? | ||
masak | pmichaud: :) | ||
pmichaud | moritz_: looking. | ||
masak | .oO( drrrrRRRRR ) |
||
rakudo: say Int ** Int | 15:01 | ||
p6eval | rakudo 125e87: OUTPUT«Use of type object as valuecurrent instr.: 'perl6;Perl6Exception;throw' pc 14501 (src/builtins/Seq.pir:52)» | ||
moritz_ | masak: all of those should be warnings, but are fatal :/ | 15:02 | |
masak | moritz_: :/ | ||
baest | pmichaud: doing *.1 seems to result in the same precision | ||
15:02
payload joined
|
|||
pmichaud | baest: same precision as the case when using a $I register? or when using the $N register? | 15:05 | |
moritz_: I'm not comfortable with the apparent code duplication between regexes and method, but if spectests pass I'm fine with #73244 for now and we'll cleanup/refactor a bit later. | 15:06 | ||
moritz_ | pmichaud: ok | ||
pmichaud | I'd also prefer that we use dynamic vars for %REGEX_MODIFIERS instead of the package-scoped thingy | ||
15:07
jonasbn left
|
|||
dalek | kudo: 19cd1c6 | moritz++ | t/spectest.data: enable arith.t |
15:08 | |
pmichaud | (again, that can be cleaned up afterwards) | ||
baest | pmichaud: both it seems, I'm not sure if I remember the $I correctly, but could that store number like 1e50? | ||
jnthn | (clean up later and get patch in now)++ | ||
(for this case, not in general :-)) | |||
pmichaud | $I is only good to the limit of 32-bit ints | ||
so no | |||
moritz_ | jnthn, pmichaud: spectesting now | ||
baest | pmichaud: yes I thought so, maybe there was some magic I didn't get | 15:09 | |
pmichaud: but yes, just rested, the $I and $N and * .1 all gives 3.14159265358979 for pi (when faced with 3.14159265358979323846264338327950288419716939937510e0) | 15:12 | ||
TimToady | maybe it wasn't a bright idea to spec parrot ints at 32-bits when the whole world is probably going toward 64 now... | ||
baest | s/rested/retested/ | ||
arnsholt | Where's the place to report nqp-rx bugs? | 15:15 | |
Or rather, correct place | |||
baest | I think that it doesn't matter if we get the last digit after 18th digit, the addition doesn't seem to change. It's like 3e50+abignumber == 3e50 | 15:16 | |
pmichaud | arnsholt: I take nqp-rx bugs just about anywhere | 15:17 | |
arnsholt: standard seems to be the parrot trac bugtracker | |||
we haven't officially designated a place yet (and I'm not familiar enough with github's issue tracker to be regularly checking it yet) | |||
apparently nobody has submitted issues via github yet :-) (github.com/perl6/nqp-rx/issues) | 15:18 | ||
baest | pmichaud: how do you call infix</> from npq? | 15:21 | |
arnsholt | pmichaud: Righties. I'll put it in the Parrot Trac then | ||
pmichaud | baest: you won't call it directly -- you'll generate a call to it | 15:22 | |
baest | pmichaud: ahh, of course | ||
15:23
quester left,
meppl left
|
|||
dalek | kudo: e9c1857 | moritz++ | (7 files): Merge remote branch 'bkeeler/grammar' closes RT #73244. |
15:25 | |
arnsholt | Ok. I have patched Rakudo to fix the issue with interpolating a single variable. How should I submit it? | 15:30 | |
masak | arnsholt: a nopaste is fine. | ||
pmichaud | ...there was an issue with interpolating a variable...? | 15:31 | |
masak | :) | ||
moritz_ | arnsholt: generate a patch by commiting the changes locally, and then run 'git-format-patch HEAD^' | ||
masak | pmichaud: yes, "$only-thing-in-string" didn't stringify the interpolated var. | ||
arnsholt | rakudo: my $a = 3; say "$a".WHAT; # pmichaud | ||
p6eval | rakudo 201e02: OUTPUT«Int()» | ||
masak | pmichaud: TimToady quipped that he'd had the same bug somewhere around Perl 1.0 :) | ||
pmichaud | ah. | ||
yes, we had that bug in alpha, iirc. | 15:32 | ||
arnsholt | It's an issue in nqp-rx (I'd argue at least) | ||
But I couldn't quite get the nqp-rx code to do what I wanted so I did it in Rakudo instead | |||
masak | maybe it's best that pmichaud takes care of applying this patch. | 15:33 | |
arnsholt | Indeed | ||
masak | TimToady: S12:1809 "You may import enum types; only non-colliding values are imported." The word choice of 'values' there is confusing to me, because we're not importing the 0..7 of the Day enum, for example. | 15:34 | |
15:34
Psyche^ joined
15:36
clintongormley joined
|
|||
dalek | kudo: e2c77d4 | mberends++ | docs/S11-Modules-proposal.pod: [docs/S11-Modules-proposal.pod] the outcome of the S11 Modules discussion at the Copenhagen Perl 6 Hackathon |
15:36 | |
masak | when I hear the word value, I think 'the rhs of a =>'. we're really importing symbols, which happen to be associated with some value. | ||
jnthn | nod nod | ||
masak does a guerrila word change | 15:37 | ||
moritz_ | mberends++ indeed | ||
lisppaste3 | arnsholt pasted "Patch for interpolating single element" at paste.lisp.org/display/96049 | ||
moritz_ hilights pmichaud for the paste above | 15:38 | ||
masak | mberends++ | ||
15:38
Patterner left,
Psyche^ is now known as Patterner,
nihiliad joined
15:39
arlinius left
|
|||
pugssvn | r29979 | masak++ | [S12] s/values/symbols/ | 15:41 | |
jnthn | mberends++ | 15:43 | |
uniejo | mberends++ | 15:46 | |
jnthn | (and all_of_us++ for working on this) | ||
dalek | kudo: 1ed54df | mberends++ | docs/S11-Modules-proposal.pod: [docs/S11-Modules-proposal.pod] remove excessive Foo::Bar, Hackathon++ |
15:47 | |
kudo: cd42786 | masak++ | docs/S11-Modules-proposal.pod: [docs/S11] fixed a small typo |
|||
kudo: d32a0c2 | mberends++ | docs/S11-Modules-proposal.pod: Merge branch 'master' of [email@hidden.address] |
|||
masak | jnthn: enum A <a b c>; enum B <c d e>; # what happens to &c here? | 15:50 | |
jnthn: does S12 bring that up? I just saw it talk about importing. | |||
jnthn | it says something about non-colliding symbols, iirc | 15:51 | |
moritz_ | ISTR that it makes &c ambiguous and thus disallowed | ||
masak | right. | ||
but that must happen when we see B, right? | |||
and there's also the small detail of the user defining 'sub c', which is IIRC allowed. | |||
15:51
martinro left
|
|||
masak | it's as if subs are in a layer in front of enum keys, shadowing them if needed. | 15:52 | |
moritz_ | aye; it must look at the current scope, and if there's a c enum symbol, remove it from the namespace | ||
arnsholt | pmichaud: Trac ticket for the interpolation issue: trac.parrot.org/parrot/ticket/1503 | 15:53 | |
mberends | is someone planning to work on the 'use' implementation in the next week or so? I'd like to try to implement some of these S11 proposals but don't want to be at cross purposes with others. | 15:54 | |
masak | moritz_: www.racf.bnl.gov/docs/rt/rtexpertu...dmin_email | ||
lisppaste3 | arnsholt annotated #96049 "untitled" at paste.lisp.org/display/96049#1 | 15:55 | |
baest | std: my @x = (1,,3,); | ||
p6eval | std 29979: OUTPUT«===SORRY!===Preceding context expects a term, but found infix , instead at /tmp/ZAzW3sMTat line 1:------> my @x = (1,⏏,3,); expecting any of: POST bracketed infix infix or meta-infix null term postfix | ||
..postfix_prefix_meta_operatorFAI… | |||
baest | std: my @x = (1,3,); | 15:56 | |
p6eval | std 29979: OUTPUT«ok 00:01 106m» | ||
TiMBuS | does the current rakudo not support 'use'? seems to look for a .pir instead of .pm | 15:59 | |
masak | rakudo: say Perl6::Compiler.compile('say 42').WHAT | ||
p6eval | rakudo e9c185: OUTPUT«Null PMC access in find_method('WHAT')current instr.: 'parrot;P6object;WHAT' pc 68 (runtime/parrot/library/P6object.pir:111)» | ||
masak submits rakudobug | |||
rakudo: my $x = Perl6::Compiler.compile('say 42'); $x() | 16:01 | ||
p6eval | rakudo e9c185: OUTPUT«42» | ||
jnthn | rakudo: say(say 42).WHAT | ||
baest | TiMBuS: I think the modules need to be precompiled | ||
p6eval | rakudo e9c185: OUTPUT«421» | ||
masak | that is so cool. | ||
TiMBuS | yeah thats what I'm guessing | ||
mberends | travel Copenhagen -> Utrecht, NL # $work :-( | 16:02 | |
dalek | kudo: cca3cfc | moritz++ | docs/S11-Modules-proposal.pod: [docs/S11-Modules-proposal.pod] link to prototype module searching function |
16:05 | |
masak | rakudo: Perl6::Compiler.compile('say 42').WHAT | ||
p6eval | rakudo e9c185: OUTPUT«Null PMC access in find_method('WHAT')current instr.: 'parrot;P6object;WHAT' pc 68 (runtime/parrot/library/P6object.pir:111)» | ||
16:06
mberends left
|
|||
baest | rakudo: sub rt54804( $v, $w?, $x?, $y? ) { say 3; }; rt54804( 1, , 3, ) | 16:07 | |
p6eval | rakudo e9c185: OUTPUT«3» | ||
baest | rakudo: use Test; sub rt54804( $v, $w?, $x?, $y? ) { say 3; }; eval_dies_ok "rt54804( 1, , 3, )" | 16:08 | |
p6eval | rakudo e9c185: OUTPUT«"load_bytecode" couldn't find file 'Test.pir'current instr.: '!use' pc 372546 (src/gen/core.pir:55184)» | ||
baest | frag | ||
but eval_dies_ok says ok. How can that be? | |||
it seems to me that #54804 hasn't been fixed, but instead it is a problem in eval_dies_ok | 16:09 | ||
16:10
masak` joined,
meppl joined
|
|||
moritz_ | baest: it seems that eval_dies_ok has a problem with calling subs from outer lexical scopes | 16:11 | |
16:11
masak left
|
|||
moritz_ | rakudo: say 2, , 3 | 16:11 | |
p6eval | rakudo e9c185: OUTPUT«23» | ||
baest | moritz_: yeah, make sense | 16:12 | |
moritz_ | baest: putting the sub declaration into the eval string works | ||
masak` | rakudo: say PAST::Compiler.compile("OH HAI") | 16:13 | |
p6eval | rakudo d32a0c: OUTPUT«\xFEPBC | ||
.. | |||
masak` | 哈哈 | ||
most fun I've had today. :) | |||
baest | moritz_: you're right. I'll update S06-signature/optional.t and create a new bug for eval? | 16:14 | |
bug report ;) | |||
moritz_ | I'm not sure if it's a bug or not | 16:15 | |
masak` | rakudo: say PAST::Compiler.compile("OH HAI").chars | ||
p6eval | rakudo d32a0c: OUTPUT«1120» | ||
masak` | rakudo: say PAST::Compiler.compile("OH HAI").flip.chars | ||
p6eval | rakudo d32a0c: OUTPUT«1120» | 16:16 | |
baest | moritz_: well, shouldn't you be able to call subs defined in the same scope eval was called in? | ||
16:16
dual left
|
|||
jnthn | no | 16:16 | |
moritz_ | baest: yes, but eval is called from eval_dies_ok, not from the scope you're writing the eval_dies_ok call in | ||
jnthn | well, yes | ||
but...what moritz_ said ;-) | 16:17 | ||
baest | oh | ||
masak` | rakudo: say PAST::Compiler.^methods | ||
p6eval | rakudo d32a0c: OUTPUT«Method 'methods' not found for invocant of class 'P6metaclass'current instr.: '!dispatch_.^' pc 410 (src/glue/dispatch.pir:100)» | ||
masak` | aww. | ||
16:17
masak` is now known as masak
|
|||
baest | moritz_: of course | 16:17 | |
masak | the meta always ends somewhere. | ||
16:18
krr left
|
|||
moritz_ | for this thing we'd need eval($str, :context) and then eval_dies_ok could do an eval($str, :context(CALLER)) or so | 16:18 | |
pugssvn | r29980 | baest++ | Put the sub definition inside the eval to make it callable | ||
baest | yes | ||
moritz_ | but it's too complex to put it into Test.pm with good conscions | ||
baest | that would be very nice | ||
16:19
szabgabx joined
|
|||
moritz_ | *conscience | 16:19 | |
16:19
iblechbot left
|
|||
pmichaud | The patch for fixing variable interpolation is fine | 16:22 | |
leave the comment about it being fixed in nqp-rx also, though. | 16:23 | ||
because yes, it should be fixed there also. | |||
nqp: my $a := 3; say "$a".WHAT; | |||
p6eval | nqp: OUTPUT«Confused at line 1, near "say \"$a\".W"current instr.: 'parrot;HLL;Grammar;panic' pc 500 (src/cheats/hll-grammar.pir:197)» | ||
pmichaud | nqp: my $a := 3; say("$a".WHAT); | ||
p6eval | nqp: OUTPUT«Method 'WHAT' not found for invocant of class 'Integer'current instr.: '_block11' pc 0 (EVAL_1:6)» | ||
moritz_ | p6eval: so should I apply it? | ||
erm, I meant pmichaud | |||
pmichaud | I'm fine with applying it, yes. | 16:24 | |
baest | moritz_: yes, I know, I did that change to the test | ||
pmichaud | I'll be afk for a little while -- stuff happening here that needs my attn | ||
baest | oh, sorry was reading the hostiry | ||
s/hostiry/history/ | |||
16:24
lichtkind joined
|
|||
lichtkind | masak: | 16:25 | |
hahaha | |||
moritz_ | will push after spectest | 16:26 | |
arnsholt | rakudo: my $i = 0; $i++ for [1,2,3]; say $i; | 16:27 | |
p6eval | rakudo d32a0c: OUTPUT«3» | ||
masak | alpha: my $i = 0; $i++ for [1,2,3]; say $i; | 16:28 | |
p6eval | alpha 30e0ed: OUTPUT«1» | ||
masak | hm. | ||
I agree with alpha here. | |||
moritz_ | looks much like a bug | ||
(in master) | |||
masak | pugs: my $i = 0; $i++ for [1,2,3]; say $i; | ||
p6eval | pugs: OUTPUT«1» | ||
masak submits rakudobug | |||
arnsholt | masak: Good. Because it's in the spectest suite =) | ||
Any suggestions for what is wrong? | 16:29 | ||
masak | arnsholt: it's flattening the array. | ||
moritz_ | objectref or interpolating flag | ||
arnsholt | So that I can say something intelligent in the todo, rather than "doesn't work" | ||
moritz_ | rakudo: say [1, 2, 3].PARROT | ||
p6eval | rakudo d32a0c: OUTPUT«Array» | ||
moritz_ | rakudo: say (\[1, 2, 3]).PARROT | ||
p6eval | rakudo d32a0c: OUTPUT«Capture» | ||
moritz_ | rakudo: my $i = 0; $i++ for \[1,2,3]; say $i; | 16:30 | |
p6eval | rakudo d32a0c: OUTPUT«Method 'iterator' not found for invocant of class 'Capture'current instr.: 'perl6;Mu;' pc -1 ((unknown file):-1)» | ||
moritz_ | that's certainly wrong too | ||
don't you think masak? | |||
masak submits rakudobug | |||
arnsholt | rakudo: my Int @array; @array[0] = 23; | ||
p6eval | rakudo d32a0c: OUTPUT«get_pmc_keyed() not implemented in class ''current instr.: 'perl6;Positional[::T];postcircumfix:<[ ]>' pc 10402 (src/metamodel/GrammarHOW.pir:44)» | ||
masak | hrm. my keybinding has stopped working. :/ | ||
arnsholt | Hmm. Are parametrized types a known problem in master? | 16:31 | |
jnthn | arnsholt: Should mostly work-ish. | ||
arnsholt: though some problems. | |||
arnsholt | Right | 16:32 | |
jnthn | ah, that one... :-/ | ||
Yes, that one is a problem. :-( | |||
moritz_ | see t/spec/S09-typed-arrays/arrays.t | ||
arnsholt | rakudo: my $i = -1; my @arr = <foo bar blech>; say @arr[$i]; | 16:34 | |
p6eval | rakudo d32a0c: OUTPUT«Cannot use negative index on arrayscurrent instr.: '&die' pc 16757 (src/builtins/Junction.pir:373)» | ||
arnsholt | S02-builtin_data_types says that "my @arr of Int = 1, 2, 3, 4, 5; is(@arr, <1 2 3 4 5>);" is that right? | 16:38 | |
dalek | kudo: fe12ac8 | (Arne Skjærholt)++ | src/Perl6/Actions.pm: Fix issue with double quoted strings interpolating only a single variable. |
16:39 | |
baest | rakudo: my @a = 1,2,3; say (@a min 4) | 16:47 | |
p6eval | rakudo cca3cf: OUTPUT«1» | ||
baest | is that correct? | ||
moritz_ | baest: don't think so, but let me check S32-containers... | 16:48 | |
wai, it's an op | |||
so S03 | |||
it's wrong. | |||
baest | moritz_: ok, but what would be correct then. There is a ticket #63778, but now it parses ok, but I'm not sure what the correct answer is | 16:50 | |
diakopter | longest 7hr backscroll in years | 16:51 | |
masak | diakopter: :> | ||
arnsholt | rakudo: my @a of Int; @a.push 's'; | 16:52 | |
p6eval | rakudo cca3cf: OUTPUT«Confused at line 11, near [email@hidden.address] 's"current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)» | ||
arnsholt | rakudo: my @a of Int; push @a, 's'; | ||
p6eval | rakudo cca3cf: ( no output ) | ||
arnsholt | rakudo: my @a of Int; push @a, 's'; say @a | ||
p6eval | rakudo cca3cf: OUTPUT«s» | ||
diakopter | rakudo: my @a of Int; @a.push: 's'; | ||
p6eval | rakudo cca3cf: ( no output ) | ||
16:54
payload left
|
|||
moritz_ | rakudo: say [1, 2, 3] max 0 | 16:56 | |
p6eval | rakudo cca3cf: OUTPUT«1 2 3» | ||
m6locks | hmm t/spec/S06-signature/optional.rakudo failed | ||
built the latest one | |||
although it might be remniscient of some older ones, my git-wizardy ain't that high-level yet | 16:58 | ||
16:59
justatheory joined
|
|||
diakopter | .. in theory, at least. | 16:59 | |
17:01
am0c left
|
|||
baest | m6locks: sorry, that is my bad | 17:01 | |
m6locks | no prob | 17:02 | |
pugssvn | r29981 | baest++ | Mark failing test as todo | ||
baest | m6locks: there you go :) | 17:03 | |
m6locks | :) | ||
arnsholt | rakudo: my @arr[*]; @arr[42] = 's'; say (+@arr).WHAT | 17:04 | |
p6eval | rakudo cca3cf: OUTPUT«Num()» | ||
17:04
wknight8111 left
|
|||
masak submits rakudobug | 17:04 | ||
arnsholt | rakudo: my @arr[*]; @arr[42] = 's'; say (+@arr).PARROT | ||
p6eval | rakudo cca3cf: OUTPUT«Float» | ||
masak | whoa. | ||
rakudo: my @arr[*]; @arr[42] = 's'; say (+@arr).ucfirst | 17:07 | ||
p6eval | rakudo cca3cf: OUTPUT«43» | ||
moritz_ | 3my @arr[*]; @arr[42] = 's'; say (+@arr).sin | 17:08 | |
rakudo: my @arr[*]; @arr[42] = 's'; say (+@arr).sin | |||
masak | rakudo: my @arr[*]; @arr[42] = 's'; say (+@arr).sin | ||
p6eval | rakudo cca3cf: OUTPUT«-0.831774742628598» | ||
moritz_ | rakudo: my @arr[*]; @arr[42] = 's'; say (+@arr).Complex | 17:09 | |
p6eval | rakudo cca3cf: OUTPUT«43 + 0i» | ||
moritz_ | seems to work with non-parrot Num methods | ||
17:10
iblechbot joined
|
|||
moritz_ | rakudo: say try { 43 } | 17:10 | |
p6eval | rakudo cca3cf: OUTPUT«43» | ||
arnsholt | rakudo: my @arr = (23); say try { @arr[*-2] } | 17:11 | |
p6eval | rakudo cca3cf: OUTPUT«Null PMC access in type()current instr.: '_block14' pc 29 (EVAL_1:0)» | ||
masak submits rakudobug | |||
17:12
rgrau left
|
|||
arnsholt | rakudo: my @arr = (23); @arr[*-2] | 17:13 | |
p6eval | rakudo fe12ac: OUTPUT«Method 'Num' not found for invocant of class 'Block'current instr.: 'perl6;Mu;' pc -1 ((unknown file):-1)» | ||
17:14
dual joined
|
|||
pugssvn | r29982 | moritz++ | [t/spec] fudge arith.t | 17:16 | |
moritz_ | rakudo: say (*-2).WHAT | 17:19 | |
p6eval | rakudo fe12ac: OUTPUT«Method 'Num' not found for invocant of class 'Block'current instr.: 'perl6;Mu;' pc -1 ((unknown file):-1)» | ||
pugssvn | r29983 | arnsholt++ | [t/spec] Unfudged passing string interpolation test; fudged S02-builtin_data_types/array.t | ||
masak | moritz_: that a new bug? | ||
arnsholt | Okay. S02-builtin_data_types/array.t can be brought back now | ||
baest | is #64132 closable. I would agree that -v is not really saying anything about rakudo, but the ticket is only specifying things that are a) done or b) clarified | 17:20 | |
? | |||
uniejo | rakudo: my @arr[*]; @arr[42]++; say (+@arr).PARROT; say PARROT(+@arr) | ||
p6eval | rakudo fe12ac: OUTPUT«FloatNum» | ||
moritz_ | masak: it's Whatever currying not being implemented in rakudo | ||
masak | nod | ||
17:22
jaldhar left
17:23
jaldhar joined,
payload joined
|
|||
dalek | kudo: 657c165 | jonathan++ | (5 files): Implement a first cut of subset type declarator. |
17:25 | |
arnsholt | rakudo: my @a; @a[2] = 'b'; my @b = @a; | 17:26 | |
p6eval | rakudo fe12ac: OUTPUT«Null PMC access in isa_pmc()current instr.: 'perl6;Iterator;eager' pc 10683 (src/builtins/Role.pir:143)» | ||
arnsholt | masak: I maded u a Null PMC | 17:27 | |
masak | but I submitted it :) | 17:28 | |
masak submits rakudobug | |||
arnsholt | Awww | ||
jnthn | my @a; say @a.perl | 17:32 | |
rakudo: my @a; say @a.perl | |||
p6eval | rakudo fe12ac: OUTPUT«Null PMC access in elements()current instr.: 'perl6;SeqIter;get' pc 13867 (src/builtins/Routine.pir:113)» | ||
masak submits rakudobug | 17:33 | ||
twitter.com/jonasbn/status/10128102734 -- awwww. :) | 17:35 | ||
lue | hello! | 17:42 | |
masak | hellue! | ||
moritz_ | irclog.perlgeek.de/perl6/2007-02-04#i_-55445 # that was my first contact with #perl6, btw | 17:43 | |
lue | I'm going to try and get a better input method set up (IBus plays with my typing). I'll be gone for a moment. | 17:45 | |
17:45
lue left,
jonafk joined
17:49
jonafk is now known as jonasbn
|
|||
pugssvn | r29984 | arnsholt++ | [t/spec] Fudged S02-builtin_data_types/array_extending.t | 17:49 | |
17:54
lue joined
|
|||
lue | I love 楽土 | 17:54 | |
lichtkind | can all people except me here write japanese? | 17:56 | |
moritz_ | lichtkind: no | ||
lichtkind | ok a wex kanji i can :) | ||
a few | |||
lue | I only just set up an input method. I only know a few phrases :) | 17:57 | |
masak | lue: 私は日本語を書くことができますが、私は日本語を読むことはできません。 :) | ||
lue | Can't write them, can kinda speak them. I blame what I know on ゼルダの伝説 :) | ||
masak: Come on! I'm only able to use my input method with romaji :) | 17:58 | ||
masak | lue: well, you did ask. :) | ||
lue | that's interesting, I can' | ||
t use my third level anymore | 17:59 | ||
arnsholt | lichtkind: I can input them (because I've enabled the input method, for the lulz), but I haven't the foggiest what they mean =) | ||
jnthn | arnsholt: my @a; @a[2] = 'b'; my @b = @a; is fixed locally :-) | ||
arnsholt: spectesting | |||
moritz_ | kanjicards.org/ | ||
dalek | kudo: 6a1c973 | moritz++ | t/spectest.data: more passing test files, arnsholt++ |
||
lue | ゼルダの伝説: 時のオカリナ (I'm done with that now) | 18:00 | |
diakopter | irclog.perlgeek.de/perl6/2007-01-28#i_-58349 | ||
lichtkind | did i miss anything important in www.perlfoundation.org/perl6/index.cgi?timeline ? | 18:01 | |
pugssvn | r29985 | arnsholt++ | [t/spec] Fudged (and fixed) S02-builtin_data_types/array_ref.t | ||
arnsholt | One more file that can be brought in | ||
diakopter | hmm. someone might do a "this day in Perl 6 history" every day... | ||
masak | lichtkind: there's no such term as 'great release cycles'. | 18:02 | |
18:03
payload left
|
|||
lichtkind | masak: how should i put it better the cycle between 1.0 and 2.0 | 18:03 | |
moritz_ | lichtkind: FWIW simon's first commit to the parrot repo was on Wed Aug 29 12:07:04 2001 | ||
18:03
payload joined
|
|||
moritz_ | but that was 2k lines of code, so it was probably written earlier | 18:04 | |
masak | lichtkind: they're called 'major versions'. | ||
lichtkind: I think you missed this: www.sidhe.org/~dan/blog/archives/000435.html | |||
jnthn | lichtkind: You missed a mention of my glorious entry into Rakudo development, but I'm too modest to want a mention of that. | 18:05 | |
;-) | 18:06 | ||
lichtkind | jnthn: when was it? | ||
jnthn | :-P | ||
# moved it on a Perl Foundation URL | 18:07 | ||
s/onto/ | |||
er, s/on/to/ | |||
18:09
payload left
|
|||
masak | rakudo: my $a = sub { say "OH HAI" }; $a.do | 18:10 | |
p6eval | rakudo 657c16: ( no output ) | ||
dalek | kudo: c364130 | jonathan++ | src/builtins/SeqIter.pir: Avoid a bunch of null PMC accesses. |
18:11 | |
pugssvn | r29986 | moritz++ | [t/spec] remove a TODO that jnthn++ fixed | 18:12 | |
18:12
colomon joined
|
|||
moritz_ | rakudo: my @a; @a[2] = 'b'; my @b = @a; | 18:14 | |
p6eval | rakudo 657c16: OUTPUT«Null PMC access in isa_pmc()current instr.: 'perl6;Iterator;eager' pc 10683 (src/builtins/Role.pir:143)» | ||
moritz_ | arnsholt: was there a test for this bug somewhere? | ||
lue & | 18:15 | ||
18:17
snarkyboojum joined
|
|||
pugssvn | r29987 | moritz++ | [t/spec] unfudge test for RT #73406 which jnthn++ fixed | 18:17 | |
moritz_ | rakudo: say ~(1, 2, 3) | 18:19 | |
p6eval | rakudo 657c16: OUTPUT«3» | ||
moritz_ | rakudo: say (1, 2, 3).WHAT | ||
masak | that one's submitted. | ||
p6eval | rakudo 657c16: OUTPUT«Parcel()» | ||
moritz_ | I know | ||
masak | good :) | ||
moritz_ | masak: sometimes I actually try to fix bug, not only point to them :-) | ||
diakopter finds my first join: irclog.perlgeek.de/perl6/2006-08-08#i_-193451 | |||
masak | moritz_: ouch... :P | ||
moritz_ | rakudo: say (1, 2, 3).join(' ') | 18:20 | |
p6eval | rakudo 657c16: OUTPUT«1 2 3» | ||
arnsholt | One more file that can be brought in | ||
Ooops. | |||
moritz_ | did you mean: Ooops.t ? | 18:21 | |
SCNR | |||
arnsholt | Arrow-up, enter in wrong window | ||
pugssvn | r29988 | baest++ | Fudged S05-mass/rx.t and fixed | ||
baest | if anybody is up to slowing down the spectest A LOT, then please bring in S05-mass/rx.t :) | ||
masak | baest++: you're the baest! | ||
moritz_ | baest: I'll do my very baest | 18:22 | |
baest | 730 tests | ||
diakopter finds an ironic parallel between Bibles that print the words of Jesus in red/bold lettering, and the #perl6 irclog, which prints the words of audreyt in red/bold lettering. | |||
moritz_ | diakopter: I've never seen such a bible; doesn't seem to be common in Europe | 18:23 | |
arnsholt | moritz_: I think it was common in the manuscript days | ||
pugssvn | r29989 | baest++ | Add plan | 18:24 | |
diakopter | en.wikipedia.org/wiki/Red_letter_edition | ||
moritz_ | rakudo: say (1, 2, 3).join(' ') | 18:27 | |
p6eval | rakudo 657c16: OUTPUT«1 2 3» | ||
moritz_ | and (1, 2, 3) is of type Parcel | ||
now when I add method Str() { self.join(' ') } class Parcel, it still prints 3 | 18:28 | ||
18:28
jonasbn left
|
|||
pugssvn | r29990 | arnsholt++ | [t/spec] Fudged and fixed S09-typed-arrays/arrays.t | 18:28 | |
moritz_ | I just don't understand it | ||
arnsholt | One more test file. | ||
jnthn | moritz_: what is prefix:<~> doing? | 18:30 | |
moritz_ | jnthn: good question... | ||
jnthn | rakudo: class Beer { method Str { "want" } }; say ~Beer.new | ||
p6eval | rakudo 657c16: OUTPUT«want» | ||
jnthn | oh...well, something sane it seems. | ||
moritz_ | it assigns to a new ['Str'] variable in PIR | 18:31 | |
baest | #64880 should be closable. There are still some problems with quoting in regex, but it doesn't die just gives a wrong result | 18:32 | |
diakopter | TimToady: if Pugs brought the New Testament, and Pharisaism is on the rise today, does that mean we're premillenial or amillenial or, GAH, preterists???? Has Jerusalem already been sacked by the Romans? How long until the Reformation? | ||
moritz_ | adn in Mur.pir there's a :vtable('get_string') that re-dispatches to sel.'Str'() | ||
jnthn | moritz_: nod | ||
18:32
lue left,
hercynium left
|
|||
moritz_ | so it all seems sane... except that it doesn't work as expected with Parcel | 18:33 | |
rakudo: say "foo" ~~ /"foo"/ | |||
p6eval | rakudo 657c16: OUTPUT«foo» | ||
dalek | kudo: fbd8bc9 | moritz++ | t/spectest.data: two more passing test files, baest++, arnsholt++ |
18:34 | |
moritz_ | I could have written taht as <arnsholt baest>».++ but that would have been unfair to karma tracking :-) | ||
jnthn | rakudo: say 42++ | 18:35 | |
p6eval | rakudo 657c16: OUTPUT«Cannot assign to readonly valuecurrent instr.: '&die' pc 16757 (src/builtins/Junction.pir:373)» | ||
jnthn | alpha: say 42++ | 18:36 | |
p6eval | alpha 30e0ed: OUTPUT«Unable to set lvalue on PAST::Val nodein Main (file <unknown>, line <unknown>)» | ||
moritz_ | rakudo: say 3.Str.WHAT | ||
p6eval | rakudo 657c16: OUTPUT«Str()» | ||
moritz_ | rakudo: class A { }; A.Str.WHAT.say | 18:37 | |
p6eval | rakudo 657c16: OUTPUT«A()» | ||
arnsholt | say ++e; | ||
moritz_ | masak: that's another bug :-) | ||
arnsholt | rakudo: say ++e | 18:38 | |
p6eval | rakudo 657c16: OUTPUT«Cannot assign to readonly valuecurrent instr.: '&die' pc 16757 (src/builtins/Junction.pir:373)» | ||
baest | #66742 should also be closable | ||
uniejo | rakudo: module Beer {}; module Food {}; Beer|Food++ | 18:39 | |
p6eval | rakudo 657c16: OUTPUT«Method 'clone' not found for non-objectcurrent instr.: '&postfix:<++>' pc 374966 (src/gen/core.pir:55148)» | ||
masak | that's disgusting :) | ||
masak submits A.Str.WHAT.say rakudobug | 18:41 | ||
arnsholt | rakudo: my Str %s = :a<b>a | 18:42 | |
p6eval | rakudo 657c16: OUTPUT«Confused at line 11, near "my Str %s "current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)» | ||
arnsholt | rakudo: my Str %s = :a<b> | ||
p6eval | rakudo 657c16: OUTPUT«get_pmc_keyed() not implemented in class ''current instr.: 'perl6;Associative[::T];postcircumfix:<{ }>' pc 13453 (src/builtins/Code.pir:84)» | ||
moritz_ | arnsholt: that should fail, but diffferently | ||
with a type check error | 18:43 | ||
because :a<b> is a Pair, not Associative[Str] | |||
arnsholt | Yeah, that's what I thought | 18:44 | |
rakudo: my Str %s = {a => 'b'} | |||
p6eval | rakudo 657c16: OUTPUT«get_pmc_keyed() not implemented in class ''current instr.: 'perl6;Associative[::T];postcircumfix:<{ }>' pc 13453 (src/builtins/Code.pir:84)» | ||
masak submits rakudobug | |||
arnsholt | rakudo: my %s = {a => 'b'} | 18:45 | |
p6eval | rakudo c36413: ( no output ) | ||
masak | rakudo: my Str %s | ||
p6eval | rakudo c36413: ( no output ) | ||
moritz_ | rakudo: my Str %s; my Str %a; %a<a> = a; %s = %a; say "alive" | ||
p6eval | rakudo c36413: OUTPUT«get_pmc_keyed() not implemented in class ''current instr.: 'perl6;Associative[::T];postcircumfix:<{ }>' pc 13453 (src/builtins/Code.pir:84)» | ||
moritz_ | rakudo: my Str %s; my Str %a; %a<a> = a; say "alive" | ||
p6eval | rakudo c36413: OUTPUT«get_pmc_keyed() not implemented in class ''current instr.: 'perl6;Associative[::T];postcircumfix:<{ }>' pc 13453 (src/builtins/Code.pir:84)» | ||
moritz_ | rakudo: my Str %a; %a<a> = a; say "alive" | 18:46 | |
p6eval | rakudo c36413: OUTPUT«get_pmc_keyed() not implemented in class ''current instr.: 'perl6;Associative[::T];postcircumfix:<{ }>' pc 13453 (src/builtins/Code.pir:84)» | ||
moritz_ | that looks like fallout from the concrete role vs. role group distinguishing | 18:47 | |
jnthn | moritz_: Not quite that. | 18:48 | |
moritz_: A FAIL attempt to get typed hashes working again that somehow got committed. | |||
18:50
uniejo left
|
|||
masak | rakudo: my Str %s = a => 'b' | 18:50 | |
p6eval | rakudo c36413: OUTPUT«get_pmc_keyed() not implemented in class ''current instr.: 'perl6;Associative[::T];postcircumfix:<{ }>' pc 13453 (src/builtins/Code.pir:84)» | ||
dalek | kudo: be8b318 | jonathan++ | src/builtins/ (2 files): Get Seq.new and Array.new working again. |
18:51 | |
kudo: 3547ff1 | jonathan++ | t/spectest.data: Re-enable S32-array/create.t. |
|||
pugssvn | r29991 | arnsholt++ | [t/spec] Fudged S09-typed-arrays/hashes.t | 18:58 | |
arnsholt | Yet another file that can be added | 18:59 | |
19:02
lue joined
19:03
szabgabx left
|
|||
lichtkind transalted wx.po file | 19:04 | ||
in better quality :) | 19:05 | ||
masak | food & | 19:07 | |
19:07
masak left
19:11
krakan joined
19:22
nihiliad1 joined
19:23
Trashlord joined
19:24
lue is now known as Hackathon,
nihiliad left
|
|||
Hackathon | Sorry for the delay. Our total this hour is...£10000 worth in bug fixes! (€96323, the equivalent in USD is 72 million digits long!) | 19:25 | |
Thanks to our volunteers, and remember, our robot operators are standing by for YOUR bug reports! | 19:26 | ||
19:26
Hackathon is now known as lue
19:28
rgrau joined
19:37
wolf2k_ubuntu joined
19:41
maerline joined,
maerline left,
maerline joined,
maerline left
|
|||
colomon | What madman turned arith.t back on? :) | 19:44 | |
hackathon++ | 19:46 | ||
19:48
Apocal left
19:53
colomon left
20:07
jmarti left
|
|||
lichtkind | jnthn: do you want a beer too? | 20:10 | |
20:16
kensanata joined
20:21
clintongormley left
20:29
amenhotep joined
20:34
arlinius joined
20:36
kensanata left,
kensanata joined
20:42
[synth] left
20:44
akl left,
akl joined,
akl left,
akl joined
20:53
akl left
20:54
Su-Shee left,
akl joined
20:55
synth joined
21:04
pmurias joined
|
|||
pmurias | hi | 21:04 | |
diakopter | hi | ||
:) | |||
21:06
robertml left
|
|||
lichtkind | pmurias: cheers | 21:12 | |
diakopter: how is sprixel doing? | |||
diakopter | lichtkind: nicely, lately | 21:26 | |
lichtkind | great | ||
diakopter | stage0 (the nqp-rx work-alike written in C#) is coming along... | ||
typed declarations and assignment of primitives working. | 21:27 | ||
21:27
payload joined
|
|||
diakopter | I strongly believe the grammar/compiler system to be flexible enough to support a full STD/Cursor workalike, without refactorings. | 21:28 | |
lichtkind | diakopter: what is cursor? | ||
diakopter | ... without *further* refactorings, I mean. | ||
lichtkind | :) | ||
diakopter | the parser engine that STD.pm uses; svn.pugscode.org/pugs/src/perl6/Cursor.pmc | ||
sprixel stage0 is ending up being basically an implementation of the strongly-typed/functional subset of Perl 5, with some Perl 6 stuff thrown in, plus Grammars, plus string eval | 21:30 | ||
all invocations statically resolvable (no reason to have more than 1 [additional] layer of dispatchers)... oh, and CIL type declarations (fields, methods, constructors, single-inheritance). struct (CIL value type) declaration should be feasible as well. | 21:33 | ||
so, all the subsets of Perl 6 that can be mapped directly (transliteratable) to CIL on the CLR. | |||
plus closures & continuations, which my compiler is handling specially. | 21:34 | ||
currently stage0 is compiled from in-memory structures to CIL (in-memory), and JITted, and executed, and then stage0 has enough API access/visibility to then compile the next stage (from the user input) to CIL (and then JITted), and then executed. | 21:37 | ||
on *every* invocation. | |||
lichtkind | slowly please , my brain is in beer mode | 21:38 | |
japhb | .oO( What would a "beer in brain mode" be like? ) |
||
diakopter | ... which adds about 0.5s to compile stage0 on every invocation. Once stage0 is compiled to disk, that 0.5s will drop to 0.01s or so. | ||
(assuming nothing else is added to the compiler :P) (so, obviously, it'll get slower as I type more) | 21:39 | ||
japhb | .oO( Ale that makes you smarter? ) |
||
lichtkind | diakopter: sounds great , where lies the code? | 21:40 | |
japhb: als in de is hard to get | 21:41 | ||
japhb | lichtkind, so what is common then? | 21:42 | |
lichtkind | japhb: beer :) but i seldom drink it :) | ||
diakopter | lichtkind: it's at csmeta.googlecode.com | ||
lichtkind | diakopter: thanks most of what i did was: www.perlfoundation.org/perl6/index.cgi?timeline | ||
japhb never was skilled at "frothy alcoholic beverage" taxonomy | 21:43 | ||
Amateur brewers in friends and family have attempted to educate me, but most of it went in one ear and out the other. :-) | 21:44 | ||
s/in/amongst/ | |||
lichtkind | diakopter: mberend wrote for you some nice article , if you would just check it www.perlfoundation.org/perl6/index.cgi?sprixel | ||
diakopter | I read it; it's fine | 21:45 | |
lichtkind | great | 21:46 | |
diakopter: thanks | |||
its about time that we build up some good readavble content | |||
diakopter: should i mention sprixel in the timeline? | 21:47 | ||
21:47
UnGato joined
|
|||
diakopter | lichtkind: nah, not yet | 21:48 | |
21:48
UnGato left
|
|||
diakopter | ask pmurias if he thinks you should mention mildew... | 21:48 | |
lichtkind | diakopter: its already mentioned | ||
diakopter | oh | ||
lichtkind | smop and mildew | 21:49 | |
21:49
szbalint joined
|
|||
lichtkind | diakopter: is mildew done by pmurias? i thought it was ruoso? | 21:51 | |
diakopter | pmurias took it over 1.5 years ago | 21:52 | |
lichtkind | ah thanks, so my msg that ruaso started is was wright | ||
i just used pugs logs | |||
diakopter | they worked together on it, I think | ||
ask him :P | |||
lichtkind | :) | ||
pmurias: ping | |||
21:53
alester joined
|
|||
lichtkind | diakopter: oh pmurias submited initial | 21:53 | |
21:54
fridim joined
|
|||
lichtkind | diakopter: you was right | 21:54 | |
diakopter | well, there was a fork/rewrite/replace somewhere in there, iirc | 21:56 | |
22:03
masak joined
|
|||
lichtkind | diakopter: do you know why cursor has ending pmc not pm? | 22:03 | |
22:04
Apocal joined
|
|||
arnsholt | masak: It turns out "gift" and "gifte" are actually related | 22:04 | |
masak | arnsholt: first being 'poison'? | ||
arnsholt | Yes | ||
masak | so, that's no:'gift' and no:'gifte'? :) | ||
arnsholt | Yep | 22:05 | |
masak | sv:'gift' and sv:'gifta' :) | ||
arnsholt | Yeah | ||
So I think it has to be a case of renaming something unmentionable, like the Furies being called the kindly ones | |||
moritz_ | arnsholt, jnthn, baest: video.google.com/videoplay?docid=-8...6198824415 | ||
masak | I misremembered about the tattoos. it meant 'green rice'. www.hanzismatter.com/2004/12/green-rice.html | 22:06 | |
22:06
Sarten-X left
|
|||
masak | he really wanted the combined character, which means 'essence'. | 22:06 | |
jnthn | oh hai | ||
I has a return. | 22:07 | ||
masak | whoa: lumberjaph.net/blog/index.php/2010/...a-preview/ | ||
masak tries to find himself in that graph | |||
the Perl 6 people are actually in the upper left. :) | 22:08 | ||
moritz_ | masak: given/when vs. hashes benchmark: 0m10.644s vs 0m9.167s for 100 iterations | 22:09 | |
masak | moritz_: huh. not that significant... :/ | 22:10 | |
moritz_ | masak: yes, I was quite disappointed | 22:14 | |
maybe I screwed up the benchmark... just a sec | |||
22:15
xomas_ joined
|
|||
lisppaste3 | moritz_ pasted "Speed comparison hash vs. given/when" at paste.lisp.org/display/96069 | 22:16 | |
moritz_ | masak: that's the code | ||
masak | yup. | 22:17 | |
22:17
wolf2k_ubuntu left
|
|||
masak | I need to write a cranky editorial about the absurdity of Perl 6 having "missed the boat." | 22:19 | |
22:20
levengli joined,
levengli left
|
|||
lichtkind | [23:23:36] Herbert Breunung: side effect free language will have only one effect: make your CPU hot :) | 22:23 | |
masak | that's an unusually narrow definition of 'side-effect-free'. | 22:24 | |
22:24
IllvilJa left
|
|||
lichtkind | but true :) | 22:24 | |
masak: what you means by missed the boat? | |||
masak | lichtkind: actually, I'm just spreading a meme already being spread by spam bots on Twitter. | 22:25 | |
moritz_ | (which resulted in perlbuzz.com/2009/08/perl-6-has-not...-boat.html - the point being that there is no boat that could be missed) | ||
jnthn | It accidentally all over Twitter. | 22:26 | |
masak | lichtkind: but seriously, if you don't consider calculating an actual result a side effect, then what you quoted isn't actually true. | ||
alester | "I'm finally working on my "handy responses for Perl 6 sniping" cheat sheet. I'll post it soon!" | 22:27 | |
masak | the word 'side effect' means it's to the side of the main effect, which is calculating the result. | ||
alester | What buffoon wrote THAT promise? | ||
moritz_ | which promised? | ||
masak | alester: no idea :) | ||
moritz_ must have missed the boat... err, context :-) | |||
lichtkind | masak: sounds like a good wiki article :9 | ||
masak | lichtkind: en.wikipedia.org/wiki/Side_effect_(...r_science) | ||
lichtkind | masak: the main argument was since even printing has side effects ther ewill nothing visible in side ffect free lang except cpu temperature | 22:28 | |
masak | lichtkind: is this argument deliberately missing the point, or is it just dumb? | 22:29 | |
moritz_ | lichtkind: that's the nice thing about *lazy* side-effect free languages - they don't even heat the CPU :-) | ||
lichtkind | :) | ||
masak: since the argument by Hejlsberg i think it was ment as a joke | 22:30 | ||
masak | lichtkind: but you never know, due to Hejlsberg's uncertainty principle... | ||
lichtkind | that was heisenberg i think :) | 22:31 | |
masak | we don't know that either :) | ||
lichtkind | haha | ||
moritz_ | the nice the about mathematics and logic is that there are uncertainties you can be certain about | 22:32 | |
masak | yes, after the disappointment it can be kind of a relief. | 22:34 | |
unless your goal really was omniscience... | 22:35 | ||
moritz_ | in which case you didn't learn your lessons from mathematics | ||
it's like trying to solve and integral that doesn't exist | |||
masak | been there, done that :/ | 22:36 | |
moritz_ | hugme: tweet rakudoperl intermediated outcome of the #perl6 hackathon in Copenhagen: a plan for module implementations at tinyurl.com/s11rakudo | ||
hugme hugs moritz_; tweet delivered | |||
masak | \o/ | ||
moritz_ | E2LATETOSPEL | 22:37 | |
22:39
IllvilJa joined
22:47
iblechbot left
22:48
Jedai left
22:51
Jedai joined
|
|||
pugssvn | r29992 | jnthn++ | [t/spec] Revise tests in light of list changes and unfudge a couple of tests master passes but alpha didn't. | 22:55 | |
23:07
PacoLinux left
23:09
SmokeMachine left
|
|||
pmurias | lichtkind: pong | 23:09 | |
lichtkind | ah | ||
pmurias: i mentioned you at www.perlfoundation.org/perl6/index.cgi?timeline | 23:10 | ||
pmurias: please check and i would also have more info for www.perlfoundation.org/perl6/index....wel_murias | |||
mschnlnine.vo.llnwd.net/d1/ch9/2/4/...cy_ch9.wmv this talk is great | 23:13 | ||
its also about the basic problems perl 6 taps into | |||
and what larry wants to do hejlsberg is afraid to do :) | 23:14 | ||
masak | Perl 6 taps into problems? | ||
lichtkind | no way :) | ||
dalek | kudo: d802ffd | jonathan++ | src/builtins/control.pir: Fixes with nextwith and callwith method detection - use a heuristic that works even for those methods written in PIR. |
||
kudo: a1f4ac9 | jonathan++ | src/glue/subset.pm: Fixes to subsets so we can chain them and they check the base type. |
|||
kudo: 5ec2c96 | jonathan++ | t/spectest.data: Re-enable subset.t, which passes some tests alpha never passed. :-) |
|||
lichtkind | jnthn++ | ||
masak: yes i was talking about the problem that iy you want to allow to make DSl on runtime you have to grant them acess to the AST or wven parser and thats was aders too afraid | 23:16 | ||
masak | we were talking about some issues related to that over breakfast. | 23:18 | |
moritz_ | we were actually talking about what kind of objects a quasi quote returns, and if they are like closures, and if you can apply them at run time | 23:19 | |
masak | something like: if you're able to pass quasiquotes around between different lexical scopes... yes, what moritz_ said. | ||
moritz_ | the answers were basically "dunno, some type", "not really" and "no" | ||
lichtkind | :) | ||
masak | they are AST types. | ||
moritz_ | types? or just one type? | 23:20 | |
masak | dunno, some type(s). :) | ||
PAST has a handful of types, so I wouldn't rule out there being several for quasi-generated ASTs as well. | 23:21 | ||
(even though PAST and the quasi structures are quite different beasts) | |||
23:25
hejki left
23:26
rv2733 left
|
|||
lichtkind | pmurias: no addons? | 23:29 | |
23:30
avar left
23:32
hejki joined
23:34
pmurias left
23:36
snarkyboojum left,
hercynium joined
|
|||
pugssvn | r29993 | jnthn++ | [t/spec] Unfudge a couple more subest tests that we can pass now. | 23:39 | |
23:40
masak left
|
|||
arnsholt | moritz_: Finally watched that Guy Steele talk | 23:40 | |
That was brilliant | 23:41 | ||
23:41
avar joined
|
|||
jnthn | OK, sleep time for me...night o/ | 23:41 | |
23:43
mikwss joined
|
|||
dalek | kudo: 2139748 | jonathan++ | src/Perl6/Grammar.pm: Make my subset ... parse. |
23:43 | |
23:43
mikwss left
23:48
snarkyboojum joined
23:49
am0c joined
|
|||
moritz_ | before jnthn's commit we had 26664 passing tests | 23:53 | |
23:54
alester left
23:57
kensanata left
|