»ö« 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 moritz on 3 May 2013.
[Coke] goes cross eyed looking at the combine() code from earlier. 00:00
[Coke] hates hates hates list flattening. 00:32
colomon it certainly is a pain when it happens when you don't want it to.
[Coke] I'm trying to construct lists of lists, and I just keep ending up with a single list ofelements. 00:33
r: my @a = 1,2,3,4; say [@a].perl
camelia rakudo fe7049: OUTPUT«[1, 2, 3, 4]␤»
[Coke] r: my @a = 1,2,3,4; say [[@a], [@a]].perl 00:34
camelia rakudo fe7049: OUTPUT«[[1, 2, 3, 4], [1, 2, 3, 4]]␤»
TimToady r: my @a = 1,2,3,4; say (@a, @a).lol.perl 00:36
camelia rakudo fe7049: OUTPUT«LoL.new([1, 2, 3, 4], [1, 2, 3, 4])␤»
[Coke] yay, I finally have it working. ;) 00:38
and my runtime is now down to 4s from about 19s this morning. 00:39
grondilu n: say (^3).combinations 00:40
camelia niecza v24-42-g69a3432: OUTPUT«Unhandled exception: Unable to resolve method combinations in type Range␤ at /tmp/8dqXgFOJU7 line 1 (mainline @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4329 (ANON @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4330 (module-CORE @ 583) ␤ …
TimToady NYI
colomon n: say (^3).list.combinations
camelia niecza v24-42-g69a3432: OUTPUT«Unhandled exception: Unable to resolve method combinations in type List␤ at /tmp/1rEKv4kMBE line 1 (mainline @ 4) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4329 (ANON @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4330 (module-CORE @ 583) ␤ a…
TimToady it's been low hanging fruit for a month or two now
colomon has anyone implemented it? I don't see spectests in roast...
grondilu TimToady: does anyone plan on implementing it? 00:41
TimToady colomon: that's what NYI usually means :P
grondilu needs it for its rosalind stuff
colomon Rakudo as well as Niecza.
grondilu s/its/his/
colomon grondilu: use List::Utils, it is implemented there (I think)
grondilu oh, ok.
colomon as a sub, not a method. 00:42
TimToady hates any module with the name "Utils", too much like "Misc"
diakopter Code
Engine
Library
[Coke] updates gist.github.com/coke/5541613
grondilu anyway there should not be a List::Utils module in a programming language that is supposed to be functional.
diakopter GrabBag 00:43
colomon TimToady: I didn't think List::RoutinesThatIThinkShouldBeInCoreButTimToadyHasntAgreedYet would fly as a name. 00:44
TimToady doesn't see anything wrong with that one :)
colomon Though I actually added combinations there after it was already spec, hoping to get feedback on the implementation. Never did. 00:45
TimToady by and large, I'd rather universally useful routines end up in core rather than in modules; worst case: "use Math;"
if it ends up bloating, we can always load them lazily
grondilu colomon: why didn't you put it in core directly? One implementation is always better than no implementation.
TimToady mislikes computer languages that don't think math is fundamental 00:49
grondilu yeah, that's one thing I like about perl6: lots of standard math stuff are in core, not in modules. 00:51
colomon grondilu: never wrote a combinations routine before. was hoping for feedback before adding it to one of the implementation's cores. that's all. 00:52
TimToady any combinations routine is better than none :)
grondilu there is a simple implementation in rosettacode anyway
TimToady especially if it lets us start writing tests 00:53
colomon TimToady: spoken like someone who hasn't seen all the crap code I've written in the last 31 years.
TimToady "I weep for you," the Walrus said, "I deeply sympathize."
colomon also, there are tests, in List::Utils, of course. ;) 00:54
afk # pub
grondilu it's supposed to be in List.pm, right? 00:55
grondilu writes .combinations 00:58
from rosettacode.org/wiki/Combinations#Perl_6 00:59
grondilu r: use MONKEY_TYPING; augment class List { multi method combinations(Int $of) { ... } } 01:04
camelia rakudo fe7049: OUTPUT«Cannot look up attributes in a type object␤current instr.: 'gimme' pc 285305 (src/gen/CORE.setting.pir:125270) (src/gen/CORE.setting:6051)␤called from Sub 'sink' pc 294412 (src/gen/CORE.setting.pir:128913) (src/gen/CORE.setting:6359)␤called from Sub 'MAIN' pc 381 (…
grondilu ^why?
r: use MONKEY_TYPING; augment class Int { multi method foo() { ... } } 01:07
camelia rakudo fe7049: ( no output )
grondilu is confused
r: use MONKEY_TYPING; augment class Int { multi method combinations(Int of) { ... } } 01:08
camelia rakudo fe7049: OUTPUT«===SORRY!===␤Missing block␤at /tmp/obCLSgidkz:1␤------> s Int { multi method combinations(Int of⏏) { ... } }␤ expecting any of:␤ statement list␤ prefix or term␤ prefix or meta-prefix␤»
grondilu r: use MONKEY_TYPING; augment class Int { multi method combinations(Int $of) { ... } }
camelia rakudo fe7049: ( no output )
grondilu what's so special about List that prevents me from augmenting it?
TimToady n: use MONKEY_TYPING; augment class List { multi method combinations(Int $of) { ... } } 01:10
camelia niecza v24-42-g69a3432: OUTPUT«Potential difficulties:␤ $of is declared but not used at /tmp/X5jn3R8ZOa line 1:␤------> ss List { multi method combinations(Int ⏏$of) { ... } }␤␤»
TimToady niecza++ is fine with it
grondilu should I submit a rakudobug?
TimToady r: use MONKEY_TYPING; augment class List { proto method combinations(|) {*} }
camelia rakudo fe7049: OUTPUT«Cannot look up attributes in a type object␤current instr.: 'gimme' pc 285305 (src/gen/CORE.setting.pir:125270) (src/gen/CORE.setting:6051)␤called from Sub 'sink' pc 294412 (src/gen/CORE.setting.pir:128913) (src/gen/CORE.setting:6359)␤called from Sub 'MAIN' pc 381 (…
TimToady seems 01:11
grondilu submits rakudobug
TimToady r: use MONKEY_TYPING; augment class Any { proto method combinations(|) {*} } 01:13
camelia rakudo fe7049: ( no output )
TimToady might work around by poking it into Any, since most list methods have a representative there in any case
grondilu r: use MONKEY_TYPING; augment class Any { proto method combinations(|) {*} }; my @a = ^3; say .perl for @a.combinations: 1; 01:25
camelia rakudo fe7049: OUTPUT«No such method 'combinations' for invocant of type 'Array'␤ in block at /tmp/H5LCdF2KN2:1␤␤»
grondilu r: use MONKEY_TYPING; augment class Any { multi method combinations(Int $of) {...} }; my @a = ^3; say .perl for @a.combinations: 1; 01:26
camelia rakudo fe7049: OUTPUT«No such method 'combinations' for invocant of type 'Array'␤ in block at /tmp/uih3icdnsx:1␤␤»
[Coke] : use MONKEY_TYPING; augment class Array { multi method combinations(Int $of) {...} }; my @a = ^3; say .perl for @a.combinations: 1;
r: use MONKEY_TYPING; augment class Array { multi method combinations(Int $of) {...} }; my @a = ^3; say .perl for @a.combinations: 1; 01:27
camelia rakudo fe7049: OUTPUT«Failure.new(exception => X::AdHoc.new(payload => "Stub code executed"))␤»
[Coke] (since you're probably working on arrays anyway.)
grondilu r: my @a = ^10; say @a ~~ Any
camelia rakudo fe7049: OUTPUT«True␤»
grondilu should Any work as well?
s/should/&n't/
TimToady it doesn't match because you declared $of to be Int 01:30
maybe
oh, nevermind 01:31
TimToady shouldn't try to think today
I don't know why it didn't call the one in Any 01:32
n: use MONKEY_TYPING; augment class Any { method combinations(Int $of) { ... } }; my @a = ^3; .perl.say for @a.combinations(1) 01:37
camelia niecza v24-42-g69a3432: OUTPUT«Potential difficulties:␤ $of is declared but not used at /tmp/cDFvOvnzQ2 line 1:␤------> ent class Any { method combinations(Int ⏏$of) { ... } }; my @a = ^3; .perl.say fo␤␤Unhandled exception: >>>Stub code executed␤ at /tmp/cDFvOvnzQ2 …
grondilu this seems to work. At least for Array: gist.github.com/grondilu/5544948
TimToady r: use MONKEY_TYPING; augment class Any { method combinations(Int $of) { ... } }; my @a = ^3; .perl.say for @a.combinations(1)
camelia rakudo fe7049: OUTPUT«No such method 'combinations' for invocant of type 'Array'␤ in block at /tmp/CSLhRsx5bx:1␤␤»
grondilu r: gist.github.com/grondilu/5544948
camelia rakudo fe7049: OUTPUT«[3, 4]␤[2, 4]␤[2, 3]␤[1, 4]␤[1, 3]␤[1, 2]␤[0, 4]␤[0, 3]␤[0, 2]␤[0, 1]␤»
TimToady r: say Array.mro 01:38
camelia rakudo fe7049: OUTPUT«No such method 'mro' for invocant of type 'Array'␤ in block at /tmp/44_gicjhJd:1␤␤»
TimToady r: say Array.^mro
camelia rakudo fe7049: OUTPUT«(Array) (List) (Iterable) (Cool) (Any) (Mu)␤»
TimToady grondilu: kind of a weird order, backwards from usual 01:39
grondilu TimToady: it's because I put the map in second place to avoid parenthesis 01:40
TimToady r: use MONKEY_TYPING; augment class Cool { method combinations(Int $of) { ... } }; my @a = ^3; .perl.say for @a.combinations(1)
camelia rakudo fe7049: OUTPUT«No such method 'combinations' for invocant of type 'Array'␤ in block at /tmp/FrJuRBib1P:1␤␤»
TimToady grondilu: that seems like a weak reason
I guess the other thing we might think about is whether there's a way to generate these lazily 01:41
grondilu no. It's the actual reason.
r: gist.github.com/grondilu/5544948
camelia rakudo fe7049: OUTPUT«[0, 1]␤[0, 2]␤[0, 3]␤[0, 4]␤[1, 2]␤[1, 3]␤[1, 4]␤[2, 3]␤[2, 4]␤[3, 4]␤»
grondilu here you go 01:42
as far as lazyness is concerned, I guess we could force it with a gather take, couldn't we? 01:43
grondilu thinks that a gather take in a recursive function might be a bad idea
TimToady not sure, given how it returns partial results 01:43
grondilu I don't know then. 01:44
TimToady thinks that if it's a bad idea, gather/take is poorly optimized
same for dynamic variables in general, oughta be able to cache things locally within a CALLER or two to keep things fast
grondilu I suggest we mention these concerns in the RosettaCode entry, so that if someone has a good idea, he can write it there. 01:45
TimToady here's a tilted version of "blueprint Camelia" if you want that: wall.org/~larry/cameliawbtilt.png 01:50
colomon List::Utils combination is not recursive, for what it's worth.... 02:37
labster r: List.WHAT 03:31
camelia rakudo fe7049: OUTPUT«Cannot look up attributes in a type object␤current instr.: 'gimme' pc 285305 (src/gen/CORE.setting.pir:125270) (src/gen/CORE.setting:6051)␤called from Sub 'sink' pc 294412 (src/gen/CORE.setting.pir:128913) (src/gen/CORE.setting:6359)␤called from Sub 'MAIN' pc 381 (…
labster r: Cool.WHAT
camelia rakudo fe7049: ( no output )
labster yeah, no idea what's going on here. 03:32
diakopter r: say Any.WHAT
camelia rakudo fe7049: OUTPUT«(Any)␤»
diakopter r: say (Any).WHAT
camelia rakudo fe7049: OUTPUT«(Any)␤»
labster r: Iterable.WHAT
camelia rakudo fe7049: ( no output )
diakopter r: say List.HOW
camelia rakudo fe7049: OUTPUT«Perl6::Metamodel::ClassHOW.new()␤»
diakopter o_O
sorear we found this bug last wek 03:34
week
the List type object does not like to be .sink'ed
diakopter r: say List.^methods
camelia rakudo fe7049: OUTPUT«new Bool Int end fmt flat list lol flattens tree Capture Parcel eager elems exists gimme infinite iterator munch pick pop roll reverse rotate shift splice sort classify categorize uniq REIFY STORE_AT_POS FLATTENABLE_LIST FLATTENABLE_HASH keys values pairs kv reduce…
diakopter r: say List.new.WHAT 03:35
camelia rakudo fe7049: OUTPUT«(List)␤»
diakopter r: say defined List
camelia rakudo fe7049: OUTPUT«False␤»
diakopter r: say defined List.new
camelia rakudo fe7049: OUTPUT«True␤»
labster r: sink List; 03:37
camelia rakudo fe7049: ( no output )
diakopter r: say (sink List).WHAT 03:38
camelia rakudo fe7049: OUTPUT«Nil␤»
diakopter r: say (list List).WHAT
camelia rakudo fe7049: OUTPUT«(List)␤»
diakopter he.
heh.
labster If that came out as (Range), then we would have had a problem 03:39
diakopter r: say (list ;).WHAT.WHAT
camelia rakudo fe7049: OUTPUT«(List)␤»
labster r: say List.WHAT 03:40
camelia rakudo fe7049: OUTPUT«(List)␤»
diakopter r: print List.WHAT 03:41
camelia rakudo fe7049: OUTPUT«use of uninitialized value of type List in string context in block at /tmp/WIPfe_836h:1␤␤»
diakopter r: print List.new.WHAT
camelia rakudo fe7049: OUTPUT«use of uninitialized value of type List in string context in block at /tmp/5pnG_PJ5yf:1␤␤»
diakopter r: print List.gist 03:42
camelia rakudo fe7049: OUTPUT«(List)»
diakopter argh
moritz good morning 07:13
diakopter hi 07:14
FROGGS morning 07:19
lizmat good morning on this holiday (at least over here) 07:34
FROGGS o/ 07:35
FROGGS has a holiday too
moritz too, unsurprisingly
FROGGS :o)
raiph good * 07:38
FROGGS hi raiph 07:39
diakopter hi. 07:41
FROGGS \o 07:42
moritz mysql takes 9 minutes to create an index, and 8 to drop it again 07:59
FROGGS moritz: irclog database? 08:00
lizmat MYISAM?
FROGGS how big (filesize) is that thing?
tadzik diakopter: *poke* 08:01
lizmat if I remember correctly, an index in MyISAM is part of the table itself, so creating or dropping an index, is effectively a rebuild
moritz FROGGS: yes; about 0.6GB 08:02
lizmat that's why the drop is shorter than the create, because the resulting file is smaller
it's pure i/o bound
moritz lizmat: ah, so it create a complete copy of the database
lizmat table
moritz erm, yes
lizmat a database is a directory
moritz in this case, the database has only one table :-)
lizmat a table is N files in that directory
FROGGS 0.6GB?? wow, that is not much 08:03
lizmat why are you using MyISAM anyway, wouldn't InnoDB be better ?
moritz hysterical raisins
lizmat table would become 2x as big on disk
moritz but since I have nearly no concurrent writes, and no foreign keys, there's not much reason to switch to InnoDB 08:04
lizmat but you wouldn't have to wait for reading when doing inserts
moritz but I plan to migrate to postgres anway
lizmat ok, so it's one table for all channels ?
moritz yes
lizmat seems like having one table / channel would at least save you the "channel id" column everywhere 08:05
if this is in one table because of searching, then please don't use MySQL for searching
but create an elastic search backend or so
moritz but it would make listing of all channels much harder in a cross-DB fashion 08:06
lizmat but anyway, you were going to migrate to PostgreSQL
moritz lizmat: the plan is to use apache lucy for fulltext search
lizmat cool
moritz (the successor of KinoSearch)
I have a branch which does that, but it's not yet ready for usage
lizmat sounds like a plan to me
moritz mysql really annoys me 08:11
I have the query SELECT DISTINCT(day) FROM irclog WHERE channel = '#perl6' ORDER BY day 08:12
and it uses the index on irclog(day, channel)
so far so good
I change the query to
SELECT DISTINCT(day) FROM irclog WHERE channel = '#perl6' AND nick <> '' ORDER BY day;
and create an index on irclog(day, channel, nick)
and the select doesn't use it
but rather uses only the index on irclog(channel), and a temporary table from there on 08:13
lizmat is scratching her head to try to remember why that is
it's been well over a year since I was deep into MySQL 08:14
there is a command that will tell you how MySQL optimizes a query 08:15
tadzik explain?
lizmat yup, that's the one 08:16
so what does EXPLAIN SELECT DISTINCT(day)…. say?
dev.mysql.com/doc/refman/5.0/en/exp...utput.html for an explanation of that output 08:18
labster good morning, all 08:22
lizmat morning labster!
lizmat off for some fitness
labster lizmat: was my blog post useful to you?
jnthn morning, #perl6 08:23
FROGGS morning labster
morning jnthn 08:24
labster morning FROGGS, jnthn
moritz lizmat: perlpunks.de/paste/show/518b5d1f.2b48.198 that's the output from two explains
moritz oh, that one was missing the group by 08:25
dag_ moritz: Create an index on irclog(channel, nick, day)
Oh, and use PostgreSQL instead ;-)
moritz dag_: I tried that first
it didn't use that index 08:26
arnsholt Does ordering of the columns matter?
dag_ arnsholt: Yes.
moritz: Are you sure you created the index with the columns in the order I gave?
moritz if you do an index (foo, bar), it'll build a tree optimized for first search foo, then bar 08:27
arnsholt Ah, right
moritz dag_: I've tried both day first and day last; I kinda hope the order of the other two doesn't matter match, because the query is commutative
but I can try again, just to be sure 08:28
moritz waits for another 9 or 10 minutes
dag_ moritz: In my experience the first column in the index should be included in the WHERE clause in the query.
Ulti moritz: try giving an index hint 08:29
also this is why I hate mysql
FROGGS moritz: if you remember the discussion from yesterday, I believe Foo.WHO is not connected to $*PACKAGE.WHO I do when building the ast
jnthn class Foo { ...when you're compiling this, $*PACKAGE in the compiler is Foo } 08:30
dag_ moritz: Also, have you run ANALYZE TABLE for query planner statistics (if that exists on MySQL)?
Ulti moritz: dev.mysql.com/doc/refman/5.1/en/index-hints.html try giving a hint for the order by 08:32
I've never had index hints actually work for me though :S
moritz I'll switch to postgres within two months, I promise. 08:33
dag_ moritz: You'll never look back :-)
moritz I already use it for new projects
Ulti I used postgres for my dayjob about 9 years ago, it was better than the latest mysql I use today
FROGGS jnthn: right
moritz Ulti: I'm curious, do you have experience with replication with postgres? 08:34
Ulti nope, only in mysql 08:35
dag_ moritz: I have
FROGGS jnthn: I have something like: module Foo { our @a; my @b; say Foo:WHO<$test> } # and putting something in ($*PACKAGE.WHO)<$test> in the our decl, and printing its content within the my decl 08:36
jnthn: but at runtime (Foo.Who)<$test> is (Any)
(Foo:WHO<$test> was a typo here in irc)
dag_ moritz: It is quite easy to set up, and works like a charm. Do you have any particular questions regarding PG replication? 08:37
jnthn FROGGS: Can I see the patch?
FROGGS hmmm, quiet messy
jnthn: just look at line 20 and 80 :o) gist.github.com/FROGGS/a30afd1fef1d2a742a96 08:39
moritz dag_: just if it works in practise, and if there is monitoring for it 08:40
FROGGS jnthn: so within the my-block it prints 7, and I would export to get that at runtime too (or at least a warning that this is not a p6opaque) 08:41
jnthn nqp::say( $?PACKAGE ); 08:42
Did you mean $*PACKAGE there?
FROGGS maybe, yeah
jnthn ($*PACKAGE.WHO){$name} := make $past; # that is a huge confusion of object space and AST 08:43
dag_ moritz: Yes, it works really well. The only real snag I've run into is that directories for tablespaces aren't automatically created on the slave(s). Simple solution: Use only the default tablespace (doesn't matter with recent disk systems, anyway)
FROGGS jnthn: true, recognized it after doing that :o)
jnthn It's $cont that needs to go in there.
moritz dag_: ok, thanks
FROGGS jnthn: that is the command I run: make install && perl6 -e 'package Foo { { our @x; say @x }; my $y; say (Foo.WHO)<$hurz> }' 08:44
jnthn yeah but
($?PACKAGE.WHO)<$hurz> := 7;
You've installed the thing in Perl6::Actions::<$hurz>
FROGGS -.-
feels a bit stupid 08:45
jnthn Should be $*PACKAGE
FROGGS my previous line is missing /action
cool, thanks so far
jnthn: and I can bind $cont directly to ($*PACKAGE.WHO){$name}? I have to do something like around line 75, right? 08:46
reading in #perl isn't healthy most times 08:48
last question was about your mentioned object space <> ast
dag_ goes back to log-lurking. Keep up the good work! 08:50
jnthn FROGGS: yes, 'cus $cont is a real object (Scalar, or Array, or something) 08:50
FROGGS ahh, cool
jnthn I'd rather this code ends up in World.pm too, like add_leical_container is. 08:51
But that can come after getting it working :)
arnsholt Ooooh, rurban's latest on blogs.perl.org may explain why I've never gotten gdb's reverse debugging working
FROGGS jnthn: ya, just trying to understand whow it needs to be done right now 08:53
I know what needs to be done though 08:54
btw, the moment you get a hint/help from jnthn is equal to the moment where the amélie unravels the mystery about the shredded photos in the movie Amélie 09:03
perl6 -e 'package Foo { { our @x }; say Foo.WHO }' 09:04
("\@x" => []).hash
\o/
arnsholt FROGGS: Nice comparison =D 09:05
FROGGS it is just missing the nice bright light here :o)
dalek p/rak-jvm-support: 07fa71f | jnthn++ | src/vm/parrot/pmc/nqplexpad.pmc:
Add state variable support to NQPLexPad.
09:14
jnthn has got a working (modulo running spectests) Rakduo that doesn't use Perl6LexInfo/Perl6LexPad
tadzik woosh :) jnthn++ 09:15
jnthn Trouble is, something I've done has made the CORE.setting build slower...so need to track that down.
FROGGS wow, that's what I call progress :o # jnthn++ 09:16
arnsholt jnthn: Very cool! 09:19
jnthn Now just gotta hope the slowdown reveals itself without too much hunting... 09:20
Ruled out that it's just the NQP changes that are to blame.
moritz how much slower is it? 09:21
jnthn moritz: Too much. Like, < 80s to ~100s. o.O 09:21
moritz not glacial, but easy to measure :-)
jnthn Yes. 09:22
Well, well enough that I should hunt it down.
labster Sounds like ~200s on my machine.
tadzik heh, +1
labster jnthn: can you (or someone) add constants for STAT_UID, STAT_GID, and STAT_ISLNK to vm/parrot/QAST/Operations.nqp? Looks like it's already on the Java side.
I've been looking at OS.pm, trying to track down places I could get rid of pir references -- and mostly just getting lost in the code. But that one looks easily replaced. 09:26
masak g'antenoon, #perl6 09:30
FROGGS hi masak 09:31
nwc10 jnthn: when you say "working (modulo running spectests) Rakduo" do you mean Rakudo on Parrot, but using the same NQP as will do the JVM? 09:34
FROGGS moritz: didn't you say that this is invalid? github.com/perl6/roast/blob/master.../our.t#L53 09:36
jnthn nwc10: Rakudo on Parrot, after one of the refactors to make things portable.
FROGGS r: package Foo { { our $x = 7 }; { say $x } } # valid or invalid? 09:38
camelia rakudo fe7049: OUTPUT«7␤»
nwc10 I take it that Perl6LexInfo/Perl6LexPad are PMCs written in C? 09:40
FROGGS I think so too 09:41
jnthn nwc10: Yeah.
nwc10: And they did a lot of stuff that was a real pain for porting.
nwc10 oh, gosh
FROGGS jnthn: after you made rakudo portable too, do you think one can port nqp/rakudo to Go in a reasonable timeframe? 09:42
jnthn FROGGS: I think you'd need to work out how to solve the module loading and eval like stuff first. 09:44
FROGGS hmmm, I see 09:45
nwc10 Go compiles to native code, doesn't it? Rather than to a VM? 09:46
arnsholt Yeah, that's gonna be tricky
nwc10 well, it sort of means that it's going to be the same pair of problematic answers for any language that compiles to native code (and possibly the same answer) 09:47
arnsholt A native code generating Perl 6 compiler would be awesome, of course
jnthn Right.
nwc10 and a third problem question answer of "Garbage Collection?" if the language you wanted to target doesn't have it
IIRC C++ somewhere in the future is talking about GC
FROGGS Go has a GC afaik
arnsholt Go is GCed
nwc10 yes, afaik Go does. And commented that on a 32 bit system that inevitably means that your integers can often look like pointers 09:48
jnthn It's best to figure out how to solve the Really Hard Project-Killer problem early, rather than in the middle of things :)
nwc10 so, Go and C++-with-a-GC are roughly the same problem, aren't they?
and Rust
arnsholt Go is always statically linked. That's another important difference 09:49
nwc10 oh. that's going to be fun
arnsholt Yup
nwc10 in which case, it's not clear whether it will be possible to port to Go in any reasonable timeframe 09:51
and whether it's going to be that *useful* to do so
what does Go give you, as a target "machine"? Seems, really, only a garbage collector 09:52
FROGGS well, the only reason for doing it at all is performance
nwc10 you have to implement module loading (for ahead of time compiled modules) and eval all by yourself.
FROGGS yeah, havn't thought of that :/ 09:53
nwc10 nor had I.
jnthn Well, managed to get from 100s to 88s.
FROGGS \o/
jnthn That's "better" 09:54
FROGGS jnthn: can you do that on my machine too?
:o)
jnthn As in, still slower than before but not ridiculously.
nwc10 you didn't tell us what the previous speed was :-)
jnthn nwc10: 80s or so
nwc10 as far as I can see, you just said "<80s"
jnthn nwc10: It was around 79s or so
nwc10 aha, OK, so it's about 10% slower.
jnthn Yeah. I'm not *that* worried in so far as I've now hidden something that used to be spread all over Rakudo behind an interface. 09:55
nwc10 yes, to me that sounds like a fair trade
jnthn The speedup I just got was from implementing the thing behind it a little better.
I'm pretty sure that with more effort, we can go one better again.
oh noes, test fails 09:56
arnsholt How do you decide where to optimise in cases like this, BTW?
Do you just meditate on the source, or use some kind of profiling tool?
jnthn arnsholt: Well, in this case I knew what I'd changed so it was largely a case of putting changes in one by one to understand which one was most guilty. 09:57
arnsholt That makes sense 10:01
FROGGS well, I think it is a bit like with chuck norris: the code does what jnthn++ wants 10:05
masak there's gotta be bloggable material around "how to contain legacy code so that it can be improved/refactored". 10:08
moritz n: package Foo { { our $x = 7 }; { say $x } }
camelia niecza v24-42-g69a3432: OUTPUT«===SORRY!===␤␤Variable $x is not predeclared at /tmp/DGqMb3JCnC line 1:␤------> package Foo { { our $x = 7 }; { say ⏏$x } }␤␤Unhandled exception: Check failed␤␤ at /home/p6eval/niecza/boot/lib/CORE.setting line 1443 (…
moritz FROGGS: niecza is correct here
jnthn std: package Foo { { our $x = 7 }; { say $x } }
camelia std b33d8e0: OUTPUT«ok 00:00 43m␤»
jnthn STD also.
masak jnthn: sometimes it feels like the activity on the #parrot channel is a soft smattering of individual locutions against a flow of your rak-jvm-support commits. 10:09
FROGGS moritz / jnthn: how can both be right? it is ok for STD but not for niecza
moritz then std is wrong 10:10
FROGGS then the test file is wrong
moritz aye
masak yeah.
jnthn Oh, argh 10:13
I misread, sorry
FROGGS np
jnthn Yeah, I think STD is wrong there too
FROGGS the spec is not very clear here, just a single line -.-
I guess I'll add an example 10:15
mathw STD *looks* wrong
maybe
masak I haz a Perl 6 day today, at least a partial one. 10:16
mathw I always get confused over what the scope of an 'our' variable actually is
masak \o/
mathw \o/
masak plan for the day: post-process the #masakism material. I'd also like to get going a discussion about some of the solutions, if possible.
and then start planning my talks for PLPW and YAPC::NA.
so, yeah, expect some of that. 10:17
FROGGS nr: package Foo { { our $x = 7 }; { say $Foo::x } } 10:18
camelia rakudo fe7049, niecza v24-42-g69a3432: OUTPUT«7␤»
FROGGS nr: package Foo { { our $x = 7 }; { say (Foo.WHO)<$x> } }
camelia rakudo fe7049, niecza v24-42-g69a3432: OUTPUT«7␤»
masak tadzik: I removed you as a contributor to masak/workshop. you can get reinstated any time you want; I just wanted to save you from a flood of new-issue notification emails ;) 10:23
FROGGS n: our @a = 1..3, say @a[1] 10:28
camelia niecza v24-42-g69a3432: OUTPUT«(Any)␤»
FROGGS n: our @a = 1..3; say @a[1] 10:29
camelia niecza v24-42-g69a3432: OUTPUT«2␤»
FROGGS p: our @a = 1..3; say @a[1] 10:30
camelia pugs: OUTPUT«2␤»
dalek p/rak-jvm-support: dd8ebc1 | jnthn++ | src/vm/parrot/pmc/nqplexpad.pmc:
Fix thinko in state handling.
10:39
p/rak-jvm-support: b6921f3 | jnthn++ | src/vm/parrot/ (2 files):
Better static lexical code-gen.
kudo/jvm-support: 8b818bb | jnthn++ | src/vm/parrot/guts/bind.c:
Remove dead code.
10:50
kudo/jvm-support: 15df62e | jnthn++ | / (11 files):
Eliminate Perl6Lex[Pad&Info].

