»ö« | perl6.org/ | nopaste: paste.lisp.org/new/perl6 | evalbot usage: 'perl6: say 3;' or rakudo: / pugs: / std: , or /msg p6eval perl6: ... | irclog: irc.pugscode.org/ | UTF-8 is our friend!
Set by moderator on 20 October 2009.
00:09 LylePerl joined
LylePerl Hi All 00:13
Sorry for my long absense
Anyone here?
oZ] Sorta. :) 00:15
LylePerl Hi oZ] 00:16
The main reason I've no time at the moment is that I've started an MSc in Software Engineering 00:17
part time
Trying to get my part time hours in and keep my business going in the recession leave little time for anyting else :( 00:18
Although an assignment has come up that I've been able to mostly base around Perl :)
Part of the assignment is future trends, I'm hunting out reference material 00:19
I've got Perl 6 and Parrot essentials
But I'm assuming any academic journal entries, etc, will have been written by people here 00:20
I'm hoping people might be kind enough to point me to them 00:21
I know a lot of you check the IRC logs, so when you read this, if you can think of any reference link please post them 00:23
00:24 forb joined
LylePerl On a side note, I've been talking with several of the Profs at the University and I've managed to get them to agree to me doing a Presentation on Perl for Students 00:25
If all goes well hopefully that'll become a regular thing and I can drum up more interest :)
oZ] That would be awesome, certainly. 00:29
I'm a #perl6 newb, though, so I'm of little help other than 'awesome'. :) 00:30
00:30 nihiliad joined
LylePerl Hi oZ], thanks for the positive feedback 00:30
pmichaud LylePerl: I don't know if there are many "academic journal entries", but there are plenty of blog postings
LylePerl I'm still a p6 newbie myself
pmichaud try planetsix.perl.org for a relatively up-to-date list
LylePerl hi pmichaud 00:31
pmichaud also see perl6.org for pointers to other current resources
LylePerl I thought that might be the case
The challenge will be more convincing my examiner that those references are the most valid, than finding traditional academic 'peer reviewed' ones. 00:33
pmichaud speaking as a former college professor... yes, that will be a challenge. :)
00:34 orafu joined
LylePerl pmichaud, any tips? 00:34
pmichaud not off the top of my head, no.
clearly there's a lot of 'peer review' that takes place in the Perl 6 world, it's just not refereed or highly academic
LylePerl That what I was about to say :) 00:35
*pretty much*
pmichaud my suggestion would be to take Perl 6 features and relate it to published articles on those features
in many ways Perl 6 is extremely forward looking and aims to be the first real 21st century programming language 00:36
LylePerl That's an excellent idea, thank you
pmichaud certainly there would be a lot of legitimate research and discussion about Perl 6's form of parsing, since it's quite a bit different from traditional parsing techniques
LylePerl I'm glad I was able to base with assignment on Perl. It's good to get back to reading up on something I love as opposed to all the Java/UML reading I've had to do 00:40
00:40 slashdot joined 00:41 somniculosus joined 01:02 seanstickle left 01:05 PZt joined 01:40 Psyche^ joined 01:44 Chillance joined 01:47 pnate joined 01:48 astrojp left 01:55 Whiteknight joined
spinclad LylePerl: I think there should not be great difficulty in establish a 'web of trust' among Larry, the AES docs, #perl6 and #parrot, perl6.org, STD, rakudo and other implementations, parrot, their respective developers, and various related presentations. 02:03
*establishing
*developers and their blogs 02:06
such that you can say for any given artifact that it has this place in the web of activity. 02:11
PerlJam LylePerl: have you heard of ometa? tinlizzie.org/ometa/
02:11 wknight8111 joined 02:15 [synth] joined 02:37 gfx joined 02:45 TiMBuS joined
colomon pmichaud: was just thinking I could hack by the infix:<*> problem for Rat by creating Rat.new(Num, Num). However, turns out Num.Int is NYI in ng either? 02:49
I see in master, Num.Int looks to be in src/builtins/any-num.pir, but I don't understand the code well enough to translate it over to ng. 02:52
diakopter how would one get the memory address of an object in NQP? 03:17
(dear lazyirc,)
03:24 Whiteknight joined
Wolfman2000 ...don't think I'll be working on the website tonight. Got company now. 03:25
03:33 zloyrusskiy joined
pmichaud colomon: feel free to implement Num.Int :-) 03:33
but I don't think there should be a Rat.new(Num,Num) 03:34
(and the code that we have now doesn't send Nums to Rat anyway)
03:34 jaldhar joined
pmichaud diakopter: pir::get_addr__IP($obj) works 03:35
diakopter pmichaud: excellent; thanks
pmichaud (not sure if that's correct long-term... Parrot has been talking about changing it)
diakopter I was struggling with getting Q:PIR to grab a param 03:36
pmichaud params are just "find_lex"
diakopter ah
a little birdy sent me a patch for nqp-rx with a hook for emitting pastjs.. 03:37
after fighting the Makefile.in for an hour, it works \\o/
hook/stub 03:38
03:38 meppl joined
diakopter pmichaud: pir::get_addr__IP gave me -1229582980 03:39
intified, I guess
pmichaud yeah, intified. 03:41
diakopter that's fine; I won't use it as an array index; just a hash index.. 03:42
pmichaud I've done that in a few places... works out okay
diakopter pmichaud: to add an arbitrary property/attribute to a pmc...? 03:44
(sorry for the n00bity)
pmichaud setprop
for a property
attributes are addattribute, but we don't use those in PAST
diakopter finds docs.parrot.org/parrot/devel/html/s...c.ops.html 03:45
to check for Null, $pmc.isa(Null) ? 03:49
pmichaud pir::isnull__IP($pmc) 03:50
Null isn't a builtin type
diakopter oh
pmichaud (at least, I'm not sure it is)
I'm sure that Null doesn't have a protoobject :-)
03:57 TiMBuS joined
jeremiah1 perl6: my $x = "a"; if $x ~~ ("b", "c", "a") { say "yup" } else { say "nope" } 04:01
p6eval elf 29089: No viable candidate for call to multimethod infix__126_126($,$,$,$) at (eval 132) line 4␤ at ./elf_h line 5881␤
..pugs, rakudo 7347ec: nope␤
04:03 meppel joined
quietfanatic rakudo: class X {has $.x; submethod BUILD (:$.x) {} }; X.new 04:04
p6eval rakudo 7347ec: ( no output )
quietfanatic This gives me "cannot assign to readonly variable in submethod BUILD ..." 04:05
diakopter ng: say(&say)
p6eval ng fc78cc: No such attribute '$!do'␤current instr.: 'perl6;Any;' pc -1 ((unknown file):-1)␤
quietfanatic putting $.x is rw changes it, but I shouldn't need that.
jeremiah1 perl6: my $x = "a"; if $x ~~ any("b", "c", "a") { say "yup" } else { say "nope" } 04:07
p6eval pugs, rakudo 7347ec: yup␤
..elf 29089: Undefined subroutine &GLOBAL::any called at (eval 134) line 4.␤ at ./elf_h line 5881␤
quietfanatic 'nother one: 04:09
rakudo: module M {constant $DEBUG = 1}; say $M::DEBUG
p6eval rakudo 7347ec: Use of uninitialized value␤␤ 04:10
quietfanatic This ought to be 1
pmichaud rakudo may still have constants as lexically scopped 04:11
*scoped
the spec changed on that relatively recently
quietfanatic But check this:
actually never mind
don't check this :|
pmichaud: okay, it's workaroundable for now
04:18 _jaldhar joined 04:27 _jaldhar joined
diakopter nqp bug 04:29
hrm 04:30
04:32 oZ] joined, am0c joined
pugs_svn r29090 | lwall++ | [STD] unbreak checkyada 04:34
diakopter odd, I can't reproduce it in the small
diakopter frustrated 04:42
dalek p-rx: ad79935 | pmichaud++ | src/PAST/Compiler-Regex.pir:
Adjust PAST::Regex literal matching to handle runtime literals, PAST::Val constants.
04:43
p-rx: 26ad71a | pmichaud++ | src/HLL/Actions.pm:
Eliminate isaPAST in favor of Protoobject.ACCEPTS.
diakopter nqp: Foo::c('lala'); module Foo; my $a := ''; sub b () { say($a) }; sub c ($z) { $a := $z; b() }; Foo::c('hihi') 04:46
p6eval nqp: lala␤hihi␤
diakopter nqp: module Foo; my $a := ''; sub b () { say($a) }; sub c ($z) { $a := $z; b() }; Foo::c('hihi'); # pmichaud, this gives nullpmcaccess in print, when Foo is compiled into nqp.pbc as a dependency of Compiler.pir... but if I change my $a to our $a, all is fine & dandy... is this by design? 04:50
p6eval nqp: hihi␤
diakopter but it works fine in nqp evalbot 04:51
heh
"it works fine" -> it works with 'my $a' as well as 'our $a' 04:52
'It looks like you're trying to write a compiler. Would you like me to help you with that?' -- Clippy, in Visual Studio 2010 04:53
pmichaud diakopter: looks like you might want/need "our" on those sub definitions 04:57
looking 04:58
diakopter adding 'our' doesn't change anything 05:00
pmichaud: in case you haven't seen this... www.cs.cornell.edu/Projects/polyglot/ppg.html also TimToady 05:01
pmichaud I would expect it to work in both cases, yes. 05:02
diakopter hm
talk about rigid thinking: propella.blogspot.com/2009/11/woode...adder.html 05:09
05:10 TiMBuS joined 05:32 oZ] joined, oZ] left 05:36 frew_ joined 05:55 pointme joined 05:56 mubot joined, zaslon joined
carlin Maybe I should update my rakudo so I don't have the restart the bots every day ... 05:57
japhb Now that cotto++ has given Parrot read pipes the ability to remember the child process exit code, how would this be exposed for qx()? S28 says Perl 5 $? gets folded into Perl 6 $!, but I'm not sure of the details there. What is the "proper" way to set $! in NQP-rx?
dalek p-rx: b99043c | pmichaud++ | src/Regex/P6Regex/Actions.pm:
Only auto-concatenate PAST::Regex literal nodes with non-PAST children.
06:04
p-rx: 9c899a5 | pmichaud++ | src/Regex/P6Regex/ (2 files):
Switch P6Regex quoting to use HLL quoting.
p-rx: 45b57ff | pmichaud++ | src/Regex/P6Regex/ (2 files):
Allow some double-quoted arguments in subrules.
p-rx: ba0fcdc | pmichaud++ | src/stage0/ (4 files):
Update bootstrap.
06:09 Helios- left 06:10 Helios- joined, pointme joined, zaslon joined 06:11 mubot joined 06:23 envi^home joined 06:39 wisemanby joined
diakopter pointme: mubot 06:52
pointme carlins's mubot is at github.com/carlins/mubot/
diakopter pointme: dalek
pointme Sorry, I don't know anything about that project
diakopter o
well, it's at github.com/Infinoid/dalek-plugins
nqp: my $i := 4; say("hi"~(++$i)~"hi") 06:55
p6eval nqp: error:imcc:syntax error, unexpected '\\n'␤ in file 'EVAL_1' line 14␤Null PMC access in concatenate_str()␤current instr.: '_block11' pc 0 (EVAL_1:6)␤
diakopter nqp: my $i := 4; say("hi"~++$i~"hi") 06:58
p6eval nqp: error:imcc:syntax error, unexpected '\\n'␤ in file 'EVAL_1' line 14␤Null PMC access in concatenate_str()␤current instr.: '_block11' pc 0 (EVAL_1:6)␤
diakopter nqp: my $i:=0; if ++$i { say($i) }; 07:01
p6eval nqp: error:imcc:syntax error, unexpected COMMA (',')␤ in file 'EVAL_1' line 12␤
07:02 xenoterracide joined
spinclad nqp: my $i; ++$i 07:03
p6eval nqp: increment() not implemented in class 'Undef'␤current instr.: '_block11' pc 0 (EVAL_1:6)␤
spinclad nqp: my $i := 0; ++$i
p6eval nqp: ( no output )
spinclad nqp: my $i := 0; say(++$i) 07:04
p6eval nqp: ␤
spinclad nqp: my $i := 0; ++$i; say($i)
p6eval nqp: 1␤
spinclad nqp: my $i := 0; 'Hi'~++$i; say($i)
p6eval nqp: error:imcc:syntax error, unexpected '\\n'␤ in file 'EVAL_1' line 14␤1␤
spinclad nqp: my $i := 0; "Hi {++$i}"; say($i) 07:05
p6eval nqp: error:imcc:syntax error, unexpected '\\n'␤ in file 'EVAL_1' line 14␤1␤
spinclad nqp: my $i := 0; say("{++$i}"); say($i)
p6eval nqp: error:imcc:syntax error, unexpected '\\n'␤ in file 'EVAL_1' line 12␤␤1␤
diakopter nqp: my $i := 0; 'Hi'~{++$i}(); say($i) 07:06
p6eval nqp: 1␤
diakopter heh
japhb's trick
japhb: hilite 07:07
nqp: my $i:=0; if {++$i}() { say($i) };
p6eval nqp: Null PMC access in get_bool()␤current instr.: '_block11' pc 0 (EVAL_1:5)␤
diakopter o
spinclad nqp: my $i := 0; say('Hi '~{++$i}()); say($i) 07:08
p6eval nqp: Hi ␤1␤
diakopter o_o o_O O_O O_o o_o
spinclad nqp: my $i := 0; say('Hi '~{++$i; $i}()); say($i) 07:09
p6eval nqp: Hi 1␤1␤
diakopter spinclad: do you know much pir/nqp?
(sorry if that's a dumb question)
spinclad nqp: my $i := 0; say('Hi '~{$i++}()); say($i)
p6eval nqp: Hi 0␤1␤
spinclad i have some reading knowledge from lurking 07:10
diakopter I have a pmc; I need to know whether it's an Undef
whatever that is
nqp's .isa fails on it 07:11
spinclad i start thinking about pir ops like pir::isnull__SIG 07:12
diakopter it's not null
it stringifies to ""
07:13 pnate joined, yahooooo joined
spinclad i start browsing .pir files for a likely idiom 07:13
diakopter cross-posts to #parrot
spinclad i believe i've seen it go by
excellent idea
i believe i'm out of handy clues 07:14
diakopter :D me2
spinclad (i wasn't meaning i thought isnull was _right_, just a first concrete association) 07:16
nqp: my $i; say(pir::defined($i)) 07:17
p6eval nqp: The opcode 'defined_p' (defined<1>) was not found. Check the type and number of the arguments␤current instr.: 'parrot;PCT;HLLCompiler;evalpmc' pc 917 (src/PCT/HLLCompiler.pir:514)␤
spinclad (making stuff up isn't converging on an answer; better to actually find out) 07:22
07:51 pnate2 joined
spinclad pointme: hugme 08:15
pointme Sorry, I don't know anything about that project
spinclad pointme: pointme
pointme Sorry, I don't know anything about that project
spinclad pointme: proto 08:16
pointme masak's proto is at github.com/masak/proto/
08:27 xinming joined 08:31 gbacon joined
spinclad pointme: help 08:39
pointme Sorry, I don't know anything about that project
spinclad pointme, hugme is at github.com/moritz/hugme/ 08:41
pointme, help
pointme: hugme is at github.com/moritz/hugme/
pointme Sorry, I don't know anything about that project
08:41 yahooooo0 joined
carlin pointme gets its information from proto's projects list 08:42
spinclad ah, thanks, wondered... iwbni one of the bots knew the bots as well, though as we don't need more than one of each installed anywhere, they might not fit proto's mandate 08:45
but as a project, if the author welcomes community improvements, they might 08:47
carlin So you mean "pointme: hugme" should produce a description of hugmme's functionality? 08:48
spinclad at least a pointer to the source, like other projects 08:49
description sounds like a worthy feature, too 08:50
//github.com/<author>/<project>/ seems to have a line of description, don't know yet how hard to extract. 08:56
a worthy feature if easy, or it interests you 08:57
08:58 iblechbot joined
spinclad (i note now that hugme is in perl 5, so clearly lies outside of proto's scope) 09:06
09:13 desertm4x joined 09:18 Su-Shee joined
Su-Shee good morning. 09:20
09:23 pointme joined
carlin pointme: hugme 09:24
pointme Hugme hugs people! And gives commit access to various repos. It's source is at github.com/moritz/hugme/
BinGOs is this thing web scraping ? 09:26
carlin hardcoded the descriptions, based loosely on frettled++'s blog post
BinGOs There is a Github API which would be so much better than fucking with scraping
carlin maybe one day I'll allow to learn
*allow it to
Doesn't do anything with github since a lot of the bots aren't hosted there 09:27
pointme: lambdabot
pointme lambdabot is a karma bot. More information can be found at www.haskell.org/haskellwiki/Lambdabot
09:29 chromatic joined 09:32 desertm4x_ joined 09:34 agentzh joined 09:54 rfordinal3643 joined 10:01 NorwayGeek joined 10:02 NorwayGeek joined
spinclad carlin++ # noo feechers 10:03
moritz_ good morning 10:07
10:17 am0c joined
moritz_ ng: say (0.4).perl 10:29
p6eval ng fc78cc: No such attribute '$!do'␤current instr.: 'perl6;Any;' pc -1 ((unknown file):-1)␤
moritz_ ng: say (0.4).WHAT
p6eval ng fc78cc: No such attribute '$!do'␤current instr.: 'perl6;Any;' pc -1 ((unknown file):-1)␤
moritz_ ng: say 1
p6eval ng fc78cc: No such attribute '$!do'␤current instr.: 'perl6;Any;' pc -1 ((unknown file):-1)␤
10:46 yahooooo joined 10:47 barney joined
moritz_ ng: say 1 10:59
p6eval ng fc78cc: No such attribute '$!do'␤current instr.: 'perl6;Any;' pc -1 ((unknown file):-1)␤
11:00 p6eval joined
moritz_ ng: say 1 11:01
p6eval ng fc78cc: No such attribute '$!do'␤current instr.: 'perl6;Any;' pc -1 ((unknown file):-1)␤
moritz_ doesn't understand it
oh 11:03
the error occurs when I run the installed ng
pugs_svn r29091 | moritz++ | [evalbot] the installed ng is broken, use the local executable for now 11:04
11:06 p6eval joined
moritz_ ng: say 1 11:06
p6eval ng fc78cc: "load_bytecode" couldn't find file 'Safe.pir'␤current instr.: '!use' pc 175149 (src/gen/core.pir:15824)␤
11:07 p6eval joined
moritz_ ng: say 1 11:07
pugs_svn r29092 | moritz++ | [evalbot] ng can't load Safe.pm yet, so omit that for now
p6eval ng fc78cc: 1␤
moritz_ \\o/
11:12 kidd joined
colomon ng: say (0.4).WHAT 11:16
11:18 p6eval joined
moritz_ ng: say (0.4).WHAT 11:18
sorry for killing p6eval :-)
p6eval ng fc78cc: Rat()␤
moritz_ ng: say (0.4).perl
p6eval ng fc78cc: 2/5␤
11:19 kidd joined
colomon \\o/ 11:23
11:29 fridim_ joined
moritz_ ng: say 1.0e0.WHAT 11:34
p6eval ng fc78cc: Int()␤
moritz_
.oO( ... )
11:35
spinclad ng: say 1.0/1.0.WHAT
p6eval ng fc78cc: No applicable candidates found to dispatch to for 'new'␤current instr.: '&infix:</>' pc 133227 (src/gen/perl6-actions.pir:11111)␤
spinclad ng: say (1.0/1.0).WHAT
p6eval ng fc78cc: No applicable candidates found to dispatch to for 'new'␤current instr.: '&infix:</>' pc 133227 (src/gen/perl6-actions.pir:11111)␤
colomon parse problem?
spinclad ng: say (1.0 / 1.0).WHAT 11:36
p6eval ng fc78cc: No applicable candidates found to dispatch to for 'new'␤current instr.: '&infix:</>' pc 133227 (src/gen/perl6-actions.pir:11111)␤
moritz_ nope
1.0.WHAT is tighter than infix:</>
colomon ng: say (1.0e0).WHAT
p6eval ng fc78cc: Int()␤
moritz_ Rat literals my only contain Ints
colomon well bother
moritz_ ng: use Test; plan 1; dies_ok { die }, '1' 11:37
p6eval ng fc78cc: "load_bytecode" couldn't find file 'Test.pir'␤current instr.: '!use' pc 175149 (src/gen/core.pir:15824)␤
colomon though the e0 forced a Num
moritz_ yes, that's a parse problem
colomon test.pir is created by running make test
moritz_ ng: use Test; plan 1; dies_ok { die }, '1'
p6eval ng fc78cc: 1..1␤# Looks like you planned 1 tests, but ran 0␤
spinclad ng: say (1.0e1 / 1.0e1).WHAT 11:38
p6eval ng fc78cc: Rat()␤
moritz_ ok, it seems that dies_ok bails out in ng
ng: die('foo')
p6eval ng fc78cc: foo␤current instr.: '&die' pc 7006 (src/builtins/control.pir:18)␤
moritz_ ng: try { die('foo') }
p6eval ng fc78cc: ( no output )
moritz_ ng: try { die('foo') }; say $!
p6eval ng fc78cc: foo␤
moritz_ changed the cronjob to build Test.pir 11:39
spinclad ng: say (1.0e-1 / 1.0e-1).WHAT
p6eval ng fc78cc: Num()␤
spinclad there it is 11:40
moritz_ I'm pretty sure that fixing dies_ok and eval_dies_ok would bring us back a few more spectests 11:41
spinclad (any e<exp> _should_ force a Num) 11:42
colomon for sure there's a test it rat.t it would help
moritz_ it's a LHF :-)
colomon (dies_ok, I mean)
any idea how hard evak itsewlf would be to implrment? 11:43
eval
sigh 11:44
moritz_ it's commented out in Test.pm because of the Null PMC access regex check
pushed. 11:45
this brings us back at least t/spec/S06-signature/optional.t
colomon what is eval_exception? 11:46
moritz_ a sub defined in Test.pm 11:47
colomon i see
does that work now?
moritz_ I think KyleHa++ took care of that part of Test.pm
colomon: it works enough to get dies_ok and eval_dies_ok working again ;-)
colomon ng: say eval("!") 11:48
p6eval ng aee0d7: sh: ./perl6: No such file or directory␤
moritz_ ng: use Test; plan 2; dies_ok { die('foo') }, 'foo'; dies_ok { 1 }, 'lives';
p6eval ng aee0d7: 1..2␤ok 1 - foo␤not ok 2 - lives␤# Looks like you failed 1 tests of 2␤
moritz_ ng: say 'abcdef'.index('bc') 11:53
p6eval ng aee0d7: Method 'index' not found for invocant of class 'Perl6Str'␤current instr.: '_block14' pc 29 (EVAL_1:0)␤
colomon ng: say eval("1")
p6eval ng aee0d7: Could not find non-existent sub &eval␤current instr.: '_block14' pc 29 (EVAL_1:0)␤
colomon that's what I'm talking about
moritz_ oh
colomon ng: say eval({ 1 })
p6eval ng aee0d7: Could not find non-existent sub &eval␤current instr.: '_block14' pc 29 (EVAL_1:0)␤
moritz_ so eval_dies_ok is not actually working 11:54
ng: use Test; plan 1; eval_dies_ok '1', 'foo';
p6eval ng aee0d7: 1..1␤ok 1 - foo␤
colomon that why I was surprised
moritz_ then I should partially revert my previous commit
colomon++ 11:55
colomon that's why I was asking how hard it would be to implement eval 11:56
(it's blocking four or five tests in rat.t) 11:57
moritz_ looks at master 11:58
colomon seems like it should either be very easy or nigh impossible :)
moritz_ the .sub 'eval' in src/builtins/control.pir (master branch) looks... sophisticated 12:00
moritz_ won't touch that, and leave it to pmichaud++, jnthn++ or any other daring soul 12:01
colomon maybe you could take a crack at Num.Int instead? :) 12:02
moritz_ ok, how do I build a Num in ng? (for testing)
ng: say 1e1.WHAT 12:03
p6eval ng aee0d7: Int()␤
moritz_ ng: say (1e1/2e1).WHAT
p6eval ng aee0d7: Rat()␤
moritz_ ng: say (1e1/2e1).Num
p6eval ng aee0d7: 0.5␤
moritz_ ng: say (1e1/2e1).Num.WHAT
p6eval ng aee0d7: Num()␤
moritz_ ng: say (1/2).Num.WHAT
p6eval ng aee0d7: Num()␤
moritz_ ng: say (1/2).Num.Int 12:04
p6eval ng aee0d7: Method 'Int' not found for invocant of class 'Num'␤current instr.: '_block14' pc 29 (EVAL_1:0)␤
colomon ng: say 1.Num.WHAT
p6eval ng aee0d7: Num()␤
12:05 kidd joined
spinclad ng: say 1e-1.WHAT 12:06
p6eval ng aee0d7: Num()␤
spinclad ng: say 1e-1
p6eval ng aee0d7: 0.1␤
spinclad ng: say 1e-1.perl
p6eval ng aee0d7: Method 'perl' not found for invocant of class 'Float'␤current instr.: '_block14' pc 29 (EVAL_1:0)␤
spinclad ng: say 1e-1.PARROT
p6eval ng aee0d7: Float␤
spinclad ng: say 1e1.WHAT 12:07
p6eval ng aee0d7: Int()␤
spinclad ng: say 1e1
p6eval ng aee0d7: 10␤
spinclad ng: say 1e1.perl
p6eval ng aee0d7: 10␤
spinclad ng: say 1e1.PARROT
p6eval ng aee0d7: Integer␤
colomon writing Num.perl is tricky, imo 12:08
rakudo has always gotten it wrong
moritz_ just take parrot's stringification, and attach an e0 if it doesn't contain an 'e' yet 12:09
colomon :) 12:10
spinclad do the .PARROT answers show lack of HLL boxing? parrot-level PMCs instead of P6 ones?
moritz_ not sure 12:11
moritz_ finds that he can't write inline PIR anymore, due to lack of PIR knowledge 12:12
12:14 Su-Shee left
colomon moritz_: with current ng, can you determine if there is no e? 12:14
moritz_ colomon: you can use pir::index or so 12:15
ng: say pir::index('foo', 'o')
p6eval ng 004361: 1␤
moritz_ ng: say pir::index('foo', 'f')
p6eval ng 004361: 0␤
moritz_ ng: say pir::index('foo', 'b')
p6eval ng 004361: -1␤
colomon moritz_++
moritz_
.oO( as surprising as it might be, regexes are not the only way to analyse strings :-)
12:16
spinclad ng: say 'foo'.split('').grep('o') 12:17
p6eval ng 004361: Method 'split' not found for invocant of class 'Perl6Str'␤current instr.: '_block14' pc 29 (EVAL_1:0)␤ 12:18
moritz_ colomon: Num.Int pushed
spinclad ng: say 'foo'.comb('').grep('o')
p6eval ng 004361: Method 'comb' not found for invocant of class 'Perl6Str'␤current instr.: '_block14' pc 29 (EVAL_1:0)␤
colomon \\o/
12:18 kidd joined
moritz_ ng: say 3.5.Num.Int 12:34
p6eval ng 004361: Method 'Int' not found for invocant of class 'Num'␤current instr.: '_block14' pc 29 (EVAL_1:0)␤
moritz_ ah, should rebuild in a minute
12:38 kidd joined 12:39 xinming_ joined
szabgab good sunday 12:40
has anyone attempted to parse Matlab code using Perl 5 or Perl 5++ ? 12:41
12:43 freeplatypus joined 12:59 Whiteknight joined
moritz_ szabgab: I don't know of any, but you could try to look at parrot's Languages wiki page, maybe sombody started a compiler for it... 13:03
if so, the PCT regexes should also work in Rakudo
or nqp-rx
13:06 kidd joined 13:09 payload joined
szabgab yeah I think I should have asked this on #parrot 13:10
13:12 kidd joined 13:14 kidd joined, pmurias joined
pmichaud good morning, #perl6 13:17
colomon good morning!
moritz_ pmichaud: eval() and thus eval_dies_ok would bring us back at least three spectest files 13:18
in ng, obviously 13:19
pmichaud ok
moritz_ ng: say 1.5.perl
p6eval ng 268a8a: 3/2␤
moritz_ this time really ng ;-)
pmichaud eval's tricky, because of the need to preserve the lexical scoping
moritz_ how much of that trickyness is different from master?
pmichaud a bit, because the internal handling of lexicals has changed 13:20
also the way we keep track of blocks has changed
also I should probably write eval in a way that will help to fix the repl
13:20 pmurias_ joined
moritz_ ok, not so trivial then 13:21
13:21 zloyrusskiy joined, kidd joined
colomon You can easily reverse single commits in git, right? 13:24
13:27 yewenbin joined
colomon Errr... "neg() not implemented in class 'Rat'" :O 13:27
?
ng: say -1/2
p6eval ng 268a8a: neg() not implemented in class 'Rat'␤current instr.: '_block14' pc 29 (EVAL_1:0)␤
pmichaud do we have &prefix:<-> defined yet? 13:28
colomon yes
at least for Rat
pmichaud what does prefix:sym<-> say in src/Perl/Grammar.pg ?
colomon though I don't know for sure it works -- -$a.numerator might be a Num. 13:29
src/Perl?
pmichaud src/Perl6, sorry
colomon { <sym> <![>]> <O('%symbolic_unary, :pirop<neg>')> } 13:30
pmichaud ah
have to get rid of that :pirop
it's converting all unary minus to a negation opcode
(and we want it to be a subroutine call to &prefix:<-> 13:31
colomon Just delete that second parameter?
pmichaud yes.
colomon trying
weird 13:32
the test-by-test list says "t/00-parrot/02-op-math ok" but the test summary says it failed with non-zero exit status 1. 13:33
pmichaud try running it directly 13:34
colomon looks like prefix:<-> no longer works for Num.
pmichaud ./perl6 t/00-parrot/02-op-math.t
prefix:<-> probably isn't implemented, then
need to add that :-)
colomon one sec 13:35
pmichaud src/core/operators.pm
colomon It works for Rat, just not implemented for Num...
pmichaud right
need to add it for Any
colomon looks like it works for Int as well.
pmichaud need to add it for Any :-)
colomon afk for a minute...
back 13:41
pir::neg__NNN($a) ? 13:42
pmichaud it's unary, so just __NN
(returns a N, takes a N argument) 13:43
colomon compiling
did not splode!
pmichaud fail FAIL.
colomon 02-op-math.t still fails... 13:44
pmichaud same error?
colomon no 13:45
Could not find non-existent sub &postfix:<->
pmichaud oh
colomon looks like it's happening for say abs -14
pmichaud that looks like the prefix/postfix bug I had earlier
okay, I'll fix that.
colomon groovy.
pmichaud the expression parser seems to get confused by repeated prefix ops 13:46
colomon oooo, and yes, -Int is not an Int. Stupid operator bug. 13:47
yet easily worked around once you know what is going on.
pmichaud how are we working around that one...?
colomon ( blah ).Int 13:49
pmichaud in the test?
oh, in the code
hmmmm
colomon In the core.
That's why I asked about reversing git patches.
pmichaud are the workarounds being marked as cheats?
moritz_ git revert $sha1
colomon If I do it all as one git patch, it's easy to reverse.
moritz_ and then commit it
colomon I marked the entire batch at the beginning. 13:50
moritz_ so yes, easy
colomon but I didn't move them out of the core.
BTW, just through a ton of rat.t with that workaround. :) 13:51
13:59 ejs joined
colomon Have 65 passing rat.t tests here. 14:04
14:08 astrojp joined
jnthn 'lo 14:10
14:12 barney joined
colomon hello! 14:17
14:17 masak joined
masak oh hai, #perl6. 14:17
jnthn hi masak
masak yesterday I fell asleep before 10 o'clock in the evening. 14:18
I slept really well.
woke up at 9 this morning.
jnthn Yesterday I attempted to get an early night. In theory, I had time for 8-9 hours sleep before it was time to get up for church. 14:19
In the end I lay awake most of it and got like, 3 hours. :-/
So I'm pretty much useless for anything today.
masak :/
I was useless yesterday.
so I know how it feels. :) 14:20
jnthn hands masak his Rakudo commit bit for the day :-) 14:25
masak oh, I wish. :)
I'm definitely not up-to-speed on ng.
14:26 ejs joined
masak though I wouldn't mind an update. :) which stage are you in? making the setting compile? 14:32
colomon masak: it's just like master except most stuff doesn't work. :)
14:32 Su-Shee joined 14:33 payload joined
masak colomon: I was going to say, "so in other words, just like master", but I don't want to stand by that statement. :P 14:33
masak laughs heartily at the MegaHAL bot on Twitter 14:34
"My mom does not support continuations, and according to Guido van Rossum, never will."
arnsholt *giggle* 14:35
14:43 araujo joined
moritz_ lol 14:46
14:55 kidd joined 14:59 qp_pq joined
qp_pq has Perl6 stolen a lot from Erlang ? 14:59
cause I'm learning Erlang
jnthn masak: Yes, gradually trying to bring back bits of the setting, and noticing the spots we fail because other things that they depend on are still missing. 15:00
masak jnthn: oki. I've seen others jump in and contribute; maybe I will, too. 15:01
jnthn \\o/
colomon masak: Think of it as a bug-rich target environment.... 15:02
masak :)
colomon: you know just the right words to get me excited! :)
colomon :) 15:03
15:04 am0c joined
qp_pq I remember Perl6 had ++ on lists 15:04
like @a ++ @b = reunion
does it have --
@a -- @b = @a\\@b
?
lambdabot Maybe you meant: activity activity-full admin all-dicts arr ask . ? @ v 15:05
masak qp_pq: no, you join arrays by putting a comma between and having them flatten.
arnsholt qp_pq: Maybe not Erlang specifically, but Perl (both 5 and 6) is quite influenced by functional programming in general IMO
masak rakudo: my @a = 1, 2, 3; my @b = 4, 5; say (@a, @b).perl
p6eval rakudo 7347ec: [1, 2, 3, 4, 5]␤
15:05 ejs joined
qp_pq masak: and different ? 15:06
masak arnsholt: nod. map and grep are central to Perl, and they're from the fun world.
qp_pq: and different what?
oh, you want set minus!
qp_pq difference
jnthn masak: Much better than those things we stole from the boring world, eh? :-)
arnsholt masak: Indeed. And hyperoperators. Can you say higher order programming? =) 15:07
masak rakudo: my @a = 1..5; my @b = 2, 4; say (grep { not any(@b) == $_ }, @a).perl
p6eval rakudo 7347ec: [1, 3, 5]␤
masak jnthn: are you still at the dentist's? :)
qp_pq masak: yes but don't we have a - ? 15:09
masak qp_pq: yes, but it numifies its arguments.
qp_pq: Perl (and Perl 6) is operator-based. an operator generally does one thing, and does it well. 15:10
arnsholt There was someone in here talking about a Set class a while ago. Did anything more come from that?
masak arnsholt: well, the Spec has a set class.
arnsholt Oh, right. My spec coverage is sketchy at best 15:11
jnthn masak: No, just felt like filling the channel with bad puns. :-)
masak groans
jnthn I thought somebody was working on Set.
But I totally forget who. 15:12
masak I once made a TPF proposal to work on Set and similar classes.
colomon I meant to try to get some work in on Set in the last couple of weeks, but have failed completely so far.
masak colomon: in what way? 15:13
not getting started?
running into actual problems?
colomon no, not actually doing anything.
:)
masak oh, that reminds me. 15:14
I have a presentation to procrastinate. :)
colomon Not getting started. Pretty much not having anything more than a notion that it might be done and I might be able to do it.
masak I think Set is under-spec'd. 15:15
arnsholt I agree
masak I'd like to find a number of good use cases that could drive the spec forward for Set and similar classes.
15:16 Psyche^ joined
arnsholt (Assuming S32 is the right one to look at) 15:16
I looked at Set::Scalar on CPAN a while back. It's got some interesting features
Might not be a perfect fit for a standard library class, but might be a place for inspiration 15:17
masak rakudo: my &*x 15:19
p6eval rakudo 7347ec: Method 'scope' not found for invocant of class 'PAST;Op'␤in Main (file src/gen_setting.pm, line 324)␤
masak submits rakudobug
arnsholt: I think some good ideas might be taken from the Java Collections Tutorial.
jnthn ng: my &*x
p6eval ng 268a8a: ( no output )
jnthn ng: sub foo() { my &*x = { say 42 }; bar() }; sub bar() { &*x() }; foo; 15:21
p6eval ng 268a8a: 42␤
jnthn \\o/
That'll be one we can close when ng lands then. :-)
masak wow. :)
arnsholt masak: Excellent idea
masak jnthn: but you can't do the call inside bar as 'x()', can you?
arnsholt And perhaps even the java.util.Set javadoc 15:22
jnthn masak: Hmm. I'd sorta expect not.
masak: You normally ahve to explicitly say you want to go hunting down the dynamic scope.
masak jnthn: yeah, me too. just asking.
I can see how it would be a mistake to allow that.
jnthn Yeah, I think I agree. :-) 15:24
jnthn realizes that today is not the day to read scg.unibe.ch/archive/papers/Duca05y...sTrait.pdf 15:25
15:29 am0c joined 15:30 IllvilJa joined
masak ng: module M {constant $DEBUG = 1}; say $M::DEBUG 15:35
p6eval ng 268a8a: Confused at line 1, near "say $M::DE"␤current instr.: 'perl6;HLL;Grammar;panic' pc 448 (src/stage0/HLL-s0.pir:300)␤
masak rakudo: module M {constant $DEBUG = 1}; say $M::DEBUG
p6eval rakudo 7347ec: Use of uninitialized value␤␤
masak anyone know if the above one is in RT?
jnthn ng: $M::DEBUG
p6eval ng 268a8a: Confused at line 1, near "$M::DEBUG"␤current instr.: 'perl6;HLL;Grammar;panic' pc 448 (src/stage0/HLL-s0.pir:300)␤
pmichaud I'm not sure ng is far enough along that we should be filing rt tickets for it yet. 15:36
jnthn masak: Certainly, that Rakudo's constants impl is lagging the spec has come up plenty of times.
pmichaud: I think masak++ meant the issue in Rakudo master.
pmichaud ah, in rakudo master
yeah, there we know that we lag the spec
jnthn (Constants are still lexically scoped.)
masak yes, but does RT know it?
jnthn masak: I don't know - I just know it's come up multiple times before. 15:37
masak so, probably.
jnthn Likely.
masak almost certainly.
jnthn Môže byť. :-)
masak likes reading Slovak and understanding it :) 15:38
jnthn I manage that trick once in a while too. :-)
masak jnthn: also. the c in 'nemame cas' should have a hat, right? 15:39
jnthn masak: Right.
masak jnthn: it kinda bothered me in the back of my mind after you'd mentioned it, until I figured out that it should.
jnthn masak: Yes, I tend to miss out those things when typing most of the time... 15:40
masak understandable.
jnthn masak: It's not even just me being lazy - a lot of natives drop them on irc and in emails too. :-) 15:41
masak nod. my IRC nick is an example of such an ASCIIfication. :)
though I'm not a Slovak native, but still.
15:41 nihiliad joined
jnthn Native of langauge with non-ASCII chars. :-) 15:42
Well, that's most of the world, I guess. :-)
masak hugme: hug Unicode
hugme hugs Unicode
masak jnthn: I'm pretty sure it's most of the world, yes. China and India contribute a billion people each. you just need another billion, which shouldn't be hard to find. 15:43
pmichaud shouldn't be... much of europe falls outside of ASCII :) 15:45
jnthn Much of South America too, I guess.
Oh, and then there's that small country: Russia. :-) 15:46
arnsholt I can't think of many languages apart from English that get by with just ASCII
jnthn American, Australian. 15:47
Oh, wait.
masak :)
arnsholt And if you wanna write a somewhat educated English, you're going to want accents as well
jnthn Huh? :-)
arnsholt Well, I'm in a café at the moment =p 15:48
jnthn Clearly I've not been educated. :-)
masak yes, it's naïve ti think otherwise.
s/ti/to/
15:49 pmurias joined
jnthn I'm struggling to think of other European languages that even fit within ASCII though. 15:49
masak en.wikipedia.org/wiki/List_of_Engli...diacritics
heh, what, "Filmjölk" is an English word? :) 15:50
jnthn "Many of these spellings are so rare that they cannot be said to be part of the standard language."
masak: I don't immediately recognize it as one...
masak thought so.
jnthn
.oO( a joke from a film? )
arnsholt jnthn: It's Swedish =)
jnthn "fermenting cow's milk with a variety of bacteria"...sounds appertizing. :-/ 15:51
masak oh, I should have said 'háček' (or 'caron') before about the thing on the c, and not 'hat'.
jnthn: it's a staple product in Sweden. 15:52
many people have it for breakfast.
jnthn masak: It looks like you probably could use it to attach bits of paper, yes...
masak hrm. :)
jnthn masak: We call it a mekcen in Slovak, fwiw. :-)
masak oki. 15:53
jnthn erm, where the c has a mekcen on it. :-)
masak I guessed as much. :)
jnthn
.oO( Next Slovak class: BTW, did you know mekcen is recursively defined? )
15:53 rfordinal joined
masak :) 15:54
that's permissible in languages.
jnthn Filmjölk looks, like, healthy. :-)
colomon ng: say 1 + 1i
p6eval ng 268a8a: Could not find non-existent sub &fail␤current instr.: 'perl6;Complex;_block2489' pc 168885 (src/gen/core.pir:13397)␤
jnthn Wow. We fail to fail. :-) 15:55
masak jnthn: I could bring a packet to Riga if you want. :)
colomon see, masak? a target-rich environment, just like I said. :)
masak colomon: yes, but I'm not allowed to submit those bugs! :)
15:55 am0c__ joined
masak that's just teasing. 15:56
colomon no, you have to fix them.
jnthn masak: Mmm...well, I guess I like other fermented products... :-)
colomon or badger jnthn and pmichaud until they do.
masak jnthn: I'd have to figure out how to transport it. that might be interesting.
jnthn www.badgerbadgerbadger.com/
colomon jnthn: why is one of the three Complex infix:<+>'s commented out?
jnthn colomon: Probably because it causes a compilation fail when uncommented. 15:57
colomon hmmm... let me see
jnthn colomon: It's either because it uses my ($a, $b) = ... or private method calls.
Or at least, thow are the two things on my list of "what I gotta do to fully compile Complex" 15:58
colomon weird.
jnthn Once those are back in, we should be able to uncomment everything in Complex that is currently commented out.
colomon make worked
make test died.
jnthn Oh?
Curious.
colomon when building Test.pir 15:59
Not enough positional parameters passed; got 1 but expected 2
jnthn eeek
colomon trying to undo it, just to double-check 16:00
yup.
jnthn oh, I'll bet you that's some "calling wrong multi candidate because we don't go through the multi-dispatcher" problem.
colomon oh, hey, it's the "is deafult" version that fails
and you've commented out every "is default" operator in Complex. 16:01
jnthn oh
That makes sense.
Need to put that back. 16:02
colomon don't let me stop you from doing that, but why do we need is default there, anyway?
pmichaud likely to avoid ambiguous dispatch 16:03
16:03 justatheory joined
jnthn aye 16:03
pmichaud do we need "is default" if we have the Complex,Complex case defined above it? 16:04
jnthn colomon: It may actually be that the "is default" impl from the old traits.pm can just be taken accross.
pmichaud: Good question... 16:05
pmichaud oh, I guess we do.
jnthn Probably there's a way to get a conflict out of the others...
colomon pmichaud: what's the case that would trigger the need for "is default" here? 16:06
pmichaud well, normally the problem with $a, Complex $b and Complex $a, $b is that we can't distinguish between two Complex arguments 16:07
colomon but we have Complex, Complex.
pmichaud but if there's an explicit Complex $a, Complex $b case, I suspect that's not an issue.
so we might not need 'is default' at all here.
my original formulations in Rat didn't have the explicit Complex, Complex case -- just used 'is default' to disambiguate
sorry 16:08
my original formulates in Rat didn't have an explicit Rat, Rat case -- they just used 'is default' to disambiguate
colomon I'm trying it without is default, but still getting some weirdness
pmichaud so perhaps that was copied over to Complex
colomon yeah, I'm afraid it may be my own stupid mistake. ;)
ng: say 1i + 1i 16:09
p6eval ng 268a8a: 0 + {2}i␤
colomon ng: say 1i + 1
p6eval ng 268a8a: Could not find non-existent sub &fail␤current instr.: 'perl6;Complex;_block2489' pc 168885 (src/gen/core.pir:13397)␤
colomon ng: say 1 + 1i
p6eval ng 268a8a: Could not find non-existent sub &fail␤current instr.: 'perl6;Complex;_block2489' pc 168885 (src/gen/core.pir:13397)␤
colomon after uncommenting and removing is default, I get the first two working but not the last
(locally, I mean) 16:10
possibly dispatching to the wrong infix:<+> internally there?
pmichaud yes, we may indeed still have the imcc bug in the way 16:11
jnthn wait, wait...you agree it's a bug now? ;-) 16:12
pmichaud (I wondered if you would catch that. No.)
jnthn Aww, damm.
pmichaud it's a bug for our purposes.
the bug being that we don't have a good way to turn that feature off.
jnthn Well, guess we can try adding :multi 16:13
pmichaud grrrrrrrrrrowl
jnthn tries it
pmichaud burns a Parrot in effigy.
okay... so
I build Parrot 16:14
I install Parrot
jnthn Is this the Rakudo version of Guy Fawkes night?
pmichaud I build a new copy of NQP from the installed Parrot
it fails
because
jnthn oh...some push_string thing?
pmichaud it continues to look for libraries in the BUILD parrot
jnthn In GetOpt?
jnthn saw that yesterday briefly, but just before sleep. 16:15
I thought I just had a dirty tree. But. Gah.
pmichaud the libraries that exist in runtime/parrot/library in parrot's tree get priority over any libraries in either the current directory or the install tree -- even when using the installed Parrot
jnthn wait...wait...the installed Parrot knows about the directory it was built in still?
pmichaud yes.
apparently.
because everything fails until I copy the updated libraries into runtime/parrot/library in the build tree. 16:16
jnthn So if a user build Parrot and sudo's to install it, then a global installed Parrot can still be talked into using libraries from a normal user?
pmichaud well, that exists already, via the -L option 16:17
that's not really what I'm saying
if I build Parrot
then install it
then copy a new library into the installed library directory
but don't eliminate the build tree
then the installed parrot still uses the copy in the build tree in preference to its own installed copy 16:18
jnthn *sigh*
That's screwed up, and I'm quite sure there's a security problem in with that too.
In addition to the fact that it's just, well, wrong. 16:19
pmichaud prepares a ticket
jnthn Extra points if it contains ASCII art of a burning Parrot effigy. 16:20
diakopter blinks 16:24
masak Rakudo devs, arguably Parrot's biggest customer, propose burning a Parrot effigy in ASCII. news at eleven.
arnsholt rakudo: sub foo { say "foo"; }; my &test = &foo; test(); 16:25
p6eval rakudo 7347ec: foo␤
jnthn pmichaud: oh f... No. Putting :multi on it won't Just Fix It. 16:26
pmichaud: Turns out being marked :anon doesn't suppress the attempted namespace insertion. 16:27
s/attempted//
pmichaud it still puts the MultiSub in the namespace?
jnthn (if used in conjunction with :multi)
pmichaud okay, I can see that.
jnthn pmichaud: It appears so.
pmichaud I wonder if we could get *that* changed. :) 16:28
jnthn Anonimity ain't what it used to be.
pmichaud but it's a bandaid on top of a mess of bandages.
arnsholt rakudo: class A { has &.m; method t { .m(); }; }; sub foo { say "foo"; }; my A $a .= new(:t(&foo)); $a.t();
p6eval rakudo 7347ec: ( no output )
jnthn Well, yes.
arnsholt rakudo: class A { has &.m; method t { &.m(); }; }; sub foo { say "foo"; }; my A $a .= new(:t(&foo)); $a.t(); 16:29
jnthn Anyway, we explode at startup as a result so...
p6eval rakudo 7347ec: ( no output )
jnthn pulls that change out again
pmichaud I think I have prefix/postfix working again 16:33
building/testing now
jnthn Cool :-)
16:33 desertm4x joined
pmurias diakopter: hi 16:36
diakopter pmurias: hi 16:37
colomon pmichaud: that's the abs -14 issue? 16:38
pmichaud colomon: yes
jnthn pmichaud: oh. That may fix something with defined in Test.pm too, perhaps. 16:39
colomon \\o/ 16:40
pmichaud oh, well I'm getting compile failure now, so it may be a bit
pmurias diakopter: i you're interested in App::Persistent you could help with checking if the distribution (www.yourcargo.org/App-Persistent-0.01.tar.gz) builds on a machine different from mine
diakopter 0.01 ? 16:41
analogous to mod_perl, but without apache?
colomon philosophical question here: I can work around the infix:<+> issue with Complex by just writing out the one line of code needed to implement the addition, rather than redispatching it. 16:42
IMO redispatching it is a little less in violation of DRY, but on the other hand it seems insane that Num + Complex should take longer to execute than Complex + Num. 16:43
pmurias diakopter: it forks a new copy of a process instead of loading all the libraries once more
diakopter like mod_perl prefork except not prefork? synchronous fork? 16:44
16:44 payload joined
pmurias i don't fully remember how mod_perl worked but i's something like that ;) 16:44
diakopter prefork would be even speedier 16:45
pmurias i think one forked copy is used only once
diakopter ok
pmurias so you don't have problems with persistent trash 16:46
diakopter: my fork lives at github.com/pmurias/app-persistent if you want to add prefork 16:47
arnsholt Is &infix:<<=>> the right name for the numeric comparison operator? 16:53
pmichaud Yes.
well, it depends, actually 16:54
moritz_ erm, no
pmichaud internally it's stored as &infix:<<=>>
but if you're writing it in the setting or code you'll want &infix:«<=>»
jnthn Is the right name in terms of how we name-mangle it.
moritz_ &infix:<<=>> is the same as &infix:<=>
in Perl 6 at least, dunno about Rakudo :-)
jnthn If you're writing a call from PIR, for example, or naming it in the actions or something, then that'd be the form to use.
If you're writing it in Perl 6 code, then what moritz_ said. :-) 16:55
masak moritz_: what pmichaud said. it depends on what level of abstraction you're looking at. :)
pmichaud moritz_: Perl 6 spec says that &infix:«<=>» is stored in the symbol table as &infix:<<=>> .
16:55 _jaldhar joined
moritz_ pmichaud: ok, so it's not wrong, but you can't refer to it by that name easily in Perl 6 16:55
pmichaud moritz_: correct.
in the setting, it should be written with the « » 16:56
(I'm not sure if the compiler supports that yet)
oddly, that's also where my current failure appears. :-( 16:58
(handling of category:<xyz> names)
arnsholt This sounds a bit complicated. I'll just use &infix:<cmp> instead. This is just for fiddling
17:01 kaare joined
diakopter jnthn: how can I test for an Undef value in nqp 17:02
pmichaud pir::defined__IP($value) 17:04
I plan to add a defined prefix operator, though :-)
17:10 astrojp left
pmichaud okay, pushed ng branch with prefix/postfix fix. 17:10
mathw afternoon
colomon I should have most of Complex arithmetic back on-line shortly. 17:12
(that's basic arithmetic, + - * /) 17:13
17:15 payload joined
diakopter pmichaud: oh! thanks 17:19
17:22 qp_pq joined
moritz_ S03-operator/true.t passes again 17:24
17:26 ktne joined
ktne hello 17:26
diakopter hi
ktne what is the last raduko that passes all spectest? 17:27
moritz_ good question - we've had problems with some tests for quite a while
and regressed on one for the last release
qp_pq hi, just ate the white version of caviar 17:30
ktne is that fish eggs? 17:31
17:32 desertm4x_ joined
diakopter qp_pq: eh? 17:32
pmichaud (and we've never passed *all* spectests :-)
qp_pq diakopter: yeah like whit roe 17:33
*white
17:33 iblechbot joined
mathw pmichaud: I have completely failed to make 'when' work even a little bit 17:33
qp_pq pretty good
pmichaud mathw: did you look at how it's done in the master branch?
yes, it's non-trivial :-|
mathw pmichaud: yes
colomon colomon-- # checked in changes without making sure they worked with the latest git pull. :(
jnthn mathw: Oh, I think I might have done it...
jnthn checks commit log...
mathw jnthn: excellent
jnthn (yes, I threw in so many commits I'm losing track of them by now :-/) 17:34
mathw: yes
I did.
mathw yay
jnthn github.com/rakudo/rakudo/commit/b9d...35b70c2924 17:35
mathw looks to see how
it's okay anyway, i don't have time for a few days
turns out ihave a job interview on tuesday
so I'm brushing up on some stuff
pmichaud + # Handle the smart-match. XXX Need to handle syntactic cases too. 17:36
do we handle the syntactic cases even for 'when' statements?
I figured that was just plain .ACCEPT
jnthn pmichaud: We did in master.
pmichaud yes, but should we?
i.e., what does the spec say? 17:37
jnthn pmichaud: I dunno. I was relying on me having read the spec at some point in the past. ;-)
pmichaud spec changes :-)
jnthn Yeah, true.
It was quite obvious that I'd gone out of my way to actually make when handle the syntactic cases.
qp_pq mathw: how's p6 being received when you mention it at interviews ?
masak rakudo: sub f(@a, $i=0) { $i ~ "[{map { f($_, $i + 1) }, @a}]" }; say f([[], [[]], []])
p6eval rakudo 7347ec: 0[1[] 2[3[]] 4[]]␤
masak adds that to #70469 17:38
jnthn We can check the spec, anyway.
mathw qp_pq: I'll let you know after I've mentioned it
jnthn mathw: oh, nicely golfed.
masak jnthn: here I am :)
moritz_ detects a tab fail :-)
diakopter hugme: hug qp_pq
hugme hugs qp_pq
pmichaud masak: I suspect that's related to dispatch/binder changes, but that's just a guess.
masak pmichaud: same here.
jnthn Me too now I see it as a sub example.
qp_pq diakopter: you mean I'm a troll ? 17:39
jnthn masak: Default param to blame?
masak jnthn: I'll check.
rakudo: sub f(@a, $i) { $i ~ "[{map { f($_, $i + 1) }, @a}]" }; say f([[], [[]], []], 0)
diakopter qp_pq: not necessarily
jnthn moritz_: gah, worse is that it took me this long to realize it was me that failed. ;-)
p6eval rakudo 7347ec: 0[1[] 2[3[]] 4[]]␤
masak jnthn: no.
jnthn masak: Aww. 17:40
moritz_ masak: dammit. I was just about to put it into S06-signature/defaults.t
jnthn lol
masak :)
pmichaud looks to me as though a new lexpad isn't being created somehow.
arnsholt Is multimethods a known quirky part of Rakudo?
jnthn Yeah, the problem is in the somehow.
moritz_ masak: and now I realize it's the wrong place, and I have no clue where to put it
jnthn arnsholt: In master, no.
moritz_ arnsholt: no
masak moritz_: sorry :D
jnthn arnsholt: In ng, probably some issues. 17:41
arnsholt Hmm
moritz_ masak: did you submit it already? if yes, do you know the ticket number?
arnsholt I'm on master
diakopter qp_pq: would you like to contribute? there are many ways to do so
jnthn 70469
pmichaud afk, lunch
moritz_ thanks jnthn
qp_pq diakopter: haven't slept for ~36h
diakopter: although I consider contributing 17:42
diakopter well, that's interesting
ktne qp_pq, you should get some sleep before you drop dead
qp_pq my contribution to CPAN amounts to 9 patches
moritz_ masak: smells a bit like the old "lexicals and recursion" bug of world fame
masak moritz_: a bit. 17:43
#58392 :)
qp_pq modules patched -> SVG.pm, CGI.pm, Math::Polynomial, Lingua::NL::Numbers , and not all patches were accepted, or even noticed
pmichaud cries at the thought of #58392 being at all relevant again.
qp_pq so maybe contributing to Perl6 will be a bit more noticeable
moritz_ qp_pq: most of my CPAN patches seemed to be ignored too
jnthn pmichaud: Heh, nah, I probably just managed something stupid in the binding or dispatch somehow.
qp_pq you guys have a standard for p6 ? 17:44
moritz_ qp_pq: what do you mean by that?
qp_pq moritz_: like this www.open-std.org/jtc1/sc22/wg21/do.../n1905.pdf 17:45
diakopter qp_pq: would you like a commitbit to the pugscode svn repo (which contains the specification & test suite)? /msg me your email address and preferred username; we'll send you one
mathw qp_pq: perlcabal.org/syn
qp_pq: it's still a bit fluid
masak goes to the store to buy good food
qp_pq wow you people are really friendly :)
qp_pq a.k.a spx2
qp_pq a.k.a. perlhobby.googlecode.com/ 17:46
17:50 Woody2143 left, felipe left, pjcj left, IRSeekBot left, ilbot2 left, zostay left, stepnem left, nothingmuch left, jjore left 17:59 Woody2143 joined, BinGOs joined 18:00 jnthn joined, meppel joined, cognominal joined, presh_ joined, jantore joined, Gothmog_ joined, quietfanatic joined 18:01 zaslon joined, LylePerl joined, hicx174 joined, slavik joined 18:02 cognominal joined, Patterner joined, dalek joined, PacoLinux joined, Apocal joined, stepnem joined, nothingmuch joined, eiro joined, jjore joined, jnthn_ joined, bigpresh_ joined, Gothmog__ joined, carlin joined, barney joined, parduncia joined, Woodi joined, dukeleto joined, pugs_svn joined, hatseflats joined, jiing_ joined, phenny joined, sri__ joined, constant joined, cls_bsd joined, spinclad joined, Infinoid joined, arthur-_ joined, yath joined, Juerd joined, Maddingue joined, omega_ joined, ssm joined, athomason joined, cosimo joined, lambdabot joined, pmichaud joined, cotto_work joined, kst joined, mj41 joined, lisppaste3 joined, pnu joined, elmex joined, silug joined, Bucciarati joined, dukelet0 joined, cotto joined, solarion joined, mtve joined, PerlJam joined, cookys joined, gfldex joined, Grrrr joined, TimToady joined, christine joined, renormalist joined, literal joined, s1n joined, bloonix joined, estrabd joined, frettled joined, nsh joined, sunnavy joined, yves joined, Khisanth joined, arnsholt joined, sbp joined, cxreg joined, dj_goku joined, jrockway joined, shachaf joined, akl joined, drbean joined, charsbar joined, r0bby joined, revdiablo joined, obra_ joined, moritz_ joined, rapacity joined, Tene joined, jsut|work joined, goneri joined, tylerni7 joined, japhb joined, broquaint joined, Lorn joined, gabiruh joined, astinus joined, allbery_b joined, frew joined, krakan joined, mathw joined, simcop2387 joined, szabgab joined, xomas_ joined, Meldrake joined, Exodist joined, lmc joined, Jedai joined, itz joined, [particle]1 joined, jeremiah1 joined, colomon joined, Eevee joined, rgrau joined, orafu joined, PZt joined, [synth] joined, Helios- joined, wisemanby joined, xenoterracide joined, pnate2 joined, gbacon joined, pointme joined, NorwayGeek joined, p6eval joined, xinming_ joined, zloyrusskiy joined, Su-Shee joined, araujo joined, kidd joined, IllvilJa joined, am0c__ joined, _jaldhar joined, kaare joined, qp_pq joined, ktne joined, iblechbot joined, wolverian joined, desertm4x_ joined, pmurias joined, diakopter joined, REPLeffect_ joined, tomaw_ joined, diggdogg joined, jantore_ joined 18:03 mepplock joined, c9s joined, justatheory joined, Chillance joined, hcchien joined, Wolfman2000 joined, kangas joined, KatrinaTheLamia joined, buu_ joined, mdxi joined, crazed joined, sjohnson joined, baest joined, leedo joined, hsb joined, estrai joined 18:09 nbrown joined
diakopter large netsplit.. 18:11
18:12 jan_____ joined 18:13 nihiliad joined
mathw hmm, that was messy 18:14
18:14 oZ] joined 18:15 christine joined 18:20 yahooooo joined 18:21 chromatic joined
pmichaud back 18:22
18:24 felipe joined
arnsholt Bugreport submitted. With source of segfault even 18:29
18:29 payload joined
mathw arnsholt++ 18:30
arnsholt It's either a simple oversight in a macro, or an improperly initialised data structure; I'm not familiar enough with the code to determine which
18:32 pmurias joined 18:36 rfordinal joined
dalek p-rx: aa07d85 | pmichaud++ | src/cheats/hll-grammar.pir:
In HLL::Grammar.EXPR, make a better distinction between <termish> and <term>.
18:52
p-rx: 9b01eaa | pmichaud++ | src/cheats/hll-grammar.pir:
Convert termstack and opstack from lexicals to parameters for reusability.
p-rx: a984e53 | pmichaud++ | src/ (3 files):
Eliminate nullterms in source code.
18:53
p-rx: 49e36a8 | pmichaud++ | src/ (5 files):
Update <EXPR> to properly handle prefix/postfix and terms.
p-rx: 9ded5d3 | pmichaud++ | src/stage0/ (3 files):
Update boostrap with fixed EXPR and nullterm handling.
pugs_svn r29094 | moritz++ | [t/spec] r29067 removed :keepall, so get rid of it 18:55
moritz_ rakudo: say 'foo' ~~ /<alpha>/ && say $/ 18:56
p6eval rakudo 7347ec: f␤1␤
diakopter pmurias: EV doesn't pass all its tests 18:58
Wolfman2000 afternoon all 18:59
moritz_ good localtime * 19:00
Wolfman2000 unsure how much work I can get done on the new Pastebin...have to catch up on homework
Would have done so last night, but...well, I had company.
pugs_svn r29095 | moritz++ | [t/spec] as per r29067 <foo=bar> aliasing preserves the $<bar> capture, but <foo=.bar> does not 19:02
r29096 | moritz++ | [u4x] more TODOs :-) 19:06
r29097 | moritz++ | [docs] remove blog/, which slowly bitrots
colomon pmichaud: is there an eta for "for" 19:08
?
pmichaud colomon: not at the moment. 19:10
we could possibly put in the (not quite right) for from master, if we're in a hurry for it.
colomon it would help with the math tests. 19:11
pmichaud looking. 19:12
colomon but we can accomplish a lot working around it.
19:14 nihiliad1 joined
pmichaud I may have a cheating form 19:14
colomon \\o/
19:17 nbrown joined 19:18 nbrown joined, am0c__ joined
pugs_svn r29098 | moritz++ | [examples] small fixes to Grammar-IRC.pm 19:24
Wolfman2000 ...right, that reminds me. I need to recompile STD.pm at some point. 19:26
19:27 Su-Shee left
pmichaud jnthn: ping 19:30
19:31 nbrown_ joined 19:32 desertm4x__ joined
jnthn pmichaud: p0ng 19:32
19:33 constant_ joined
pmichaud is there an easy way to get the arity (and perhaps count) from a P::C::Signature object? 19:33
I need to set the block arity in PAST
I was just going to write a .arity method for now.
pugs_svn r29099 | moritz++ | [misc] remove botnix_plugins, which are now developed at 19:34
r29099 | github.com/Infinoid/dalek-plugins/
moritz_ do we still have global variables, officially? 19:36
jnthn pmichaud: I think add a .arity method to P::C::S 19:37
pmichaud done
we probably won't need it when we have lazy map
19:38 alester joined
colomon dreams of lazy map.... 19:43
jnthn pmichaud: Cool. Hope it was easy to write. :-)
pmichaud 'for' pushed
well, sorta 19:46
something's not working right
works with pointy blocks, but not with an implicit topic block 19:47
19:48 [particle] joined
pmichaud ah, I see 19:48
19:48 Whiteknight joined
pmichaud arity of an implicit topic block is zero. 19:48
mathw so it needs to spot an implicit block as a special case? 19:49
19:49 ktne joined
pmichaud mathw: that's a workaround, not the ideal solution. 19:49
19:49 masak joined
mathw mmm 19:49
special cases are not good 19:50
pmichaud better would be if 'for' knew how to deal with count as well as arity
still better will be when for/map can do partial signature binds
mathw well make that work first then :) 19:52
pmichaud that still needs a Perl 6 spec, alas.
so until then, we're stuck with .arity/.count :)
mathw :(
diakopter well, STD creates a signature for it based on the number of $^aaaa 19:53
mathw I saw something about that in there 19:54
jnthn Partial signature binds...they may be a minor brane ache.
(not too bad though...)
pmichaud I'll just force arity to be at least one for now 19:56
it's a 1-line change in a section that is going to be rewritten anyway :-)
updated 'for' pushed 19:59
20:00 nihiliad joined
colomon pmichaud++ # was just failing to get the last one to work.... 20:00
1..20 nyi? 20:04
ng: say (1..20).perl 20:05
p6eval ng 6ae412: Confused at line 1, near "say (1..20"␤current instr.: 'perl6;HLL;Grammar;panic' pc 448 (src/stage0/HLL-s0.pir:300)␤
jnthn colomon: afaik nyi 20:06
masak ng: say map { $_ * 2 }, 1, 2, 3; 20:09
p6eval ng 6ae412: Could not find non-existent sub &map␤current instr.: '_block14' pc 29 (EVAL_1:0)␤
jnthn masak: Thing is, we need gather/take, and they need re-doing to be lazy. 20:11
masak ng: sub f(@a, $i=0) { my @b; $i ~ "[{ for @a { @b.push(f($_, $i + 1)) }; @b }]" }; say f([[], [[]], []])
p6eval ng 6ae412: Confused at line 1, near "say f([[],"␤current instr.: 'perl6;HLL;Grammar;panic' pc 448 (src/stage0/HLL-s0.pir:300)␤
pmichaud I don't think ng has interpolated closures yet. 20:12
masak oh.
pmichaud ng: say "{1 + 2}"
p6eval ng 6ae412: {1 + 2}␤
pmichaud still, I'm surprised it didn't at least print out the constant.
jnthn yeah, same...I'm not sure where it exploded... 20:13
pmichaud ng: say [[], [[]], []].perl
p6eval ng 6ae412: Confused at line 1, near "say [[], ["␤current instr.: 'perl6;HLL;Grammar;panic' pc 448 (src/stage0/HLL-s0.pir:300)␤
jnthn oh, there.
pmichaud ng: say [[], [[]], []]
p6eval ng 6ae412: Confused at line 1, near "say [[], ["␤current instr.: 'perl6;HLL;Grammar;panic' pc 448 (src/stage0/HLL-s0.pir:300)␤
pmichaud ng: say []
p6eval ng 6ae412: Confused at line 1, near "say []"␤current instr.: 'perl6;HLL;Grammar;panic' pc 448 (src/stage0/HLL-s0.pir:300)␤
jnthn oh
pmichaud :-)
jnthn I think I noticed that the other day.
pmichaud that's easily added.
jnthn It has an epic distaste for empty circumfixes.
ng: my @a; @a[]
p6eval ng 6ae412: Confused at line 1, near "@a[]"␤current instr.: 'perl6;HLL;Grammar;panic' pc 448 (src/stage0/HLL-s0.pir:300)␤
jnthn same for empty post-circumfixes.
Probably easy too though. 20:14
ELOTSOFLHF
pmichaud empty post-circumfix is a little trickier, since it's a zen slice
colomon PAST::Compiler can't compile node of type BigInt
pmichaud I'm not sure where the BigInt is coming from. 20:15
oh, wait
no
hrm.
colomon that's in complex.t
pmichaud if you can narrow it down to a single test, that could help
colomon working on it
but kind of stumped at the moment 20:17
would that happen after the first stage of parsing 20:18
jnthn That is kinda...odd.
colomon: Do you get same error with --target=pir rather than just running it too?
pmichaud the problem is likely that some numish value is being auto-promoted by Parrot. 20:19
Although I didn't know that Parrot had BigInts
are there any large decimal values floating around in complex.t? i.e., with lots of digits that might overflow a 32-bit int? 20:20
colomon jnthn: same error
pmichaud: small values, maybe? 20:22
jnthn colomon: Maybe --target=past will work then and you can search the past tree for BigInt, then try and trace it back to the code.
colomon -1.83697e-16-1i
pmichaud I think that normally goes to a num
I'm looking for large rats
jnthn www.altpet.net/rodents/cricetomys/jo/jo3-98.jpg 20:23
colomon: If you can, there should be some source => or similar around that point back to the code near the BigInt
arnsholt jnthn: That -is- a big rat =D 20:24
pmichaud ...except I doubt that the dump will show the BigInt
jnthn pmichaud: Maybe not, no.
pmichaud oh, it might, actually
colomon pi
my $pi = 3.141592653589793238;
pmichaud pi would do it, if it's too large
jnthn pmichaud: But it may, so I guess wroth a try. :-)
Ah
colomon that's just a guess 20:25
pmichaud > my $pi = 3.141592653589793238;
no bigint lib loaded
lambdabot <no location info>: parse error on input `='
moritz_ ng: 3.141592653589793238
p6eval ng 1ddafa: No applicable candidates found to dispatch to for '&infix:<div>'␤current instr.: 'perl6;Rat;new' pc 163055 (src/gen/core.pir:11051)␤
pmichaud okay, so my guess is that it runs out of range while computing the .14159265.... part 20:26
moritz_ just make it a Num
by attaching a e0 at the end
pmichaud sure, but we have to detect it
no, don't do that
I'd rather not be polluting our test suite with workarounds 20:27
moritz_ pmichaud: it was never intended to be a Rat
pmichaud (also, it's not clear that e0 should be forcing num-ness :-)
moritz_ pmichaud: when the test was written it as supposed to give a Num, which makes sense in that context
pmichaud moritz_: I understand that.
moritz_ it's not clear?
pmichaud does the spec say that literals with exponentials are always cast to Num ? 20:28
jnthn I thought that was how you made clear you wanted a Num.
pmichaud I would think the way to make clear you want a Num is with Num(...) :-)
jnthn As a literal. :-P
moritz_ that's a coercion, not a literal 20:29
arnsholt my Num $pi, or would that just trigger a coercion behind the scenes?
pmichaud arnsholt: that's a constraint, not a coercion
arnsholt Point
moritz_ arnsholt: that would be a type check, not... what pmichaud wrote
colomon pretty sure I have verification that pi is it
pmichaud colomon: oh sure, I already verified. See above :) 20:30
arnsholt moritz_: Oh, right
moritz_ Decimal fractions not using "e" notation are also stored as C<Rat> values:
6.02e23.WHAT # Num
jnthn Decimal fractions not using "e" notation are also stored as C<Rat> values:
pmichaud okay, so e forces num
jnthn oh, moritz_ beat me.
moritz_ :-)
pmichaud okay, if you want to add the e0 to force it in the tests, that's fine with me :-)
I'd still like to get 3.141592653589793238 to work properly too, though. 20:31
although perhaps that fits in a 64-bit rat
colomon ng: say 3.141592653589793238e0
p6eval ng 1ddafa: 3.14159265358979␤
colomon huh
moritz_ ng: say 3.141592653589793238e0.WHAT 20:32
p6eval ng 1ddafa: Num()␤
colomon doesn't appear to work in complex.t?!?
Multiple Dispatch: No suitable candidate found for 'multiply_float', with signature 'PNP->P' 20:33
pmichaud colomon: it undoubtedly has to do with NQP and Parrot register semantics 20:34
pugs_svn r29100 | moritz++ | [t/spec] make pi a Num instead of Rat 20:35
pmichaud converting the digit sequence into numbers requires that we know where we're storing the results, and how 20:37
in the example above, 141692653589793238 is too large to fit in a 32-bit int 20:38
moritz_ rakudo: say log2(141692653589793238) 20:39
p6eval rakudo 7347ec: Could not find non-existent sub log2␤in Main (file src/gen_setting.pm, line 324)␤
moritz_ rakudo: say log(141692653589793238, 2)
p6eval rakudo 7347ec: No applicable candidates found to dispatch to for 'log'␤in Main (file <unknown>, line <unknown>)␤
moritz_ rakudo: say log(141692653589793238)/log(2)
p6eval rakudo 7347ec: 56.9755425731454␤
moritz_ thought we had a patch for that somewhere 20:40
pmichaud patch for ... ?
moritz_ log with base
pmichaud afk, soccer party 20:54
jnthn
.oO( don't they call that a ball? )
20:55
colomon y] 20:56
757 passing rat tests
20:57 yahooooo joined
jnthn \\o/ 20:57
moritz_ ng doesn't support the -c option yet, it seems 21:01
21:14 nihiliad1 joined 21:19 justatheory_ joined
diakopter r-ng. sounds suspiciously like rng. 21:24
Wolfman2000 I'll be back later. With luck, I can knock out more of the website. Core functionality is available at least. 21:27
21:31 astrojp joined 21:44 payload joined
colomon oh noes. 21:47
If I leave it in, test #759 kills rat.t 21:48
If I skip it, rat.t dies on test #55.
:O
diakopter leaving it might induce a stack overflow or out-of-memory in parsing 21:49
21:50 [[synth]] joined
pmurias diakopter: EV not passing tests is bad 22:03
diakopter: do you know what's the reason? 22:09
22:10 synth joined
diakopter nope 22:13
japhb pmichaud, ping
diakopter same as the bug report on rt.cpan.org for it
that the author auto-replied with STFU
22:14 payload joined 22:15 mikehh joined
diakopter www.xent.com/pipermail/fork/Week-of...54578.html 22:23
jnthn ...wow 22:25
!
22:28 oZ] joined
diakopter email address literals; lol. 22:29
jnthn In Perl 6, they're just a slang away. :-) 22:32
Just imagine! We could be THE language for spammers!
my $target = foo@bar.com; $target.send_mail('oh hai', 'i haz v1agraz for you!'); 22:33
japhb "Oh good, 'cause I always wanted me some v1agraz!" 22:35
diakopter std: my ::larry@wall.org
p6eval std 29100: ok 00:01 101m␤
diakopter spends too much time attacking parsers.
pmurias diakopter: you should approach them with kindness not agression ;) 22:36
diakopter EKILLINGMESOFTLYWITHHISFUZZER
japhb Um, Ow. 22:37
jnthn lol
japhb Or are you talking about a cat that hasn't had his claws trimmed recently?\\
jnthn std: sub term:<email> is parsed(/\\w+\\@\\w+\\.\\w+/) { };
p6eval std 29100: ok 00:02 111m␤
japhb starts humming Ted Nugent 22:38
diakopter ltm fail 22:39
22:41 rfordinal3643 joined 22:42 Whiteknight joined
zaslon lolmasakhazblogged! masak++ 'November 15 2009 -- money gets inflated, time gets deflated': use.perl.org/~masak/journal/39901?from=rss 22:44
frettled masak: yay? 22:46
masak frettled: I don't know how to answer that. :) 22:47
frettled masak: just smile, wave and nod.
masak just smiles, waves and nods
diakopter yays 22:48
jnthn yaymasakblogged!
lisppaste3 colomon pasted "my hacked for ng version of rat.t" at paste.lisp.org/display/90448 22:50
diakopter "your programming language is so inflated, it always compiles to an assembly/image smaller than the source code size"
colomon: where does it fail now
colomon pmichaud, jnthn, etc: look for # This is the spot
diakopter: this version fails at #462. but just uncommenting the 3 tests are "This is the spot" will get it to fail at #757 or so. 22:51
This is in the ng branch.
diakopter yar
colomon And skipping makes them fail at #55.
It's panic-inducing.
diakopter #757 or so? what happens if you prove just that file? 22:52
colomon diakopter: this is using the makefile to prove that file, ala make t/spec/S32-num/rat.t 22:53
22:53 mikehh joined
arnsholt diakopter: That was a very interesting rant you linked 22:55
I think he's being overly demanding on several points, but he does have quite a few good points as well
masak it figured on Twitter a few days ago, with the comment 'the Python people want CPAN'. 22:56
I don't remember who posted it.
diakopter was catching up on a tweetweek
japhb It feels like the ranter doesn't understand the waterbed principle. 22:57
colomon waterbed?
masak ah, it was nihiliad1 who forwarded this link: chris.prather.org/everybody-wants-s...-cpan.html
japhb Not that he doesn't have good points, but I feel a "people have gotten 80% of the way to being able to compress every possible file, so why can't we get 100%" vibe.
arnsholt colomon: Decreased complexity in one place means increased complexity elsewhere
masak colomon: chris.prather.org/everybody-wants-s...-cpan.html 22:58
arnsholt And vice versa
masak oops.
colomon: en.wikipedia.org/wiki/Waterbed_theory
japhb colomon, TimToady's idea: complexity is a waterbed. Push down in one place, it goes up in another. Get a super simplified syntax, and something else just got a lot harder.
colomon Ah, heard that explanation years ago and completely forgot it. 22:59
22:59 oZ] left
colomon danke. 23:00
japhb Note that the waterbed theory doesn't apply if there are bubbles ... just that once all bubbles are gone, then you have an incompressible liquid to deal with.
diakopter I guess it depends how strong the waterbed frame/bag are, and how much pressure can be applied. I suspect water can be compressed until fusion occurs 23:03
masak diakopter: I think that counts as the funniest thing someone has said today. 23:04
time to go home and sleep. 23:10
'night, #perl6.
23:20 IRSeekBot joined 23:21 rhr joined, jeremiah1 joined
pmichaud my $a = (); say $a.WHAT; # ??? 23:22
what should be the result there? 23:23
jnthn hm
pmichaud I can think that it would be a List, Nil, a Failure....
jnthn pmichaud: First, what does () itself construct? 23:24
pmichaud japhb: pong
jnthn: well, the answer to my question tells me what () constructs :-)
jnthn pmichaud: I'm under the impression infix:<,> is what constructs our Parcel.
pmichaud: Well, no, because the item assignment enforces a context.
pmichaud sure, infix:<,> constructs a parcel -- that's not my question
I know that my $a = (1,) # List
jnthn And if the answer to the first question were to be Parcel (which I don't think it is though) then the context would matter. :-)
pmichaud I'm pretty certain the answer to the first question is not Parcel 23:25
jnthn Right, me too.
23:25 eternaleye joined
jnthn But wanted to clear that option up first. :-) 23:25
pmichaud if () produces a List, then $a would be a List
if () produces Nil, then $a would be either Nil or some sort of Undef
jnthn Nil feels closest to correct. 23:26
japhb pmichaud, did you decide how you wanted to handle "global" variables in NQP? For example, did you decide yay or nay on having contextuals have a final try at namespace []?
pmichaud japhb: so far I'm leaning towards yea
japhb: I haven't decided yet
23:26 Infinoid_ joined
pmichaud if () produces Nil, then I'd expect my $a = () to be undef. 23:27
japhb If you're inside a module Foo::Bar, how would you declare a variable in that namespace. Actually, in general, how do you refer to things in other namespaces in NQP (other than the 'new' operation)?
jnthn Yeah
23:27 Grrrr joined
jnthn But it also does something sane for my @a = (); 23:27
(if it produces Nil)
pmichaud jnthn: sure, but that would be true if () is a List, too
jnthn I guess List would as well... 23:28
23:28 arnsholt joined
pmichaud japhb: declare a variable in the Foo::Bar namespace? 23:28
jnthn pmichaud: OTOH, I guess (), (1), (1,2) # we have a dis-continuity at (1)...
pmichaud that would just be 'our'
japhb Right. And how do you refer to the [] namespace from any other namespace?
pmichaud japhb: I'm thinking it'll be GLOBAL:: 23:29
japhb ack, $family, brb
pmichaud jnthn: we already know there's a discontinuity at (1) -- been that way for quite a while
I'm not trying to remove the discontinuity -- just trying to get a handle on what () and Nil really mean and when they're used :) 23:30
jnthn pmichaud: Sure, I'm just pondering whether having () special too is too much discountinuity.
I think that since we generally don't see () as the thing that constructs a List, I'd go towards Nil.
diakopter I thought Nil was List 23:31
jnthn Nil is a listy kind of undef.
(In list context it evaporates.)
diakopter and then condenses 23:32
23:33 mikehh joined
diakopter I mean, I thought Nil was empty List 23:34
pmichaud diakopter: it was at one time, yes.
diakopter: I think it has morphed a bit since then 23:35
23:36 yahooooo joined
jnthn pmichaud: Hmm. Well, I guess this was all a tad unconclusive. :-) 23:38
pmichaud: imho, Nil gets my vote. 23:39
23:39 payload joined 23:41 kst joined
colomon oh noes ^2! 23:46
If I run rat.t under normal ng, I get a bus error around test #482.
japhb nqp: module Foo::Bar { $Baz::Quux::a := 5; say ($Baz::Quux::a); } 23:47
p6eval nqp: Unable to parse blockoid, couldn't find final '}' at line 1␤current instr.: 'parrot;Regex;Cursor;FAILGOAL' pc 1630 (src/Regex/Cursor-builtins.pir:179)␤
japhb nqp: module Foo::Bar { $Baz::Quux::a := 5; say($Baz::Quux::a); }
p6eval nqp: Unable to parse blockoid, couldn't find final '}' at line 1␤current instr.: 'parrot;Regex;Cursor;FAILGOAL' pc 1630 (src/Regex/Cursor-builtins.pir:179)␤
colomon If I run it under valgrind, it gets to test #759 and then dies with a (correct) perl6 error.
japhb nqp: $Baz::Quux::a := 5; say($Baz::Quux::a);
p6eval nqp: Confused at line 1, near "$Baz::Quux"␤current instr.: 'parrot;HLL;Grammar;panic' pc 448 (src/cheats/hll-grammar.pir:197)␤
23:48 snearch_ joined
pmichaud nqp doesn't recognize $ABC::def syntax yet, I don't think. 23:48
japhb pmichaud, yeah, looks like so.
23:59 erkkk joined