»ö« 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 | ||
00:02
kbenson left
00:12
arlinius joined
|
|||
[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 | ||
00:39
Chillance left
|
|||
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 :) | |||
00:44
cooper- left,
cooper- joined,
cooper- is now known as cooper
|
|||
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 | ||
01:03
anuby joined
|
|||
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 objectcurrent 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 blockat /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 objectcurrent 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 | ||
01:16
FROGGS_ joined
01:18
FROGGS left
|
|||
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 foUnhandled 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 | |||
01:43
japhb_ left
|
|||
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 | |
01:45
berekuk left
|
|||
TimToady | here's a tilted version of "blueprint Camelia" if you want that: wall.org/~larry/cameliawbtilt.png | 01:50 | |
01:53
grondilu left
01:54
kurahaupo left
02:08
kurahaupo joined
02:17
xinming joined,
lustlife joined
02:19
satyavvd joined
02:20
census left
02:22
cognominal left
|
|||
colomon | List::Utils combination is not recursive, for what it's worth.... | 02:37 | |
02:38
_jaldhar joined
02:55
_jaldhar left
02:57
_jaldhar joined
03:07
xinming left
03:10
sjohnson left
03:11
Util_ left
03:13
xinming joined
03:14
sjohnson joined
03:17
Util joined
03:24
satyavvd left
|
|||
labster | r: List.WHAT | 03:31 | |
camelia | rakudo fe7049: OUTPUT«Cannot look up attributes in a type objectcurrent 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)» | ||
03:41
lue left
|
|||
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» | ||
03:42
preflex left,
preflex_ joined
|
|||
diakopter | r: print List.gist | 03:42 | |
camelia | rakudo fe7049: OUTPUT«(List)» | ||
diakopter | argh | ||
03:43
preflex_ is now known as preflex
03:45
lue joined
04:07
satyavvd joined
04:15
zby_home joined,
zby_home left
04:21
bonsaikitten left
04:22
bonsaikitten joined
04:25
Psyche^ joined
04:29
Patterner left,
Psyche^ is now known as Patterner
04:36
kaleem joined
04:47
kaare_ joined,
fgomez joined
05:22
SamuraiJack joined
06:39
birdwindupbird joined
06:44
birdwindupbird left
06:45
eternaleye joined
06:49
kaare_ left
06:56
eternaleye left
07:00
eternaleye joined
07:11
rindolf joined
|
|||
moritz | good morning | 07:13 | |
diakopter | hi | 07:14 | |
07:19
FROGGS_ is now known as FROGGS
|
|||
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) | ||
07:36
kurahaupo left
|
|||
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 | ||
08:10
Ulti joined,
cognominal joined
|
|||
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 | ||
08:24
dag_ joined
|
|||
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)? | ||
08:31
kivutar joined
|
|||
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 | ||
08:50
dag_ left
|
|||
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 | ||
08:53
dmol joined
|
|||
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. | ||
09:16
SamuraiJack left
|
|||
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 | |
09:21
berekuk joined
|
|||
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 | |
09:33
kivutar left
|
|||
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 | ||
09:41
berekuk left
|
|||
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 | ||
10:10
anuby left
|
|||
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 | ||
10:18
kivutar joined
|
|||
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» | ||
10:18
kaare_ joined
10:19
spider-mario joined
|
|||
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)» | ||
10:29
cognominal left,
cognominal joined
|
|||
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 = 2804985923338703271682399481743033703427656749129565173066; say [~] gather while $n { take chr $n % 256; $n div= 256 } | 10:55 | |
camelia | rakudo fe7049: OUTPUT«===SORRY!===Two terms in a rowat /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 [~] gParse failed» | |||
masak | hm? is there a control character in there I don't see? | ||
jnthn | r: say "7430".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! | |||
11:25
census joined
11:27
Chillance joined,
Ayiko joined
|
|||
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 | |
11:27
dmol left
|
|||
lizmat | back in 20 mins | 11:27 | |
11:42
MrMeek-afk joined,
MrMeek left
11:51
satyavvd left
12:00
kresike joined
|
|||
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 | |
12:16
skids left
12:17
gcole left
|
|||
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 | ||
12:25
dmol joined,
arlinius left
|
|||
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>' | |||
12:38
woosley1 joined
|
|||
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 | |
12:43
lizmat_ joined,
lizmat left
|
|||
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 | |||
12:50
betterwo1ld left
|
|||
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? | ||
12:52
ajr joined
|
|||
nwc10 | and Rubinus is C++ atop LLVM, so that might be the easiest as far as code integration goes with C code | 12:52 | |
12:52
ajr is now known as Guest30938
|
|||
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 | ||
12:53
Guest30938 is now known as ajr_
|
|||
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? | |||
13:02
bluescreen10 joined
13:04
bonsaikitten is now known as DrEeevil
13:05
lizmat_ left
13:07
PacoAir joined
13:13
woosley1 left
|
|||
[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» | ||
13:27
pmurias joined
|
|||
masak | [Coke]: are you submitting that LTA bug, or should I? | 13:46 | |
13:46
betterworld joined
13:47
dmol left
|
|||
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]++. |
|||
13:49
rjbs joined
|
|||
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)» | ||
14:08
xilo left
14:09
_jaldhar is now known as jaldhar
|
|||
FROGGS | pmurias: I don't plan to start anything, at least not as long as v5 needs that much love :o) | 14:09 | |
14:09
SamuraiJack joined,
berekuk joined
|
|||
FROGGS | but I'd be happy if I could help making rakudo faster, whatever this means | 14:10 | |
14:10
rindolf left
|
|||
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... | |||
14:13
kivutar left,
crab2313 joined
14:14
donaldh joined
|
|||
FROGGS | jnthn: patch for our-vars, not sure if you like it: gist.github.com/FROGGS/f8c145d91f3934df7810 | 14:17 | |
14:18
crab2313 left
14:20
berekuk left
14:22
arlinius joined
14:27
skids joined
14:30
kst` is now known as kst,
dmol joined,
xilo joined
|
|||
jnthn | - :state(1)); | 14:30 | |
+ :scope('state')); | |||
um, don't do that... | |||
FROGGS | okay, why? | 14:31 | |
14:31
jerome joined
|
|||
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. | ||
14:35
benabik joined
|
|||
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 | |||
14:45
berekuk joined
14:47
frdmn left,
frdmn joined
|
|||
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 | ||
14:53
ajr_ left,
ajr joined
|
|||
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 | |
14:53
ajr is now known as Guest99841
14:55
MrMeek joined
14:59
MrMeek-afk left
15:00
grondilu joined
|
|||
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 |
|||
15:00
thou joined
|
|||
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 ⏏$fooUnhandled 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 | |
15:17
kresike left
|
|||
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» | |||
15:22
kingbeast joined
|
|||
dalek | pan style="color: #395be5">perl6-examples: 1f26706 | (L. Grondin)++ | rosalind/monoisotopic-mass-table.txt: (rosalind) adding monoisotopic mass table |
15:22 | |
15:25
rindolf joined,
dmol left
|
|||
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» | ||
15:40
gtodd left
|
|||
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 | |
15:46
gtodd joined
15:50
kaleem left
15:55
dns joined,
dns is now known as Guest19097
|
|||
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 | ||
16:09
Guest19097 left
|
|||
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... | ||
16:16
lizmat joined
|
|||
diakopter | lizmat: wb! | 16:19 | |
lizmat at the Niederrhein.PM meeting | |||
<lurk mode="on"> | |||
16:31
sjohnson left,
frdmn left,
Guest99841 left
16:34
frdmn joined
16:40
sjohnson joined,
gtodd left
|
|||
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) | ||
16:42
gtodd joined
|
|||
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 | |
' | |||
16:47
berekuk left
|
|||
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 | ||
16:49
berekuk joined
|
|||
grondilu | (and I don't chose it) | 16:49 | |
PerlJam | oh, so it's a string | ||
16:49
Pleiades` left
16:50
jeffreykegler joined
|
|||
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 | |||
16:54
Pleiades` joined
|
|||
colomon | greatly doubt there is a more elegant way | 16:55 | |
16:55
gdey joined
|
|||
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 | ||
16:56
gtodd left
|
|||
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 :/ | |||
17:00
gtodd joined,
spider-mario left
|
|||
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 | ||
17:02
gtodd left
|
|||
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 | |
17:14
MrMeek-afk joined
17:16
MrMeek left
|
|||
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» | ||
17:24
spider-mario joined
|
|||
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? | ||
17:25
domidumont joined
|
|||
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. | ||
17:27
benabik left
|
|||
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 rowat /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 rowat /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 :gat /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/; .sayOther 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 | ||
17:41
fgomez left
|
|||
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 | ||
17:47
jaldhar left,
domidumont left
|
|||
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. | |||
17:55
stevan_ joined
|
|||
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 | |
17:55
stevan_ left,
stevan_ joined
|
|||
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 | |
17:58
stevan__ left
|
|||
masak | except that it's "(Int)" these days. | 17:58 | |
moritz | rakudo's looks correct. | ||
17:58
sqirrel joined
|
|||
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 | ||
18:03
stevan_ left
|
|||
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» | |||
18:03
benabik joined,
stevan_ joined
|
|||
TimToady | rakudobug | 18:03 | |
18:04
stevan_ left,
stevan_ joined
|
|||
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 | ||
18:17
SamuraiJack left
|
|||
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» | ||
18:44
jeffreykegler left
|
|||
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" => 11» | ||
..niecza v24-42-g69a3432: OUTPUT«"a" => 1"a" => 1"a" => 1Unhandled 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… | |||
18:46
ajr joined
|
|||
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(/\./, "") }, @LUnhandled exception: Check failed at /home/p6eval/niecza/boot/lib/CO… | ||
..rakudo fe7049: OUTPUT«===SORRY!===Variable '$x' is not declaredat /tmp/0qrgMNNIbP:1------> my % = @L Z=> map { +$x.substr(/\./, "")⏏ }, @L expecting any of: postfix» | |||
18:46
ajr is now known as Guest98573
|
|||
colomon | rn: my @L = <3.14 6.534>; @L.map({ $^x / $x.substr(/\./, "") }); | 18:46 | |
camelia | rakudo fe7049: OUTPUT«===SORRY!===Bogus statementat /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» | |||
18:49
jeffreykegler joined
|
|||
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» | |||
18:51
jeffreykegler left
|
|||
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 | ||
18:54
sqirrel left
|
|||
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 | ||
18:56
dukeleto joined
|
|||
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 | |
18:59
cognominal left,
cognominal joined
|
|||
moritz | s/no/now/ | 19:00 | |
and I didn't even notice the breakage, because it worked fine with ipv6 :-) | |||
19:01
lizmat left
19:02
lizmat joined
|
|||
dalek | ecza: cf7d64c | (Solomon Foster)++ | lib/CORE.setting: Fix bug introduced in last KeySet.perl fix. |
19:07 | |
19:07
lizmat left
|
|||
TimToady | here's a black-on-white pdf: wall.org/~larry/cameliabwtilt.pdf | 19:07 | |
diakopter | raindrop artifacts? | ||
19:08
lizmat joined
|
|||
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 | ||
19:13
spider-mario left
|
|||
diakopter | TimToady: this is why I stay away from open-source software. ;) | 19:13 | |
19:13
Timbus left
|
|||
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. | ||
19:14
Timbus joined
|
|||
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 | |
19:42
kaare_ left
|
|||
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 | |||
20:09
Timbus left
|
|||
dalek | ast: 9970b75 | (Tobias Leich)++ | S04-declarations/our.t: fudge passing todos |
20:10 | |
20:11
Timbus joined
|
|||
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 rowat /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 | ||
20:18
mtk left
|
|||
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 | ||
20:20
dagurval joined
20:21
Moukeddar joined
|
|||
sorear | so after creating perl and giving it -a, you still use awk? :) | 20:21 | |
20:21
mtk joined
20:22
mtk left,
mtk joined
|
|||
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 | ||
20:33
xinming left
|
|||
[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. | ||
20:35
xinming joined
|
|||
[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 | ||
20:39
lizmat left
|
|||
FROGGS | [Coke]: are you using nqp in NQP_REVISION or in HEAD? | 20:40 | |
20:40
rindolf left
|
|||
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 | |
20:53
gcole joined
|
|||
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 | |
21:03
skids left
|
|||
[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 | |
21:07
raiph joined
|
|||
[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 | |
21:12
xenoterracide left
|
|||
[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? | ||
21:13
xenoterracide joined
|
|||
sjohnson | jnthn: if not, hold down shift on a file, right-click, and select "Copy as path" from the dropdown. | 21:13 | |
21:13
gcole left
|
|||
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. | ||
21:24
benabik left
21:39
PacoAir left
|
|||
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 | |
21:58
berekuk left
22:00
berekuk joined
22:01
bluescreen10 left
22:03
xilo left,
lustlife left,
kurahaupo joined
|
|||
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 | |||
22:08
Moukeddar left
22:14
kurahaupo left
22:15
kurahaupo joined
|
|||
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 | ||
22:32
lizmat joined
|
|||
grondilu | or maybe I don't understand what these things do. | 22:34 | |
grondilu looks at the code | |||
22:36
xilo joined
|
|||
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 | ||
22:43
xenoterracide left
22:50
skids joined
22:51
xenoterracide joined
22:52
dmol joined,
dmol left
|
|||
dalek | ast: dc63e3d | (David Warring)++ | S05-capture/caps.t: tweaked descriptions for % and %% separator tests |
22:55 | |
23:03
thou left
|
|||
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. | ||
23:07
berekuk left
|
|||
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 | |
23:09
berekuk joined
|
|||
jnthn | Aside from if a QAST::Var usage (not declaration) is not marked explicitly with a scope, we look in .symbol | 23:10 | |
23:10
daniel-s left
|
|||
jnthn | But that's mostly a "fallback" thing; Rakudo always knows the scope of things so it tends to be explicit. | 23:10 | |
23:11
daniel-s joined
|
|||
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 | |||
23:24
xinming left
|
|||
labster | chromatic seems unhappy. | 23:26 | |
23:26
xinming joined
|
|||
flussence | well that's a constant... | 23:29 | |
23:31
Guest98573 left
|
|||
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) |
||
23:54
pmurias left
|
|||
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? |