This switches over to using the new QAST::Var features instead. Gets rid of the StaticLexPad type too, plus a Parrot-specific bit of the BOOTSTRAP.
masak rn: my $n = 280498592333870327168239948174​3033703427656749129565173066; say [~] gather while $n { take chr $n % 256; $n div= 256 } 10:55
camelia rakudo fe7049: OUTPUT«===SORRY!===␤Two terms in a row␤at /tmp/S3RlVE2iB0:1␤------> my $n = 280498592333870327168239948174⏏​3033703427656749129565173066; say [~] g␤ expecting any of:␤ postfix␤ infix stopper␤ infix or meta-infix…
..niecza v24-42-g69a3432: OUTPUT«===SORRY!===␤␤Confused at /tmp/bbzWNNGqW2 line 1:␤------> my $n = 280498592333870327168239948174⏏​3033703427656749129565173066; say [~] g␤␤Parse failed␤␤»
masak hm? is there a control character in there I don't see?
jnthn r: say "74​30".ords 10:56
camelia rakudo fe7049: OUTPUT«55 52 8203 51 48␤»
masak o.O
jnthn Apparently... :)
masak ok.
lizmat moritz: what strikes me in the EXPLAIN output is the size of the key, and the number of rows it will check
seems like the first query, it will check *all* records in the table (~2M?)
jnthn .u 8203
yoleaux No characters found
lizmat and a key length of 93 bytes? 10:57
masak rn: my $n = 2804985923338703271682399481743033703427656749129565173066; say [~] gather while $n { take chr $n % 256; $n div= 256 }
camelia rakudo fe7049, niecza v24-42-g69a3432: OUTPUT«Just another Perl hacker␤»
masak \o/
rn: say 2804985923338703271682399481743033703427656749129565173066.base(256)
camelia niecza v24-42-g69a3432: OUTPUT«Unhandled exception: base must be between 2 and 36, got 256␤ at /home/p6eval/niecza/lib/CORE.setting line 1504 (die @ 5) ␤ at /home/p6eval/niecza/lib/CORE.setting line 860 (Int.base @ 6) ␤ at /tmp/bUHxGp31by line 1 (mainline @ 3) ␤ at /home/p6eval/niec…
..rakudo fe7049: OUTPUT«base must be between 2 and 36, got 256␤ in method gist at src/gen/CORE.setting:10022␤ in method gist at src/gen/CORE.setting:893␤ in sub say at src/gen/CORE.setting:10920␤ in block at /tmp/JjzYt7Ne4W:1␤␤»
moritz lizmat: there are nearly 7M rows in the table
lizmat: so more likely all #perl6 rows
lizmat as you can see, the second query checks a lot less rows... 10:59
also: somebody suggested ANALYZE TABLE. am not sure anymore whether that works for MyISAM or not
what you want to prevent, is getting "using filesort" in the "Extra" column 11:00
"using temporary" can also be bad, especially if there is not enough RAM to keep temp tables and it has to go to disk for that
dalek p/rak-jvm-support: e36459c | jnthn++ | src/NQP/World.nqp:
Simplify code-gen with QAST::Var changes.
11:01
p/rak-jvm-support: 6abffdf | jnthn++ | src/vm/parrot/QAST/Operations.nqp:
Remove a now-unrequired NQP op.
p/rak-jvm-support: 54c8c67 | jnthn++ | src/vm/parrot/stage0/ (9 files):
Update bootstrap.
p/rak-jvm-support: 29cecf5 | jnthn++ | src/vm/parrot/pmc/nqplexinfo.pmc:
Simplify NQPLexInfo by removing unused bits.
lizmat in any case, I would probably create a lookup table for channel name -> SMALLINT translation, and then use a SMALLINT for channel 11:03
I assume the channel is now a VARCHAR(31) or so? 11:04
moritz yes
several times I've been pretty close to redesigning the whole thing 11:07
with separate tables for networks, channels and actual log lines 11:08
tadzik masak: makes sense, thanks :)
moritz but, so far it worked just fine
lizmat if it suddenly became slower, it is usually because it runs out of RAM for TEMP tables 11:11
and then has to go to disk, which is ~ 2K times slower
moritz it became slower because I changed the query :-) 11:12
lizmat if it goes to disk, then it is slow, and basically unusable for any interactive environment
moritz UTF-8 test for the logs: ø
lizmat wrt to "channel", are you really expecting UTF-8 characters in there? 11:13
moritz no
lizmat then by disallowing UTF-8, you would reduce the size of the VARCHAR by a factor of 3
because MySQL saves space for the "worst" case 11:14
having it as an index, makes it worse :-)
moritz does a VARCHAR really allocate all the space it could possibly need?
lizmat yup, that's why it says "93" for keylen in the first EXPLAIN output 3 x 31 11:15
moritz anyway, I'm working on migrating to postgresql 11:16
lizmat dev.mysql.com/doc/refman/5.0/en/cha...olumn.html 11:17
would be a simple ALTER TABLE that will reduce the size of the table by 7M * 62 bytes
moritz I've been wanting to do that for quite some time, and I've enough of mysql's idiosyncracies
masak moritz++ # getting off mysql
walk & 11:18
lizmat moritz: by all means 11:19
labster: yes, your blog post was *very* useful!
lizmat fwiw, I usually used MySQL as a key/value store mostly, and did the hard work in Perl. Mostly because of large datasets and temp tables on disk 11:27
lizmat back in 20 mins 11:27
kresike hello all you happy perl6 people 12:00
lizmat kresike! 12:03
kresike lizmat, o/
dalek p/rak-jvm-support: a0423c9 | jnthn++ | src/vm/jvm/ (2 files):
Initial JVM backend updates for QAST::Var extras.

