»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg camelia perl6: ... | irclog: irc.perl6.org | UTF-8 is our friend! Set by sorear on 25 June 2013. |
|||
00:01
Vlavv joined
00:15
Timbus left
00:16
zamolxes left
00:18
zamolxes joined,
Timbus joined
00:21
benabik joined
00:24
ssutch joined,
ssutch left,
ssutch joined,
ssutch left,
ssutch joined
00:28
benabik left
00:29
btyler left
00:35
rurban left
00:53
dayangkun joined
01:02
qzx left
01:07
rurban joined,
Su-Shee_ joined
01:11
Su-Shee left,
rurban left
01:16
FROGGS_ joined
01:19
Sqirrel left,
FROGGS left
01:20
Sqirrel joined
01:21
klapperl joined
01:23
qzx joined
01:24
PZt left,
klapperl_ left
01:35
lvfjf joined
|
|||
d^_^b | timotimo: adding it (-Xms1024m) to the makefile (tools/build/Makefile-JVM.in) just after $(JAVAC). but it doesn't seem to add that switch | 01:38 | |
01:53
cooper- joined
|
|||
skids wonders what he should touch after making a mod in star's --gen-moar tree to get make to rebuild appropriately. | 01:56 | ||
(and.or rm) | |||
02:04
benabik joined
02:08
jnap joined
|
|||
Timbus | is there an 'is required' trait for attributes? or, will there be? i mean i guess $.foo = fail("foo required") or so works but, ehh.. | 02:18 | |
02:20
donaldh left
|
|||
skids | Well, you could make them required in a custom .new, no? | 02:24 | |
02:24
donaldh joined
|
|||
Timbus | well, yeah but thats very similar to my current way. I just figured required attributes would be common enough to warrant a way to declare them as such | 02:30 | |
02:44
SamuraiJack_ joined
02:58
xinming_ joined
03:01
xinming left
|
|||
skids | I could see that being handy for introspection purposes. | 03:01 | |
03:01
rurban joined
03:03
SamuraiJack_ left
03:04
SamuraiJack_ joined
03:06
adu joined
03:15
SamuraiJack_ left
03:16
SamuraiJack_ joined
03:17
hoverboard joined
03:25
Alula left,
lvfjf left
03:26
SamuraiJack_ left
03:33
kurahaupo left,
lvfjf joined
03:34
fhelmberger joined
03:36
Alula joined
03:39
fhelmberger left
03:42
adu left
03:48
adu joined,
adu left
03:50
logie_ left
03:54
Zaegnair joined
|
|||
Zaegnair | Hello. | 03:54 | |
Is there anybody out there? | |||
03:55
jnap left
|
|||
BenGoldberg | Sure, there's people out there. | 03:56 | |
In fact, some people are *very* *much* out there ;) | 03:57 | ||
Zaegnair | Hi Ben. So the function of this room is to assist with perl 6 development? | ||
BenGoldberg | Yup | ||
Zaegnair | Lol. :P | ||
03:57
xinming_ left
|
|||
Zaegnair | Mind briefing me? | 03:57 | |
How can I help? I'm curious. | |||
03:57
kaare_ joined
|
|||
BenGoldberg | Hmm... I'm not the best person to explain it all... | 03:58 | |
I suppose the best starting point would be perl6.org | |||
The folks who are good at splaining things are mostly asleep, due to different timezones | 03:59 | ||
03:59
logie_ joined
|
|||
BenGoldberg | You also might want to look at the irc logs for this channel... see the /topic | 04:00 | |
Zaegnair | Ah I see. | ||
Thank you. | |||
BenGoldberg | You're welcome. | ||
BenGoldberg yawns. <-- Ought to be in bed, since it's nearly midnight. | |||
04:00
PZt joined
|
|||
Zaegnair | East Coast? | 04:00 | |
Sleep well. | |||
BenGoldberg | Yup. | ||
PerlJam | Zaegnair: greetings. | 04:01 | |
PerlJam is mid-coast :) | |||
Zaegnair | Greetings PerlJam. | 04:02 | |
PerlJam | BenGoldberg gave you some good advice. | ||
If you have any questions, I'll probably be around for an hour or so. | 04:03 | ||
Timbus: has $.attr = !!!; # makes the attr required | 04:05 | ||
has $.attr = !!! 'attr is required'; # takes an arg too | |||
04:05
BenGoldberg left
04:08
Zaegnair left
04:19
Sqirrel left
04:25
jnap joined
04:26
jnap left,
jnap1 joined
04:30
jnap1 left
04:39
xinming joined
04:50
rurban left
04:56
[particle] left,
[particle] joined
04:59
hoverboard left
05:00
lvfjf left
05:02
kaare_ left
05:14
dayangkun left
05:17
wbill left
05:20
rurban joined
05:22
rurban1 joined
05:25
rurban left
05:26
rurban1 left,
jnap joined
05:28
kaare_ joined
05:31
jnap left
05:48
logie_ left
05:51
vendethiel left
05:52
xinming left
05:55
eternaleye left
05:56
eternaleye joined
05:57
silug____ left,
vendethiel joined
|
|||
skids | gist.github.com/skids/2b069b02b2a9b6e0ee45 # <-- testing the bigint bitops fixes from RT#115966 | 06:08 | |
synopsebot | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=115966 | ||
skids | Bedtime was a long time ago. | ||
06:14
dayangkun joined
06:16
vendethiel left
06:23
anaeem1 joined,
rurban joined
06:24
bjz joined,
vendethiel joined
06:25
vendethiel left
06:26
vendethiel joined
06:27
jnap joined,
rurban left
06:28
anaeem1 left
06:30
kaleem joined
06:31
vendethiel left
06:32
FROGGS_ left,
jnap left,
vendethiel joined
06:35
anaeem1_ joined
06:43
anaeem1_ left,
anaeem1 joined
06:44
kaleem left
06:45
anaeem___ joined
|
|||
masak | g'm', #perl6 | 06:48 | |
ooh! | |||
one thing I didn't immediately pick up about linear logics, but that's obvious in retrospect: | 06:49 | ||
06:49
anaeem1 left
|
|||
masak | because of the extra assumptions about no-cloning and no-deletion, *you can do more optimizations*. | 06:49 | |
because you're statically guaranteed that there's only one copy of something. | 06:50 | ||
06:51
kaleem joined
06:56
FROGGS joined
06:57
daniel-s__ joined,
avuserow1 joined,
avuserow left,
daniel-s_ left
06:59
anaeem___ left
07:03
Ven joined
07:05
zakharyas joined
07:09
raiph joined
07:11
Su-Shee_ is now known as Su-Shee
07:14
nnunley left
07:15
qzx left
07:16
donaldh_ joined
07:22
qzx joined
07:24
rurban joined
07:27
sqirrel_ joined,
anaeem1_ joined
07:28
jnap joined,
rurban left
07:32
xinming joined,
darutoko joined,
jnap left
07:34
fhelmberger joined
07:39
fhelmberger left
07:51
raiph left
07:55
dayangkun_ joined
07:58
dayangkun left
|
|||
Ven | what's "matching stream" in the feature comp. matrix ? | 08:05 | |
moritz | Ven: there's supposed to be a string-like type that's actually a stream | ||
Ven: and matching regexes against such a stream would be the holy grail of integrating it into the language | 08:06 | ||
Ven | mmh,mhh I see. Cause there's no link to synopsis in the matrix | 08:15 | |
Oh, I'll take a look at how STD does interpolation | 08:18 | ||
08:20
fhelmberger joined
08:24
rurban joined
08:27
rurban1 joined
08:29
jnap joined,
rurban left
08:31
igorsutton joined,
rurban1 left
08:33
jnap left
08:35
dayangkun_ left
08:38
dayangkun joined
08:41
rindolf joined
08:55
pecastro joined
|
|||
FROGGS | jnthn: I fiddled with unwind_check, made notes about the things on the stack for every operation, and get an error message I don't understand... | 09:00 | |
java.lang.RuntimeException: java.lang.ArrayIndexOutOfBoundsException: 0 | |||
in classfile (gen/jvm/stage2/NQPHLL.nqp:92) | |||
jnthn: how do you debug that? | 09:01 | ||
running it with jdb just gives me the following: | |||
java.lang.NoClassDefFoundError: org/objectweb/asm/tree/MethodNode | |||
in classfile (gen/jvm/stage2/NQPHLL.nqp:92) | |||
and this is not very helpful... | |||
nwc10 | so, work has 2 coffee machines. different manufacturs, different water supply etc | 09:02 | |
(not sure if different mains phases) | |||
both failed! | |||
FROGGS | jnthn: the code gen works btw, it explodes when executing it | ||
uhh /o\ | |||
nwc10 | we have convinced the simpler one to work again | ||
FROGGS | nwc10: have you labeled them 'East' and 'West'? | 09:03 | |
nwc10 | no | ||
but in this sort of situation, I'd prefer a piece of Soviet technology to something western | 09:04 | ||
FROGGS | ahh, so it is more about load balancing anyway :o) | ||
nwc10 | it would be easier to fix (or at least bodge) | ||
09:09
woosley left,
domidumont joined
|
|||
timotimo | FROGGS: that looks like asm.jar is exploding | 09:10 | |
they did not bother to put anything into the code that checks if you're using it right | |||
FROGGS | timotimo: yes, but it must be my fault | ||
timotimo | instead they just let the code run into exceptions by accessing arrays as if they were sure it'd work | ||
09:10
plobsing left
|
|||
donaldh_ | it looks like asm.jar is not on the runtime classpath | 09:10 | |
FROGGS | that is my nqp-j content: | 09:11 | |
exec jdb -classpath a:.:nqp-runtime.jar:3rdparty/asm/asm-4.1.jar:3rdparty/jline/jline-1.0.jar:3rdparty/jna/jna.jar:nqp.jar nqp "$@" | |||
err, nqp-jdb was that | |||
nqp-j is: exec java -cp . -Xbootclasspath/a:.:nqp-runtime.jar:3rdparty/asm/asm-4.1.jar:3rdparty/jline/jline-1.0.jar:3rdparty/jna/jna.jar:nqp.jar nqp "$@" | 09:12 | ||
is the jdb line correct? | |||
donaldh_ | yes, it looks right. | ||
Ah, no. | 09:13 | ||
jnthn | FROGGS: The index out of bounds error normally is asm's crappy way of telling you that you got the stack height inconsistent at some point. | ||
donaldh_ | I think asm-tree-4.1.jar should be on the classpath too. | ||
FROGGS | inconsistent stack height?! wth is that even :o) | 09:14 | |
donaldh_: I'll try | |||
donaldh_ | The NoClassDefFoundError is for a class that is in asm-tree.jar | 09:15 | |
FROGGS | donaldh++ # now I get the same error msg like nqp-j gives me | ||
and now I need to find out how to use jdb | |||
09:17
donaldh left,
domidumont left
|
|||
FROGGS | this seems handy: catch java.lang.ArrayIndexOutOfBoundsException | 09:17 | |
09:18
domidumont joined
|
|||
FROGGS | hmmm, perhaps that is a little bit too late | 09:18 | |
gah | 09:21 | ||
no readline support, and I have to type 'next'... 'n' does *not* work -.- | 09:22 | ||
stupid verbose Javasians | |||
donaldh_ doesn't like jdb | |||
jnthn | I was going to make a joke that jdb would be like gdb but more verbose, but it felt like a bit of a cheap shot :P | ||
FROGGS | donaldh_: is there something better that I could try? | ||
:o) | 09:23 | ||
donaldh_ | FROGGS: I use the Eclipse debugger and run nqp with remote debugging enabled. | 09:25 | |
FROGGS | hmm, that sounds like something that is not easy to set up | ||
donaldh_ | takes longer than jdb for sure | 09:26 | |
FROGGS: do you have rlwrap available on your system? | |||
FROGGS | I can install it, yes | 09:27 | |
09:27
sqirrel_ left
|
|||
donaldh_ | It should be possible to use rlwrap around jdb to add readline functionality. | 09:27 | |
FROGGS | ahhh, I see | ||
cool :o) | |||
donaldh_ uses it with sqlplus | |||
09:28
woosley joined,
rurban joined,
dayangkun_ joined
09:29
jnap joined
|
|||
FROGGS | I think I am going to add a method in Ops.java and add that thing to add a breakpoint there... | 09:29 | |
09:31
dayangkun left
|
|||
FROGGS | that readline wrapper works! | 09:32 | |
09:32
rurban left,
woosley left
09:33
domidumont left
09:34
jnap left,
domidumont joined
|
|||
FROGGS | btw, if we create a debugger to debug MoarVM, it should be called: perl6-debug-vm for "perl6-debug eVen Moar" | 09:36 | |
09:37
dayangkun joined
|
|||
timotimo | debug very much? | 09:39 | |
FROGGS | no, eVen Moar :o) | 09:40 | |
09:40
dayangkun_ left
09:43
donaldh_ is now known as donaldh
|
|||
FROGGS | damn, it just ignores my breakpoint :/ | 09:45 | |
jnthn | I suspect building profiling support into Moar is moar pressing. | 09:47 | |
FROGGS | nooooooo! | 09:48 | |
LABELS | |||
jnthn | I thought they worked on Moar? :P | 09:49 | |
It's "just" JVM to go now? | |||
I suspect using jdb on the array out of bounds will mostly be useful if you can step down to the stack from in JASTToBytecode or similar...but even then maybe not. | |||
It'll likely be that the wrong type is on the stack, or some stack heigh issue. Like pop rather than pop2'ing an RT_INT or so. | 09:50 | ||
timotimo | yeah, longs taking two slots on the stack is a tiny bit weird | ||
and caused me lots of grief while developing | |||
FROGGS | yes, just jvm | ||
here I wrote down what I expect is on the stack: gist.github.com/FROGGS/afd1ce1ef24a4c683b71 | 09:51 | ||
I know that $LCMP does not push a Bool on the stack... but it should be something that only takes *one* slot, right? | 09:52 | ||
09:52
domidumont left
|
|||
timotimo | it puts a comparison result object, doesn't it? | 09:53 | |
FROGGS | docs just state it is a "result" | 09:54 | |
it seems to explode before line 41 of the gist (call to _is_same_label) | 09:55 | ||
err, line 41 in case you refresh :o) | |||
timotimo | Stage optimize : 13.337 | ||
*giggle* | |||
jnthn | FROGGS: I think it's an integer | 09:57 | |
32-bit | |||
So one slut | |||
slot | |||
FROGGS | hihi | ||
jnthn | ouch :P | ||
FROGGS | :P | ||
okay, so popping that one slut should be fine then :o) | |||
jnthn | Note that if you then use it with something that expects a $RT_INT, then you'd need to i2l it | 09:58 | |
But yeah, if you're just popping it then pop is fine. | |||
FROGGS | I ifeq it | ||
timotimo | is there really no asm.jar debug build that gives you more debug diagnostics? | 09:59 | |
FROGGS | perhaps there is... I have no idea what I am doing with all these Java things :/ | ||
timotimo | much like me :P | ||
10:04
denis_boyun_ joined
10:10
dayangkun left
10:12
dayangkun joined
10:15
kivutar joined
10:19
berekuk joined
10:29
rurban joined
|
|||
moritz thought this was a family-friendly channel :-) | 10:29 | ||
lizmat | too much java is not good for your blood pressure :-) | 10:30 | |
10:30
jnap joined,
qzx left
10:33
rurban left
10:35
jnap left
10:41
dayangkun left
10:50
pecastro left
10:52
pecastro joined
11:00
takesako____ left
|
|||
lizmat | hmmm... if I google for "rakudo star download", one of the top hits leads me to: github.com/rakudo/star/downloads | 11:03 | |
which only has 2012.11 as the last rakudo star :-( | |||
masak | probably because Google favors hits with the exact words in the URL. | ||
lizmat | are we forgetting to update it there? | ||
is that obsolete? | |||
if it is, shouldn't we get rid of it? | 11:04 | ||
masak | I think we used to upload it there, but then switched to a dedicated server. | ||
lizmat | Ah, I see all the way at the bottom: | 11:05 | |
We’ve recently deprecated this downloads section (manually uploaded files). | |||
Please read the blog post for more information. | |||
lizmat is reading github.com/blog/1547-release-your-software | 11:06 | ||
and indeed we seem to have github.com/rakudo/star/releases | 11:07 | ||
stoopid google | |||
and stoopid github for not linking directly from github.com/rakudo/star/downloads to github.com/rakudo/star/releases | |||
lizmat is wondering whether it would be a good idea to remove all packages from /downloads | 11:09 | ||
the newest release there is 1.5 years old | |||
which is a *lot* in rakudo's lifetime, right? | |||
11:10
chenryn left
|
|||
lizmat | afk for a bit& | 11:12 | |
nwc10 | lizmat: killing stale stuff seems like a good idea to me. Is it possible to put any sort of README in that directory to send people to the correct place? | ||
lizmat | don't think so, but removing stuff will at least show the link to the blog post deprecating github downloads more prominently | 11:14 | |
really afk& | |||
11:16
takesako____ joined
|
|||
FROGGS | can't upload a file that has a short sentence as filename? | 11:21 | |
11:23
rurban joined
11:30
sftp left,
sftp joined
11:31
jnap joined
|
|||
Timbus | does there exist, any kind of perl 6 data structure (a hash i guess) that can use an object's attribute as its key? because I think that would be handy | 11:34 | |
11:35
jnap left,
sftp left,
sftp joined
|
|||
Timbus | i mean, im using a hash to store objects and the key is currently the same as one of the objects attributes. that's fine. but the attribute can change. so I need to maintain both the object and the data store. | 11:38 | |
11:38
sftp left
11:39
sftp joined
11:41
virtualsue joined
11:42
sftp left,
sftp joined
11:47
berekuk left,
xinming left
12:03
kurahaupo joined
12:05
telex left
12:06
telex joined
12:08
gfldex_ is now known as gfldex
|
|||
lizmat | Timbus: something like: | 12:10 | |
m: class A { has $.foo }; say A.^attributes | |||
camelia | rakudo-moar 362f3f: OUTPUT«Mu $!foo» | ||
12:10
daniel-s joined
|
|||
lizmat | ? | 12:10 | |
at least you would know what "keys" you could use ? | 12:11 | ||
I don't think we would like to allow access to the inner hash, as that is an implementation detail | |||
and could change at any time | |||
FROGGS: you can't upload anything anymore, afaik, as the upload API has been disabled | 12:13 | ||
"The ability to upload new files via the web site is disabled today." stated on 11 Dec 2012 | 12:14 | ||
FROGGS | k :( | 12:17 | |
lizmat | I have downloaded all packages in the downloads directory | 12:18 | |
and will remove them around midnight today (CST) unless somebody tells me not to | |||
FROGGS | m: class A { has $.foo }; my @things = A.new( :foo<bar> ), A.new( :foo<baz> ); my %h = @things.map: { .foo => $_ }; say %h # Timbus this? | 12:20 | |
camelia | rakudo-moar 362f3f: OUTPUT«("bar" => A.new(foo => "bar"), "baz" => A.new(foo => "baz")).hash» | ||
12:21
berekuk joined
|
|||
FROGGS | lizmat++ | 12:21 | |
12:32
jnap joined
|
|||
[Coke] | heard elsewhere on the internets: | 12:33 | |
-> (21:17) From Kazrak, to random: | |||
- "2. ???? 1. Race condi3. Profit! tion" | |||
moritz | :-) | 12:34 | |
lizmat | :-) | ||
12:36
jnap left
|
|||
[Coke] would really like to get back to working on perl instead of work. :P | 12:38 | ||
lizmat hugs [Coke] | |||
[Coke] | lizmat++ | 12:39 | |
masak | autopun marker ^ | 12:42 | |
[Coke] | masak: where now? | 12:44 | |
masak | [Coke]: the race condition one you posted. | 12:46 | |
oh, and I'm not sure whether I posted this one for the collection: twitter.com/indec/status/447201158222712832 | 12:47 | ||
moritz is pretty sure he's seen that one before, but still finds it funny | 12:48 | ||
masak | moritz: just a quick poll: did you find it *more* funny this time around, or *less*? | 12:49 | |
(just asking. no reason.) | |||
12:53
daniel-s left
12:54
daniel-s joined,
bluescreen10 joined
12:55
molaf joined
|
|||
lizmat | what is our feeling about test files that don't have a "use v6" ? | 13:02 | |
moritz, masak ^^ | 13:03 | ||
masak | I'm perfectly OK with that. | ||
I don't see "use v6" as something more than a token gesture. | |||
13:04
Rix joined
|
|||
lizmat | so conversely: would you be in favour of removing it from test-files ? | 13:04 | |
jnthn | I think if there's any code we can assume you'd better be running under a Perl 6 compiler, it's the compiler test suite :P | ||
masak | there's no implementation out there that will care one way or the other about the presence of that line -- unless you count `perl`. | ||
lizmat: I'm not against it, but I don't see it as a big deal either way. | |||
jnthn | lizmat: I don't think it matters. | ||
lizmat | well, anytihing that would make the spectest go faster, would be good, no? | 13:05 | |
masak | heh. | ||
jnthn | lizmat: yeah but that should be unmeasurable :) | 13:06 | |
masak | lizmat: if you remove them all *and measure a significant speedup from it*, I'm all for it! :P | ||
lizmat | ok, will do some tests :-) | 13:07 | |
jnthn | But really, there must be better ways to get a speedup on spectests :P | ||
lizmat | atm I making sure they all have a "plan" | 13:08 | |
so we can be better assured it always runs all tests that are supposed to be run | |||
:n | |||
FROGGS | but there are some that can't have a plan, right? | ||
lizmat | so far, I haven't seen any | ||
FROGGS | like when it uses eval_dies_ok or so? can't remember | 13:09 | |
lizmat | well, I found one of those, but it's not in the spectest atm (array shape tests) | ||
FROGGS | there was a test subroutine that runs not always the same number of tests | 13:10 | |
sergot | hi o/ | ||
lizmat | FROGGS: that's bad | ||
sergot o/ | |||
FROGGS | hi sergot | ||
lizmat | only a week to go :-) | ||
FROGGS | :o) | ||
grondilu | so List.permutations and List.combinations are broken. Seems due to List[@a] not working. Is someone looking at that? | 13:12 | |
lizmat | grondilu: could you provide a test case? | 13:13 | |
grondilu | r: .say for <a b c>.permutations; # like this? | ||
camelia | rakudo-moar 362f3f: OUTPUT«Cannot call 'postcircumfix:<[ ]>'; none of these signatures match::(Any \SELF, int $pos):(Any \SELF, int $pos, \assignee):(Any \SELF, int $pos, :BIND($BIND)!):(Any \SELF, int $pos, Any :SINK($SINK)!, *%other):(Any \SELF, int $pos, Any :delet…» | ||
..rakudo-{parrot,jvm} 362f3f: OUTPUT«a b ca c bb a cb c ac a bc b a» | |||
grondilu | oh I hadn't realised it was only on moar | 13:14 | |
lizmat | hmmm... | ||
grondilu | r: say List.new ~~ Any | 13:15 | |
camelia | rakudo-{parrot,jvm,moar} 362f3f: OUTPUT«True» | ||
jnthn | If somebody can golf it to something simple, I can take a look. | ||
(Not right now, but later) | 13:16 | ||
lizmat | "gather take [self[@$_]] for permutations self.elems;" | ||
seems to be the line where it does | |||
*dies | |||
masak | hi sergot \o | ||
grondilu | m: say List.new[] | 13:17 | |
camelia | rakudo-moar 362f3f: OUTPUT«» | ||
grondilu | m: say List.new[my @ = ^2] | ||
camelia | rakudo-moar 362f3f: OUTPUT«» | ||
grondilu | m: say List.new(<foo bar>)[my @ = ^2] | 13:18 | |
camelia | rakudo-moar 362f3f: OUTPUT«foo bar» | ||
13:19
kaleem left
|
|||
grondilu | m: use MONKEY_TYPING; augment class List { method foo { self[] } }; say List.new.foo | 13:20 | |
camelia | rakudo-moar 362f3f: OUTPUT«» | ||
grondilu | m: use MONKEY_TYPING; augment class List { method foo { self[] } }; say List.new(<foo bar>).foo | ||
camelia | rakudo-moar 362f3f: OUTPUT«foo bar» | ||
grondilu | m: use MONKEY_TYPING; augment class List { method foo { self[my @ = ^2] } }; say List.new(<foo bar>).foo | ||
camelia | rakudo-moar 362f3f: OUTPUT«foo bar» | ||
grondilu | it seem to complain only in CORE-settings | ||
or something weird like that, I don't know. | 13:21 | ||
lizmat | grondilu: many things don't work in CORE-settings, like typed hashes :-( | ||
jnthn wonders why everyone pluralizes setting. There's, like, one CORE setting. That's the point... | 13:23 | ||
grondilu | not related: how is the work on v5 going? Because with the recent P6 hate shown on perlmonks, I kind of think that would be something that could impress P6 naysayers. | ||
jnthn | My gut feeling tells me this one will be reproducible outside of it. | ||
13:26
kaare_ left
|
|||
lizmat | jnthn: if I change the gather/take by a map, the problem goes away | 13:26 | |
*to | |||
spectesting (temporary) fix now | 13:27 | ||
jnthn | lizmat: Hm...can it be golfed to something involving gather/take but not needing map? | 13:28 | |
uh | |||
not needing permutations, even... | |||
grondilu | m: use MONKEY_TYPING; augment class List { method foo { gather .take for self[my @ = ^2] } }; say List.new(<foo bar>).foo | ||
camelia | rakudo-moar 362f3f: OUTPUT«foo bar» | ||
grondilu | (well that was naive) | 13:29 | |
dalek | kudo/nom: 55bf027 | (Elizabeth Mattijsen)++ | src/core/List.pm: Temporary fix to get List.permutations to work |
13:32 | |
PerlJam | might it have something to do with the recursion in permutations? | ||
13:32
jnap joined
|
|||
lizmat | feels to me "self" becomes Mu or so | 13:33 | |
PerlJam | i.e. moar's implementation of gather/take is not recursion-safe | ||
lizmat | and permutations is using gather take, and itself calling permutations *inside* the gather | 13:34 | |
13:35
guru joined,
jnap left,
guru is now known as Guest25905
|
|||
jnthn | If you use the block form of gather instead, does it fix things? | 13:35 | |
13:35
Guest25905 is now known as ajr_
|
|||
lizmat | testing... | 13:36 | |
that seems to fix it, indeed | 13:38 | ||
grondilu | it's not exactly recursive as the permutations is you see in the method is a call to a subroutine | ||
s/is you see/you see/ | |||
lizmat | sub permutations itself is calling sub permutations | 13:39 | |
grondilu | yeah but the subroutine works fine | ||
m: say permutations 3 | |||
camelia | rakudo-moar 362f3f: OUTPUT«0 1 2 0 2 1 1 0 2 1 2 0 2 0 1 2 1 0» | ||
lizmat | indeed, it does not seem to be the recursion, but the blocklessness of the gather take in permutations | 13:40 | |
grondilu | ok | ||
lizmat | jnthn: ^^^ not sure if you seen it | ||
13:41
Alula left
13:42
Alula joined
|
|||
jnthn | lizmat: OK, if that fixes it, then that's the workaround to go for, and then let's ticket this as a blockless gather bug on Moar | 13:42 | |
grondilu | m: say <foo bar>.combinations(1) | 13:43 | |
camelia | rakudo-moar 362f3f: OUTPUT«foo bar» | ||
grondilu | j | ||
grondilu realises there is no gather/take in combinations so it could not fail as well | 13:44 | ||
lizmat | jnthn: shall I do the same for jvm/parrot, so we don't special case Moar, or should I keep it as a reminder ? | ||
jnthn | lizmat: Oh, workaround can be just doen for all platforms | 13:45 | |
lizmat: I mean ticket can just be marked as moar only | |||
lizmat | okidoki | 13:46 | |
13:46
rurban left
13:50
dayangkun joined
|
|||
masak | I just re-ran strangelyconsistent.org/blog/et-tu-bruteforce with Rakudo Moar. | 13:51 | |
happy news: it does the N = 4 case in under a second. | 13:52 | ||
it does N = 7 in 22.3 seconds. | |||
N = 8: 127 s. | 13:54 | ||
jnthn | Try running with --optimize=3 also | ||
dalek | kudo/nom: 529aa9b | (Elizabeth Mattijsen)++ | src/core/List.pm: Temporary fix for #121830 |
||
synopsebot | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=121830 | ||
masak | jnthn: will do. | 13:56 | |
hm, the fan just spun up :) | |||
top says moar is hogging 80% CPU but not much memory. nice. | 13:57 | ||
lizmat | masak: would "is cached" make sense there ? | ||
masak | whoa. | 13:58 | |
jnthn: "Internal error: zeroed target thread ID in work pass" | |||
jnthn: what does *that* mean? :) | |||
jnthn | masak: Nothing good. | ||
13:58
treehug88 joined
|
|||
jnthn | Internal VM panic. | 13:58 | |
masak | lizmat: possibly. | ||
trying with --optimize=3 first, then with 'is cached'. | 13:59 | ||
14:00
anaeem1_ left,
btyler joined
14:04
mtk joined
|
|||
Ven | s/grep({ langford($_) })/grep(&langford)/ | 14:04 | |
masak | eta conversion saves the day, again! :) | 14:05 | |
yes, I will make that substitution. | |||
timotimo | that should also be a nice win | ||
14:05
salv0 left
|
|||
timotimo | given we don't have to clone a closure every time now | 14:06 | |
lizmat | is there a particular reason to keep "done" in a test file if there is a "plan" ? | 14:07 | |
timotimo | we can more easily see if the plan is wrong as opposed to the file crashed in between, perhaps? | ||
14:08
logie joined
|
|||
lizmat | well, one should assume the plan is right, I would think | 14:08 | |
14:08
rurban joined
|
|||
lizmat | but if we're not sure about that, then maybe all test files should have a "done" ? | 14:08 | |
14:10
mtk left,
mtk joined
|
|||
skids | r: my %h{Any} = (:a(1), :b(2)); %h.keys[0] = "c"; %h.say; %h<c>:k = "d"; %h.say; | 14:11 | |
camelia | rakudo-{parrot,moar} 362f3f: OUTPUT«("b" => 2, "c" => 1).hash("b" => 2, "c" => 1).hash» | ||
..rakudo-jvm 362f3f: OUTPUT«("a" => 1, "c" => 2).hash("a" => 1, "c" => 2).hash» | |||
lizmat | yuck, that seems like a weird way to change keys | 14:13 | |
and a bug | |||
skids | I was riffing off what Timbus wanted and that was the blocker. | 14:14 | |
Not sure what's supposed too work and whether the {Any} should be required as it seems to be. | 14:15 | ||
PerlJam | I don't think the tests need done if there's a plan. | ||
lizmat | skids: yes, that is needed, as in the case of {Any} only, the key is not the actual key being used to hash | 14:16 | |
PerlJam | I've always thought of "done" as kind of an anti-pattern, in fact. OR at the very least, a tool of last resort. | ||
lizmat | PerlJam: me too | ||
14:16
berekuk left
|
|||
masak | with --optimize=3: N = 7: 21.2 s; N = 8: 132 s; N = 9: 884 s (but didn't crash this time). | 14:18 | |
that's largely a 6.5-fold increase in time every time. if N = 10 finishes, it'll be around 1.5 hours. | 14:19 | ||
masak lets it run | |||
PerlJam | masak: but where's the pretty graph? ;) | ||
14:19
nnunley joined
|
|||
masak | :P | 14:19 | |
14:20
xenoterracide__ joined
|
|||
skids | masak, FROGGS, I did some testing with the original RT#115966 fix and it still seems to work for me. gist.github.com/skids/2b069b02b2a9b6e0ee45 | 14:20 | |
synopsebot | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=115966 | ||
14:21
fhelmberger left
|
|||
skids | Also, it works for rakudo-m. | 14:21 | |
lizmat | jnthn: HashIter.new(self, :keystore($!keys), :k).list makes a left value list | ||
14:21
jnap joined
|
|||
lizmat | what would be the quick way to turn that into a right value list ? | 14:22 | |
14:22
salv0 joined
|
|||
lizmat | r: my %h{Any}=a=>1; say %h; %h.kv[1] = "b"; say %h | 14:22 | |
camelia | rakudo-{parrot,jvm,moar} 362f3f: OUTPUT«("a" => 1).hash("a" => "b").hash» | ||
lizmat | jnthn: want to stop that ^^^ | 14:23 | |
donaldh | jnthn: is it possible to implement nqp-p ops in nqp or do they have to be implemented using PIR ops? | ||
moritz | donaldh: implementing in NQP is possible | ||
FROGGS | skids: you don't have to rebuild nqp or rakudo when you change moarvm | 14:24 | |
donaldh | moritz: I'd like to implement the IO ops for nqp-p so that we can cleanup all the preprocessor directives in IO.pm | 14:25 | |
moritz | donaldh: take a look at src/vm/parrot/QAST/Operations.nqp | ||
skids | FROGGS: Probably when I rebuilt nqp-p I used too broad a target. I was getting he "missing stage2/QRegex" problem with rakudo-m till I did so. | 14:26 | |
donaldh | moritz: Ah, that's where I'm already looking. AFAICT that is nqp that generates PIRT that emits opcodes during compile. I'm wondering if I can actually provide nqp implementations. | 14:27 | |
FROGGS | yeah... | ||
masak | after 10 minutes, the script fails with "Internal error: zeroed target thread ID in work pass" for N = 10. | ||
14:28
retupmoca joined
|
|||
jnthn | masak: OK, then probably it wants running with nwc10++'s GC torture to expose where things are going wrong | 14:28 | |
masak | huh. adding 'is cached' changes the *output* of the script! | 14:29 | |
lizmat | r: my $a = (a=>1); $a.key = "b"; say $a | ||
masak | (and doesn't seem to speed it up) | 14:30 | |
camelia | rakudo-{parrot,jvm,moar} 362f3f: OUTPUT«"b" => 1» | ||
lizmat | well, if it doesn't speed up, it will slow it down, as there is quite some overhead involved :-) | ||
PerlJam | masak: so .. "is cached" is broken? | ||
FROGGS | skids: I usually do: make p-clean && make p-install in nqp and rakudo, so I usually don't touch other backends by updating mstamps or by reconfiguring | ||
PerlJam | masak: or ... how does it change the output? | ||
lizmat | S02:3332 doesn't seem to mention anything about Pair.key being a left value | 14:32 | |
synopsebot | Link: perlcabal.org/syn/S02.html#line_3332 | ||
lizmat | but I guess the "immutable" part covers it | 14:33 | |
r: my $a = (a=>1); $a.key = "b"; say $a # expecting a blowup | |||
camelia | rakudo-{parrot,jvm,moar} 362f3f: OUTPUT«"b" => 1» | ||
lizmat | and since a hash is a list of Pairs, I would gather that Hash.(keys|kv|k|v|pairs) would be right values as well | 14:35 | |
m: my %h=a=>1; say %h; %h.values[0] = "b"; say %h # expecting a blowup here as well | |||
camelia | rakudo-moar 362f3f: OUTPUT«("a" => 1).hash("a" => "b").hash» | 14:36 | |
lizmat | std: my %h=a=>1; say %h; %h.values[0] = "b"; say %h | ||
camelia | std ec3d853: OUTPUT«ok 00:01 127m» | ||
lizmat | n: my %h=a=>1; say %h; %h.values[0] = "b"; say %h | ||
camelia | niecza v24-109-g48a8de3: OUTPUT«{"a" => 1}{"a" => "b"}» | ||
skids | When you init a hash with pairs, are the keys/values still supposed to be considered pairs? | 14:37 | |
lizmat | skids: conceptually I would say: yes | 14:38 | |
but that would go for any key/value, regardless of initialization | |||
14:39
isacloud__ left
|
|||
lizmat | in any case, since we don't know the order in which .keys cs are being delivered | 14:39 | |
14:39
clkaoud left
|
|||
lizmat | it would seem like a *very* bad idea to allow .e.g. .values = (...) as a quick way to update values in a hash | 14:39 | |
skids | Yeah, I just used that to show it could be done before using <k>:k | 14:40 | |
14:41
clkaoud joined,
isacloud__ joined,
ggherdov_ left,
jtpalmer_ left
|
|||
skids | Same applies to keys[0], really. | 14:42 | |
14:42
jtpalmer joined
|
|||
lizmat | Oddly enough, Pair.key and Pair.value are explicitely marked as "is rw" for some reason | 14:43 | |
jnthn | lizmat: Believe there's even tests for this... | ||
lizmat | spectesting after having removed "is rw" :-) | 14:44 | |
pretty sever breakage :-( | |||
14:44
ggherdov_ joined
|
|||
skids | It severed? :-) | 14:44 | |
lizmat | in sets/bags mainly | ||
14:45
clkaoud left
14:46
sctt joined
14:47
clkaoud joined
|
|||
masak | PerlJam: instead of "231213\n312132", it output " 2 3 1 2 1 33 1 2 1 3 2" | 14:50 | |
lizmat | r: (a => 1).value++ | 14:51 | |
masak | PerlJam: feels like a problem with item/list context. | ||
camelia | rakudo-jvm 529aa9: OUTPUT«(timeout)» | ||
( no output ) | |||
lizmat | masak: if you can condense this to a test=case, I'd be happy to look at it | ||
14:55
mtk left
14:57
thou joined
14:58
kaare_ joined
|
|||
lizmat found www.nntp.perl.org/group/perl.perl6....23984.html | 14:59 | ||
but that seems outdated | 15:01 | ||
15:08
igorsutton left
15:09
igorsutton joined
15:10
Vlavv left
15:13
igorsutton left
15:15
daniel-s left,
kaleem joined
15:18
daniel-s joined
|
|||
masak | lizmat: here is a simple one-liner that exposes the discrepancy: | 15:21 | |
m: sub foo($n) { return 0 unless $n; my @result = $n; @result.push( foo($n - 1) ); return @result }; say foo(3).join | |||
camelia | rakudo-moar 529aa9: OUTPUT«3210» | 15:22 | |
masak | m: sub foo($n) is cached { return 0 unless $n; my @result = $n; @result.push( foo($n - 1) ); return @result }; say foo(3).join | ||
camelia | rakudo-moar 529aa9: OUTPUT«32 1 0» | ||
lizmat | masak: thanks | ||
masak: any thoughts on the validity of (a => 1).key++ ? | |||
masak | oh, hold on, I managed to golf it down a bit more: | 15:23 | |
m: sub foo($n) { return 0 unless $n; return $n, foo($n - 1) }; say foo(2).join | |||
camelia | rakudo-moar 529aa9: OUTPUT«210» | ||
masak | m: sub foo($n) is cached { return 0 unless $n; return $n, foo($n - 1) }; say foo(2).join | ||
camelia | rakudo-moar 529aa9: OUTPUT«21 0» | ||
15:23
hoverboard joined
|
|||
masak | lizmat: I think S02 or S03 weigh in on Pairs having mutable values. | 15:23 | |
lizmat | S02:1704 | 15:24 | |
synopsebot | Link: perlcabal.org/syn/S02.html#line_1704 | ||
lizmat | "As with C<Hash> types, C<Pair> and C<PairSeq> are mutable in their | ||
values but not in their keys." | |||
masak | right. | ||
lizmat | so Pair.key being "is rw" is *wrong* | 15:25 | |
masak | aye. | ||
trivially so, if you ask me. | |||
lizmat | ok, there is 1 test specifically checking that | ||
and some other obscure test with =:= failing | |||
dalek | kudo/nom: 1ba6931 | (Elizabeth Mattijsen)++ | src/core/Pair.pm: Pair.key is *not* rw, as per S02:1704 |
15:26 | |
synopsebot | Link: perlcabal.org/syn/S02.html#line_1704 | ||
15:27
zakharyas left,
Vlavv joined
|
|||
lizmat | n: my $key = "key"; my $p = ($key => "foo"); $p.key = "bar"; say $key | 15:29 | |
camelia | niecza v24-109-g48a8de3: OUTPUT«bar» | 15:30 | |
lizmat | yuck :-) | ||
now I understand where Niecza was taking shortcuts | |||
15:30
benabik left
|
|||
FROGGS | O.o | 15:31 | |
15:32
thou left
15:33
thou joined
15:34
ajr_ left
15:36
guru joined,
guru is now known as Guest69326
|
|||
dalek | ast: 0cbbe06 | (Elizabeth Mattijsen)++ | S02-types/pair.t: Pair.key has become immutable, as perl S02:1704 |
15:37 | |
synopsebot | Link: perlcabal.org/syn/S02.html#line_1704 | ||
15:38
[particle]1 joined
15:39
[particle] left
|
|||
lizmat | m: my %h{Any}=(a=>1,b=>2); %h.keys[0] = "b"; say %h | 15:39 | |
camelia | rakudo-moar 529aa9: OUTPUT«("b" => 1, "b" => 2).hash» | ||
lizmat | hehe | ||
above patch seems to fix that as well | |||
15:39
denis_boyun_ left
15:41
bjz left
|
|||
skids | That... is evil. | 15:41 | |
lizmat | skids: well, you put me up to it :-) | 15:42 | |
skids | lizmat++ kill it with fire | 15:43 | |
retupmoca | r: class A { }; my $a = A.new but role { method foo { self!bar; }; method !bar { say "Hello" } }; $a.foo | 15:45 | |
camelia | rakudo-moar 529aa9: OUTPUT«Hello» | 15:46 | |
..rakudo-parrot 529aa9: OUTPUT«Nominal type check failed for parameter ''; expected $?CLASS but got A+{<anon>} instead in method bar at /tmp/tmpfile:1 in method foo at /tmp/tmpfile:1 in block at /tmp/tmpfile:1» | |||
..rakudo-jvm 529aa9: OUTPUT«Nominal type check failed for parameter 'null' in method bar at /tmp/tmpfile:1 in method foo at /tmp/tmpfile:1 in block at /tmp/tmpfile:1» | |||
retupmoca | ^ is that supposed to work? | ||
FROGGS | I'd say yes | 15:48 | |
skids | I think so. | ||
jnthn | Moar agrees :) | 15:50 | |
dalek | ast: 9d1bcb0 | (Elizabeth Mattijsen)++ | S12-methods/chaining.t: Mark broken test as "todo" Now that Pair.key is no longer a left value, this test is probably bogus anyway. |
15:52 | |
FROGGS | jnthn: about that ArrayIndexOutOfBoundsErrorThingy... it was that I called the op ifeq on a Long, and not on Long+IVAL_ZERO+LCMP | ||
jnthn | aha | ||
that'd do it | |||
FROGGS | why didn't you say that earlier? :o) | ||
donaldh | :D | 15:53 | |
lizmat | jnthn: is there an easy way to make a HashIter read only ? | ||
jnthn | Iterators are read only, no? | 15:54 | |
Oh, or you mean the iteration values they pump out? | |||
lizmat | yes, the latter | 15:55 | |
HashIter.new(self, :keystore($!keys), :k).list | |||
to be precise | |||
r: my %h = (a=>1,b=>2); %h.values[*] = (3,4); say %h | |||
camelia | rakudo-jvm 529aa9: OUTPUT«("a" => 4, "b" => 3).hash» | ||
..rakudo-{parrot,moar} 529aa9: OUTPUT«("a" => 3, "b" => 4).hash» | |||
lizmat | r: my %h = (a=>1,b=>2); %h.values[*] = (3,4); say %h | 15:56 | |
camelia | rakudo-jvm 529aa9: OUTPUT«("a" => 4, "b" => 3).hash» | ||
..rakudo-{parrot,moar} 529aa9: OUTPUT«("a" => 3, "b" => 4).hash» | |||
lizmat | assign values depending on unknown sort order :-( | ||
FROGGS | that's the nature of a hash, no? | 15:57 | |
skids | I bet there's a use case out there somewhere :-) | ||
A warning might be more appropriate. | 15:58 | ||
lizmat | r: my %h = (a=>1,b=>2); %h.values = (3,4); say %h | ||
camelia | rakudo-moar 529aa9: OUTPUT«No such method 'STORE' for invocant of type 'List' in block at /tmp/tmpfile:1» | ||
..rakudo-{parrot,jvm} 529aa9: OUTPUT«Cannot modify an immutable value in block at /tmp/tmpfile:1» | |||
lizmat | need the whatever-slice to make it work, but rather not fix that | 15:59 | |
but the underlying problem | |||
masak | all those parens above are superstitious, no? | ||
lizmat | r: my %h = a=>1,b=>2; %h.values[*] = 3,4; say %h | 16:00 | |
camelia | rakudo-jvm 529aa9: OUTPUT«("a" => 4, "b" => 3).hash» | ||
..rakudo-{parrot,moar} 529aa9: OUTPUT«("a" => 3, "b" => 4).hash» | |||
lizmat | apparently, yes :-) | ||
16:02
Rotwang joined
16:03
treehug8_ joined
|
|||
dalek | kudo/nom: e4e1274 | (Elizabeth Mattijsen)++ | src/core/HashIter.pm: Add some comments, make error message show value |
16:04 | |
16:05
treehug88 left,
FROGGS left
16:08
jnap1 joined
16:09
jnap left
16:14
lue left
16:15
sctt left
16:17
pecastro left
16:20
dwarring left
16:24
hoverboard is now known as moistcherry
16:27
lue joined
16:30
Psyche^_ left
16:32
Psyche^ joined
16:35
raiph joined
|
|||
lizmat | r: my $a=1; ($a,$a,$a) = (3,4,5); say $a | 16:41 | |
camelia | rakudo-jvm e4e127: OUTPUT«(timeout)» | ||
..rakudo-{parrot,moar} e4e127: OUTPUT«5» | |||
16:41
hummeleB1 joined
|
|||
lizmat | seems valid, but should this be: | 16:41 | |
my $a=1; ($a,$a,$a) = (3,4,5)[*]; say $a | |||
m: my $a=1; ($a,$a,$a) = (3,4,5)[*]; say $a | 16:42 | ||
camelia | rakudo-moar e4e127: OUTPUT«5» | ||
16:44
donaldh left
|
|||
dalek | kudo/nom: cbe7728 | (Elizabeth Mattijsen)++ | docs/ChangeLog: Mention ro-ness of Pair.key |
16:51 | |
16:55
kaleem left
|
|||
TimToady doesn't see why [*] should make any difference | 16:56 | ||
lizmat | then there is nothing to fix :-) | 16:57 | |
TimToady: wrt to Hash.values being left value | |||
that feels wrong, as we cannot know the order in which they will appear | 16:58 | ||
or am I missing something? | |||
thou | Should this work? File ./ext/bin/xyz includes sub foo is export { ... }; File bar says: require "./ext/bin/xyz" <foo>; my $x = foo(); ? Moar says: Unhandled exception: Method 'Stringy' not found for invocant of class 'NQPMu' | ||
lizmat | TimToady: so you cannot know which value you would be assigning to which slot | 17:00 | |
thou | Alternatively, is there another way to import that foo()? | ||
lizmat | thou: use lib './ext/bin'; use xyz ? | 17:01 | |
jnthn | lizmat: Well, we allow for @a { .=foo; }, so not sure why not for %h.values { .=foo } | ||
lizmat | jnthn: because in the @a case, you would know which element you would be assigning | 17:02 | |
jnthn | Do you? | ||
lizmat | because the order of .values is undetermined | ||
retupmoca | I can see cases where the order doesn't matter | ||
jnthn | If I'm doing the same thing on all the values, I often don't care much about order anyway. | ||
Most of the for loops I write don't actually use the orderedness... | |||
lizmat | do you mean %a{ .=foo } ? | 17:03 | |
TimToady | no, that's a for loop | ||
17:03
FROGGS joined
|
|||
jnthn | lizmat: No, I mean looping over the values in a hash and mutating each of them. | 17:03 | |
lizmat | ah, hmmm... good point | 17:04 | |
TimToady | there's no reason to make that readonly that I can see | ||
lizmat | Hash.values = (...) is just : don't do that | ||
TimToady | and subscripting does not strip writeability | ||
Has.values = 42 xx * is perfectly fine | 17:05 | ||
*Hash | |||
lizmat | r: my %h{Any} =a=>1,b=>2; %h.values = (3,4); say %h | ||
TimToady | it is not our job to protect people from a DIHWIDT such as that | ||
camelia | rakudo-moar e4e127: OUTPUT«No such method 'STORE' for invocant of type 'List' in block at /tmp/tmpfile:1» | 17:06 | |
..rakudo-{parrot,jvm} e4e127: OUTPUT«Cannot modify an immutable value in block at /tmp/tmpfile:1» | |||
17:06
Guest69326 left,
moistcherry is now known as hoverboard
|
|||
FROGGS | : my %h = (a=>1,b=>2); %h.values[*] = (3,4); say %h | 17:07 | |
r: my %h = (a=>1,b=>2); %h.values[*] = (3,4); say %h | 17:08 | ||
camelia | rakudo-jvm e4e127: OUTPUT«("a" => 4, "b" => 3).hash» | ||
..rakudo-{parrot,moar} e4e127: OUTPUT«("a" => 3, "b" => 4).hash» | |||
lizmat | right: that one | ||
thou | lizmat: I think that looks for /xyz\.pm6?/; I get Could not find xyz in any of: ./ext/xyz/bin, … | ||
lizmat | that's a case of DIHWIDT,, is what you're saying, TimToady? | ||
thou: no further ideas atm | 17:10 | ||
r: my %h = (a=>1,b=>2); %h.values = (3,4); say %h | 17:13 | ||
camelia | rakudo-moar e4e127: OUTPUT«No such method 'STORE' for invocant of type 'List' in block at /tmp/tmpfile:1» | ||
..rakudo-{parrot,jvm} e4e127: OUTPUT«Cannot modify an immutable value in block at /tmp/tmpfile:1» | |||
TimToady | lizmat: if you have to forbid valid uses along with invalid uses, it's getting dangerously close to pythonic constriction | ||
lizmat | I'm just worried about introducing code memes that may break in the future, when we need to change the underlying hash implementation | 17:16 | |
as opposed to Perl 5, in Perl 6 we should have enough introspection available to make a [*] slice on Hash.values at least warn, if not die | |||
(as a left value, of course) | 17:17 | ||
TimToady | normal hashes have to be able to return lvalues, and this won't change | ||
17:18
Pauekn joined
|
|||
TimToady | if they use a different implementation, that's their problem | 17:18 | |
lizmat | the fact that in Perl 5.20, two hashes in the same process, filled with the same keys in the same order, are *not* guaranteed to have the same order afterwards | ||
dalek | kudo-star-daily: 96421a2 | coke++ | log/ (5 files): today (automated commit) |
||
rl6-roast-data: 2d54d1f | coke++ | / (6 files): today (automated commit) |
|||
TimToady | .oO(all is unfair if you predeclare) |
||
thou | lizmat: Thanks for the suggestion. FYI, more data; if I mv xyz to xyz.pm, then I get: ===SORRY!=== Error while importing from 'xyz': no EXPORT sub, but you provided positional argument in the 'use' statement. Exact code at: gist.github.com/softmoth/3a1f246409a75adb2cef For the time being I can move foo() to a module and use it in bin/xyz, I think, but it would be nice to be able to export stuff from | ||
scripts. | |||
lizmat | thou: I think there is a ticket for that already, FROGGS would know I think | 17:19 | |
17:19
[particle]1 left
|
|||
Pauekn | Is this channel generally very active, or was I just extremely lucky with when I stopped by? ^^ | 17:19 | |
lizmat | TimToady: re 5.20 hash key order: is going to be a major pain in the world, I'm afraid | ||
masak | Pauekn: it's generally quite active. | 17:20 | |
Pauekn | Awesome | ||
masak | Pauekn: though it does have cycles, because there's a concentration of Americans and Europeans on here. | ||
not exclusively, but predominantly. | |||
[Coke] | no change in errors. :( | 17:21 | |
Pauekn | masak: I see. I've noticed that in other channels, too. I read some quotes from the web site, though. You seem like a funny lot | ||
masak | Pauekn: we are hilarious. | ||
thou | I'm not | 17:22 | |
masak | :) | 17:23 | |
well, we're all individuals... | |||
thou | (That was in a Monty Python voice in my head.) | ||
Pauekn | All have their strengths and weaknesses, I guess ^^ | ||
lizmat | ..oO( is it time to mention a parrot? ) | ||
lizmat just went into the wrong room and got hit on the head | 17:24 | ||
thou | no you didn't | ||
lizmat | .oO( I could be getting hit on the head in my spare time ) |
||
Pauekn | Speaking of which. I am very new to Perl, but I have noticed you mentioning parrots quite a bit. What is that about? Isn't the mascot a butterfly? :P | ||
lizmat | Pauekn: on of the VM''s rakudo is running on, is "parrot" | 17:25 | |
virtualsue | www.parrot.org/ | ||
Pauekn | Ahh. I see | ||
masak | Pauekn: which makes it very hard to joke about Parrot being dead... because everyone's already done that, like, always. | 17:27 | |
you could say that the joke has been done to death. | |||
Pauekn | *Rimshot* | ||
Oh, masak: This is what made me visit this channel: strangelyconsistent.org/blog/perl-6-is-my-mmorpg | 17:30 | ||
masak | neat. | 17:31 | |
17:31
eternaleye left
|
|||
masak | ages since I wrote that... as you can't see from the date in the URL :/ | 17:31 | |
I think the points in that post very much still hold, though. | 17:32 | ||
Pauekn | It is a really great post, by the way :) | ||
[Coke] | (parrot dead) that joke was how the name itself was picked. | 17:33 | |
masak | Pauekn: thank you. | 17:34 | |
Pauekn: so, I must ask... which class spoke the most to you? not asking you to commit to anything, just curious. :) | 17:37 | ||
Pauekn | masak: I would probably one of those level 1 questing trash mobs =P | ||
masak | ooh | 17:38 | |
yep, we need those. | |||
that sounds like trying various cool stuff on the evalbot until you (invariably) hit (a) a bug, or (b) something you didn't expect. | 17:39 | ||
Pauekn | I am honestly not very good at programming, but I'd like to learn ^^ | ||
masak | Pauekn++ | ||
Pauekn: I think you'll find that wanting to learn is more important, long term, than being very good. | |||
Pauekn | masak: Thanks. I'm glad to hear that :D Just finished downloading Rakudo now | 17:40 | |
masak | \o/ | 17:43 | |
Pauekn: let us know if there's anything we can assist you with. | |||
17:44
guru joined
|
|||
Pauekn | masak: I'll probably just toy around with Rakudo while perhaps looking up the documentation for today, but thanks! I'll remember the offer :) | 17:45 | |
17:45
guru is now known as Guest23243,
Guest23243 is now known as ajr_
17:48
grep0r left,
woolfy1 joined,
woolfy left
17:49
eternaleye joined
17:50
grep0r joined
|
|||
FROGGS | lizmat / thou: I'm not sure if there is a ticket yet... | 17:55 | |
lizmat / thou: and what is it about? should we fake up an &EXPORT sub? | |||
lizmat | I guess this is mostly about S11:318 | 17:56 | |
synopsebot | Link: perlcabal.org/syn/S11.html#line_318 | ||
masak | Pauekn: sure thing. good luck today! | 17:57 | |
17:59
Ven left
|
|||
Pauekn | en.wikibooks.org/wiki/Perl_6_Progra...ures#Loops <-- I see what you mean by "More than one way of doing things" :) | 18:01 | |
dalek | ast: 74ad6f7 | (Elizabeth Mattijsen)++ | S0 (10 files): Added plan, removed "done" where appropriate |
||
ast: 2f79418 | (Elizabeth Mattijsen)++ | S02-types/array-shapes.t: Some preliminary work on getting this into shape |
|||
ast: d07b16d | (Elizabeth Mattijsen)++ | S03-operators/div.t: Fix typo in message |
|||
p: 9dd4604 | (Andrew Egeler)++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java: Add write barrier to JVM push ops This was done on moarvm a while back, and fixes a precompilation issue. |
18:02 | ||
18:04
kaare_ left
18:09
anaeem1 joined,
anaeem1 left
18:11
anaeem1 joined
18:14
anaeem1 left
18:21
[particle] joined
18:30
daniel-s left
|
|||
FROGGS | ohh, retupmoca++ | 18:31 | |
lizmat | FROGGS: throws_like has a variable number of tests | ||
FROGGS | ahh, yeah | ||
18:32
daniel-s joined
|
|||
jnthn | .oO( throws like a banana... ) |
18:33 | |
18:36
anaeem1_ joined
18:39
zakharyas joined
18:40
sqirrel joined
|
|||
retupmoca | r: grammar G { regex TOP { <stuff "foo"> }; regex stuff($*FOO = "bar") { . } }; G.parse("x"); say 1 | 18:41 | |
camelia | rakudo-moar cbe772: OUTPUT«1» | ||
..rakudo-jvm cbe772: OUTPUT«(timeout)» | |||
..rakudo-parrot cbe772: OUTPUT«Unmarshallable foreign language value passed for parameter '$*FOO' in regex stuff at /tmp/tmpfile:1 in regex TOP at /tmp/tmpfile:1 in method parse at gen/parrot/CORE.setting:13020 in block at /tmp/tmpfile:1» | |||
retupmoca | ^ parrot-bug? | ||
(jvm does the same as moar locally) | 18:42 | ||
FROGGS | must be | ||
18:43
grondilu_ joined
|
|||
retupmoca | that bug is now causing XML to fail tests on parrot | 18:43 | |
18:43
darutoko left
|
|||
retupmoca | (my last patch to XML is triggering it now) | 18:43 | |
dalek | ast: b04665c | (Elizabeth Mattijsen)++ | / (20 files): Some more plans added |
18:44 | |
18:46
hummeleB1 left,
grondilu left
18:47
hoverboard left
18:48
sqirrel left
|
|||
thou | tadzik: pull request incoming | 18:50 | |
retupmoca | FROGGS: github.com/supernovus/exemel/pull/11 works around the parrot bug | 18:52 | |
FROGGS: if you would like to merge it | |||
dalek | ast: b5e0541 | (Elizabeth Mattijsen)++ | S (13 files): Make sure throws_like also has "done" Since throws_like has a variable number of tests. |
18:54 | |
FROGGS | retupmoca: I added more information to the PR as well, because your title did not tell enough :o) | 18:55 | |
retupmoca | FROGGS: tyvm | ||
FROGGS | you're welcome | ||
18:55
daniel-s left
|
|||
masak | FROGGS, retupmoca: should I submit the above as a rakudobug, or are we good? | 18:56 | |
FROGGS | please rakudobug it, if it is not yet | ||
18:56
daniel-s joined,
rindolf left
|
|||
retupmoca | I haven't done anything with it, no | 18:57 | |
18:57
Sqirrel joined
|
|||
masak rakudobugs it | 18:57 | ||
retupmoca | masak++ | ||
FROGGS | masak++ | 18:59 | |
masak | p: grammar G { regex TOP { <stuff "foo"> }; regex stuff($*FOO = "bar") { . } }; G.parse("x"); say 1 | 19:01 | |
camelia | rakudo-parrot cbe772: OUTPUT«Unmarshallable foreign language value passed for parameter '$*FOO' in regex stuff at /tmp/YxsoP5kb9o:1 in regex TOP at /tmp/YxsoP5kb9o:1 in method parse at gen/parrot/CORE.setting:13020 in block at /tmp/YxsoP5kb9o:1» | ||
masak | p: grammar G { regex TOP { <stuff "foo"> }; regex stuff($*FOO) { . } }; G.parse("x"); say 1 | ||
camelia | rakudo-parrot cbe772: OUTPUT«Unmarshallable foreign language value passed for parameter '$*FOO' in regex stuff at /tmp/s0j5jxxL_i:1 in regex TOP at /tmp/s0j5jxxL_i:1 in method parse at gen/parrot/CORE.setting:13020 in block at /tmp/s0j5jxxL_i:1» | ||
masak | p: grammar G { regex TOP { <stuff> }; regex stuff($*FOO = "bar") { . } }; G.parse("x"); say 1 | ||
camelia | rakudo-parrot cbe772: OUTPUT«1» | ||
masak | p: grammar G { regex TOP { <stuff "foo"> }; regex stuff($FOO) { . } }; G.parse("x"); say 1 | ||
camelia | rakudo-parrot cbe772: OUTPUT«Unmarshallable foreign language value passed for parameter '$FOO' in regex stuff at /tmp/GFq75tTp2S:1 in regex TOP at /tmp/GFq75tTp2S:1 in method parse at gen/parrot/CORE.setting:13020 in block at /tmp/GFq75tTp2S:1» | ||
masak | p: grammar G { regex TOP { <stuff 5> }; regex stuff($) { . } }; G.parse("x"); say 1 | 19:02 | |
camelia | rakudo-parrot cbe772: OUTPUT«Unmarshallable foreign language value passed for parameter '' in regex stuff at /tmp/8nuMNGAIzM:1 in regex TOP at /tmp/8nuMNGAIzM:1 in method parse at gen/parrot/CORE.setting:13020 in block at /tmp/8nuMNGAIzM:1» | ||
masak | p: grammar G { regex TOP { <stuff 5> }; regex stuff($) { . } }; G.parse(""); say 1 | ||
camelia | rakudo-parrot cbe772: OUTPUT«Unmarshallable foreign language value passed for parameter '' in regex stuff at /tmp/qGiVIzzqka:1 in regex TOP at /tmp/qGiVIzzqka:1 in method parse at gen/parrot/CORE.setting:13020 in block at /tmp/qGiVIzzqka:1» | ||
masak | sorry about the noise. | ||
was just curious about the exact cause, so needed to golf it a little. | |||
m: grammar G { regex TOP { <stuff 5> }; regex stuff($) { . } }; G.parse(""); say 1 | 19:03 | ||
camelia | rakudo-moar cbe772: OUTPUT«1» | ||
tadzik | thou: I wonder, maybe it should all be a method on Panda::Ecosystem? | 19:09 | |
then just Panda::Ecosystem.default or so | |||
lizmat | masak: you know you can p: to camelia privately :-) | 19:13 | |
19:21
Zaegnair joined
19:23
[particle]1 joined
19:25
[particle] left
|
|||
masak | lizmat: yes :/ | 19:26 | |
lizmat: expected to do not so many steps. apologies. | |||
lizmat has been guilty of that as well... | |||
we just need to be reminded of it more often, as the channel gets busier and busier :-) | 19:27 | ||
Pauekn | Is Camelia the evalbot? | ||
jnthn | Yes. | 19:29 | |
19:29
skids left
|
|||
Pauekn | Alright, thanks. I'll check it out | 19:30 | |
lizmat | m: signal(SIGBREAK) | ||
camelia | rakudo-moar cbe772: OUTPUT«(signal )Unsupported signal handler 2 in sub signal at src/gen/m-CORE.setting:19663 in block at /tmp/3GhKyOwWiN:1» | ||
lizmat | jnthn: ^^^ is that expected ? | 19:31 | |
19:31
grondilu_ is now known as grondilu,
grondilu left,
grondilu joined
|
|||
[Coke] | m: signal(True) | 19:32 | |
camelia | rakudo-moar cbe772: OUTPUT«Invalid signal in sub signal at src/gen/m-CORE.setting:19659 in block at /tmp/Zyb_RIjyQD:1» | ||
timotimo | .o( someone could start a blog named "justrakudobugit" ) | ||
19:33
treehug8_ left
|
|||
lizmat | m: Signal::.keys.say | 19:33 | |
camelia | rakudo-moar cbe772: OUTPUT«SIGINT SIGBREAK SIGHUP SIGWINCH» | ||
lizmat | [Coke]: those are the ones supported until now | ||
jnthn | Looks like a platform-specific thing | 19:35 | |
#ifdef SIGBREAK case MVM_SIG_BREAK: signum = SIGBREAK; break; | |||
#endif | |||
lizmat | ok | 19:36 | |
jnthn | Believe it's defined as the signal for Ctrl+Break on Windows | ||
lizmat | also: inside the signal handler, you get the actual signal value rather than the Enum value | ||
in $_: perhaps we would need to map that ? | 19:37 | ||
jnthn | yeah, that may make more sense :) | ||
19:37
treehug88 joined
|
|||
jnthn | Mostly I just Made Something Work in hope/expectation others would be able to fill in the gaps :) | 19:37 | |
lizmat | starting to fill gaps now :-) | 19:38 | |
jnthn | ('cus it's easier to evolve a working thing than create it from scratch) | ||
lizmat++ | |||
Feel free to add more, just be a little careful about what's available where | |||
Though I guess you can #ifdef the problem away like I did with SIGBREAK :) | |||
lizmat | yup | 19:39 | |
timotimo | if you could ifdef all your problems away ... | ||
lizmat | #ifdef problems | 19:40 | |
problem | |||
19:40
molaf_ joined
|
|||
lizmat | #endif | 19:40 | |
done :-) | |||
19:43
molaf left,
askz joined
|
|||
lizmat | jnthn: is there a 1-1 correspondence between nqp::const::SIG_INT and Signal::SIGINT ? | 19:46 | |
or is that coincedence? | |||
m: say +SIGWINCH; say nqp::const::SIG_WINCH | 19:47 | ||
camelia | rakudo-moar cbe772: OUTPUT«44» | ||
jnthn | lizmat: The nqp:: codes are used to match the IDs that MoarVM is clueful about | 19:49 | |
bbi10 | 19:51 | ||
lizmat | m: my @a=""; @a.push( qx/kill -l/.words ); say @a.perl | 19:52 | |
camelia | rakudo-moar cbe772: OUTPUT«qx, qqx is disallowed in restricted setting in sub restricted at src/RESTRICTED.setting:2 in sub QX at src/RESTRICTED.setting:9 in block at /tmp/tP5Tjqk1rR:1» | ||
lizmat | :-( | 19:53 | |
is there a reason why we don't have List.vk ? | 19:59 | ||
use case: ("",qx/kill -l/.words ).vk.hash to fill a hash with valid signal names and their values | 20:00 | ||
colomon | map(* R=> *) doesn't seem that hard to type | 20:05 | |
(Do we have anything with a vk method?) | |||
lizmat | no | ||
I have been thinking about it, but this was the first use case I found | 20:06 | ||
but I guess it goes for any list where you would want to convert it to a hash with the values as keys, and the ordinals as values | 20:07 | ||
20:07
itz_ left,
itz left
|
|||
timotimo | don't we have Hash.invert? | 20:07 | |
lizmat | well, yes, but seems a bit overkill to create a hash first just to invert it | 20:09 | |
20:09
hoverboard joined
|
|||
colomon does not think we should have a .vk just because we could. | 20:09 | ||
lizmat | I hear ya :-) | 20:10 | |
20:13
denis_boyun_ joined
|
|||
PerlJam | lizmat; What OS are you on? My kill -l outputs a 0 for the zeroth signal (ubuntu). | 20:13 | |
lizmat | OS X | ||
timotimo | i'm on a fedora system and my kill starts at HUP | 20:15 | |
lizmat | hence my initial "" | ||
I guess we can't depend on that | |||
timotimo | great! | 20:16 | |
lizmat | PerlJam: what is your signal #1 ? | ||
HUP ? | |||
PerlJam | yep | ||
timotimo | -L, --table | ||
Similar to -l, but will print signal names and their corresponding num‐ | |||
bers. | |||
lizmat | --table probably isn't portable | ||
timotimo | d'oh :( | ||
lizmat | wondering even whether kill -l works on Win | ||
probably not :-( | 20:17 | ||
PerlJam | gist.github.com/perlpilot/42c5fbc3e456054e9526 (what I see on ubuntu) | ||
lizmat | wow quit a number I haven't seen yet ever | ||
20:24
molaf_ left,
kivutar left
20:26
bluescreen10 left
|
|||
masak | 'night, #perl6 | 20:26 | |
20:27
jnap1 left
|
|||
lizmat | gnight masak! | 20:28 | |
20:31
Pauekn left
|
|||
[Coke] | *sigh* I really want to like atom2. | 20:35 | |
(atom.io/) | |||
jnthn | .kv is often used for iteration, so you just named the k and v variables appropriately... :) | 20:36 | |
20:37
Rotwang left,
berekuk joined
20:40
Vlavv left
|
|||
arnsholt | Atom sounds like an interesting venture. It'll be fun to see what comes of it | 20:42 | |
Sounds a lot like a modern-day emacs | |||
20:42
hoverboard is now known as water
|
|||
hoelzro | I was thinking of creating a language-perl6 addon for Atom | 20:42 | |
20:42
water is now known as food
|
|||
hoelzro | after Kate, that is ;) | 20:42 | |
we'll see if people want to use Atom for Perl 6 | 20:43 | ||
_sri loves atom | |||
PerlJam | the alternative to RSS or the editor? :) | 20:44 | |
_sri | WHY NOT BOTH | ||
hoelzro | I like a banana. | ||
along with the time flies | |||
ssutch | OData | ||
jnthn | ?$where=public_run=expensive_queries | 20:45 | |
20:45
dmol left
|
|||
jnthn | uh, eq :) | 20:45 | |
20:46
benabik joined
|
|||
jnthn was mildly horrified the first time he saw OData hooked directly up to an RDBMS, without any control on what queries you could run... :) | 20:46 | ||
ssutch | haha | 20:47 | |
20:49
daniel-s left,
sivoais left
|
|||
ssutch | jnthn: did you advise they hook it up to mongo instead? | 20:50 | |
20:50
dmol joined,
sftp left,
sftp joined
|
|||
timotimo | the what now. | 20:51 | |
20:51
sftp left
20:52
sftp joined
|
|||
lizmat | jnthn: re .kv and vk: yes, iteration, but this was when you want to convert a list into a hash with its ordinals as the values | 20:52 | |
20:52
Vlavv joined
|
|||
lizmat | aka: <a b c>.vk.hash would give you (a => 0, b=> 1, c=>2).hash | 20:52 | |
m: <a b c>.kv.hash.invert.say # seems overkill to have to invert | 20:53 | ||
camelia | rakudo-moar cbe772: OUTPUT«"a" => "0" "b" => "1" "c" => "2"» | ||
20:53
zakharyas left
20:55
treehug88 left,
sftp_ joined
20:57
daniel-s joined,
sftp left,
sftp_ is now known as sftp
|
|||
lizmat | this brings back mamories: talko.cc | 20:58 | |
*memories rather | |||
I've opened a "Rakudo" chat room there | 21:00 | ||
it's like IRC, but with a twist :-) | |||
21:00
dayangkun left
21:10
sivoais joined
21:17
dayangkun joined
21:18
food is now known as hoverboard
21:21
rindolf joined
21:23
btyler left
21:28
benabik left
21:30
Vlavv left
21:37
benabik joined
|
|||
dalek | kudo/nom: 698d208 | (Elizabeth Mattijsen)++ | src/core/signals.pm: Make signal() a bit more picky on what to accept At compile time, if only 1 signal |
21:38 | |
21:38
benabik left
|
|||
lizmat wishes #perl6 a good * | 21:38 | ||
21:43
Vlavv joined
21:47
raiph left
21:50
hoverboard left
|
|||
vendethiel | having a p6-to-js would give us perl6 atom plugins :P | 21:51 | |
vendethiel sees a lot of people whining over coffee in Atom | |||
22:03
ajr_ left
22:11
daniel-s__ left
22:23
rindolf left
22:27
BenGoldberg joined
22:30
dmol left
22:32
rurban left
22:33
daniel-s left
22:35
daniel-s joined
22:40
daniel-s left
22:42
rurban joined,
rurban left
22:43
daniel-s joined
22:48
daniel-s left
22:53
rurban joined
22:55
xenoterracide__ left
22:59
daniel-s joined
23:03
grondilu left
23:04
daniel-s left,
daniel-s joined
23:10
denis_boyun_ left
23:14
logie left
23:18
daniel-s left,
daniel-s joined
23:21
rurban left
23:33
anaeem1_ left
23:34
tmt joined
23:36
tmt left
23:45
hoverboard joined
23:58
xragnar_ joined,
xragnar is now known as Guest33296,
xragnar_ is now known as xragnar
|