Gets the static case working; also removes the same unrequired op that went away in the Parrot backend.
12:06
p/rak-jvm-support: b201370 | jnthn++ | src/vm/jvm/ (2 files):
Stub some ops, implment nqp::getlexouter.

Can do a much more optimal implementation of this later.
nqp/rak-jvm-support: b428c0e | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java:
kudo/jvm-support: 3a277df | jnthn++ | tools/build/Makefile-JVM.in:
Unbitrot JVM Makefile.
kudo/jvm-support: b24d10d | jnthn++ | src/Perl6/World.nqp:
Use correct compunit API.
12:13
nwc10 oh, goalposts just moved 12:14
jnthn Yeah...now I get to line 137 of CORE.setting :P 12:18
nwc10 that's line 137 when building with Rakudo atop NQP-JVM?
jnthn Yeah
Explodes at a BEGIN
lizmat grrr… ack by default skips .nqp files? 12:20
masak lizmat: yes, probably. but there's supposed to be an easy way to configure such things. 12:21
lizmat .ackrc I assume
masak alester++ will know. 12:22
lizmat ack --perl does *not* include .nqp
at least not in the 1.96 version that I have :-)
masak .oO( does not quite include .nqp... ) 12:25
lizmat decides to go with -a 12:28
masak oh, and the 'has %!elems{Any};' patch from yesterday? it fails with something that looks like a circularity saw issue. 12:35
'Could not find sub &infix:<but>'
jnthn May be fixable by moving Set after where but is defined 12:39
tadzik lizmat: ack --parrot should include it
masak jnthn: will look into that. 12:40
nwc10 FROGGS: I suspect that curently the most interesting targets performance wise to try porting NQP to, are the Hydrogen or Lithium APIs of V8, the Rubinius VM, and PyPy's RPython VM 12:45
as they will all already have native codegen, a VM, dynamic loading, and a way to "eval" 12:46
lizmat_ is looking at supporting "class Dog:auth<cpan:JRANDOM>:ver<1.2.1>;" as a step towards supporting "use Dog:auth<cpan:JRANDOM>:ver<1.2.1>
so inside src/Perl6/Metamodel/ClassHOW.nqp I find a "new_type" method that already apparently support "ver" and "auth"
rn: class Foo:auth<JRANDOM> {} 12:47
camelia rakudo fe7049, niecza v24-42-g69a3432: ( no output )
jnthn r: class Dog:auth<cpan:JRANDOM>:ver<1.2.1> { }; say Dog.^auth # curious
camelia rakudo fe7049: OUTPUT«No such method 'gist' for invocant of type 'NQPMu'␤ in sub say at src/gen/CORE.setting:10920␤ in block at /tmp/Y5ccBkfhhA:1␤␤»
jnthn r: class Dog:auth<cpan:JRANDOM>:ver<1.2.1> { }; say Dog.^ver # curious
camelia rakudo fe7049: OUTPUT«No such method 'gist' for invocant of type 'NQPMu'␤ in sub say at src/gen/CORE.setting:10920␤ in block at /tmp/1c4bguJKQL:1␤␤»
lizmat_ but either this new_type is not getting called
or something else amiss
jnthn I suspect it's getting called but not passed the auth/ver :)
lizmat_ so where would I need to look to fix that? 12:48
jnthn package_def in Grammar.pm
lizmat_ I mean, we're going to need that *before* we can actually do stuff in that direction, right?
jnthn It feels like a sensible first step, at least.
lizmat_ is looking
lizmat_ nice little 200 line rule :-) 12:50
FROGGS nwc10: yeah, younds reasonable
lizmat_ jnthn: thanks for the pointer, will look at it tomorrow 12:51
FROGGS lizmat_: have a look for colonpairs following the package_name or what it is called
nwc10 as a complete "Armchair expert", I'd suspect that of those, from what I've read, PyPy is the "strangest"
fglock is investigating v8 for perlito, so he probably has a good reason 12:52
lizmat_ need to run errands first before getting to the Niederrhein PM meeting
FROGGS nwc10: in what way?
nwc10 and Rubinus is C++ atop LLVM, so that might be the easiest as far as code integration goes with C code 12:52
nwc10 PyPy *seems* (and I stress seems) to be a complete self contained runtime 12:52
where you write your low level stuff in rpyhton 12:53
FROGGS I'm not sure we should choose by easy-ness, but by profit
nwc10 er, rpython
lizmat_ afk for rest of the day
FROGGS bye lizmat_ 12:53
jnthn o/ lizmat_
nwc10 OK, only v8 runs on "both" kinds of architecture (for two levels of "both")
(ARM vs x86, and (sort of) i386 vs x86_64)
I think that LLVM is on more 12:54
RPython's JIT seems ot be on the same 3 as v8
"profit" right now is whichever is easiest to get bootstrapping
dalek p/rak-jvm-support: 91b43a6 | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/sixmodel/Serialization (2 files):
Invocation spec handling in serializer.
FROGGS nwc10: profit for me is like have an awesome startup speed for e.g. small scripts 12:55
nwc10 please note, I remain I complete armchair expert on this. I've only read stuff
FROGGS: in which case, bootstrap "hello world" atop all 3
and rule out any that takes too long
jnthn Hm. So seems I've reached the point where I need to take care of the container stuff properly on the JVM. 12:56
nwc10 jnthn: or drink?
jnthn nwc10: Or that ;)
May go and take a walk...it seems nice-ish outside :)
nwc10 you weren't asking for advice, but given everyhing you've said, I'll recommend the walk 12:57
FROGGS well, a nice cold glass of beer has something to do with container stuff 12:58
nwc10 *one* nice glass of beer is only sufficient for testing scalars 12:59
FROGGS ya, stopped raining here, maybe I take a walk too with wife and kids
nwc10 if he had Koelsh, it would be safe to test nested aggregates
FROGGS *gg*
but who wants Kölsch anyway?
[Coke] hurm. this line: $text ~~ /^( +)/; -- dies with Method 'rxtype' not found for invocant of class 'Integer' 13:15
(compile time, even.) 13:16
Ayiko .tell grondilu re your text matrix->hash of hashes gist: gist.github.com/Ayiko/5547016 (yes I'm late)
yoleaux Ayiko: I'll pass your message to grondilu.
PerlJam [Coke]: Well, at least it lets you know that there's something wrong with the regex :) 13:20
Ayiko [Coke]: you want to escape the space or point out the missing quantifier quantifies nothing error message?
[Coke] it's the regex - it was ^(\s+), and I wrongly changed it to ^( +) instead of ^ (' '+) -- weird error, though. 13:21
PerlJam [Coke]: yeah, the message is severely LTA
[Coke] Yah. just a better error message would help. (especially with a line number.)
Ayiko /(+)/ gives the right error
[Coke] of course I changed 8 other things at the same time, so it took me a minute to realize. ;)
r: my $a = Nil // 0.1; say $a; 13:24
camelia rakudo fe7049: OUTPUT«0.1␤»
masak [Coke]: are you submitting that LTA bug, or should I? 13:46
dalek p/rak-jvm-support: 50aa523 | jnthn++ | src/vm/parrot/ops/nqp.ops:
Avoid lots of indirect calls in NFA evaluation.
13:48
p/rak-jvm-support: ef11486 | jnthn++ | src/QRegex/P6Regex/Actions.nqp:
Proper error for / +/.

Reported by [Coke]++.
pmurias FROGGS: do you plan to start a native code nqp/rakudo backend or are just curious about the options? 13:50
alester lizmat: If you're not up on ack 2.0, do so. 13:51
PerlJam nqp: my $_ := ""; /^( +)/;
camelia nqp: OUTPUT«Method 'rxtype' not found for invocant of class 'Integer'␤current instr.: 'capnames' pc 35479 (src/stage2/gen/NQPP6QRegex.pir:12478) (src/stage2/gen/NQPP6QRegex.nqp:923)␤»
FROGGS pmurias: I don't plan to start anything, at least not as long as v5 needs that much love :o) 14:09
FROGGS but I'd be happy if I could help making rakudo faster, whatever this means 14:10
FROGGS PerlJam: looks like it expects a QAST::Regex subrule, but gets an Integer 14:11
nqp: my $_ := ""; /^( ~)/; # String?
camelia nqp: OUTPUT«Unrecognized regex metacharacter ~ (must be quoted to match literally) at line 2, near " ~)/; # St"␤current instr.: 'panic' pc 14721 (src/stage2/gen/NQPHLL.pir:5232) (src/stage2/gen/NQPHLL.nqp:279)␤»
FROGGS hmm, okay it's not a quantifier...
jnthn FROGGS: I already pushed a fix. :) 14:13
Oh, though in a branch...
But that should merge in not too long...
FROGGS jnthn: patch for our-vars, not sure if you like it: gist.github.com/FROGGS/f8c145d91f3934df7810 14:17
jnthn - :state(1)); 14:30
+ :scope('state'));
um, don't do that...
FROGGS okay, why? 14:31
jnthn oh, hmm...maybe it's OK 14:32
gtodd masak: would you like me to add links to the solutions on each of the workshop pages ? e.g. [Solutions](gist.github.com/masak/5496294#oneliner) on github.com/masak/workshop/edit/mas...NELINER.md
jnthn has a bunch of changes in this chunk of code in this branch so only half appreciates the changes :P
This looks much correcter than what we had before, though.
FROGGS my patch passes the spectests (with the earlier mentioned corrections), and now I'll go through the ~12 rt tickets about our-things 14:33
jnthn Yeah 14:34
FROGGS is the name $*W.install_lexical_container bad for our-vars? I didnt want to duplicate it because my and our shared too much
jnthn I think it's fine, and certainly better than what we've got. I'll just have to re-work a chunk of it.
jnthn 'cus I changed install_lexical_container a lot. 14:35
FROGGS k
jnthn Yeah, it's not the best name for it...
I would have preferred to have an install_package_container and factor out the commonalities into a third method.
But that can come later, I guess. 14:36
FROGGS k, I'll think about proper names after rt-tickets
jnthn Doing more changes like that will just make the merge conflicts we'll get even more of a pain to fix.
FROGGS hmmm, true
jnthn Alternatively, just do the patch right off in the jvm-support branch ;) 14:37
FROGGS meh
I need it for v5
jnthn ah
FROGGS almost every test file (~480 files) starts with: BEGIN { @INC = qw(../lib) } 14:38
masak gtodd: I dunno; adding solutions to the exercise pages feels wrong to me. 14:41
gtodd: I'm fully OK with associating them somehow with the workshop -- but putting them in the path of people who haven't written their own solutions yet feels somehow... weird.
gtodd masak:right ... 14:44
maybe put a link somewhere but not on the problem page itself !
or adding "(don't peek!!) " 14:45
hahha
masak :) 14:52
gtodd: the more I think of it, the more fine I am with *not* having an explicit association between the two, and just have the URL of the gist spread by "word of mouth". 14:53
masak it's already a great resource for lots of solutions, and worth mining for all kinds of reasons. but it's "outside" of the workshop, in the sense that it's based on it, not the other way around. 14:53
dalek pan style="color: #395be5">perl6-examples: 31cd8f7 | (L. Grondin)++ | rosalind/qrt-grondilu.pl:
(rosalind) QRT
15:00
pan style="color: #395be5">perl6-examples: 903e508 | (L. Grondin)++ | parsers/CSSGrammar.pm:
Merge branch 'master' of github.com:perl6/perl6-examples
dalek ast: 9780900 | (Tobias Leich)++ | S04-declarations/our.t:
changed test to match spec

Our-vars are only available in the block where they are created.
15:05
ast: 8c3db86 | (Tobias Leich)++ | S04-declarations/our.t:
added tests for RT #100560, #102876 and #117083
TimToady (unless you say $OUR::foo of course) 15:06
nr: { our $foo = 42 }; say $OUT::foo
camelia rakudo fe7049, niecza v24-42-g69a3432: OUTPUT«(Any)␤» 15:07
TimToady nr: { our $foo = 42 }; say $OUR::foo
camelia rakudo fe7049, niecza v24-42-g69a3432: OUTPUT«42␤»
TimToady npr: { our $foo = 42 }; say $foo
camelia niecza v24-42-g69a3432: OUTPUT«===SORRY!===␤␤Variable $foo is not predeclared at /tmp/twodZXI8kQ line 1:␤------> { our $foo = 42 }; say ⏏$foo␤␤Unhandled exception: Check failed␤␤ at /home/p6eval/niecza/boot/lib/CORE.setting line 1443 (die @ 5) ␤ at…
..rakudo fe7049, pugs: OUTPUT«42␤»
TimToady niecza++
masak moving Set.pm forward in the setting recipe triggered a "maximum recursion depth exceeded" during build. 15:08
now trying to move operators.pm backward instead :)
TimToady
.oO(Windows isn't an operating system, it's just a boot-ordering system...)
15:09
FROGGS TimToady: of course... the last example is already fixed for rakudo locally
TimToady locally++
FROGGS *g*
jnthn masak: You may want to grab a patch out of the jvm-support branch that makes those fail in a nicer way
Well, some ofthose :) 15:10
masak jnthn: ok 15:14
moving operators.pm backwards seemed to work...
jnthn masak: OK :) 15:15
kresike bye folks 15:17
dalek ast: b1e5c0e | (Tobias Leich)++ | S04-declarations/our.t:
added test for RT #117775
15:18
FROGGS nr: sub foo { our $bar = 3 }; foo; say our $bar 15:20
camelia rakudo fe7049: OUTPUT«Potential difficulties:␤ Redeclaration of symbol $bar␤ at /tmp/LSvzUtqetk:1␤ ------> foo { our $bar = 3 }; foo; say our $bar⏏<EOL>␤3␤»
..niecza v24-42-g69a3432: OUTPUT«3␤»
dalek pan style="color: #395be5">perl6-examples: 1f26706 | (L. Grondin)++ | rosalind/monoisotopic-mass-table.txt:
(rosalind) adding monoisotopic mass table
15:22
xenoterracide jnthn how's the jvm port coming? 15:27
dalek ast: b84a6e0 | (Tobias Leich)++ | S04-declarations/our.t:
added test for RT #115630
15:29
jnthn xenoterracide: Steadily making progress. I'm onto the "get it to build some of the setting" phase by now, which means the compiler/MOP/bootstrap compile on the JVM already. It's all just a bit useless until a good chunk of the setting works :) 15:33
pmurias FROGGS: good ;), v5 is important 15:36
xenoterracide jnthn++ 15:37
colomon rn: say ~Complex 15:38
camelia niecza v24-42-g69a3432: OUTPUT«Complex()␤»
..rakudo fe7049: OUTPUT«use of uninitialized value of type Complex in string context in block at /tmp/2MkRuapVmd:1␤␤␤»
colomon hurmph
FROGGS nr: use Test; eval_lives_ok 'our macro hoo() { }'
xenoterracide maybe I'll look at p6 more once my little pet project is done (I need a replacement for Google Reader by July First that I like)
camelia rakudo fe7049: OUTPUT«(timeout)»
..niecza v24-42-g69a3432: OUTPUT«# Exception: Action method macro_def not yet implemented␤ at /home/p6eval/niecza/boot/lib/CORE.setting line 1443 (die @ 5) ␤ at /home/p6eval/niecza/src/STD.pm6 line 5639 (STD.sorry @ 7) ␤ at /home/p6eval/niecza/src/NieczaActions.pm6 line 63 (NieczaActio…
FROGGS :o( 15:39
colomon rn: say Complex.perl 15:40
camelia rakudo fe7049, niecza v24-42-g69a3432: OUTPUT«Complex␤»
dalek ast: e47d7ae | (Solomon Foster)++ | S32-container/stringify.t:
Start of stringify tests for Set type objects.

Adds basic stringification tests for Set, KeySet, Bag, and KeyBag. Surely many more tests can be added along these lines, but these have catastrophic issues in Niecza at the moment, so this is a fine place to start.
15:45
dalek ast: 7ab0e95 | (Tobias Leich)++ | S04-declarations/our.t:
fixed tests, $OUR:: is needed because of lives_ok's block
16:00
FROGGS r: for our $:: (); 16:03
camelia rakudo fe7049: OUTPUT«===SORRY!===␤ResizablePMCArray: index out of bounds!␤»
FROGGS r: for my $:: ();
camelia rakudo fe7049: OUTPUT«===SORRY!===␤ResizablePMCArray: index out of bounds!␤»
diakopter r: $:: 16:04
camelia rakudo fe7049: OUTPUT«===SORRY!===␤ResizablePMCArray: index out of bounds!␤»
diakopter few months ago or more
masak can anyone make sense of this backtrace during Rakudo build (after applying a patch to make Set take non-Str keys)? gist.github.com/masak/5548488 16:13
if not, I think I'm stuck on that one. it looked promising there for a while. :) 16:14
(by the way, this feels like another circularity saw error)
jnthn No, that makes no sense to me...
diakopter lizmat: wb! 16:19
lizmat at the Niederrhein.PM meeting
<lurk mode="on">
colomon r: say ~Set 16:40
camelia rakudo fe7049: OUTPUT«use of uninitialized value of type Set in string context in block at /tmp/g4noW1nJjj:1␤␤␤»
masak missing :U somewhere? 16:41
r: say ~Int
camelia rakudo fe7049: OUTPUT«use of uninitialized value of type Int in string context in block at /tmp/fehyY3gjMn:1␤␤␤»
grondilu how could I get the number of decimals from a rational?
yoleaux 13:16Z <Ayiko> grondilu: re your text matrix->hash of hashes gist: gist.github.com/Ayiko/5547016 (yes I'm late)
colomon grondilu: what do you mean? number of decimals it has? number of decimals that will be printed? Something else? 16:42
arnsholt grondilu: Why do you need to know? 16:44
Remember that the number of decimals in an expansion depends on the base, and might not be finite 16:45
grondilu example: 3.141 should give 3
so I mean base 10
arnsholt And the same Rat might have an infinite amount of decimals in one base, but not in another
colomon grondilu: what should 1/7 give? 16:46
grondilu oh, I mean litteral decimal
so it's not from a rational, it's from a decimal.
colomon decimal string? 16:47
'
grondilu yeah 16:47
benabik r: say ~(1/7)
camelia rakudo fe7049: OUTPUT«0.142857␤»
grondilu 1/7 is not a decimal
arnsholt grondilu: There's nothing built-in to get that (and I don't think there should be), but it shouldn't be too hard to extract 16:48
Hmm. Or it might actually be a bit tricky to compute
PerlJam grondilu: if it's a literal, how come you don't know how many decimals places you typed in?
arnsholt But again, what do you need this for?
grondilu PerlJam: I get it from stdin
grondilu (and I don't chose it) 16:49
PerlJam oh, so it's a string
arnsholt Oh, if it's from stdin, I'd probably just m/^^ [\d+] \. (\d+) $$/ and get the length of $1 16:50
PerlJam assuming "good" data, find the length of the string, find the position of the decimal, subtract :)
grondilu I need to do this because I must compare a number to an other one, and consider them equals if the difference is below the precision of the first one.
example: compare 128.0586 and 128.05858. The difference 0.00002. That's below the precision of the first one, thus the number are considered equals. 16:52
see? 16:53
arnsholt Right. I'd probably go with the regex solution
grondilu had wished for a more elegant way
colomon greatly doubt there is a more elegant way 16:55
grondilu wonders if there should not be a Decimal class inheriting from Rat 16:55
colomon because for your purposes, 3.02 and 3.020000 need to give different results, right?
grondilu colomon: non-significative zeros are non-significative
colomon grondilu: why?! 16:56
benabik If 3.1000 == 3.001, I'd be surprised.
grondilu hang on. Well, maybe they are indeed. It's not clear in my problem.
colomon grondilu: do I really have to specify 3.019999 to say it's 3.02 to six places? 16:57
grondilu it's for rosalind.info/problems/sgra/ in case you wonder.
colomon: I don't chose the data :/
benabik Rakudo doesn't have Rat.nu and .de? 17:01
grondilu r: say (1/3).de
camelia rakudo fe7049: OUTPUT«No such method 'de' for invocant of type 'Rat'␤ in block at /tmp/dOOJw8k2Aw:1␤␤»
jnthn .numerator
grondilu r: say (1/3).nude[1] 17:02
camelia rakudo fe7049: OUTPUT«3␤»
benabik Ah. HAve to remember how to spell it correctly. Spec has .nu/.de though.
grondilu realizes that he doesn't know if nude means 'naked' or 'NUmeratorDEnominator' :-)
benabik Does it matter? 17:03
FROGGS dalek: you there?
moritz \o 17:04
FROGGS ahh, github is slow too 17:05
hi moritz
arnsholt grondilu: Knowing TimToady and this place in general, it probably means both =)
moritz well, just ask yourself how you would name a method that returns both parts of a fraction 17:06
diakopter top-and-bottom 17:07
.both
grondilu 'break'?
but .nude is totally fine, anyway 17:08
benabik let (Rational nu de) = rat
moritz what about Emotional rats? 17:11
grondilu what I could do as well is turn a decimal number such as 3.13159 into 0.00001. It should not be too difficult with a regex either. 17:12
r: say "3.14159".subst(/\d/, "0", :g).subst(/\d$/, "1") 17:13
camelia rakudo fe7049: OUTPUT«0.00001␤»
grondilu do you see any shorter way? 17:14
grondilu r: say $_ / .subst(/\./, "") given "3.14159" 17:17
camelia rakudo fe7049: OUTPUT«0.00001␤»
grondilu is happy with this one
r: say $_ / .subst(/\./, "") given 3.14159 17:19
camelia rakudo fe7049: OUTPUT«0.00001␤»
[Coke] masak: i didn't submit that bug and am just getting back. 17:21
colomon r: say $_ / .subst(/\./, "") given "3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117067982148" 17:23
camelia rakudo fe7049: OUTPUT«1e-105␤»
colomon r: say "3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117067982148".comb.Int 17:24
camelia rakudo fe7049: OUTPUT«107␤»
colomon has no idea why that worked
dalek ast: b30e9a8 | (Tobias Leich)++ | S04-declarations/our.t:
added test for #76450
colomon has it figured out. 17:25
moritz colomon: .comb returns a list, .Int the number of elements
moritz too slow
masak [Coke]: so, shall I?
colomon moritz: that's not the question. the question is why is grondilu's approach correct, given that the number in question is much to precise to store in a Rat? 17:26
moritz r: say "3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117067982148".Numeric.^name 17:27
camelia rakudo fe7049: OUTPUT«Rat␤»
grondilu how does it store it then? Presumably, it stores it in a good approximation, thus the result is still correct.
masak submits [Coke]'s rakudobug 17:28
pmurias FROGGS: why v5 won't support goto?
colomon n: say "3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117067982148".Numeric.^name 17:29
camelia niecza v24-42-g69a3432: OUTPUT«Num␤»
FROGGS pmurias: because I dont have a clue to do that
how*
colomon r: say "3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117067982148".Numeric.Str
camelia rakudo fe7049: OUTPUT«3.1415926535897932492247264235629700124263763427734375␤»
colomon r: say "3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117067982148".Numeric.nude
camelia rakudo fe7049: OUTPUT«785398163397448309615660845819875721049292349843776455243736148076954101571552249657008706335529266995537 250000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000␤»
FROGGS but I've already heard it should be possible, I just forgot to change the readme
colomon Ah, so Rakudo's Rat is still broken! Handy for grondilu's purposes.... 17:30
pmurias r: goto foo;say "not ok";foo: say "ok";
camelia rakudo fe7049: OUTPUT«===SORRY!===␤Two terms in a row␤at /tmp/R1CEdUXSYk:1␤------> goto foo;say "not ok";foo⏏: say "ok";␤ expecting any of:␤ argument list␤ postfix␤ infix stopper␤ infix or meta-infix␤ statement e…
grondilu colomon: .subst(/\./, "") turns it into a big integer anyway.
[Coke] masak: por favor.
colomon grondilu: yes, but you're still using the original number in your division.
pmurias r: goto "foo";say "not ok";foo: say "ok"; 17:31
camelia rakudo fe7049: OUTPUT«===SORRY!===␤Two terms in a row␤at /tmp/6VqwBDRnen:1␤------> goto "foo";say "not ok";foo⏏: say "ok";␤ expecting any of:␤ argument list␤ postfix␤ infix stopper␤ infix or meta-infix␤ statement…
grondilu doesn't matter much, as long as it's a good approx
[Coke] masak: ... looks like it was already fixed in an nqp branch
moritz rakudo doesn't even parse labels
colomon grondilu: pretty sure it works here because it is exact. but that's a Rakudobug
n: say "3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117067982148".FatRat.nude 17:32
camelia niecza v24-42-g69a3432: OUTPUT«785398163397448309615660845819875721049292349843776455243736148076954101571552249657008706335529266995537 250000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000␤»
grondilu what value would have you expected??
colomon n: say "3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117067982148".Rat.nude
camelia niecza v24-42-g69a3432: OUTPUT«355 113␤»
grondilu nr: say $_ / .subst(/\./, "") given "3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117067982148"
camelia niecza v24-42-g69a3432: OUTPUT«1E-105␤»
..rakudo fe7049: OUTPUT«1e-105␤»
masak [Coke]: I included that fact in the RT ticket. 17:33
[Coke] masak++
colomon grondilu: it should be close but perhaps not exact if the calculations are done with Nums instead of (Fat)Rat and (big)Int 17:34
masak [Coke]: rt.perl.org/rt3/Ticket/Display.html?id=117931
colomon by spec it should be Nums here, but Rakudo lets Rats be FatRats.
grondilu I'm pretty sure it's close enough so that Num does not make the difference 17:35
masak (brian d foy)++ # stackoverflow.com/questions/124652/...797#125797
colomon n: say $_.FatRat / .subst(/\./, "") given "3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117067982148" 17:36
camelia niecza v24-42-g69a3432: OUTPUT«0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001␤»
colomon n: say $_.FatRat / .subst(/\./, "") given "3.14159265358979323846264338327950288419716939937510582097494459230781640628620899862803482534211706798214808651328230664709384460955058223172535940812848111745028410270193852110555964462294895493038196442881097566593344612847564823378678316527120190914564856692346"
camelia niecza v24-42-g69a3432: OUTPUT«0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000… 17:37
colomon :)
that's the portable p6 way to do it if you're worried about insane amounts of precision. 17:38
grondilu neh, dont need that
moritz seen on HN: "After decades of publish-or-perish sweatshop science I'm sure the great shining archive of scientific truth is sort of like an inbox with no spam filter." 17:39
arnsholt Yeah, there were some gems in those threads
colomon grondilu: I'm just happy there's a way to do it at all! I was working p6 for a couple of years before we got bigints and fatrats working...
arnsholt And some screaming ignorance as well
moritz rn: $_ = "3.1415926535897932384626433832795028841971693993751058"; s/\d/0/g; s/0$/1/; .say
camelia rakudo fe7049: OUTPUT«===SORRY!===␤Unsupported use of /g; in Perl 6 please use :g␤at /tmp/D5htwT6rfy:1␤------> 33832795028841971693993751058"; s/\d/0/g⏏; s/0$/1/; .say␤» 17:40
..niecza v24-42-g69a3432: OUTPUT«===SORRY!===␤␤Unsupported use of suffix regex modifiers; in Perl 6 please use prefix adverbs at /tmp/n0goy7Zk2g line 1:␤------> 33832795028841971693993751058"; s/\d/0/g⏏; s/0$/1/; .say␤Other potential difficulties:␤ Un…
moritz rn: $_ = "3.1415926535897932384626433832795028841971693993751058"; s:g/\d/0/; s/0$/1/; .say
camelia rakudo fe7049, niecza v24-42-g69a3432: OUTPUT«0.0000000000000000000000000000000000000000000000000001␤»
moritz here's a string-only way to do it :-)
colomon moritz: grondilu already did that back there somewhere, only using subst
moritz ok, I didn't backlog :-) 17:41
masak daxim is not here. I'm trying to follow his advice at irclog.perlgeek.de/perl6/2013-05-02#i_7009867 looking for nice real-world problems on StackOverflow. so far I've learned that ikegami++ and (brian d foy)++ write really nice answers to Perl questions, but I haven't found any good material to base exercises on. 17:45
am I searching stackoverflow in the wrong way?
is there a way to search stackoverflow that brings out a lot of nice real-world problems solvable in Perl? 17:46
daxim writes "mostly mundane of course, but also sometimes illustrative of program design, pick from them instead". what I'm finding is not even mundane, but questions such as "why is there only one '=' in '<=>'" or "why does Perl have a reputation as a write-only language". 17:47
FROGGS well, I dont know stackoverflow well, but usually ppl tend to describing a single problem, not their project 17:49
so I dont know if his advice is actually a good one
masak I don't feel I'm finding bits that are big enough, or cohesive enough, to use in a workshop. 17:50
and I'm wondering if it's because of the way I search, or because of the actual questions on there.
FROGGS ya, it might be easier to ask the ppl here what they usually do at work, and abstract reoccouring bits
general db-access could be such a candidate 17:51
moritz one thing that comes up on perlmonks regularly is reading two files, and then joining them on a column 17:52
or sometimes on two columns
masak ooh.
that might even be a good one for the non-beginner track.
masak adds an issue
moritz++
moritz or filtering out lines from one file if a certain column exits in the second file
there are many variations
masak aye. 17:53
moritz another one that comes up pretty often is extracting stuff from web pages
masak well, I do have a SCRAPER exercise.
thinking of extending it somewhat, though.
FROGGS jnthn: I'm going to apply the patched I showed you earlier, okay? the tests didnt reveal a need to tune it 17:55
masak hm, maybe a good "theme" for the beginner track is to actually focus on files. 17:55
so you work on smallish inputs and you do things to them. 17:56
colomon nr: say ~Int
camelia rakudo fe7049: OUTPUT«use of uninitialized value of type Int in string context in block at /tmp/bEzBFW1JiS:1␤␤␤»
..niecza v24-42-g69a3432: OUTPUT«Int()␤»
colomon ugh
FROGGS nr: my Int $x; say "$x" 17:57
camelia niecza v24-42-g69a3432: OUTPUT«Int()␤»
..rakudo fe7049: OUTPUT«use of uninitialized value of type Int in string context in block at /tmp/mz89DXHYkE:1␤␤␤»
colomon seems like both answers are clearly wrong
well, maybe Rakudo's is less clearly wrong.
cause Niecza's is wrong in multiple ways.
masak I kinda like Niecza's answer. 17:58
masak except that it's "(Int)" these days. 17:58
moritz rakudo's looks correct.
masak oh, indeed, it should warn, and I guess print nothing. 17:58
colomon The use of uninitialized value message definitely should be appearing.
but why print nothing?
jnthn FROGGS: How many RTs does it fix? :) 17:59
masak colomon: because an undefined value stringifies to nothing?
FROGGS jnthn: 6, but some of them are duplicates 18:00
colomon masak: does it? is that spec?
masak $ perl -we 'print my $x, "\n"'
Use of uninitialized value $x in print at -e line 1.
(and no more output)
colomon: if there isn't spec, I invoke "everything unspec'd works like in Perl 5" :)
colomon S02: "Type objects sometimes stringify to their name in parens, to indicate undefinedness. " 18:01
"sometimes" is gloriously vague there.
and masak, wouldn't the p6 equivalent of your p5 code there actually call .gist, which definitely does not return an empty string. 18:02
colomon does not really care what the answer to this question is, he just wants an answer so he can implement it.
FROGGS hmmm, I would expect that say gives (Int), yeah 18:03
TimToady npr: gist.github.com/TimToady/5549284
masak colomon: you have a number of fair points. 18:03
camelia niecza v24-42-g69a3432: OUTPUT«74 117 115 116 32 97 110 111 116 104 101 114 32 80 101 114 108 32 104 97 99 107 101 114␤»
..rakudo fe7049: OUTPUT«36902553666127019859637446314758035961162 144150600258308671326708774667023577973 563088282259018247369956151043060851 2199563602574290028788891215011956 8592045322555820424956606308640 33562677041233673534986743393 131104207192319037246041966 512125809344996239242…
..pugs: OUTPUT«*** ␤ Unexpected "mod"␤ expecting operator, ":", "," or "}"␤ at /tmp/wi1uqt45g5 line 5, column 21␤»
TimToady rakudobug 18:03
masak colomon: maybe it should .gist to "" (with a warning) but .Str to "(Int)" 18:04
masak submits TimToady's rakudobug
colomon TimToady: is that actually a numeric bug?! I was thinking it was just a list stringifcation issue at first... 18:05
FROGGS jnthn: I take the silence as "yes" :P
TimToady it's supposed to repeatedly pull out mod 256 for the 'Just another Perl hacker'
[Coke] wonders if all the .gist/.Str differences are documented for each type.
TimToady it gets the first 8 characters correct, so...
it's obviously something on a 64-bit boundary 18:06
colomon TimToady: oooo, that was my Just another Perl hacker from masakism. Except I hardcoded it in base something-or-other rather than base 256.
TimToady thinks modmap (or whatever we decide to call it) would be a useful addition to the language 18:07
colomon TimToady: wait, how do you figure that? Rakudo's answers above are clearly insane....
TimToady hmm, actually, it's the *last* 8 characters that are correct 18:08
colomon rn: gist.github.com/colomon/5549331 18:09
camelia rakudo fe7049: OUTPUT«36902553666127019859637446314758035961162 144150600258308671326708774667023577973 563088282259018247369956151043060851␤»
..niecza v24-42-g69a3432: OUTPUT«74 117 115␤»
colomon rn: say 2804985923338703271682399481743033703427656749129565173066 mod 256 18:10
camelia rakudo fe7049: OUTPUT«36902553666127019859637446314758035961162␤»
..niecza v24-42-g69a3432: OUTPUT«74␤»
masak TimToady: I had an urge to write something like that too when I pasted the solution to the channel earlier today. except I wanted to do it as a :list flag on .base
colomon and there's your bug
rn: say 2804985923338703271682399481743033703427656749129565173066 % 256
masak colomon++
camelia rakudo fe7049, niecza v24-42-g69a3432: OUTPUT«74␤»
moritz masak: gist.github.com/moritz/5549343
masak: it's a list of questions I recently-ish answered on perlmonks, which have the potential to serve as tasks 18:11
masak includes colomon's find in the RT ticket
moritz++ # thanks!
moritz (I've filtered out lots of "why doesn't this code work"? and very perl 5 specific questions)
colomon rn: gist.github.com/colomon/5498600 18:12
camelia rakudo fe7049, niecza v24-42-g69a3432: OUTPUT«Just another Perl hacker␤»
TimToady masak: but by using a lazy list of radices I can do either 256 xx * or 60,60,24
diakopter TimToady: seems they want the logo in .ai format 18:13
colomon TimToady: any thoughts on what Int.Str or Set.Str should do?
rn: gist.github.com/colomon/5498600
camelia rakudo fe7049, niecza v24-42-g69a3432: OUTPUT«Just another Perl hacker␤»
diakopter (adobe illustrator) 18:14
colomon whoops
rn: gist.github.com/colomon/5549331
camelia rakudo fe7049, niecza v24-42-g69a3432: OUTPUT«74 117 115 116 32 97 110 111 116 104 101 114 32 80 101 114 108 32 104 97 99 107 101 114␤»
masak TimToady: yes, troo. I can see the use of that. that's what a `base` primitive does in APL-alikes (I learned from hakank++).
TimToady diakopter: that is not one of the export targets of LibreDraw 18:16
so we'll need some way to convert
FROGGS they usually take pdfs too, if it is vector gfx and not bitmap
diakopter FROGGS: yes, you're right.
pdf too, if it's vector 18:17
TimToady maybe can do that 18:17
do we want the level one or the tilted one? 18:18
I can't tell if it makes vector pdfs or image pdfs 18:20
FROGGS do you see pixels when zooming in? 18:21
diakopter svg might work
or .eps
I have illustrator
duh, forgot to mention
so yes, svg or eps 18:22
TimToady looks like it's vector
diakopter can you make it black on white? 18:23
er, black on nothing I guess
pmichaud what image? I have lots of graphics tools 18:25
pmichaud reads backscroll
irclog.perlgeek.de/today # 404 Not Found :-(
nwc10 oh noes. We don't exist 18:26
TimToady wall.org/~larry/cameliawbtilt.pdf
nwc10 I can be rude about Perl 3 :-)
pmichaud TimToady: there's little "pixel droppings" in that PDF for me.
dalek ecza: b1710c1 | (Solomon Foster)++ | lib/CORE.setting:
Remove obsolete ucfirst routine.
ecza: 2e98224 | (Solomon Foster)++ | lib/CORE.setting:
Fixes to Set, KeySet, Bag, and KeyBag stringification routines.
ecza: bf8d2ad | (Solomon Foster)++ | t/spectest.data:
Turn on S32-container/stringify.t.
flussence pmichaud: that looks like a vhost bug, the / url is showing the main perlgeek.de site...
dalek ast: eafe306 | (Solomon Foster)++ | S32-container/stringify.t:
Fudge for Niecza.
18:27
nwc10 perl 3, you are buggy rt.perl.org/rt3/Ticket/Display.html?id=117887 :-)
[Coke] nwc10++ 18:31
pmichaud 18:26 <nwc10> oh noes. We don't exist 18:33
That's apparently been true for a long time. We're like... DNF or something :) 18:34
TimToady I've put both a .odg and a newer .pdf there (fix jaggie on the end of the P) 18:36
but it completely botches .svg export, losing line widths
grondilu rn: my @L = <3.14 6.534>; say my % = @L Z=> map { $^x / $x.substr(/\./, "") }, @L 18:41
camelia rakudo fe7049: OUTPUT«get_attr_str() not implemented in class 'Coroutine'␤current instr.: 'print_exception' pc 102605 (src/gen/CORE.setting.pir:46357) (src/gen/CORE.setting:8934)␤called from Sub '' pc 259 ((file unknown):143) (/tmp/QeFvXvfF3g:1)␤called from Sub 'substr' pc 231839 (src/g…
..niecza v24-42-g69a3432: OUTPUT«Unhandled exception: System.InvalidCastException: Cannot cast from source type to destination type.␤ at Anon.1.MAIN.b03c1c16-0e6b-4031-95cc-af820d0432e7.C2ANON (Niecza.Frame ) [0x00000] in <filename unknown>:0 ␤ at Niecza.Kernel.RunCore (Niecza.Frame& cu…
grondilu ^?? 18:44
lizmat rn: my %h= a => 1; say %h<a>:p; say %h<a>:!p; say %h<a>:p(0)
camelia rakudo fe7049, niecza v24-42-g69a3432: OUTPUT«"a" => 1␤"a" => 1␤"a" => 1␤»
lizmat rn: my %h= a => 1; say %h<a>:p; say %h<a>:!p; say %h<a>:p(0); say %h.at_key("a", p => 0) 18:45
camelia rakudo fe7049: OUTPUT«"a" => 1␤"a" => 1␤"a" => 1␤1␤»
..niecza v24-42-g69a3432: OUTPUT«"a" => 1␤"a" => 1␤"a" => 1␤Unhandled exception: Excess arguments to Hash.at_key, unused named p␤ at /home/p6eval/niecza/lib/CORE.setting line 0 (Hash.at_key @ 1) ␤ at /tmp/wB0k0EceD9 line 1 (mainline @ 13) ␤ at /home/p6eval/niecza/lib/CORE.setting line …
colomon rn: my @L = <3.14 6.534>; my %a = @L Z=> @L.map({ $^x / $x.substr(/\./, "") }); say %a.perl 18:46
camelia rakudo fe7049: OUTPUT«get_attr_str() not implemented in class 'Coroutine'␤current instr.: 'print_exception' pc 102605 (src/gen/CORE.setting.pir:46357) (src/gen/CORE.setting:8934)␤called from Sub '' pc 278 ((file unknown):146) (/tmp/uK6ce9YBnp:1)␤called from Sub 'substr' pc 231839 (src/g…
..niecza v24-42-g69a3432: OUTPUT«Unhandled exception: System.InvalidCastException: Cannot cast from source type to destination type.␤ at Anon.1.MAIN.4277c097-6486-41b2-a31d-1dc644222046.C2ANON (Niecza.Frame ) [0x00000] in <filename unknown>:0 ␤ at Niecza.Kernel.RunCore (Niecza.Frame& cu…
colomon rn: my @L = <3.14 6.534>; 18:46
camelia niecza v24-42-g69a3432: OUTPUT«Potential difficulties:␤ @L is declared but not used at /tmp/0f80SAjtt8 line 1:␤------> my ⏏@L = <3.14 6.534>;␤␤»
..rakudo fe7049: ( no output )
grondilu rn: my @L = <3.14 6.534>; say my % = @L Z=> map { +$x.substr(/\./, "") }, @L
camelia niecza v24-42-g69a3432: OUTPUT«===SORRY!===␤␤Variable $x is not predeclared at /tmp/3jGX3xMIos line 1:␤------> <3.14 6.534>; say my % = @L Z=> map { +⏏$x.substr(/\./, "") }, @L␤␤Unhandled exception: Check failed␤␤ at /home/p6eval/niecza/boot/lib/CO…
..rakudo fe7049: OUTPUT«===SORRY!===␤Variable '$x' is not declared␤at /tmp/0qrgMNNIbP:1␤------> my % = @L Z=> map { +$x.substr(/\./, "")⏏ }, @L␤ expecting any of:␤ postfix␤»
colomon rn: my @L = <3.14 6.534>; @L.map({ $^x / $x.substr(/\./, "") }); 18:46
camelia rakudo fe7049: OUTPUT«===SORRY!===␤Bogus statement␤at /tmp/ORykQcfLhH:1␤------> my @L = <3.14 6.534>;⏏ @L.map({ $^x / $x.substr(/\./, "") });␤ expecting any of:␤ postfix␤ statement end␤ statement modifier␤ statement mo…
..niecza v24-42-g69a3432: OUTPUT«===SORRY!===␤␤Bogus statement at /tmp/pbuXRWwK9k line 1:␤------> my @L = <3.14 6.534>;⏏ @L.map({ $^x / $x.substr(/\./, "") });␤␤Parse failed␤␤»
grondilu rn: my @L = <3.14 6.534>; say my % = @L Z=> map { +$^x.substr(/\./, "") }, @L 18:47
camelia rakudo fe7049: OUTPUT«get_attr_str() not implemented in class 'Coroutine'␤current instr.: 'print_exception' pc 102605 (src/gen/CORE.setting.pir:46357) (src/gen/CORE.setting:8934)␤called from Sub '' pc 258 ((file unknown):143) (/tmp/Qv7lGUKbbT:1)␤called from Sub 'substr' pc 231839 (src/g…
..niecza v24-42-g69a3432: OUTPUT«Unhandled exception: System.InvalidCastException: Cannot cast from source type to destination type.␤ at Anon.1.MAIN.69172c7d-d00e-4902-a806-fb138db98e2f.C2ANON (Niecza.Frame ) [0x00000] in <filename unknown>:0 ␤ at Niecza.Kernel.RunCore (Niecza.Frame& cu…
grondilu rn: my @L = <3.14 6.534>; say my % = @L Z=> map { +$^x.substr(/foo/, "bar") }, @L
TimToady apparently LibreDraw won't let me remap the colors of a vector diagram...
camelia rakudo fe7049: OUTPUT«get_attr_str() not implemented in class 'Coroutine'␤current instr.: 'print_exception' pc 102605 (src/gen/CORE.setting.pir:46357) (src/gen/CORE.setting:8934)␤called from Sub '' pc 258 ((file unknown):143) (/tmp/isXOu7AYQv:1)␤called from Sub 'substr' pc 231839 (src/g…
..niecza v24-42-g69a3432: OUTPUT«Unhandled exception: System.InvalidCastException: Cannot cast from source type to destination type.␤ at Anon.1.MAIN.eca8dab2-c34a-4903-931a-a45e6e058e33.C2ANON (Niecza.Frame ) [0x00000] in <filename unknown>:0 ␤ at Niecza.Kernel.RunCore (Niecza.Frame& cu…
grondilu wtf
rn: my @L = <3.14 6.534>; say my % = @L Z=> map { $^x.substr(/foo/, "bar") }, @L
camelia niecza v24-42-g69a3432: OUTPUT«Unhandled exception: System.InvalidCastException: Cannot cast from source type to destination type.␤ at Anon.1.MAIN.660d3fb8-e48b-449e-abaf-8cd2216dcc98.C2ANON (Niecza.Frame ) [0x00000] in <filename unknown>:0 ␤ at Niecza.Kernel.RunCore (Niecza.Frame& cu… 18:48
..rakudo fe7049: OUTPUT«get_attr_str() not implemented in class 'Coroutine'␤current instr.: 'print_exception' pc 102605 (src/gen/CORE.setting.pir:46357) (src/gen/CORE.setting:8934)␤called from Sub '' pc 247 ((file unknown):142) (/tmp/gESkXZQtkZ:1)␤called from Sub 'substr' pc 231839 (src/g…
TimToady wonders if he can fudge the odg file...
grondilu rn: my @L = <foo bar>; say my % = @L Z=> map { $^x.substr(/foo/, "bar") }, @L
camelia niecza v24-42-g69a3432: OUTPUT«Unhandled exception: System.InvalidCastException: Cannot cast from source type to destination type.␤ at Anon.1.MAIN.58dfa865-e257-4801-bf99-d7446cb6decc.C2ANON (Niecza.Frame ) [0x00000] in <filename unknown>:0 ␤ at Niecza.Kernel.RunCore (Niecza.Frame& cu…
..rakudo fe7049: OUTPUT«get_attr_str() not implemented in class 'Coroutine'␤current instr.: 'print_exception' pc 102605 (src/gen/CORE.setting.pir:46357) (src/gen/CORE.setting:8934)␤called from Sub '' pc 247 ((file unknown):430) (/tmp/CSal_g6cKG:1)␤called from Sub 'substr' pc 231839 (src/g…
grondilu rn: my @L = <foo bar>; say map { $^x.substr(/foo/, "bar") }, @L
camelia niecza v24-42-g69a3432: OUTPUT«Unhandled exception: System.InvalidCastException: Cannot cast from source type to destination type.␤ at Anon.1.MAIN.28100b56-a6a1-41d3-8bca-7e1005a99fbe.C2ANON (Niecza.Frame ) [0x00000] in <filename unknown>:0 ␤ at Niecza.Kernel.RunCore (Niecza.Frame& cu…
..rakudo fe7049: OUTPUT«No such method '!cursor_start_all' for invocant of type 'Int'␤ in regex at /tmp/bU1ea9d3Pf:1␤ in method substr at src/gen/CORE.setting:4028␤ in block at /tmp/bU1ea9d3Pf:1␤␤»
grondilu rn: say map { $^x.substr(/foo/, "bar") }, <foo bar> 18:49
camelia niecza v24-42-g69a3432: OUTPUT«Unhandled exception: System.InvalidCastException: Cannot cast from source type to destination type.␤ at Anon.1.MAIN.6a5afab9-c690-461d-8e56-ec22582f2c54.C2ANON (Niecza.Frame ) [0x00000] in <filename unknown>:0 ␤ at Niecza.Kernel.RunCore (Niecza.Frame& cu…
..rakudo fe7049: OUTPUT«No such method '!cursor_start_all' for invocant of type 'Int'␤ in regex at /tmp/IQC5sTzU4z:1␤ in method substr at src/gen/CORE.setting:4028␤ in block at /tmp/IQC5sTzU4z:1␤␤»
grondilu am I missing something? 18:49
moritz can somebody please help me to set up name-based virtual hosts with apache2? seems my irclog setup is botched, and only works with ipv6 (where it's not name-based anymore)
colomon subst, not substr
grondilu: ^^
grondilu oh
sorry guys 18:50
colomon rn: my @L = <3.14 6.534>; my %a = @L Z=> @L.map({ $^x / $x.subst(/\./, "") }); say %a.perl
camelia niecza v24-42-g69a3432: OUTPUT«{"3.14" => 0.01, "6.534" => 0.001}.hash␤»
..rakudo fe7049: OUTPUT«("3.14" => 0.01, "6.534" => 0.001).hash␤»
grondilu there should be a multi substr(Regex $, Str) { !!! "did you mean .subst(...)?" } 18:52
(or something like that)
FROGGS moritz: I've got an apache2 running here 18:54
moritz FROGGS: I just fixed it
FROGGS k 18:55
flussence lemme guess, it wa something to do with having a wrong NameVirtualHost line :)
moritz the NameVirtualHost was just *:80, is no $IP:80
flussence hm, I would've thought the latter would be the broken one... (setting up lighttpd on a dual stack isn't any less confusing though) 18:57
moritz s/no/now/ 19:00
and I didn't even notice the breakage, because it worked fine with ipv6 :-)
dalek ecza: cf7d64c | (Solomon Foster)++ | lib/CORE.setting:
Fix bug introduced in last KeySet.perl fix.
19:07
TimToady here's a black-on-white pdf: wall.org/~larry/cameliabwtilt.pdf 19:07
diakopter raindrop artifacts?
TimToady raindrop? 19:08
grondilu rn: gist.github.com/grondilu/5549739
camelia niecza v24-45-gbf8d2ad: OUTPUT«Unhandled exception: slurp may not be used in safe mode␤ at /home/p6eval/niecza/lib/CORE.setting line 0 (slurp @ 0) ␤ at /tmp/gpUzbQwYxa line 3 (mainline @ 4) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4328 (ANON @ 3) ␤ at /home/p6eval/niecza/lib/C…
..rakudo fe7049: OUTPUT«Unable to open filehandle from path 'monoisotopic-mass-table.txt': No such file or directory(2)␤ in method open at src/gen/CORE.setting:11008␤ in method open at src/gen/CORE.setting:10998␤ in sub open at src/gen/CORE.setting:11309␤ in sub open at src/gen/CORE.s…
TimToady maybe I should try looking at it on a different computer
diakopter her legs distappeared
TimToady ah, hang on
lizmat rn: my %h= (:a<1>); say %h.postcircumfix:<{ }>("a", p => 0 )
camelia rakudo fe7049: OUTPUT«"a" => "1"␤»
..niecza v24-45-gbf8d2ad: OUTPUT«"a" => 1␤»
lizmat thinks that is a bug, it should just be "1", not a pair 19:09
TimToady diakopter: look again
grondilu rn: gist.github.com/grondilu/5549739 19:10
camelia rakudo fe7049: OUTPUT«(timeout)»
..niecza v24-45-gbf8d2ad: OUTPUT«Unhandled exception: Unable to resolve method push in type Any␤ at /tmp/r4pCqCYNRK line 42 (ANON @ 20) ␤ at /tmp/r4pCqCYNRK line 45 (ANON @ 6) ␤ at /tmp/r4pCqCYNRK line 47 (spectrum-graph @ 8) ␤ at /tmp/r4pCqCYNRK line 49 (mainline @ 11) ␤ at /home/p6…
diakopter better, just there are these vertical lines around it various places
i.imgur.com/gp1mSZh.png 19:11
and firefox i.imgur.com/Ekag2un.png 19:12
diakopter TimToady: this is why I stay away from open-source software. ;) 19:13
TimToady adobe acrobat reader puts dots on it, sigh 19:13
pmichaud I think there may be extra objects lying around that are invisible on the screen but render into the PDF.
pmichaud oh, also, if using OpenOffice Draw, I've noticed that hidden layers are often not hidden when rendered into PDF. 19:14
(well, LibreOffice Draw, I guess.)
diakopter I mean, the dots don't actually look bad when circular
nwc10 pmichaud: this is a feature inspired by the fact that Word docs have undo buffers, that authors inadvertently publish and curious types then sniff through? :-) 19:16
dalek ast: 7f7fa6e | (Solomon Foster)++ | S29-context/eval.t:
Fudge for Niecza.
19:21
grondilu r: constant N = 3; my @L = rand xx N; say @L X- @L; # is there a faster way of doing this for large N? 19:23
camelia rakudo fe7049: OUTPUT«0 -0.586431947484623 -0.270399563246862 0.586431947484623 0 0.316032384237761 0.270399563246862 -0.316032384237761 0␤» 19:24
grondilu like N = 100
masak lizmat++ # finding all these nice corner cases 19:27
lizmat: want me to submit the p => 0 one?
TimToady interesting observation, the extra dots in Acrobat are always 1 pixel even at 600% zoom 19:28
masak some pixels never amount to anything in life. 19:35
moritz maybe they are infinitessimally small? :-) 19:36
TimToady they don't seem to correlate with any objects related to the picture, that I can tell... 19:37
pmichaud when I render them on my screen, they seem to be at the "poles" of some of the ellipses 19:41
pmichaud well, not exactly at the poles, but there are dots 180 degrees opposite from each other on an ellipse 19:42
masak focal points? 19:43
pmichaud not exactly.
masak :)
pmichaud for example, in i.imgur.com/gp1mSZh.png , if you look at the lower lobes you can see dots just "north" and "south" of the inner-most ellipses 19:44
then you can start finding them in the eyes, etc.
the lines between the antennae have corresponding lines on the opposite sides of the "large" ellipses of the wings 19:45
same for the lines between the feet and the lower wings
nwc10 are you sure that something isn't adding this? wildsparx.com/eurionize/ :-)
TimToady bugs.launchpad.net/ubuntu/+source/...bug/689349 19:46
lizmat masak: please 19:47
dalek kudo/nom: bfd8508 | (Tobias Leich)++ | src/Perl6/ (2 files):
make decl and init of our-scoped arrays/hashes work

This will install a container for the given type within the package and adds the lookup. This reverts my (stupid) previous patch which basically treated an our-scoped var like if is was a my-scoped variable declared directly within the package block. Fixes RT 100560, 102876, 117083, 117775, 115630, 107270
19:48
moritz \o/
five RTs with one patch :-) 19:50
FROGGS++
jnthn Wow
FROGGS++
Six, even.
arnsholt Very cool!
moritz oh right, I stopped reading after the line break which my irssi added
FROGGS sad there is no smiley for turning red
moritz R-) 19:51
arnsholt Does this mean type constraints on package-scoped stuff will work properly as well now?
FROGGS it is about:
arnsholt (If they get a container now, I guess it will?)
FROGGS r: module Foo { our @var = 1..3 }; say @Foo::var 19:52
camelia rakudo fe7049: OUTPUT«No such method 'STORE' for invocant of type 'Any'␤ in block at /tmp/cP7RnnnrM5:1␤␤»
FROGGS and for hashes
masak TimToady: bugs.launchpad.net/ubuntu/+source/...omments/51 seems to be a workaround. 19:53
masak submits lizmat's rakudobug
TimToady masak: lookit at the eps right now
masak FROGGS++
TimToady *looking
masak as a bug collector, I find that one a nice specimen ;) 19:54
pmichaud TimToady: (bug 689349) that was reported in late 2010/early 2011, and it's *still* not fixed? hmmmmmmm 19:57
TimToady wall.org/~larry/c2.eps should have the dots removed (used the little awk script) 19:59
I believe diakopter++ mentioned that .eps was acceptable 20:00
diakopter: will wall.org/~larry/c2.eps work for you? 20:07
FROGGS TimToady: there is a cut at the bottom 20:08
you might want to make the canvas a bit bigger
dalek ast: 9970b75 | (Tobias Leich)++ | S04-declarations/our.t:
fudge passing todos
20:10
TimToady FROGGS: well, it thinks it's going on 8.5 x 11" paper, so I think I'll have to shrink the whole thing a bit maybe 20:11
grondilu rn: say sort <1 100 20>; 20:12
camelia rakudo fe7049: OUTPUT«1 100 20␤»
..niecza v24-46-gcf7d64c: OUTPUT«1 20 100␤»
grondilu niecza is right here, isn't it?
pmichaud grondilu: I believe niecza is right here, yes.
grondilu though I'm not sure how it knows it should make a numeric sort :/ 20:13
pmichaud <...> strings are "special"
colomon n: <1 100 20>.map({ say $_.WHAT })
camelia niecza v24-46-gcf7d64c: OUTPUT«(IntStr)␤(IntStr)␤(IntStr)␤»
colomon that would be how. :)
pmichaud rakudo doesn't have IntStrs yet.
grondilu ok, good to know
rn: say sort <1 100 20>»Int; 20:14
camelia rakudo fe7049: OUTPUT«===SORRY!===␤Two terms in a row␤at /tmp/mg3a2m9Yp9:1␤------> say sort <1 100 20>»⏏Int;␤ expecting any of:␤ postfix␤ infix stopper␤ infix or meta-infix␤»
..niecza v24-46-gcf7d64c: OUTPUT«===SORRY!===␤␤Unexpected closing bracket at /tmp/mYWgmWeFnP line 1:␤------> say sort <1 100 20>⏏»Int;␤␤Parse failed␤␤»
grondilu rn: say sort <1 100 20>».Int;
camelia rakudo fe7049, niecza v24-46-gcf7d64c: OUTPUT«1 20 100␤»
pmichaud rn: say <1 100 20>.sort(:by(+*))
camelia rakudo fe7049: OUTPUT«1 100 20␤»
..niecza v24-46-gcf7d64c: OUTPUT«Unhandled exception: Excess arguments to Any.sort, unused named by␤ at /home/p6eval/niecza/lib/CORE.setting line 0 (Any.sort @ 1) ␤ at /tmp/llTcjraS2V line 1 (mainline @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4328 (ANON @ 3) ␤ at /home/p6eva…
colomon rn: say <1 100 20>.sort(+*)
camelia rakudo fe7049, niecza v24-46-gcf7d64c: OUTPUT«1 20 100␤»
colomon for what it's worth, I think explicitly requesting numeric sort is vastly preferable to relying on magic properties of IntStr. :) 20:16
[Coke] stares at the hypno-camelia eps file. 20:17
TimToady okay, shrank Camelia to fit inside .eps boundaries, try wall.org/~larry/c2.eps again 20:18
FROGGS++ for noticing it was cut off 20:19
FROGGS looks good on my box
TimToady \o/
FROGGS so, back to p5's open FH >.< 20:20
TimToady \o/ for modern image processing tools like awk :)(
FROGGS hehe
sorear so after creating perl and giving it -a, you still use awk? :) 20:21
TimToady it's still easier to copy-paste an awk script than to rewrite it :) 20:23
grondilu use MONKEY_TYPING; augment class List { method lookup($value, $begin = 0, $end = self.elems) { (state@) = self.sort; ... } } # use a binary search to retrieve the largest index $i such that $x >= self.sort[$i]
^ this could be usefull 20:24
grondilu needs a lookup function to improve the speed of rosalind.info/problems/sgra/ 20:25
colomon grondilu: That's in List::Utils too. ;) 20:27
grondilu lol, I should definitely check out your module, then :) 20:28
colomon well, the versions there don't do sorting, they assume they are working on a sorted list.
but sorting is the easy part.
grondilu reboostraps panda in order to install List::Utils 20:33
[Coke] sorting's built in! 20:33
dalek rl6-roast-data: 75c1cdb | coke++ | / (4 files):
today (automated commit)
20:35
rl6-roast-data: c654e17 | coke++ | / (4 files):
today (automated commit)
[Coke] niecza has been dirty for 296 days. pugs has been dirty for 5 days. rakudo has been dirty for 5 days.
[Coke] wonders if colomon will avert the 300 day mark. 20:35
nwc10 xkcd.com/363/ 20:36
[Coke] I am very sad that rakudo's been broken for nearly a week. :|
FROGGS I dont get these S02-types/bool. fails :/ 20:37
*bool.t
[Coke] Looks like a core dump 20:38
github.com/coke/perl6-roast-data/b...y.out#L235
lizmat gnight #perl6
FROGGS [Coke]: are you using nqp in NQP_REVISION or in HEAD? 20:40
nwc10 ooh, morepypy.blogspot.co.uk/2013/05/pyp...dwich.html 20:40
FROGGS [Coke]: nvm, it is the same 20:41
colomon could do it trivially by just fudging... holding out hope of getting things sorted. 20:43
properly, I mean.
rn: say "ehLF".tc 20:45
camelia niecza v24-46-gcf7d64c: OUTPUT«EhLF␤»
..rakudo bfd850: OUTPUT«No such method 'tc' for invocant of type 'Str'␤ in block at /tmp/K4zuXKaaNh:1␤␤»
colomon rn: say "ehLF".tclc
camelia rakudo bfd850, niecza v24-46-gcf7d64c: OUTPUT«Ehlf␤»
grondilu rn: use List::Utils 20:52
camelia rakudo bfd850: OUTPUT«===SORRY!===␤Could not find List::Utils in any of: /home/p6eval/nom-inst/lib/parrot/5.2.0-devel/languages/perl6/site/lib, /home/p6eval/nom-inst/lib/parrot/5.2.0-devel/languages/perl6/vendor/lib, /home/p6eval/nom-inst/lib/parrot/5.2.0-devel/languages/perl6/lib, /hom…
..niecza v24-46-gcf7d64c: OUTPUT«Unhandled exception: System.Exception: Unable to locate module List::Utils in /home/p6eval/niecza/lib /home/p6eval/niecza␤ at /home/p6eval/niecza/boot/lib/CORE.setting line 1443 (die @ 5) ␤ at /home/p6eval/niecza/src/NieczaPathSearch.pm6 line 23 (NieczaP…
geekosaur not List::Util? 20:53
FROGGS star: use List::Util 20:53
camelia star 2013.02: OUTPUT«===SORRY!===␤Could not find List::Util in any of: /home/p6eval/star/lib/parrot/4.10.0/languages/perl6/site/lib, /home/p6eval/star/lib/parrot/4.10.0/languages/perl6/vendor/lib, /home/p6eval/star/lib/parrot/4.10.0/languages/perl6/lib, /home/p6eval/.perl6/2013.02.1/lib…
FROGGS star: use List::Utils
camelia star 2013.02: OUTPUT«===SORRY!===␤Could not find List::Utils in any of: /home/p6eval/star/lib/parrot/4.10.0/languages/perl6/site/lib, /home/p6eval/star/lib/parrot/4.10.0/languages/perl6/vendor/lib, /home/p6eval/star/lib/parrot/4.10.0/languages/perl6/lib, /home/p6eval/.perl6/2013.02.1/li…
FROGGS :/
grondilu colomon: "lower-bound" returns the lowest index $i such that @a[$i] > $key, right? 20:54
[Coke] FROGGS: gist.github.com/coke/5550615 - there's a backtrace from the coredump 21:04
it's going through Parrot_SixModelObject_destroy at some point.
FROGGS ahh, cool! [Coke]++ 21:06
[Coke] it was the most I could do. :) 21:07
FROGGS [Coke]: do you know how many tests it passes before blowing up?
sjohnson jnthn.ping(); 21:09
[Coke] it varies. 21:10
FROGGS :/
[Coke] 48, 49, 50
49, 50, 49 21:11
FROGGS hmmm, k, thanks
jnthn sjohnson: pong 21:12
[Coke] ugh, yapc is in weeks, not a monht. 21:12
sjohnson jnthn: which OS do you use? Win7?
[Coke] will probably end up not going just due to lack of planning. :|
jnthn sjohnson: Yes
sjohnson jnthn: did you know you can copy absolute paths from Windows Explorer?
sjohnson jnthn: if not, hold down shift on a file, right-click, and select "Copy as path" from the dropdown. 21:13
jnthn sjohnson: oh...didn't know that one :) 21:14
sjohnson jnthn: cool, figured you'd like to know. it's quite handy at times.
dalek p: 48e5dfa | (Brent Laabs)++ | src/vm/parrot/QAST/Operations.nqp:
add missing constants STAT_UID, STAT_GID, STAT_ISLNK
21:47
p: cb2aa86 | jonathan++ | src/vm/parrot/QAST/Operations.nqp:
Merge pull request #98 from labster/master

add missing constants STAT_UID, STAT_GID, STAT_ISLNK
masak Windows Tips and Tricks :)
labster I figured if no one was going to do it for me, I might as well do it myself. 21:48
jnthn
.oO( delegation through exploiting impatience )
21:49
felher good night, good people
FROGGS gnight felher
nqp: our $DEBUG := 1; class Foo { say($DEBUG) } 21:52
camelia nqp: OUTPUT«␤»
FROGGS nqp: our $DEBUG := 1; class Foo { say($OUR::DEBUG) } 21:53
camelia nqp: OUTPUT«␤»
FROGGS nqp: our $DEBUG := 1; class Foo { say($::DEBUG) }
camelia nqp: OUTPUT«Unable to parse expression in blockoid; couldn't find final '}' at line 2, near "say($::DEB"␤current instr.: 'panic' pc 14721 (src/stage2/gen/NQPHLL.pir:5232) (src/stage2/gen/NQPHLL.nqp:279)␤»
FROGGS nqp: my $DEBUG := 1; class Foo { say($DEBUG) }
camelia nqp: OUTPUT«1␤»
FROGGS :/ 21:54
jnthn FROGGS: No pseudo-packages in NQP 22:04
FROGGS: Oh, the first one looks odd though...hmm
FROGGS aborts his bisect search then :o)
because I though this was working two weeks ago 22:05
thought
FROGGS Unsupported serialization format version 5 (current version is 4) 22:20
neg
meh
jnthn: do I need an older parrot?
jnthn FROGGS: How'd you get that? 22:21
FROGGS checked out a two weeks old nqp
jnthn OK, must be some files lying around built by a newer one.
FROGGS ahh, okay 22:22
masak 'night, #perl6 22:27
grondilu star: use List::Utils 22:29
camelia star 2013.02: OUTPUT«===SORRY!===␤Could not find List::Utils in any of: /home/p6eval/star/lib/parrot/4.10.0/languages/perl6/site/lib, /home/p6eval/star/lib/parrot/4.10.0/languages/perl6/vendor/lib, /home/p6eval/star/lib/parrot/4.10.0/languages/perl6/lib, /home/p6eval/.perl6/2013.02.1/li…
FROGGS night masak
grondilu colomon: try this: say map {.(<131.04049 137.05891 147.06841>, 131.0405)}, &lower-bound, &upper-bound 22:30
it returns 1 1 when 0 1 was expected 22:31
grondilu or maybe I don't understand what these things do. 22:34
grondilu looks at the code
colomon grondilu: it's certainly possible there are bugs. on the other hand, that's also certainly a weird way to call it. :) 22:37
grondilu ok I hadn't understood the exact semantic. 22:40
I understand better now that I've read your test file 22:41
dalek ast: dc63e3d | (David Warring)++ | S05-capture/caps.t:
tweaked descriptions for % and %% separator tests
22:55
cognominal in nqp what are the respective purposes of $past.symbol(…) and QAST::Var.new() which are sometimes used for the same variable ? 23:06
jnthn .symbol is a place for the compiler to stash any info it wants to keep around about a symbol.
It's just a hash of hashes really 23:07
cognominal my hunch is that QAST::Var.new create the variable and, $past.symbol makes it visible to the generated perl code
jnthn QAST::Var actually compiles to something.
cognominal is my understanding correct?
jnthn Not really.
cognominal arf 23:08
jnthn The .symbol is really just used as a handy place for the compiler to keep notes about a symbol as it does its work
After the grammar/actions/world are done and the code is handed off to the backend compiler (QAST => Parrot/JVM), the contents of .symbol are not really used.
cognominal ok 23:09
jnthn Aside from if a QAST::Var usage (not declaration) is not marked explicitly with a scope, we look in .symbol 23:10
jnthn But that's mostly a "fallback" thing; Rakudo always knows the scope of things so it tends to be explicit. 23:10
labster raiph keeps posting my blog on reddit. In retrospect, the "How to start hacking on Rakudo Perl 6" was kind of a misleading title ... 23:13
jnthn sleep, 'night o/ 23:17
raiph well, your blog isn't part of planetsix, i suspect few p6 watchers have switched to planeteria, they are great blogs, and the title made sense to me...
o/ jnthn
labster oh it makes sense inside the community, but everyone outside was like "oh, I can do random hacking *with* P6? Cool." 23:18
Well, thanks. I certainly wasn't expecting to get a 1100 hits on a post for how to hack a compiler. But if we get one or two of them to do it... totally worth it. 23:20
FROGGS gnight jnthn
labster The goal is to try to recruit people smarter than myself :o)
raiph do you have solid evidence that lots of folk are interpreting it the unintended way? 23:22
labster No, just that the page is getting twice as many visits. Hey, I'm not complaining or anything.
raiph heh 23:23
i'm trying to choose very carefully what i post to /r/programming
labster chromatic seems unhappy. 23:26
flussence well that's a constant... 23:29
cognominal I suppose that if there has been forums discussing the first HLL compilers versus good macro assemblers we would have the same kind of discussions. People showing stuff that's fast in assembler and cannot even be done on HLL and dissing compilers. 23:41
I mean at the time of the very first compilers.
TimToady well, there were forums, they just weren't electronic :)
cognominal so they are hardly accessible from google, I suppose. 23:42
FROGGS so they dont exist
cognominal by today standards, if it is not accessible from google they don't exist indeed and have never existed :) 23:43
TimToady so, does Perl Monks still not exist? 23:45
last I knew, they didn't :)
lue
.oO(Look at the power and flexibility of my 8086 asm example! When's that going to happen in C?)
cognominal: that's a generous definition of existence. It's close to at most the bottom of fifth page of results (assuming a well-formed search query) 23:46
cognominal TimToady, well I think Perl need to be more web aware. perlmonks marks perl as hold hat. TimToady, Is it true that Tim O'Reilly proposed a chapter on the web in programming Perl and you answered you did not want to pigeon hole Perl ? 23:47
That's easy to criticize... with hindsight. 23:48
TimToady I'm certain that we had many reasons for most of the decisions we made, including whether it would fit 23:50
and whether there was already going to be other books for that 23:51
cognominal cannot sleep and goes back to study nqp internals 23:53
flussence the problem with putting anything about web development into print is that it's outdated before you finish typing...
cognominal at that time, it was not so big and did not move so fast. 23:54
lue
.oO(But if you write about a draft of a W3C standard, it will still be a draft years after you publish)
cognominal lue++ 23:54
flussence lue++ :D
cognominal speaking of W3C standards, I heard that chome was dropping mathml as part of his choice of forking the graphic layer 23:56
* chrome
flussence
.oO( we've still got a few years before perl6 has taken longer to finish than border-radius... )
lue Apparently, HTML 5.0 is supposed to be a recommendation in 2014 (which surprised me, because the last time I read anything was the fuzzy exclamation that it would take "decades" for HTML5 to be approved) 23:57
labster 1981 border-radius: www.folklore.org/StoryView.py?story...ywhere.txt 23:58
lue That's..That's... before the WWW existed, right?